Partilhar via


Classe CComDynamicUnkArray

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 armazena um array de IUnknown ponteiros.

Sintaxe

class CComDynamicUnkArray

Membros

Construtores Públicos

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

Métodos Públicos

Nome Description
CComDynamicUnkArray::Add Chame este método para adicionar um IUnknown ponteiro ao array.
CComDynamicUnkArray::begin Devolve um ponteiro para o primeiro IUnknown ponteiro da coleção.
CComDynamicUnkArray::clear Esvazia o array.
CComDynamicUnkArray::fim Devolve um ponteiro para um depois do último IUnknown ponteiro na coleção.
CComDynamicUnkArray::GetAt Recupera o elemento no índice especificado.
CComDynamicUnkArray::GetCookie Chame este método para obter o cookie associado a um dado IUnknown apontador.
CComDynamicUnkArray::GetSize Devolve o número de elementos que o array pode armazenar.
CComDynamicUnkArray::GetUnknown Chame este método para obter o IUnknown ponteiro associado a um dado cookie.
CComDynamicUnkArray::Remover Chame este método para remover um IUnknown ponteiro do array.

Observações

CComDynamicUnkArray contém um array alocado dinamicamente de IUnknown ponteiros, cada um uma interface num ponto de ligação. CComDynamicUnkArray pode ser usado como parâmetro para a classe modelo IConnectionPointImpl .

Os CComDynamicUnkArraymétodos de início e fim podem ser usados para percorrer todos os pontos de ligação (por exemplo, quando um evento é disparado).

Consulte Adicionar Pontos de Ligação a um Objeto para detalhes sobre a automatização da criação de proxies de pontos de ligação.

Observação

Nota A classe CComDynamicUnkArray é usada pelo assistente de Adicionar Classe ao criar um controlo que tem Pontos de Ligação. Se quiser especificar manualmente o número de Pontos de Ligação, altere a referência de CComDynamicUnkArray para CComUnkArray<n>, onde n é o número de pontos de ligação necessários.

Requerimentos

Cabeçalho: atlcom.h

CComDynamicUnkArray::Add

Chame este método para adicionar um IUnknown ponteiro ao array.

DWORD Add(IUnknown* pUnk);

Parâmetros

pUnk
O IUnknown ponteiro para adicionar ao array.

Valor de retorno

Devolve o cookie associado ao ponteiro recém-adicionado. Use este cookie para recuperar o ponteiro do array com CComDynamicUnkArray::GetAt.

Observações

A posição onde este item é inserido não será necessariamente imediatamente após o último item inserido se Remove() já foi chamado nesta matriz. Use o cookie devolvido para aceder de forma fiável ao ponteiro inserido. O tamanho do array pode ser aumentado para acomodar mais itens. Usei-me GetSize() para obter o novo tamanho.

CComDynamicUnkArray::begin

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

IUnknown**
    begin();

Valor de retorno

Um apontador para um IUnknown ponteiro de interface.

Observações

A coleção contém ponteiros para interfaces armazenadas localmente como IUnknown. Transmites cada IUnknown interface para o tipo real de interface e depois chamas através dele. Não precisa de consultar a interface primeiro.

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

CComDynamicUnkArray::clear

Esvazia o array. Reinicia o tamanho para 0.

void clear();

CComDynamicUnkArray::CComDynamicUnkArray

O construtor.

CComDynamicUnkArray();

Observações

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

CComDynamicUnkArray::~CComDynamicUnkArray

O destruidor.

~CComDynamicUnkArray();

Observações

Liberta recursos alocados pelo construtor de classe.

CComDynamicUnkArray::fim

Devolve um ponteiro para um elemento depois do último no buffer alocado pelo array.

Nota: isto significa que o último ponteiro inserido não é garantido que esteja em end()-1 porque o array pode não estar cheio até à capacidade.

IUnknown**
    end();

Valor de retorno

Um apontador para um IUnknown ponteiro de interface.

CComDynamicUnkArray::GetAt

Recupera o elemento no índice especificado.

IUnknown* GetAt(int nIndex);

Parâmetros

nIndex
O índice do elemento a recuperar.

Valor de retorno

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

CComDynamicUnkArray::GetCookie

Chame este método para obter o cookie associado a um dado IUnknown apontador.

DWORD WINAPI GetCookie(IUnknown** ppFind);

Parâmetros

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

Valor de retorno

Devolve o cookie associado ao IUnknown ponteiro, ou zero se não for encontrado um ponteiro correspondente IUnknown .

Observações

Se houver mais do que uma instância do mesmo IUnknown ponteiro, esta função devolve o cookie do primeiro.

CComDynamicUnkArray::GetSize

Devolve a capacidade alocada do array.

Nota: isto não é o mesmo que o número de elementos não-NULL atualmente no array.

int GetSize() const;

Valor de retorno

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

CComDynamicUnkArray::GetUnknown

Chame este método para obter o IUnknown ponteiro associado a um dado cookie.

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

Parâmetros

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

Valor de retorno

Devolve o IUnknown apontador, ou NULL se não for encontrado cookie correspondente.

CComDynamicUnkArray::Remover

Chame este método para remover um IUnknown ponteiro do array.

Todos os outros elementos mantêm-se inalterados e mantêm o seu índice e cookie.

BOOL Remove(DWORD dwCookie);

Parâmetros

dwCookie
O cookie que faz referência ao IUnknown ponteiro a ser removido do array.

Valor de retorno

Retorna TRUE se o ponteiro for removido; caso contrário, FALSO.

Consulte também

Classe CComUnkArray
Visão geral da classe