ACTIVEDOC-Beispiel: Implementiert einen Active Document-Server
Das ACTIVEDOC-Beispiel veranschaulicht, wie ein Active Document-Server implementieren. Das Beispiel veranschaulicht Folgendes:
Wie Sie die Schnittstellen implementieren IOleDocument und IOleDocumentView.
Wie Sie mit dem Container Zusammenführen von Menüs ausführen.
Wie Sie eine Symbolleiste im Objekt implementieren.
Wie die IPersistStreamInit Methoden laden und speichern um benutzerdefiniertes speichern und Laden überschrieben.
Wie Sie CDialogImpl verwenden, um ein Dialogfeld Info zu implementieren.
Wie Unterklasse das Rich Text-Edit-Steuerelement.
Sicherheitshinweis |
---|
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
Zum Erstellen des Beispiels
Öffnen Sie die Projektmappe ActiveDoc.sln.
Erstellen Sie aus der Menü, und klicken Sie auf Projektmappe.
Zum Ausführen des Beispiels mit Internet Explorer
Öffnen Sie ActiveDoc.htm oder ActiveDoc.AAA generierte Datei in Internet Explorer (zum Öffnen von ActiveDoc.AAA, und klicken Sie auf die öffnen Schaltfläche Wenn aufgefordert, diese Datei zu öffnen).
Verwenden Sie im Menü Format, das in der Menüleiste von Internet Explorer zusammengeführt wurde, hat, oder klicken Sie auf die Symbolleiste Farben um die Farbe des eingegebenen Textes zu ändern.
Zum Ausführen des Beispiels mit Microsoft Office Sammelmappe
Starten Sie Microsoft Office Sammelmappe, und klicken Sie im Abschnitt auf hinzufügen.
Wählen Sie das mit der Bezeichnung "ActiveDoc-Klasse"-Symbolund klicken Sie auf OK.
Sie sollten das Objekt in der Office Sammelmappe eingebettet angezeigt. Beachten Sie, dass die Menüs zusammengeführt wurden haben und die ActiveDoc-Symbolleiste angezeigt. Sie können Text eingeben und verwenden Sie die Menüs und Symbolleisten Schaltflächen, um die Farbe des Textes ändern.
Beispieldateien
Das Beispiel enthält die folgenden wichtigsten Dateien:
ActiveCtl.h
ActiveCtl.cpp – implementiert CActiveDoc, die das gesamte ActiveDoc-Objekt darstellt.
OleDocument.h – enthält die Implementierung der IOleDocument und IOleDocumentView Schnittstellen.
Toolbar.h – enthält CToolbar, das mit der Implementierung der Symbolleiste unterstützt.
Schlüsselwörter
In diesem Beispiel werden die folgenden Schlüsselwörter verwendet:
ActiveXDocActivate; ALT_MSG_MAP; ATLASSERT; ATLTRACE; BEGIN_COM_MAP; BEGIN_MSG_MAP; BEGIN_OBJECT_MAP; BEGIN_PROPERTY_MAP; BEGIN_TOOLBAR_MAP; CAboutDlg::DoModal; CanInPlaceActivate; CComCoClass; CComControl; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRoot; CComObjectRootEx::InternalQueryInterface; CComPtr; CHARFORMAT; CMenu; COM_INTERFACE_ENTRY; COM_INTERFACE_ENTRY_IMPL; COMMAND_ID_HANDLER; COMMAND_RANGE_HANDLER; CreateMenu; CreateRTFWindow; CreateToolbar; CreateWindowEx; CToolbar; CWindow::DestroyWindow; CWindow::ModifyStyle; CWindow::SetFocus; CWindow::SetParent; CWindow::SetWindowPos; DECLARE_REGISTRY_RESOURCEID; DestroyMenu; DestroyToolbar; DisableThreadLibraryCalls; DllMain; DoesVerbUIActivate; EDITSTREAM::dwCookie; EDITSTREAM::dwError; EDITSTREAM::pfnCallback; Ellipse; END_COM_MAP; END_MSG_MAP; END_OBJECT_MAP; END_PROPERTY_MAP; END_TOOLBAR_MAP; EndDialog; ExtTextOut; FreeLibrary; GetMenuItemCount; GetMenuItemID; GetMenuState; GetMenuString; GetResourceInstance; GetStockObject; GetSubMenu; GetTextMetrics; GetWindow; GetWindowContext; GetWindowRect; HDC; hdcDraw;; IDataObjectImpl; IDispatchImpl; InitCommonControls; InlineIsEqualGUID; InPlaceDeactivate; InPlaceMenuCreate; InPlaceMenuDestroy; InsertMenu; InterfaceSupportsErrorInfo; InternalQueryInterface; IOleControlImpl; IOleDocument::GetDocMiscStatus; IOleDocumentImpl; IOleDocumentView::ApplyViewState; IOleDocumentView::SetInPlaceSite; IOleDocumentViewImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceFrame; IOleInPlaceFrame::InsertMenus; IOleInPlaceFrame::Release; IOleInPlaceFrame::SetMenu; IOleInPlaceObjectWindowlessImpl; IOLEInPlaceSite::GetWindowContext; IOleObjectImpl; IPersistStorageImpl; IPersistStreamInitImpl; IProvideClassInfo2Impl; IQuickActivateImpl; ISupportErrorImpl; IViewObjectExImpl; LoadLibrary; LoadMenu; LoadString; MAKEINTRESOURCE; MergeMenus; MESSAGE_HANDLER; NOTIFY_CODE_HANDLER; OBJECT_ENTRY; OleCreateMenuDescriptor; OLEINPLACEFRAMEINFO; OnInPlaceActivate; OnUIActivate;RECT; RemoveMenu; SelectObject; SendMessage; SetActiveObject; SetBkMode; SetBorderSpace; SetControlFocus; SetFocus; SetInPlaceSite; SetMenu; SetObjectRects; SetTextColor; ShowObject; ShowWindow; UIActivate; UIDeactivate; UnmergeMenus; ZeroMemory