Compartilhar via


Classe CComDynamicUnkArray

Essa classe armazena uma matriz de ponteiros IUnknown.

Sintaxe

class CComDynamicUnkArray

Membros

Construtores públicos

Nome Descrição
CComDynamicUnkArray::CComDynamicUnkArray Construtor. Inicializa os valores de coleção para NULL e o tamanho da coleção como zero.
CComDynamicUnkArray::~CComDynamicUnkArray O destruidor.

Métodos públicos

Nome Descrição
CComDynamicUnkArray::Add Chame esse método para adicionar um ponteiro IUnknown à matriz.
CComDynamicUnkArray::begin Retorna um ponteiro para o primeiro ponteiro IUnknown na coleção.
CComDynamicUnkArray::clear Esvazia a matriz.
CComDynamicUnkArray::end Retorna um ponteiro para um após o último ponteiro IUnknown na coleção.
CComDynamicUnkArray::GetAt Recupera o elemento no índice especificado.
CComDynamicUnkArray::GetCookie Chame esse método para obter o cookie associado a um determinado ponteiro IUnknown.
CComDynamicUnkArray::GetSize Retorna o número de elementos que a matriz pode armazenar.
CComDynamicUnkArray::GetUnknown Chame esse método para obter o ponteiro IUnknown associado a um determinado cookie.
CComDynamicUnkArray::Remove Chame esse método para remover um ponteiro IUnknown da matriz.

Comentários

CComDynamicUnkArray contém uma matriz de ponteiros IUnknown alocada dinamicamente, cada uma é uma interface em um ponto de conexão. CComDynamicUnkArray pode ser usado como um parâmetro para a classe de modelo IConnectionPointImpl.

Os métodos CComDynamicUnkArray begin e end podem ser usados para percorrer todos os pontos de conexão (por exemplo, quando um evento é acionado).

Confira Adicionar pontos de conexão a um objeto para obter detalhes sobre como automatizar a criação de proxies de ponto de conexão.

Observação

Observação A classe CComDynamicUnkArray é usada pelo assistente Adicionar Classe ao criar um controle que tenha Pontos de Conexão. Se desejar especificar o número de pontos de conexão manualmente, altere a referência de CComDynamicUnkArray para CComUnkArray< n >, onde n é o número de pontos de conexão necessários.

Requisitos

Cabeçalho: atlcom.h

CComDynamicUnkArray::Add

Chame esse método para adicionar um ponteiro IUnknown à matriz.

DWORD Add(IUnknown* pUnk);

Parâmetros

pUnk
O ponteiro IUnknown a ser adicionado à matriz.

Valor de retorno

Retorna o cookie associado ao ponteiro recém-adicionado. Use esse cookie para recuperar o ponteiro da matriz com CComDynamicUnkArray::GetAt.

Comentários

A posição em que esse item é inserido não será necessariamente diretamente após o último item inserido se Remove() tiver sido chamado anteriormente nessa matriz. Use o cookie retornado para acessar de forma confiável o ponteiro inserido. O tamanho da matriz pode ser aumentado para acomodar mais itens. Use GetSize() para obter o novo tamanho.

CComDynamicUnkArray::begin

Retorna um ponteiro para o início da coleção de ponteiros de interface IUnknown.

IUnknown**
    begin();

Valor de retorno

Um ponteiro para um ponteiro de interface IUnknown.

Comentários

A coleção contém ponteiros para interfaces armazenadas localmente como IUnknown. Você converte cada interface IUnknown para o tipo de interface real e, em seguida, chama por meio dela. Você não precisa consultar a interface primeiro.

Antes de usar a interface IUnknown, você deve verificar se ela não é NULL.

CComDynamicUnkArray::clear

Esvazia a matriz. Redefine o tamanho para 0.

void clear();

CComDynamicUnkArray::CComDynamicUnkArray

O construtor .

CComDynamicUnkArray();

Comentários

Define o tamanho da coleção como zero e inicializa os valores como NULL. O destruidor libera a coleção, se necessário.

CComDynamicUnkArray::~CComDynamicUnkArray

O destruidor.

~CComDynamicUnkArray();

Comentários

Libera todos os recursos alocados pelo construtor de classe.

CComDynamicUnkArray::end

Retorna um ponteiro para um após o último elemento no buffer alocado da matriz.

Observação: isso significa que não há garantia de que o ponteiro inserido por último esteja at end()-1 , pois a matriz pode não estar cheia até a capacidade.

IUnknown**
    end();

Valor de retorno

Um ponteiro para um ponteiro de interface IUnknown.

CComDynamicUnkArray::GetAt

Recupera o elemento no índice especificado.

IUnknown* GetAt(int nIndex);

Parâmetros

nIndex
O índice do elemento a se recuperar.

Valor de retorno

Um ponteiro para uma interface IUnknown se um elemento foi adicionado anteriormente e existe nesse índice; caso contrário NULL, .

CComDynamicUnkArray::GetCookie

Chame esse método para obter o cookie associado a um determinado ponteiro IUnknown.

DWORD WINAPI GetCookie(IUnknown** ppFind);

Parâmetros

ppFind
O ponteiro IUnknown para o qual o cookie associado é necessário.

Valor de retorno

Retorna o cookie associado ao ponteiro IUnknown, ou zero se nenhum ponteiro IUnknown correspondente for encontrado.

Comentários

Se houver mais de uma instância do mesmo ponteiro IUnknown, essa função retornará o cookie para a primeira.

CComDynamicUnkArray::GetSize

Retorna a capacidade alocada da matriz.

Nota: isso não é o mesmo que o número de elementos não NULL atualmente na matriz.

int GetSize() const;

Valor de retorno

O número de elementos que a matriz pode armazenar. GetSize() == end() - begin().

CComDynamicUnkArray::GetUnknown

Chame esse método para obter o ponteiro IUnknown associado a um determinado cookie.

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

Parâmetros

dwCookie
O cookie para o qual o ponteiro IUnknown associado é necessário.

Valor de retorno

Retornará o ponteiro IUnknown ou NULL se nenhum cookie correspondente for encontrado.

CComDynamicUnkArray::Remove

Chame esse método para remover um ponteiro IUnknown da matriz.

Todos os outros elementos permanecem inalterados e mantêm seu índice e cookie.

BOOL Remove(DWORD dwCookie);

Parâmetros

dwCookie
O cookie que faz referência ao ponteiro IUnknown a ser removido da matriz.

Valor de retorno

Retornará TRUE se o ponteiro for removido. Caso contrário, FALSE.

Confira também

Classe CComUnkArray
Visão geral da aula