Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nesse cenário, o servidor responde a cada solicitação de OBJID_CLIENT obtendo um novo ponteiro de interface para o mesmo objeto.
No código de exemplo a seguir, m_pUIObj é um ponteiro para um objeto que suporta mais de uma interface COM (Component Object Model). Mesmo que um objeto existente seja reutilizado, um novo ponteiro de interface é criado cada vez que o objeto é recuperado, portanto, a contagem de referência deve ser diminuída.
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.