Partager via


Utiliser OBJID_NATIVEOM pour exposer une interface native pour une fenêtre

Cette technique permet aux clients d’obtenir un objet personnalisé pour une fenêtre. Les serveurs peuvent l’utiliser pour exposer un pointeur vers un objet de document personnalisé pour une fenêtre.

Pour exposer une interface de modèle objet native pour une fenêtre (serveurs)

  1. Gérez le message WM_GETOBJECT dans la procédure de fenêtre. Lorsque la valeur lParam est OBJID_NATIVEOM, retournez un pointeur d’interface vers l’objet personnalisé à l’aide de LresultFromObject.
  2. Relâchez votre pointeur d’interface après avoir appelé LresultFromObject, le cas échéant. Pour plus d’informations, consultez LresultFromObject.

Les clients peuvent obtenir un pointeur vers cet objet personnalisé.

Pour obtenir un pointeur pour un objet personnalisé pour une fenêtre (clients)

Notez les problèmes suivants pour cette technique :

  • Cette technique est similaire au renvoi d’un pointeur d’interface IAccessible , à l’exception de l’ID d’objet utilisé et du fait que LresultFromObject retourne un objet personnalisé au lieu d’IAccessible.
  • Les développeurs de serveurs peuvent avoir besoin de publier des informations qui permettent aux clients d’identifier le HWND de manière unique afin qu’ils puissent le trouver avant d’appeler AccessibleObjectFromWindow sur son handle de fenêtre.
  • N’implémentez pas l’interface IAccessible sur l’objet personnalisé retourné. Si vous le faites, OLEACC le traitera comme un IAccessible standard et peut empêcher l’utilisation des interfaces personnalisées.
  • Pour être utilisées entre les processus, les interfaces sur l’objet retourné doivent peut-être être inscrites auprès du modèle COM (Component Object Model).

Cette technique est prise en charge par plusieurs composants Microsoft Office. Pour plus d’informations, consultez AccessibleObjectFromWindow.