동일한 개체에 대한 새 인터페이스 만들기
이 시나리오에서 서버는 동일한 개체에 대한 새 인터페이스 포인터를 가져와 각 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.