Compartilhar via


Classe _com_ptr_t

Específico 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_t IMyInterfacePtr.

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

_com_ptr_t

Constrói um objeto _com_ptr_t.

Operações de nível baixo

AddRef

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 dado um CLSID ou ProgID.

Detach

Extrai e retorna o ponteiro de interface encapsulado.

GetActiveObject

Anexa a uma instância existente de um objeto dado o 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.

Release

Chama a função de membro Release de IUnknown no ponteiro de interface encapsulado.

Operadores

operador =

Atribui um novo valor a um objeto _com_ptr_t existente.

operadores ==, !=, <, >, <=, >=

Comparam o objeto de ponteiro inteligente com outro ponteiro inteligente, um ponteiro de interface bruto ou um NULL.

Extratores

Extrai o ponteiro de interface COM encapsulado.

Requisitos

Cabeçalho: comip.h

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

Consulte também

Referência

Classes de suporte COM do compilador