다음을 통해 공유


동일한 개체에 대한 새 인터페이스 만들기

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