InputObject 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
모든 입력 개체에 대한 기본 클래스입니다.
[WebHostHidden]
public ref class InputObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[WebHostHidden]
class InputObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class InputObject
Public Class InputObject
- 상속
- 파생
- 특성
설명
Windows 앱 SDK 모든 입력 API는 공통 InputObject 기본 클래스에서 파생됩니다.
InputObject 스레딩 모델
InputObject는 생성된 스레드에서만 액세스할 수 있습니다. 다른 스레드의 모든 속성 액세스 또는 함수 호출은 RPC_E_WRONG_THREAD(또는 해당하는 예상 오류 유형)를 반환합니다. 유일한 예외는 InputObject DispatcherQueue 속성에 액세스할 때입니다. DispatcherQueue를 사용하면 현재 스레드에 액세스 권한이 있는지 검사, 그렇지 않은 경우 해당 스레드에 작업을 큐에 대기할 수 있습니다.
모든 이벤트 콜백은 InputObject와 연결된 DispatcherQueue 스레드에서 발생합니다.
다음 예제에서는 InputObject가 현재 스레드에 속하는지 확인하는 방법을 보여 줍니다.
bool OnThread(Microsoft.UI.Input.InputObject inputObject)
{
return inputObject.DispatcherQueue.HasThreadAccess();
}
삭제 시 동작
InputObject가 삭제되면 연결된 모든 이벤트 처리기가 자동으로 등록 취소됩니다. 이벤트 처리기를 등록 취소하는 후속 호출은 성공하지만 필수는 아닙니다.
DispatcherQueue 속성을 포함한 모든 후속 함수 또는 속성 호출은 RO_E_CLOSED(또는 해당하는 프로젝트된 오류)를 반환합니다.
참고
InputObject 메모리는 모든 참조가 해제될 때까지 유효하지만 모든 리소스는 삭제될 때 해제됩니다.
속성
DispatcherQueue |
InputObject에 대한 DispatcherQueue 를 가져옵니다. |