Esempio ACTIVEDOC: implementazione di un server di documenti attivi
Aggiornamento: novembre 2007
Nell'esempio ACTIVEDOC viene illustrata l'implementazione di un server di documenti attivi. Nell'esempio sono illustrate le seguenti operazioni:
implementazione delle interfacce IOleDocument e IOleDocumentView
esecuzione dell'unione dei menu con il contenitore
implementazione di una barra degli strumenti nell'oggetto
override dei metodi Load e Save di IPersistStreamInit per l'esecuzione di operazioni di salvataggio e caricamento personalizzate.
utilizzo di CDialogImpl per l'implementazione di una finestra di dialogo Informazioni su
creazione di una sottoclasse del controllo Rich Text Edit.
Nota sulla sicurezza: |
---|
Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di sicurezza. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti. |
Per ottenere gli esempi e le istruzioni per l'installazione:
In Visual Studio scegliere Esempi dal menu ?.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.
È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.
Generazione ed esecuzione dell'esempio
Per generare l'esempio
Aprire la soluzione ActiveDoc.sln.
Scegliere Genera soluzione dal menu Genera.
Per eseguire l'esempio utilizzando Internet Explorer
Aprire ActiveDoc.htm o il file generato ActiveDoc.AAA in Internet Explorer. Per aprire ActiveDoc.AAA, scegliere Apri quando viene richiesto di aprire il file.
Utilizzare il menu Formato unito alla barra dei menu di Internet Explorer oppure fare semplicemente clic sui colori riportati nella barra degli strumenti per modificare il colore del testo digitato.
Per eseguire l'esempio utilizzando il Raccoglitore Microsoft Office
Eseguire il Raccoglitore Microsoft Office, quindi scegliere Aggiungi dal menu Sezione.
Selezionare l'icona "ActiveDoc Class", quindi scegliere OK.
L'oggetto dovrebbe risultare incorporato nel Raccoglitore Office. I menu sono stati uniti e viene visualizzata la barra degli strumenti di ActiveDoc. È possibile immettere del testo e utilizzare i pulsanti della barra degli strumenti e i menu per modificare il colore del testo digitato.
File di esempio
Nell'esempio sono inclusi i file principali riportati di seguito.
ActiveCtl.h
ActiveCtl.cpp: implementa CActiveDoc, che rappresenta l'intero oggetto ActiveDoc.
OleDocument.h: contiene l'implementazione delle interfacce IOleDocument e IOleDocumentView.
Toolbar.h: contiene CToolbar, che semplifica l'implementazione della barra degli strumenti.
Parole chiave
Nell'esempio vengono utilizzate le parole chiave seguenti:
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