Classe CComGITPtr
Essa classe fornece métodos para lidar com ponteiros de interface e GIT (tabela de interface global).
Sintaxe
template <class T>
class CComGITPtr
Parâmetros
T
O tipo do ponteiro de interface a ser armazenado no GIT.
Membros
Construtores públicos
Nome | Descrição |
---|---|
CComGITPtr::CComGITPtr | O construtor . |
CComGITPtr::~CComGITPtr | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CComGITPtr::Attach | Chame esse método para registrar o ponteiro da interface na tabela de interface global (GIT). |
CComGITPtr::CopyTo | Chame esse método para copiar a interface da tabela de interface global (GIT) para o ponteiro passado. |
CComGITPtr::Detach | Chame esse método para desassociar o arquivo do objeto CComGITPtr . |
CComGITPtr::GetCookie | Chame esse método para retornar o cookie do objeto CComGITPtr . |
CComGITPtr::Revoke | Chame esse método para remover a interface da tabela de interface global (GIT). |
Operadores públicos
Nome | Descrição |
---|---|
CComGITPtr::operator DWORD | Retorna o cookie do objeto CComGITPtr . |
CComGITPtr::operator = | Operador de atribuição. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CComGITPtr::m_dwCookie | O cookie. |
Comentários
Os objetos que agregam o marshaler livre de thread e precisam usar ponteiros de interface obtidos de outros objetos, devem executar etapas extras para garantir que as interfaces realizem marshaling corretamente. Normalmente, isso envolve armazenar os ponteiros da interface na GIT e obter o ponteiro da GIT sempre que ele for usado. A classe CComGITPtr
é fornecida para ajudar você a usar ponteiros de interface armazenados na GIT.
Observação
O recurso de tabela de interface global só está disponível no Windows 95 com DCOM versão 1.1 e posterior, Windows 98, Windows NT 4.0 com Service Pack 3 e posterior e Windows 2000.
Requisitos
Cabeçalho: atlbase.h
CComGITPtr::Attach
Chame esse método para registrar o ponteiro da interface na tabela de interface global (GIT).
HRESULT Attach(T* p) throw();
HRESULT Attach(DWORD dwCookie) throw();
Parâmetros
p
O ponteiro de interface a ser adicionado à GIT.
dwCookie
O cookie usado para identificar o ponteiro de interface.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Em builds de depuração, ocorrerá um erro de asserção se a GIT não for válida ou se o cookie for igual a NULL.
CComGITPtr::CComGITPtr
O construtor .
CComGITPtr() throw();
CComGITPtr(T* p);
CComGITPtr(const CComGITPtr& git);
explicit CComGITPtr(DWORD dwCookie) throw();
CComGITPtr(CComGITPtr&& rv);
Parâmetros
p
[in] Um ponteiro de interface a ser armazenado na tabela de interface global (GIT).
git
[in] Uma referência a um objeto CComGITPtr
existente.
dwCookie
[in] Um cookie usado para identificar o ponteiro de interface.
rv
[in] O objeto CComGITPtr
de origem dos dados a serem movidos.
Comentários
Cria um novo objeto CComGITPtr
, opcionalmente usando um objeto CComGITPtr
existente.
O construtor que utiliza rv é de movimentação. Os dados são movidos da origem, rv, e, em seguida, o rv é limpo.
CComGITPtr::~CComGITPtr
O destruidor.
~CComGITPtr() throw();
Comentários
Remove a interface da tabela de interface global (GIT), usando CComGITPtr::Revoke.
CComGITPtr::CopyTo
Chame esse método para copiar a interface da tabela de interface global (GIT) para o ponteiro passado.
HRESULT CopyTo(T** pp) const throw();
Parâmetros
pp
O ponteiro que deve receber a interface.
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
A interface da GIT é copiada para o ponteiro passado. O ponteiro deverá ser liberado pelo chamador quando não for mais necessário.
CComGITPtr::Detach
Chame esse método para desassociar o arquivo do objeto CComGITPtr
.
DWORD Detach() throw();
Valor de retorno
Retorna o cookie do objeto CComGITPtr
.
Comentários
Cabe ao chamador remover a interface da GIT, usando CComGITPtr::Revoke.
CComGITPtr::GetCookie
Chame esse método para retornar o cookie do objeto CComGITPtr
.
DWORD GetCookie() const;
Valor de retorno
Retorna o cookie.
Comentários
O cookie é uma variável usada para identificar uma interface e sua localização.
CComGITPtr::m_dwCookie
O cookie.
DWORD m_dwCookie;
Comentários
O cookie é uma variável de membro usada para identificar uma interface e sua localização.
CComGITPtr::operator =
O operador de atribuição.
CComGITPtr& operator= (T* p);
CComGITPtr& operator= (const CComGITPtr& git);
CComGITPtr& operator= (DWORD dwCookie);
CComGITPtr& operator= (CComGITPtr&& rv);
Parâmetros
p
[in] Um ponteiro para uma interface .
git
[in] Uma referência a um objeto CComGITPtr
.
dwCookie
[in] Um cookie usado para identificar o ponteiro de interface.
rv
[in] O CComGITPtr
do qual os dados serão movidos.
Valor de retorno
Retorna o objeto atualizado CComGITPtr
.
Comentários
Atribui um novo valor a um objeto CComGITPtr
, seja de um objeto existente ou de uma referência a uma tabela de interface global.
CComGITPtr::operator DWORD
Retorna o cookie associado ao objeto CComGITPtr
.
operator DWORD() const;
Comentários
O cookie é uma variável usada para identificar uma interface e sua localização.
CComGITPtr::Revoke
Chame esse método para remover a interface atual da tabela de interface global (GIT).
HRESULT Revoke() throw();
Valor de retorno
Retornará S_OK se houver êxito ou um erro HRESULT, em caso de falha.
Comentários
Remove a interface da GIT.
Confira também
Marshaler rosqueado livre
Acessando interfaces entre apartamentos
Quando usar a Tabela de Interface Global
Visão geral da aula