다음을 통해 공유


InputObject 클래스

정의

모든 입력 개체에 대한 기본 클래스입니다.

[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
상속
Object Platform::Object IInspectable 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 를 가져옵니다.

적용 대상