Partilhar via


Classe CComGITPtr

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Esta classe fornece métodos para lidar com ponteiros de interface e a tabela global de interface (GIT).

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 Description
CComGITPtr::CComGITPtr O construtor.
CComGITPtr::~CComGITPtr O destruidor.

Métodos Públicos

Nome Description
CComGITPtr::Anexar Chame este método para registar o ponteiro de interface na tabela global de interface (GIT).
CComGITPtr::CopyTo Chame este método para copiar a interface da tabela global de interface (GIT) para o ponteiro passado.
CComGITPtr::D etach Chame este método para dissociar a interface do CComGITPtr objeto.
CComGITPtr::GetCookie Chame este método para devolver o cookie do CComGITPtr objeto.
CComGITPtr::Revogar Chame este método para remover a interface da tabela global de interface (GIT).

Operadores Públicos

Nome Description
CComGITPtr::operator DWORD Devolve a bolacha do CComGITPtr objeto.
CComGITPtr::operator = Operador de atribuição.

Membros de Dados Públicos

Nome Description
CComGITPtr::m_dwCookie A bolacha.

Observações

Os objetos que agregam o marshaler de threads livres e precisam de usar ponteiros de interface obtidos de outros objetos devem tomar medidas adicionais para garantir que as interfaces estão corretamente organizadas. Normalmente, isto envolve armazenar os ponteiros de interface no GIT e obter o ponteiro do GIT cada vez que é utilizado. A aula CComGITPtr é fornecida para te ajudar a usar ponteiros de interface armazenados no GIT.

Observação

A funcionalidade global de tabela de interface está disponível apenas no Windows 95 com a versão 1.1 do DCOM, no Windows 98, Windows NT 4.0 com Service Pack 3 e posteriores, e no Windows 2000.

Requerimentos

Cabeçalho: atlbase.h

CComGITPtr::Anexar

Chame este método para registar o ponteiro de interface na tabela global de interface (GIT).

HRESULT Attach(T* p) throw();

HRESULT Attach(DWORD dwCookie) throw();

Parâmetros

p
O ponteiro de interface a ser adicionado ao GIT.

dwCookie
O cookie usado para identificar o ponteiro de interface.

Valor de retorno

Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.

Observações

Em builds de depuração, ocorrerá um erro de asserção se o GIT não for válido, 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
[dentro] Um ponteiro de interface a ser armazenado na tabela global de interface (GIT).

Git
[dentro] Uma referência a um objeto existente CComGITPtr .

dwCookie
[dentro] Um cookie usado para identificar o ponteiro da interface.

RV
[dentro] O objeto de origem CComGITPtr para mover dados.

Observações

Cria um novo CComGITPtr objeto, opcionalmente usando um objeto existente CComGITPtr .

O construtor que utiliza RV é um construtor de movimento. Os dados são movidos da fonte, do RV, e depois o RV é limpo.

CComGITPtr::~CComGITPtr

O destruidor.

~CComGITPtr() throw();

Observações

Remove a interface da tabela global de interface (GIT), usando CComGITPtr::Revoke.

CComGITPtr::CopyTo

Chame este método para copiar a interface da tabela global de interface (GIT) para o ponteiro passado.

HRESULT CopyTo(T** pp) const throw();

Parâmetros

pp
O ponteiro que serve para receber a interface.

Valor de retorno

Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.

Observações

A interface do GIT é copiada para o ponteiro passado. O ponteiro deve ser libertado pelo chamador quando deixa de ser necessário.

CComGITPtr::D etach

Chame este método para dissociar a interface do CComGITPtr objeto.

DWORD Detach() throw();

Valor de retorno

Devolve a bolacha do CComGITPtr objeto.

Observações

Cabe ao chamador remover a interface do GIT, usando o CComGITPtr::Revoke.

CComGITPtr::GetCookie

Chame este método para devolver o cookie do CComGITPtr objeto.

DWORD GetCookie() const;

Valor de retorno

Devolve a bolacha.

Observações

O cookie é uma variável usada para identificar uma interface e a sua localização.

CComGITPtr::m_dwCookie

A bolacha.

DWORD m_dwCookie;

Observações

O cookie é uma variável membro usada para identificar uma interface e a 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
[dentro] Um apontador para uma interface.

Git
[em] Uma referência a um CComGITPtr objeto.

dwCookie
[dentro] Um cookie usado para identificar o ponteiro da interface.

RV
[dentro] O CComGITPtr para mover dados de.

Valor de retorno

Devolve o objeto atualizado CComGITPtr .

Observações

Atribui um novo valor a um CComGITPtr objeto, seja a partir de um objeto existente ou a partir de uma referência a uma tabela de interface global.

CComGITPtr::operator DWORD

Devolve o cookie associado ao CComGITPtr objeto.

operator DWORD() const;

Observações

O cookie é uma variável usada para identificar uma interface e a sua localização.

CComGITPtr::Revogar

Chame este método para remover a interface atual da tabela global de interface (GIT).

HRESULT Revoke() throw();

Valor de retorno

Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.

Observações

Remove a interface do GIT.

Consulte também

Marshaler roscado livre
Aceder a Interfaces entre Apartamentos
Quando usar a tabela de interface global
Visão geral da classe