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.