Usar OBJID_NATIVEOM para exponer una interfaz nativa para una ventana
Esta técnica permite a los clientes obtener un objeto personalizado para una ventana. Los servidores pueden usarlo para exponer un puntero a un objeto de documento personalizado para una ventana.
Para exponer una interfaz de modelo de objetos nativo para una ventana (servidores)
- Controle el mensaje WM_GETOBJECT en el procedimiento de ventana. Cuando se OBJID_NATIVEOM el valor lParam, devuelva un puntero de interfaz al objeto personalizado mediante LresultFromObject.
- Libere el puntero de interfaz después de llamar a LresultFromObject, si procede. Para obtener más información, vea LresultFromObject.
Los clientes pueden obtener un puntero a este objeto personalizado.
Para obtener un puntero para un objeto personalizado para una ventana (clientes)
- Llame a AccessibleObjectFromWindow y pase OBJID_NATIVEOM como segundo parámetro.
Tenga en cuenta los siguientes problemas para esta técnica:
- Esta técnica es similar a devolver un puntero de interfaz IAccessible excepto el identificador de objeto usado y el hecho de que LresultFromObject devuelve un objeto personalizado en lugar de IAccessible.
- Es posible que los desarrolladores de servidores necesiten publicar información que permita a los clientes identificar de forma única el HWND para que puedan encontrarlo antes de llamar a AccessibleObjectFromWindow en su identificador de ventana.
- No implemente la interfaz IAccessible en el objeto personalizado que se devuelve. Si lo haces, OLEACC lo tratará como un IAccessible estándar y puede impedir que se usen las interfaces personalizadas.
- Para poder usarse en procesos, es posible que las interfaces del objeto devuelto deban registrarse con el Modelo de objetos componentes (COM).
Esta técnica es compatible con varios componentes de Microsoft Office. Para obtener más información, vea AccessibleObjectFromWindow.