Freigeben über


CONNECT-Beispiel: Veranschaulicht, Implementierung und Verwendung von Verbindungspunkten (C++-Beispiele)

Dieses Beispiel veranschaulicht die Verwendung und Implementierung von Verbindungspunkten (die IConnectionPointContainerIConnectionPoint Schnittstellen und) in einer Multithreadumgebung.

Hinweis

In diesem Beispiel ist eine Änderung des ATL-Beispiel verbinden demonstrieren COM-Unterstützung des Compilers für Verbindungspunktempfänger.Der Drive-Client ist eine systemeigene Implementierung, während der MDrive-Client COM Richtigkeit etwas, belabors bei der Verwendung einer ClassFactory zum Erstellen von Sink-Objekten.Weder Drive noch MDrive hängen von ATL oder MFC für jede COM-Unterstützung.

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 Projektmappe connect.sln.

  2. Erstellen Sie auf Menü, klicken Sie auf Projektmappe.

  3. Wählen Sie die Client Drive oder MDrive, ausgeführt werden soll und Sie das Startprojekt (Rechtsklick das Projekt Ordner und klicken Sie auf als Startprojekt festlegen). Weitere Informationen zu den Clients finden Sie im Abschnitt Beispiel Funktionsweise des.

  4. Debuggen Sie auf Menü, klicken Sie auf Starten ohne Debuggen.

Funktionsweise des Beispiels

Der Server ist in Connect.dll implementiert. Dieser DLL ermöglicht das Erstellen eines CoRandom COM-Objekts, von der CRandom C++-Klasse implementiert. Das COM-Objekt unterstützt, IRandom (eine duale Schnittstelle) und IConnectionPointContainer, und es akzeptiert Verbindungen für die Schnittstelle IRandomEvent.

Die IRandom-Schnittstelle unterstützt die folgenden Methoden.

  • Start   Startet einen Thread innerhalb des Objekts.

  • Stop   Beendet einen Thread innerhalb des Objekts.

  • StopAll   Beendet alle aktiven Threads.

Bei der Ausführung beibehalten sekundären Threads innerhalb des Objekts Ereignisse durch den Verbindungspunkt ausgelöst.

Es stehen zwei Clients zur Verfügung: Laufwerk und MDrive. Sie können in den Unterverzeichnissen Drive und MDrive gefunden werden.

  • Drive.exe ist eine einfache Konsolenanwendung, die ein einzelnes Objekt zur Implementierung der Schnittstelle IRandomEvent stellt. Es erstellt ein CoRandom Objekt Aufrufe Advise und Unadvise für den Verbindungspunkt auf und weist das CoRandom-Objekt in das Laufwerk-Objekt Ereignisse auslösen.

  • Mdrive.exe ist eine MFC-Dialogfeldern basierende Anwendung, erstellen Sie mehrere advise-Empfänger und erstellt, um die Anzahl der Threads steuern, den Server. Wenn Sie Mdrive.exe ausführen, die Startschaltfläche mindestens einmal klicken Sie auf die Schaltfläche Advise mehrmals. Wird jedes Klicken der Schaltfläche Advise einen Verbindungspunkt hinzugefügt, der wodurch der Anzeigebereich verbreitert wird. Wenn Sie nicht auf die Schaltfläche "Advise" klicken, werden Sie nicht in der Anzeige keine Aktivitäten angezeigt.

Siehe auch

Referenz

COM-Unterstützung des Compilers

Weitere Ressourcen

Compiler COM Support-Beispiele