Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Registriert oder hebt die Registrierung des Nachrichtenverteilers pro Thread auf, der aufgerufen werden soll, wenn Fensternachrichten in COM-Wait-APIs in einem ASTA-Thread verteilt werden können. Diese Funktion wird in der Regel von CoreWindow aufgerufen, aber unter bestimmten Umständen können auch andere Komponenten, die darauf spezialisiert werden müssen, wie Nachrichten in einem ASTA-Thread verteilt werden, diese Funktion aufrufen.
Syntax
void CoSetMessageDispatcher(
[in, optional] PMessageDispatcher pMessageDispatcher
);
Die Parameter
[in, optional] pMessageDispatcher
Wenn kein Nullwert ist, wird das zu registrierende Nachrichtenverteilerobjekt verwendet. Dieses Objekt muss auch IWeakReferenceSource implementieren. Wenn NULL, heben Sie die Registrierung des aktuellen Nachrichtenteilers auf.
Rückgabewert
Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.
Bemerkungen
Diese Funktion wird nur in ASTA-Threads unterstützt. Ein Versuch, den Nachrichtenverteiler in einem Nicht-ASTA-Thread im Hintergrund festzulegen, schlägt ohne Nebenwirkungen fehl.
Ein Versuch, ein Objekt festzulegen, das IWeakReferenceSource nicht implementiert, schlägt ohne Nebenwirkungen fehl.
Ein Aufruf dieser Funktion mit einem gültigen und nicht nulligen pMessageDispatcher-Parameter registriert dieses Objekt, um einen PumpMessages-Rückruf zu empfangen, wenn Fenstermeldungen verfügbar sind, die mit COM-Wait-APIs in diesem ASTA-Thread verteilt werden können. Ein schwacher Verweis auf dieses Objekt in Windows-Runtime wird gehalten, und das Objekt empfängt Rückrufe, bis die Registrierung ersetzt oder die ASTA nicht initialisiert wird. Jeder Aufruf dieser Funktion ersetzt ggf. den zuvor registrierten Nachrichtenteiler.
Es gibt keine Möglichkeit zu überprüfen, ob ein Nachrichten dispatcher in einem ASTA-Thread registriert ist oder einen zuvor registrierten Nachrichten dispatcher abruft. Diese Funktion sollte nur unter Umständen aufgerufen werden, unter denen bekannt ist, dass dies nicht mit einer anderen Registrierung kollidiert, insbesondere:
- In Windows Store-App-UI-Threads wird diese Funktion von CoreWindow aufgerufen, um den Verteiler zu registrieren. Für diese Threads sollten keine anderen Komponenten diese Funktion aufrufen.
- Benutzeroberflächenframeworks unterstützen möglicherweise einen Erstellungsmodus, in dem Anwendungen in der Desktopumgebung ausgeführt werden und daher keinen CoreWindow in ihren UI-Threads aufweisen. Anstelle der CoreWindow-Unterstützung können diese UI-Frameworks einen Nachrichtenverteiler in UI-Threads registrieren, um spezielle Fensternachrichtenverarbeitungen zu verarbeiten, die in der Regel von CoreWindow (z. B. Zugriffstasten) behandelt werden. Es ist nicht erforderlich, diese Funktion aufzurufen, wenn das Benutzeroberflächenframework diese Funktionalität nicht benötigt.
- IAppVisibility-Browser sind nicht auf die Windows Store-App-APIs beschränkt und verfügen daher möglicherweise über eine eigene benutzerdefinierte Fensternachrichtenverarbeitung mithilfe von User32-APIs. Diese Anwendungen verfügen jedoch weiterhin über ASTA-UI-Threads, die vom App-Objekt bereitgestellt werden, und können einen Nachrichtenteiler registrieren, um diese spezielle Verarbeitung zu verarbeiten. Es ist nicht erforderlich, diese Funktion aufzurufen, wenn der Browser diese Funktionalität nicht benötigt.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | Fenster |
| Header | messagedispatcherapi.h |
| Library | Ole32.Lib |