雙重介面:IAccessible 和 IDispatch
伺服器開發人員必須為其可存取的物件提供標準元件物件模型 (COM) 介面 IDispatch 。 IDispatch 介面可讓以 Microsoft Visual Basic 和各種指令碼語言撰寫的用戶端應用程式,使用 IAccessible所公開的方法和屬性。 由於可存取的物件可透過 IDispatch::Invoke 間接存取物件,或直接使用 IAccessible存取物件,因此它稱為具有雙重介面。
當 C/C++ 用戶端傳回 IDispatch 介面指標時,用戶端可以呼叫 QueryInterface 來嘗試將 IDispatch 介面指標轉換成 IAccessible 介面指標。 若要間接呼叫 IAccessible 方法,C/C++ 用戶端會呼叫 IDispatch::Invoke。 若要改善效能,請呼叫 IAccessible 方法以直接使用 物件。
如需 IDispatch 用來識別 IAccessible 方法和屬性的分派識別碼清單 (DISPID) 清單,請參閱 附錄 C:IAccessible DISPID。
注意
在 2.0 版和更新版本的 Microsoft Active Accessibility 下,伺服器不需要完全實作 IDispatch 的方法,但只要在初始化任何 out 參數之後傳回E_NOTIMPL,如下列範例所示。
HRESULT STDMETHODCALLTYPE AccServer::GetTypeInfoCount(UINT* pctinfo)
{
*pctinfo = 0;
return E_NOTIMPL;
};