次の方法で共有


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 を取得します。

適用対象