Share via


InputObject Klasse

Definition

Basisklasse für alle Eingabeobjekte.

[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
Vererbung
Object Platform::Object IInspectable InputObject
Abgeleitet
Attribute

Hinweise

Alle Eingabe-APIs im Windows App SDK von der allgemeinen InputObject-Basisklasse abgeleitet.

InputObject-Threadingmodell

Auf ein InputObject kann nur über den Thread zugegriffen werden, in dem es erstellt wurde. Jeder Eigenschaftszugriff oder Funktionsaufruf für einen anderen Thread gibt RPC_E_WRONG_THREAD (oder den entsprechenden projizierten Fehlertyp) zurück. Die einzige Ausnahme ist der Zugriff auf die Eigenschaft InputObject DispatcherQueue . Mit DispatcherQueue können Sie überprüfen, ob der aktuelle Thread Zugriff hat und, falls nicht, die Arbeit an den affinen Thread in die Warteschlange zu stellen.

Alle Ereignisrückrufe werden im Thread DispatcherQueue ausgelöst, der dem InputObject zugeordnet ist.

Im folgenden Beispiel wird gezeigt, wie Ermittelt wird, ob das InputObject zum aktuellen Thread gehört.

bool OnThread(Microsoft.UI.Input.InputObject inputObject)
{
    return inputObject.DispatcherQueue.HasThreadAccess();
}

Verhalten bei Entsorgung

Wenn ein InputObject verworfen wird, werden alle zugeordneten Ereignishandler automatisch nicht registriert. Nachfolgende Aufrufe zum Aufheben der Registrierung eines Ereignishandlers sind erfolgreich, aber nicht erforderlich.

Alle nachfolgenden Funktions- oder Eigenschaftsaufrufe, einschließlich der DispatcherQueue-Eigenschaft, geben RO_E_CLOSED (oder den entsprechenden projizierten Fehler) zurück.

Hinweis

Der InputObject-Arbeitsspeicher bleibt gültig, bis alle Verweise freigegeben wurden, aber alle Ressourcen werden freigegeben, wenn sie verworfen werden.

Eigenschaften

DispatcherQueue

Ruft den DispatcherQueue für das InputObject ab.

Gilt für: