Erstellen neuer Schnittstellen für dasselbe Objekt
In diesem Szenario antwortet der Server auf jede OBJID_CLIENT Anforderung, indem er einen neuen Schnittstellenzeiger auf dasselbe Objekt erhält.
Im folgenden Beispielcode ist m_pUIObj ein Zeiger auf ein Objekt, das mehr als eine COM-Schnittstelle (Component Object Model) unterstützt. Obwohl ein vorhandenes Objekt wiederverwendet wird, wird bei jedem Abrufen des Objekts ein neuer Schnittstellenzeiger erstellt, sodass die Verweisanzahl verringert werden muss.
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.