Compartilhar via


Classe _com_ptr_t

Seção específica da Microsoft

Um objeto _com_ptr_t encapsula um ponteiro da interface COM e é chamado de ponteiro “inteligente”. Essa classe de modelo gerencia a alocação e desalocação de recursos por meio de chamadas de função para funções de membro IUnknown: QueryInterface, AddRef e Release.

Um ponteiro inteligente geralmente é referenciado pela definição typedef fornecida pela macro _COM_SMARTPTR_TYPEDEF. Essa macro usa um nome de interface e o IID e declara uma especialização de _com_ptr_t com o nome da interface mais um sufixo de Ptr. Por exemplo:

_COM_SMARTPTR_TYPEDEF(IMyInterface, __uuidof(IMyInterface));

declara a especialização _com_ptr_tIMyInterfacePtr.

Um conjunto de modelos de função, não membros dessa classe de modelo, oferece suporte a comparações com um ponteiro inteligente à direita do operador de comparação.

Construção

Nome Descrição
_com_ptr_t Constrói um objeto _com_ptr_t.

Operações de nível baixo

Nome Descrição
RefAdição Chama a função de membro AddRef de IUnknown no ponteiro de interface encapsulado.
Attach Encapsula um ponteiro de interface bruto desse tipo de ponteiro inteligente.
CreateInstance Cria uma nova instância de um objeto, considerando um CLSID ou ProgID.
Desanexar Extrai e retorna o ponteiro de interface encapsulado.
GetActiveObject Anexa a uma instância existente de um objeto, considerando um CLSID ou ProgID.
GetInterfacePtr Retorna o ponteiro de interface encapsulado.
QueryInterface Chama a função de membro QueryInterface de IUnknown no ponteiro de interface encapsulado.
Versão Chama a função de membro Release de IUnknown no ponteiro de interface encapsulado.

Operadores

Nome Descrição
operador = Atribui um novo valor a um objeto _com_ptr_t existente.
operators ==, !=, <, >, <=, >= Compare o objeto de ponteiro inteligente com outro ponteiro inteligente, ponteiro de interface bruto ou NULL.
Extratores Extrai o ponteiro de interface COM encapsulado.

Fim da seção específica da Microsoft

Requisitos

Cabeçalho:<comip.h>

Lib: comsuppw.lib ou comsuppwd.lib (veja /Zc:wchar_t (wchar_t é tipo nativo) para obter mais informações)

Confira também

Classes de suporte COM do compilador