Usare OBJID_NATIVEOM per esporre un'interfaccia nativa per una finestra
Questa tecnica consente ai client di ottenere un oggetto personalizzato per una finestra. I server possono usarlo per esporre un puntatore a un oggetto documento personalizzato per una finestra.
Per esporre un'interfaccia del modello a oggetti nativa per una finestra (server)
- Gestire il messaggio WM_GETOBJECT nella procedura della finestra. Quando il valore lParam è OBJID_NATIVEOM, restituire un puntatore di interfaccia all'oggetto personalizzato usando LresultFromObject.
- Rilasciare il puntatore dell'interfaccia dopo aver chiamato LresultFromObject, se appropriato. Per altre informazioni, vedere LresultFromObject.
I client possono ottenere un puntatore a questo oggetto personalizzato.
Per ottenere un puntatore per un oggetto personalizzato per una finestra (client)
- Chiamare AccessibleObjectFromWindow e passare OBJID_NATIVEOM come secondo parametro.
Si notino i problemi seguenti per questa tecnica:
- Questa tecnica è simile alla restituzione di un puntatore di interfaccia IAccessible , ad eccezione dell'ID oggetto usato e del fatto che LresultFromObject restituisce un oggetto personalizzato anziché IAccessible.
- Gli sviluppatori di server potrebbero dover pubblicare informazioni che consentono ai client di identificare in modo univoco HWND in modo che possano trovarle prima di chiamare AccessibleObjectFromWindow sul relativo handle di finestra.
- Non implementare l'interfaccia IAccessible nell'oggetto personalizzato restituito. In questo caso, OLEACC lo considererà come IAccessible standard e potrebbe impedire l'uso delle interfacce personalizzate.
- Per poter essere usato in tutti i processi, le interfacce sull'oggetto restituito potrebbero dover essere registrate con Component Object Model (COM).
Questa tecnica è supportata da diversi componenti di Microsoft Office. Per altre informazioni, vedere AccessibleObjectFromWindow.