ACTIVEDOC サンプル:Active ドキュメント サーバーを実装します。
ACTIVEDOC サンプルでは、Active ドキュメント サーバーの実装方法の例を示します。 このサンプルでは、以下の手法の例を示します。
IOleDocument インターフェイスと IOleDocumentView インターフェイスの実装
メニューとのコンテナーのマージ
オブジェクトのツール バーの実装
IPersistStreamInit メソッドの Load および Save のオーバーライドによるカスタムの保存と読み込みの実行
CDialogImpl での [バージョン情報] ダイアログ ボックスの実装
リッチ テキスト エディット コントロールのサブクラス化
セキュリティに関するメモ |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
サンプルとそのインストール手順を取得するには
Visual Studio のサンプルにアクセスするには
[ヘルプ] メニューの [サンプル] をクリックします。
既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。
サンプルのビルドと実行
サンプルをビルドするには
ソリューション ActiveDoc.sln を開きます。
From the Build menu, click Build Solution.
Internet Explorer を使用してサンプルを実行するには
ActiveDoc.htm または ActiveDoc.AAA 生成ファイル (ActiveDoc.AAA を開き、このファイルを開くかどうかを確認するメッセージが表示されたら ファイルを開く] をクリックします)、Internet Explorer で開きます。
Internet Explorer のメニュー バーにマージされた [書式] メニューを使用するか、またはツール バーの色をクリックして入力済みテキストの色を変更します。
Microsoft Office バインダーを使用してサンプルを実行するには
Office バインダーを実行し、セクション メニューから の追加] をクリックします。
"ActiveDoc クラス" というラベルの付いたアイコンをクリックし、[OK] をクリックします。
Office バインダーに埋め込まれているオブジェクトが表示されます。 メニューがマージされ、ActiveDoc のツール バーが表示されます。 テキストを入力し、メニューとツール バー ボタンを使用して、このテキストの色を変更できます。
サンプル ファイル
サンプルには、以下のメイン ファイルが含まれます。
ActiveCtl.h
全体的な CActiveDocオブジェクトを表す ActiveDoc ActiveCtl.cpp) を実装します。
OleDocument.h - IOleDocument インターフェイスと IOleDocumentView インターフェイスの実装を含みます。
Toolbar.h-ツールバーの実装に役立つ CToolbar が含まれています。
Keywords
このサンプルでは、次のキーワードを使用します。
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