Exemplo do ACTIVEDOC: Implementa um servidor documento ativo
O exemplo ACTIVEDOC demonstra como implementar um servidor documento ativo.O exemplo demonstra o seguinte:
Como implementar as interfaces IOleDocument e IOleDocumentView.
Como executar menu mesclar com o contêiner.
A implementação de uma barra de ferramentas em seu objeto.
Como substituir o IPersistStreamInit métodos Carga and Salvar para executar salvamento personalizado e carregamento.
Como usar CDialogImpl para implementar uma caixa de diálogo sobre.
Como subclasse o controle de edição Rich Texto.
Observação de segurança: |
---|
Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina. |
Para obter exemplos e instruções para instalá-los:
Sobre o Visual Studio Ajuda menu, clicar Exemplos.
Para obter mais informações, consulte Localizando arquivos de exemplo.
A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.
Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.
Criando e executando o exemplo
Para criar a amostra
Abra a solução ActiveDoc.sln.
From a Compilação menu, clicar Criar solução.
Para executar o exemplo usando o Internet Explorer
em em aberto ActiveDoc.htm ou o arquivo ActiveDoc.AAA gerado no Internet Explorer (para em em aberto ActiveDoc.AAA, clicar no em aberto botão quando solicitado a em em aberto esse arquivo).
Use o menu Formatar, que tem sido mesclado na BAR de menus do Internet Explorer ou clicar apenas as cores da BAR de ferramentas para alterar a cor do texto digitado.
Para executar o exemplo usando o Microsoft Office Binder
Execute o Microsoft Office Binder e a partir de Seção menu, clicar Adicionar.
selecionar o ícone rotulado "ActiveDoc classe" e clicarOK.
Você deve ver o objeto incorporado no Office Binder.Observe que foram mesclados os menus e barra de ferramentas do ActiveDoc é mostrada.Você pode inserir texto e use os botões menu e barra de ferramentas para alterar a cor do texto digitado.
Arquivos de amostra
O exemplo inclui os seguintes arquivos principais:
ActiveCtl.h
ActiveCtl.cpp — implementa CActiveDoc, que representa o total ActiveDoc objeto.
OleDocument.h — contém a implementação do IOleDocument e IOleDocumentView interfaces.
Toolbar.h — contém CToolbar, que ajuda com a implementação da barra de ferramentas.
Palavras-chave
Este exemplo utiliza as seguintes palavras-chave:
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