Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Inscrit ou annule l’inscription du répartiteur de messages par thread à appeler lorsqu’il existe des messages de fenêtre disponibles pour la distribution dans les API d’attente COM sur un thread ASTA. Cette fonction est généralement appelée par CoreWindow, mais dans certaines circonstances, d’autres composants qui doivent spécialiser la façon dont les messages sont distribués sur un thread ASTA peuvent également appeler cette fonction.
Syntaxe
void CoSetMessageDispatcher(
[in, optional] PMessageDispatcher pMessageDispatcher
);
Paramètres
[in, optional] pMessageDispatcher
Si ce n’est pas null, objet répartiteur de messages à inscrire. Cet objet doit également implémenter IWeakReferenceSource. Si la valeur est Null, annule l’inscription du répartiteur de messages actuel.
Valeur retournée
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT .
Remarques
Cette fonction est prise en charge uniquement dans les threads ASTA. Une tentative de définition du répartiteur de messages sur un thread non ASTA échoue silencieusement sans effets secondaires.
Une tentative de définition d’un objet qui n’implémente pas IWeakReferenceSource échoue silencieusement sans effets secondaires.
Un appel à cette fonction avec un paramètre pMessageDispatcher valide et non null inscrit cet objet pour recevoir un rappel PumpMessages chaque fois qu’il existe des messages de fenêtre disponibles pour distribuer avec des API d’attente COM sur ce thread ASTA. Une référence faible Windows Runtime à cet objet est conservée et l’objet reçoit des rappels, jusqu’à ce que l’inscription soit remplacée ou l’ASTA non initialisé. Chaque appel à cette fonction remplace le répartiteur de messages précédemment inscrit, le cas échéant.
Il n’existe aucun moyen de vérifier si un répartiteur de messages est inscrit sur un thread ASTA ou pour récupérer un répartiteur de messages précédemment inscrit. Cette fonction ne doit être appelée que dans des circonstances où il est connu que cela ne se heurtera pas à une autre inscription, en particulier :
- Dans les threads de l’interface utilisateur de l’application du Windows Store, cette fonction est appelée par CoreWindow pour inscrire son répartiteur. Aucun autre composant ne doit appeler cette fonction sur ces threads.
- Les frameworks d’interface utilisateur peuvent prendre en charge un mode de création, dans lequel les applications sont exécutées dans l’environnement de bureau et ne disposent donc pas d’un CoreWindow dans leurs threads d’interface utilisateur. Au lieu de la prise en charge de CoreWindow, ces infrastructures d’interface utilisateur peuvent inscrire un répartiteur de messages sur des threads d’interface utilisateur pour gérer le traitement spécial des messages de fenêtre généralement géré par CoreWindow (par exemple, les accélérateurs). Il n’est pas nécessaire d’appeler cette fonction si l’infrastructure d’interface utilisateur n’a pas besoin de cette fonctionnalité.
- Les navigateurs IAppVisibility ne sont pas limités aux API d’application du Windows Store et peuvent donc avoir leur propre traitement personnalisé des messages de fenêtre à l’aide d’API user32. Toutefois, ces applications ont toujours des threads d’interface utilisateur ASTA fournis par l’objet d’application et peuvent inscrire un répartiteur de messages pour gérer ce traitement spécial. Il n’est pas nécessaire d’appeler cette fonction si le navigateur n’a pas besoin de cette fonctionnalité.
Spécifications
| Requirement | Valeur |
|---|---|
| plateforme cible | Fenêtres |
| Header | messagedispatcherapi.h |
| Library | Ole32.Lib |