为同一对象创建新接口

在此方案中,服务器通过获取指向同一对象的新接口指针来响应每个 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.