Usar OBJID_NATIVEOM para expor uma interface nativa para uma janela
Essa técnica permite que os clientes obtenham um objeto personalizado para uma janela. Os servidores podem usar isso para expor um ponteiro a um objeto de documento personalizado para uma janela.
Para expor uma interface de modelo de objeto nativo para uma janela (servidores)
- Manipule a mensagem de WM_GETOBJECT no procedimento de janela. Quando o valor lParam for OBJID_NATIVEOM, retorne um ponteiro de interface para o objeto personalizado usando LresultFromObject.
- Solte o ponteiro da interface depois de chamar LresultFromObject, se apropriado. Para obter mais informações, consulte LresultFromObject.
Os clientes podem obter um ponteiro para esse objeto personalizado.
Para obter um ponteiro para um objeto personalizado para uma janela (clientes)
- Chame AccessibleObjectFromWindow e passe OBJID_NATIVEOM como o segundo parâmetro.
Observe os seguintes problemas para essa técnica:
- Essa técnica é semelhante ao retorno de um ponteiro de interface IAccessible , exceto pela ID do objeto usada e pelo fato de que LresultFromObject retorna um objeto personalizado em vez de IAccessible.
- Talvez os desenvolvedores de servidores precisem publicar informações que permitam que os clientes identifiquem exclusivamente o HWND para que possam encontrá-lo antes de chamar AccessibleObjectFromWindow em seu identificador de janela.
- Não implemente a interface IAccessible no objeto personalizado retornado. Se você fizer isso, o OLEACC o tratará como um IAccessible padrão e poderá impedir que as interfaces personalizadas sejam usadas.
- Para serem usadas entre processos, as interfaces no objeto retornado podem precisar ser registradas com COM (Component Object Model).
Essa técnica é compatível com vários componentes do Microsoft Office. Para obter mais informações, consulte AccessibleObjectFromWindow.