Compartilhar via


Exemplo do ATLCollections: Demonstra ICollectionOnSTLImpl CComEnumOnSTL e personalizar copiar diretiva classes

O exemplo ATLCollections demonstra o uso de ICollectionOnSTLImpl e CComEnumOnSTLe a implementação de classes de política de cópia personalizada.

Observação de segurança:

Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina.

Para obter exemplos e instruções para instalá-los:

  • Sobre o Visual Studio Ajuda menu, clicar Exemplos.

    Para obter mais informações, consulte Localizando arquivos de exemplo.

  • A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.

  • Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.

Criando e executando o exemplo

Para compilação e executar esse exemplo

  1. Abra o arquivo da solução ATLCollections.sln.

  2. No menu compilação, clicar Criar solução.

  3. From a Depurar menu, clicar Iniciar sem depuração.Isso testará as coleções usando o cliente C++ fornecido.Este cliente envia o conteúdo de coleções para uma janela Comando por loop usando o Count e Item propriedades e, enumerando os itens usando o _NewEnum propriedade. The Add, Remove, e Clear métodos para o IItems interface também são testados.

Sobre o exemplo

Este projeto implementa duas coleções COM base nos dados armazenados em contêineres STL:

  • Mais simples das duas classes, CWords, é um somente leitura BSTR coleção com base em dados armazenados sistema autônomo STD::Stringsistema autônomo in a STD::Vector.Essa classe usa a cópia personalizada diretiva classe VCUE::GenericCopy, definido no VCUE_Copy.h e VCUE_CopyString.h, para converter os dados do STD::String s para o tipo apropriado para a interface de coleção ou enumerador.

  • A segunda classe CItems, é uma leitura-gravar VARIANTE coleção com base em dados armazenados em um STD::Map.The CComVariant dados sistema autônomo usos de MAP CComBSTRsistema autônomo (na verdade, CAdapt <ccombstr> sistema autônomo) sistema autônomo sistema autônomo chaves.Essa classe usa a cópia personalizada diretiva classe VCUE::MapCopy, definido no VCUE_Copy.h para converter os dados armazenados VARIANTE s que pode ser passado para clientes COM.CItems deriva da classe VCUE::ICollectionOnSTLCopyImpl, definido no VCUE_Collections.h. A segunda classe deriva de ICollectionOnSTLImpl e as substituições get__NewEnum para que cada enumerador tenha sua própria cópia dos dados de coleção. CItems implementa o Add, Remove, e Clear métodos na interface de coleção.

Palavras-chave

Este exemplo utiliza as seguintes palavras-chave:

_Copy, CComEnumOnSTL, ICollectionOnSTLImpl, CAdapt, IEnumVARIANT, std::map, std::string, std::vector

Observação:

Alguns dos exemplos, sistema autônomo esta, não foram modificados para refletir sistema autônomo alterações nos assistentes, bibliotecas e compilador Visual C++, mas ainda Demonstre sistema autônomo concluir a tarefa desejada.

Consulte também

Outros recursos

Exemplos do ATL