Classe ICollectionOnSTLImpl

Essa classe fornece métodos usados por uma classe de coleção.

Sintaxe

template <class T, class CollType, class ItemType, class CopyItem, class EnumType>
class ICollectionOnSTLImpl : public T

Parâmetros

T
Uma interface de coleção COM.

CollType
Uma classe de contêiner da Biblioteca Padrão do C++.

ItemType
O tipo de item exposto pela interface do contêiner.

CopyItem
Uma classe de política de cópia.

EnumType
Uma classe de enumerador compatível com CComEnumOnSTL.

Membros

Métodos públicos

Nome Descrição
ICollectionOnSTLImpl::get__NewEnum Retorna um enumerador para a coleção.
ICollectionOnSTLImpl::getcount Retorna o número de elementos na coleção.
ICollectionOnSTLImpl::get_Item Retorna o item da coleção solicitado.

Membros de Dados Públicos

Nome Descrição
ICollectionOnSTLImpl::m_coll A coleção.

Comentários

Essa classe fornece a implementação de três métodos de uma interface de coleção: getcount, get_Item e get__NewEnum.

Para usar esta classe:

  • Defina (ou empreste) uma interface de coleção que deseja implementar.

  • Derive sua classe de uma especialização de ICollectionOnSTLImpl com base nessa interface de coleção.

  • Use sua classe derivada para implementar todos os métodos da interface de coleção não tratados por ICollectionOnSTLImpl.

Observação

Se a interface de coleção for uma interface dupla, derive sua classe de IDispatchImpl, passando a especialização ICollectionOnSTLImpl como o primeiro parâmetro de modelo se quiser que a ATL forneça a implementação dos métodos IDispatch.

  • Adicione itens ao membro m_coll para preencher a coleção.

Para obter mais informações e exemplos, confira Enumeradores e Coleções da ATL.

Hierarquia de herança

T

ICollectionOnSTLImpl

Requisitos

Cabeçalho: atlcom.h

ICollectionOnSTLImpl::getcount

Esse método retorna o número de itens na coleção.

STDMETHOD(getcount)(long* pcount);

Parâmetros

pcount
[out] O número de elementos na coleção.

Valor de retorno

Um valor HRESULT padrão.

ICollectionOnSTLImpl::get_Item

Esse método retorna o item especificado da coleção.

STDMETHOD(get_Item)(long Index, ItemType* pvar);

Parâmetros

Index
[in] O índice baseado em 1 de um item na coleção.

pvar
[out] O item correspondente ao Índice.

Valor de retorno

Um valor HRESULT padrão.

Comentários

O item é obtido copiando os dados na posição especificada em m_coll usando o método de cópia da classe de política de cópia passado como um argumento de modelo na especialização ICollectionOnSTLImpl.

ICollectionOnSTLImpl::get__NewEnum

Retorna um enumerador para a coleção.

STDMETHOD(get__NewEnum)(IUnknown** ppUnk);

Parâmetros

ppUnk
[out] O ponteiro IUnknown de um objeto enumerador recém-criado.

Valor de retorno

Um valor HRESULT padrão.

Comentários

O enumerador recém-criado mantém um iterador na coleção original, m_coll, (portanto, nenhuma cópia é feita) e mantém uma referência COM no objeto de coleção para garantir que a coleção permaneça viva enquanto houver enumeradores pendentes.

ICollectionOnSTLImpl::m_coll

Esse membro contém os itens representados pela coleção.

CollType m_coll;

Confira também

Exemplo de ATLCollections
Visão geral da aula