Message WM de _ GETOBJECT
Envoyé par Microsoft Active Accessibility et Microsoft UI Automation pour obtenir des informations sur un objet accessible contenu dans une application serveur.
Les applications n’envoient jamais ce message directement. Microsoft Active Accessibility envoie ce message en réponse aux appels à AccessibleObjectFromPoint, AccessibleObjectFromEventou AccessibleObjectFromWindow. Toutefois, les applications serveur gèrent ce message. UI Automation envoie ce message en réponse aux appels à IUIAutomation :: ElementFromHandle, ElementFromPointet GetFocusedElement, et lors de la gestion des événements pour lesquels un client s’est inscrit.
dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;
Paramètres
-
dwFlags
-
Fournit des informations supplémentaires sur le message et est utilisé uniquement par le système. Les serveurs transmettent dwFlags en tant que paramètre wParam dans l’appel à LresultFromObject lors du traitement du message.
-
dwObjId
-
Identificateur d’objet. Cette valeur est l’une des constantes d' identificateur d’objet ou un identificateur d’objet personnalisé. Une application serveur doit vérifier cette valeur pour identifier le type d’informations demandées. avant de comparer cette valeur aux _ valeurs OBJID, le serveur doit le caster en DWORD. dans le cas contraire, sur la Windows 64 bits, l’extension de signe du lParam peut interférer avec la comparaison.
- Si dwObjId est l’une des _ valeurs objid telles que objID _ client, la demande concerne un objet Microsoft Active Accessibility qui implémente IAccessible.
- Si dwObjId est égal à UiaRootObjectId, la demande est pour un fournisseur UI Automation. Si le serveur implémente UI Automation, il doit retourner un fournisseur à l’aide de la fonction UiaReturnRawElementProvider .
- Si dwObjId est objID _ NATIVEOM, la demande est pour le modèle objet sous-jacent du contrôle. Si le contrôle prend en charge cette requête, il doit retourner une interface COM appropriée en appelant la fonction LresultFromObject .
- si dwObjId est OBJID _ QUERYCLASSNAMEIDX, la demande est que le contrôle s’identifie comme un contrôle de Windows standard ou un contrôle commun implémenté par la bibliothèque de contrôles communs (ComCtrl.dll).
Valeur retournée
Si la fenêtre ou le contrôle n’a pas besoin de répondre à ce message, elle doit passer le message à la fonction DefWindowProc ; Sinon, la fenêtre ou le contrôle doit retourner une valeur qui correspond à la demande spécifiée par dwObjId:
- Si la fenêtre ou le contrôle implémente l’Automation d’interface utilisateur, la fenêtre ou le contrôle doit retourner la valeur obtenue par un appel à la fonction UiaReturnRawElementProvider .
- Si dwObjId est objID _ NATIVEOM et que la fenêtre expose un modèle objet natif, les fenêtres doivent retourner la valeur obtenue par un appel à la fonction LresultFromObject .
- Si dwObjId est un _ client objid et que la fenêtre implémente IAccessible, la fenêtre doit retourner la valeur obtenue par un appel à la fonction LresultFromObject .
Remarques
Lorsqu’un client appelle AccessibleObjectFromWindow ou l’une des autres fonctions AccessibleObjectFromX qui récupèrent une interface vers un objet, Microsoft Active Accessibility envoie le message WM _ GETOBJECT à la procédure de fenêtre appropriée au sein de l’application serveur appropriée. Lors du traitement de WM _ GETOBJECT, les applications serveur appellent LresultFromObject et utilisent la valeur de retour de cette fonction comme valeur de retour pour le message. Microsoft Active Accessibility, conjointement avec la bibliothèque COM, effectue le marshaling approprié et transmet le pointeur d’interface du serveur au client.
Les serveurs ne répondent pas à l’objet WM _ GETOBJECT avant l’initialisation complète de l’objet ou après le début de la fermeture. Quand une application crée une nouvelle fenêtre, le système envoie l' _ objet d’événement _ Create pour notifier les clients avant d’envoyer le message WM _ Create à la procédure de fenêtre de l’application. Étant donné que de nombreuses applications utilisent _ la création de WM pour démarrer leur processus d’initialisation, les serveurs ne répondent pas au message WM WM _ avant la fin du traitement du message WM _ Create .
Un serveur utilise le WM _ GETOBJECT pour effectuer les tâches suivantes :
- Créer des objets accessibles
- Réutiliser des pointeurs existants vers des objets
- Créer des interfaces vers le même objet
Pour les clients, cela signifie qu’ils peuvent recevoir des pointeurs d’interface distincts pour le même élément d’interface utilisateur, en fonction de l’action du serveur. Pour déterminer si deux pointeurs d’interface pointent vers le même élément d’interface utilisateur, les clients comparent les propriétés IAccessible de l’objet. La comparaison des pointeurs ne fonctionne pas.
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows 2000 Professionnel - [Applications de bureau uniquement] |
| Serveur minimal pris en charge |
Windows Serveur 2003 [ applications de bureau uniquement] |
| Composant redistribuable |
Active Accessibility 1,3 RDK sur Windows NT 4,0 avec SP6 et versions ultérieures et Windows 95 |
| En-tête |
|