Compartilhar via


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