同じオブジェクトへの新しいインターフェイスを作成する
このシナリオでは、サーバーは、同じオブジェクトへの新しいインターフェイス ポインターを取得することによって、各 OBJID_CLIENT 要求に応答します。
次のコード例では、 m_pUIObj は、複数のコンポーネント オブジェクト モデル (COM) インターフェイスをサポートするオブジェクトへのポインターです。 既存のオブジェクトが再利用されても、オブジェクトが取得されるたびに新しいインターフェイス ポインターが作成されるため、参照カウントをデクリメントする必要があります。
case WM_GETOBJECT:
if ((DWORD)lParam == OBJID_CLIENT)
{
// Get a new interface to the same object.
IAccessible *pAcc = NULL;
// The following increments the reference count.
m_pUIObj->QueryInterface(IID_IAccessible, (LPVOID*)&pAcc);
LRESULT lAcc = LresultFromObject(IID_IAccessible, wParam,
(LPUNKNOWN) &pAcc);
// Release our reference to the object.
pAcc->Release();
return lAcc;
}
break; // Fall through to DefWindowProc.