Freigeben über


ATLCollections-Beispiel: Veranschaulicht ICollectionOnSTLImpl, CComEnumOnSTL und benutzerdefinierte Richtlinienkopierklassen

Das ATLCollections-Beispiel demonstriert die Verwendung von ICollectionOnSTLImpl und CComEnumOnSTL sowie die Implementierung von benutzerdefinierten Kopierrichtlinienklassen.

SicherheitshinweisSicherheitshinweis

Dieser Beispielcode soll ein Konzept veranschaulichen, und es wird nur den Code, der für dieses Konzept relevant sind. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "Wie besehen"keine Garantien.

So erhalten Sie Beispiele und Anweisungen für deren Installation:

Um Beispiele von Visual Studio zuzugreifen

  • im Menü Hilfe Menü klicken Beispiele.

    Standardmäßig sind die Beispiele in installiert. Laufwerk: \Programme\Microsoft visual Studio 10.0\Samples\.

  • Die neueste Version dieses Beispiels und eine Liste der anderen Beispiele finden Sie unter Visual Studio Samples auf der MSDN-Website.

Erstellen und Ausführen des Beispiels

So erstellen und in diesem Beispiel führen

  1. Öffnen Sie die Projektmappendatei ATLCollections.sln.

  2. Klicken Sie im Menü Erstellen auf Projektmappe.

  3. Debuggen Sie von Menü, klicken Sie auf Starten ohne Debuggen. Die Auflistungen mit dem angegebenen C++-Client wird getestet. Dieser Client gibt den Inhalt der Auflistungen in einem Befehlsfenster, indem mithilfe der Count und Item Eigenschaften durchlaufen und Auflisten der Elemente mithilfe der _NewEnum-Eigenschaft. Die Add, Removeund Clear Methoden der Schnittstelle IItems werden auch getestet.

Näheres zu diesem Beispiel

Dieses Projekt implementiert zwei COM-Auflistungen, die auf in STL-Containern gespeicherten Daten basieren:

  • Die einfachere der beiden Klassen, CWords, besteht nur-Lese- BSTR basierend auf Daten, die als s in einer std::stringstd::vector gespeichert. Diese Klasse verwendet die benutzerdefinierte Kopie Richtlinie Klasse VCUE::GenericCopy, definiert in VCUE_Copy.h und VCUE_CopyString.h, um die Daten von std::string s in den entsprechenden für die Sammlung oder Enumerator Schnittstelle Typ zu konvertieren.

  • Die zweite Klasse, CItems, besteht Lese-/ Schreibzugriff VARIANT basierend auf Daten in einer std::map gespeichert. CComVariant Daten in der Zuordnung wird CComBSTRs (tatsächlich CAdapt<CComBSTR> s) als Schlüssel verwendet. Diese Klasse verwendet die benutzerdefinierte Kopie Richtlinie Klasse VCUE::MapCopy, definiert in VCUE_Copy.h, um die gespeicherten Daten in VARIANT s zu konvertieren, die für com-Clients zurück übergeben werden können. CItems wird von Klasse VCUE::ICollectionOnSTLCopyImpl, definiert in VCUE_Collections.h abgeleitet. Die letztere Klasse ist von ICollectionOnSTLImpl abgeleitet und überschreibt get__NewEnum, sodass jeder Enumerator eigene Kopie der Auflistung Daten verfügt. CItems implementiert die Methoden AddRemove, Clear und in der Auflistungsschnittstelle.

Schlüsselwörter

In diesem Beispiel werden die folgenden Schlüsselwörter verwendet:

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

Hinweis

Einige Beispiele wie diesen, wurden nicht geändert, um Änderungen in der Visual C++-Assistenten, Bibliotheken und Compiler, demonstrieren aber dennoch wie Sie die gewünschte Aufgabe durchführen.

Siehe auch

Weitere Ressourcen

ATL-Beispiele