Bagikan melalui


Buat Antarmuka Baru ke Objek yang Sama

Dalam skenario ini, server merespons setiap permintaan OBJID_CLIENT dengan mendapatkan penunjuk antarmuka baru ke objek yang sama.

Dalam contoh kode berikut, m_pUIObj adalah penunjuk ke objek yang mendukung lebih dari satu antarmuka Model Objek Komponen (COM). Meskipun objek yang ada digunakan kembali, penunjuk antarmuka baru dibuat setiap kali objek diambil, sehingga jumlah referensi harus dikurangi.

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.