ACTIVEDOC, exemple : implémente un serveur de documents actifs
Mise à jour : novembre 2007
L'exemple ACTIVEDOC montre comment implémenter un serveur de documents actifs. Il illustre les processus suivants :
Comment implémenter les interfaces IOleDocument et IOleDocumentView.
Comment fusionner des menus avec le conteneur.
Comment implémenter une barre d'outils dans un objet.
Comment substituer les méthodes Load et Save de IPersistStreamInit pour personnaliser l'enregistrement et le chargement.
Comment implémenter une boîte de dialogue À propos à l'aide de CDialogImpl.
Comment sous-classer le contrôle Rich Text Edit.
Note de sécurité : |
---|
Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues. |
Pour obtenir des exemples et des instructions d'installation :
Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.
Pour plus d'informations, consultez Recherche des fichiers d'exemple.
La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.
Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont copiés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont accessibles en ligne.
Génération et exécution de l'exemple
Pour générer l'exemple
Ouvrez la solution ActiveDoc.sln.
Dans le menu Générer, cliquez sur Générer la solution.
Pour exécuter l'exemple à l'aide de Microsoft Internet Explorer
Ouvrez ActiveDoc.htm ou le fichier ActiveDoc.AAA généré dans Internet Explorer (pour ouvrir ActiveDoc.AAA, cliquez sur le bouton Ouvrir lorsqu'un message vous invite à ouvrir ce fichier).
Utilisez le menu Format qui a été fusionné avec la barre de menus Internet Explorer ou cliquez simplement sur les couleurs de la barre d'outils pour modifier la couleur du texte que vous tapez.
Pour exécuter l'exemple à l'aide du classeur Microsoft Office
Exécutez le Classeur Microsoft Office et cliquez dans le menu Section sur Ajouter.
Sélectionnez l'icône nommée "ActiveDoc Class" et cliquez sur OK.
Vous devez voir l'objet incorporé dans le Classeur Office. Remarquez que les menus ont été fusionnés et que la barre d'outils d'ActiveDoc est affichée. Vous pouvez entrer du texte et utiliser la barre de menus et la barre d'outils pour modifier la couleur du texte que vous tapez.
Fichiers d'exemple
L'exemple comprend les principaux fichiers suivants :
ActiveCtl.h
ActiveCtl.cpp — implémente CActiveDoc qui représente l'objet ActiveDoc générique.
OleDocument.h — contient l'implémentation des interfaces IOleDocument et IOleDocumentView.
Toolbar.h — contient CToolbar qui facilite l'implémentation de la barre d'outils.
Mots clés
Cet exemple utilise les mots clés suivants :
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* pFrame; ; 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 ; prcBounds ; RECT rcPos ; rcClip; ; RemoveMenu ; SelectObject ; SendMessage ; SetActiveObject ; SetBkMode ; SetBorderSpace ; SetControlFocus ; SetFocus ; SetInPlaceSite ; SetMenu ; SetObjectRects ; SetTextColor ; ShowObject ; ShowWindow ; UIActivate ; UIDeactivate ; UnmergeMenus ; ZeroMemory