Classe _com_ptr_t

 

Publicado: abril de 2016

Para obter a documentação mais recente do Visual Studio 2017 RC, consulte a documentação do Visual Studio 2017 RC.

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_tConstrói um objeto _com_ptr_t.

Operações de nível baixo

AddRefChama a função de membro AddRef de IUnknown no ponteiro de interface encapsulado.
AttachEncapsula um ponteiro de interface bruto desse tipo de ponteiro inteligente.
CreateInstanceCria uma nova instância de um objeto dado um CLSID ou ProgID.
DetachExtrai e retorna o ponteiro de interface encapsulado.
GetActiveObjectAnexa a uma instância existente de um objeto dado o CLSID ou ProgID.
GetInterfacePtrRetorna o ponteiro de interface encapsulado.
QueryInterfaceChama a função de membro QueryInterface de IUnknown no ponteiro de interface encapsulado.
ReleaseChama 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.
ExtratoresExtrai o ponteiro de interface COM encapsulado.

Cabeçalho: comip.h

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

Classes de suporte COM do compilador

Mostrar: