Freigeben über


ACDUAL-Beispiel: Fügt einer Automatisierungsanwendung duale Schnittstellen hinzu

ACDual veranschaulicht, wie einer MFC-basierte Automatisierung (früher OLE-Automatisierung) Anwendung Unterstützung für duale Schnittstellen hinzugefügt wird. Die Lösung besteht aus den folgenden Projekten:

  • ACDualDriv, enthält eine Version des Automatisierungsclient-Projekts AUTODRIV, in dem Sie können auswählen, ob die Serveranwendung mit die Dispatchschnittstelle oder der Vtable-Bindung steuern.

  • ACDual enthält eine aktuelle Version des der Automation Server b23wfxw0(v=vs.100).md Projekts AUTOCLIK mit Unterstützung für duale Schnittstellen.

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 des Beispiels

So erstellen Sie das ACDual-Beispiel

  1. Öffnen Sie die Projektmappe acdual.sln, die sich im Verzeichnis Acdual befindet.

  2. erstellen Sie Menü, klicken Sie auf erstellen.

  3. Führen Sie ACDual einmal als eigenständige Anwendung, damit Sie sich mit dem System registrieren kann.

Ausführen des Beispiels

Nachdem die Anwendung ACDual zu registrieren, können Sie die Anwendung ACDualDriv ausführen. Erstellen der Lösung von der IDE wird ACDualDriv Registrierung automatisch ausführen, bevor ACDualDriv ausgeführt wird. ACDualDriv startet die Anwendung ACDual und erstellt ein Document-Objekt, das Sie anschließend über die Benutzeroberfläche von ACDualDriv mithilfe der Automatisierung bearbeiten können. Außerdem enthält er eine weitere Kontrollkästchen, das Sie, ob VTBL-Bindung zum Kommunizieren mit dem ACDual Document-Objekt auswählen können.

Der ACDual-Server verwendet AUTOCLIK als Ausgangspunkt. Neue globally unique Identifiers (GUID) damit Verwechslungen mit der ursprünglichen AUTOCLIK-Beispiel generiert wurden, und einige Ressourcenzeichenfolgen von wurden geändert, um zu verdeutlichen, ob der ACDual-Server ausgeführt wird. Alle anderen Änderungen an die Datenquellen sind mit Kommentarblöcke wie folgt gekennzeichnet:

      // DUAL_SUPPORT_START
      ... modified code goes here
      // DUAL_SUPPORT_END

Weitere Informationen zu dualen Schnittstellen Objekt Beschreibung Language (ODL) Skripts und Automatisierungsfehler-Schnittstellen finden Sie unter Technischer Hinweis 65.

Duale Schnittstellen

Eine duale Schnittstelle können Sie eine IDispatch oder eine VTBL-Schnittstelle implementieren. Für alle verfügbar gemachten Automatisierungsobjekte wird eine duale Schnittstelle empfohlen. Punkte zu berücksichtigen, beim Implementieren einer dualen Schnittstelle werden im Technischer Hinweis 65 beschrieben und umfassen:

  • Implementieren der Unterstützung für duale Schnittstellen für CCmdTarget-basierende Klassen

  • Duale Schnittstellen Zeiger übergeben

  • Aktivieren des typsicheren Bindung einschließlich:

    • Registrieren der Anwendung Bibliothek Typ

    • Ändern Projekt Buildeinstellungen um Typ Bibliothek Änderungen zu berücksichtigen

    • Angabe der korrekten Objekt-Klassennamens in einen Typ Bibliothek

  • Behandeln von Ausnahmen und Fehler-Automatisierungsschnittstelle

Weitere Informationen finden Sie in der ActiveX-Themen Übersicht über Automatisierungduale Schnittstellen, Automatisierung Typ Beschreibung Schnittstellenund die ODL Posten Attributs dual https://msdn.microsoft.com/de-de/library/ms221048(v=vs.100) verweisen.

Hinweis

Einige Beispiele, z. B. eine, 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.

Schlüsselwörter

ACDual-Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:

AfxMessageBox; AfxOleInit; AfxOleLockApp; AfxOleUnlockApp; CCmdTarget::EnableAutomation; CCmdTarget::FromIDispatch; CCmdTarget::GetIDispatch; CCmdTarget::OnFinalRelease; CControlBar::EnableDocking; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDialog::DoModal; CDocument::GetFirstViewPosition; CDocument::GetNextView; CDocument::OnNewDocument; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFrameWnd::ActivateFrame; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadFrame; CObject::AssertValid; CObject::Dump; CObject::IsKindOf; CObject::Serialize; COleTemplateServer::ConnectTemplate; COleTemplateServer::UpdateRegistry; CStatusBar::Create; CStatusBar::SetIndicators; CToolBar::Create; CView::DoPreparePrinting; CView::GetDocument; CView::OnBeginPrinting; CView::OnDraw; CView::OnEndPrinting; CView::OnPreparePrinting; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWnd::DoDataExchange; CWnd::GetParentFrame; CWnd::OnCreate; CWnd::OnLButtonDown; CWnd::PreCreateWindow; CWnd::ShowWindow; CWnd::UpdateWindow; DragAcceptFiles; ShowWindow; TextOut

Das ACDualDriv demonstriert die Verwendung der folgenden Schlüsselwörter:

AfxGetApp; AfxMessageBox; AfxOleInit; CDC::DrawIcon; CDC::GetSafeHdc; CDialog::DoModal; CDialog::EndDialog; COleDispatchDriver::AttachDispatch; COleDispatchDriver::GetProperty; COleDispatchDriver::InvokeHelper; COleDispatchDriver::SetProperty; CRect::Height; CRect::Width; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWnd::DoDataExchange; CWnd::GetClientRect; CWnd::IsIconic; CWnd::OnClose; CWnd::OnCreate; CWnd::OnPaint; CWnd::OnQueryDragIcon; CWnd::SendMessage; CWnd::ShowWindow; CWnd::UpdateData; GetSystemMetrics; LoadIcon; ShowWindow

Siehe auch

Weitere Ressourcen

MFC-Beispiele