共用方式為


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

適用於