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 。 |