COleDocument クラス
ビジュアル編集をサポートする OLE ドキュメントの基底クラスです。
構文
class COleDocument : public CDocument
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
COleDocument::COleDocument | COleDocument オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
COleDocument::AddItem | ドキュメントによって管理されているアイテムの一覧にアイテムを追加します。 |
COleDocument::ApplyPrintDevice | 文書内のすべてのクライアント項目の印刷先デバイスを設定します。 |
COleDocument::EnableCompoundFile | OLE 構造化ストレージ ファイル形式を使用してドキュメントを格納します。 |
COleDocument::GetInPlaceActiveItem | 現在作業中の OLE 項目を返します。 |
COleDocument::GetNextClientItem | 反復処理用の次のクライアント項目を取得します。 |
COleDocument::GetNextItem | 反復する次のドキュメント項目を取得します。 |
COleDocument::GetNextServerItem | 反復処理用の次のサーバー項目を取得します。 |
COleDocument::GetPrimarySelectedItem | 文書内で選択されているプライマリ OLE 項目を返します。 |
COleDocument::GetStartPosition | イテレーションを開始する最初の位置を取得します。 |
COleDocument::HasBlankItems | ドキュメント内の空白項目をチェックします。 |
COleDocument::OnShowViews | ドキュメントが表示または非表示になったときに呼び出されます。 |
COleDocument::RemoveItem | ドキュメントによって管理されているアイテムの一覧からアイテムを削除します。 |
COleDocument::UpdateModifiedFlag | 含まれている OLE 項目のいずれかが変更されている場合は、文書を変更済みとしてマークします。 |
保護メソッド
名前 | 説明 |
---|---|
COleDocument::OnEditChangeIcon | [アイコンの変更] メニュー コマンドでイベントを処理します。 |
COleDocument::OnEditConvert | 埋め込まれたオブジェクトまたはリンクされたオブジェクトの型間の変換を処理します。 |
COleDocument::OnEditLinks | [編集] メニューの [リンク] コマンドでイベントを処理します。 |
COleDocument::OnFileSendMail | 文書が添付されたメール メッセージを送信します。 |
COleDocument::OnUpdateEditChangeIcon | 編集/変更アイコン メニュー オプションのコマンド UI を更新するためにフレームワークによって呼び出されます。 |
COleDocument::OnUpdateEditLinksMenu | [編集/リンク] メニュー オプションのコマンド UI を更新するためにフレームワークによって呼び出されます。 |
COleDocument::OnUpdateObjectVerbMenu | Edit/ ObjectName メニュー オプションおよび Edit/ ObjectName からアクセスする Verb サブメニューのコマンド UI を更新するためにフレームワークによって呼び出されます。 |
COleDocument::OnUpdatePasteLinkMenu | [貼り付け] メニュー オプションのコマンド UI を更新するためにフレームワークによって呼び出されます。 |
COleDocument::OnUpdatePasteMenu | [貼り付け] メニュー オプションのコマンド UI を更新するためにフレームワークによって呼び出されます。 |
解説
COleDocument
は、 CDocument
から派生しています。これにより、OLE アプリケーションは、Microsoft Foundation クラス ライブラリによって提供されるドキュメント/ビュー アーキテクチャを使用できます。
COleDocument
は、ドキュメントを OLE アイテムを処理 CDocItem オブジェクトのコレクションとして扱います。 コンテナー アプリケーションとサーバー アプリケーションでは、ドキュメントに OLE 項目を含める必要があるため、このようなアーキテクチャが必要です。 COleServerItem および COleClientItem クラスは、どちらもCDocItem
から派生し、アプリケーションと OLE アイテム間の相互作用を管理します。
単純なコンテナー アプリケーションを作成する場合は、 COleDocument
からドキュメント クラスを派生させます。 ドキュメントに含まれる埋め込みアイテムへのリンクをサポートするコンテナー アプリケーションを作成する場合は、 COleLinkingDoc からドキュメント クラスを派生させます。 サーバー アプリケーションまたはコンテナー/サーバーの組み合わせを記述する場合は、 COleServerDoc からドキュメント クラスを派生させます。 COleLinkingDoc
COleServerDoc
はCOleDocument
から派生するため、これらのクラスはCOleDocument
およびCDocument
で使用可能なすべてのサービスを継承します。
COleDocument
を使用するには、そのクラスからクラスを派生させ、アプリケーションの OLE 以外のデータと、埋め込みまたはリンクされたアイテムを管理する機能を追加します。 CDocItem
派生クラスを定義してアプリケーションのネイティブ データを格納する場合は、COleDocument
によって定義された既定の実装を使用して、OLE データと OLE 以外のデータの両方を格納できます。 OLE 以外のデータを OLE 項目とは別に格納するための独自のデータ構造を設計することもできます。 詳細については、「 Containers: 複合ファイル..」を参照してください。
CDocument
は、メール サポート (MAPI) が存在する場合に、メール経由でドキュメントを送信することをサポートします。 COleDocument
は、複合ドキュメントを正しく処理するために、 OnFileSendMail を更新しました。 詳細については、MFC でのMAPI サポート MAPI および MAPI のサポートに関する記事を参照してください。
継承階層
COleDocument
要件
ヘッダー: afxole.h
COleDocument::AddItem
ドキュメントに項目を追加するには、この関数を呼び出します。
virtual void AddItem(CDocItem* pItem);
パラメーター
pItem
追加するドキュメントアイテムへのポインター。
解説
ドキュメントへのポインターを受け取る COleClientItem
または COleServerItem
コンストラクターによって呼び出されたときに、この関数を明示的に呼び出す必要はありません。
COleDocument::ApplyPrintDevice
この関数を呼び出して、アプリケーションのコンテナー ドキュメント内のすべての埋め込み COleClientItem 項目の印刷先デバイスを変更します。
BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);
パラメーター
ptd
新しい印刷ターゲット デバイスに関する情報を含む、 DVTARGETDEVICE
データ構造へのポインター。 NULL にすることができます。
ppd
新しい印刷ターゲット デバイスに関する情報を含む、 PRINTDLG
データ構造へのポインター。 NULL にすることができます。
戻り値
関数が成功した場合は 0 以外。それ以外の場合は 0。
解説
この関数は、すべてのアイテムの印刷先デバイスを更新しますが、それらの項目のプレゼンテーション キャッシュを更新しません。 アイテムのプレゼンテーション キャッシュを更新するには、 COleClientItem::UpdateLink を呼び出します。
この関数の引数には、OLE がターゲット デバイスを識別するために使用する情報が含まれています。 PRINTDLG 構造体には、Windows が一般的な [印刷] ダイアログ ボックスを初期化するために使用する情報が含まれています。 ユーザーがダイアログ ボックスを閉じると、Windows はこの構造体でのユーザーの選択に関する情報を返します。 CPrintDialog オブジェクトのm_pd
メンバーは、PRINTDLG
構造体です。
詳細については、Windows SDK の PRINTDLG 構造体を参照してください。
詳細については、Windows SDK の DVTARGETDEVICE 構造体を参照してください。
COleDocument::COleDocument
COleDocument
オブジェクトを構築します。
COleDocument();
COleDocument::EnableCompoundFile
複合ファイル形式を使用してドキュメントを格納する場合は、この関数を呼び出します。
void EnableCompoundFile(BOOL bEnable = TRUE);
パラメーター
bEnable
複合ファイルのサポートを有効にするか無効にするかを指定します。
解説
これは構造化ストレージとも呼ばれます。 通常、この関数は、 COleDocument
派生クラスのコンストラクターから呼び出します。 複合ドキュメントの詳細については、「 Containers: 複合ファイル...」を参照してください。
このメンバー関数を呼び出さない場合、ドキュメントは非構造化 ("フラット") ファイル形式で格納されます。
文書で複合ファイルのサポートを有効または無効にした後、ドキュメントの有効期間中に設定を変更しないでください。
COleDocument::GetInPlaceActiveItem
この関数を呼び出して、 pWndで識別されるビューを含むフレーム ウィンドウ内で現在アクティブ化されている OLE 項目を取得します。
virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);
パラメーター
pWnd
コンテナー ドキュメントを表示するウィンドウへのポインター。
戻り値
1 つのインプレースアクティブ OLE 項目へのポインター。現在"インプレース アクティブ" 状態の OLE 項目がない場合は NULL。
COleDocument::GetNextClientItem
この関数を繰り返し呼び出して、ドキュメント内の各クライアント項目にアクセスします。
COleClientItem* GetNextClientItem(POSITION& pos) const;
パラメーター
pos
GetNextClientItem
の前の呼び出しによって設定された POSITION 値への参照。初期値は、GetStartPosition
メンバー関数によって返されます。
戻り値
ドキュメント内の次のクライアント項目へのポインター。それ以上クライアント項目がない場合は NULL。
解説
各呼び出しの後、 pos の値は、ドキュメント内の次の項目に対して設定されます。これは、クライアント項目の場合とそうでない場合があります。
例
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleClientItem* pItem;
CString strType;
while ((pItem = pDoc->GetNextClientItem(pos)) != NULL)
{
// Use pItem
pItem->GetUserType(USERCLASSTYPE_FULL, strType);
TRACE(strType);
}
COleDocument::GetNextItem
ドキュメント内の各アイテムにアクセスするには、この関数を繰り返し呼び出します。
virtual CDocItem* GetNextItem(POSITION& pos) const;
パラメーター
pos
GetNextItem
の前の呼び出しによって設定された POSITION 値への参照。初期値は、GetStartPosition
メンバー関数によって返されます。
戻り値
指定した位置にあるドキュメントアイテムへのポインター。
解説
各呼び出しの後、 pos の値は、ドキュメント内の次の項目の POSITION 値に設定されます。 取得した要素がドキュメントの最後の要素である場合、 pos の新しい値は NULL です。
例
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem* pItem;
CString strType;
while (pos != NULL)
{
pItem = pDoc->GetNextItem(pos);
// Use pItem
if (pItem->IsKindOf(RUNTIME_CLASS(COleClientItem)))
{
((COleClientItem*)pItem)->GetUserType(USERCLASSTYPE_FULL, strType);
TRACE(strType);
}
}
COleDocument::GetNextServerItem
ドキュメント内の各サーバー項目にアクセスするには、この関数を繰り返し呼び出します。
COleServerItem* GetNextServerItem(POSITION& pos) const;
パラメーター
pos
GetNextServerItem
の前の呼び出しによって設定された POSITION 値への参照。初期値は、GetStartPosition
メンバー関数によって返されます。
戻り値
ドキュメント内の次のサーバー項目へのポインター。それ以上サーバー項目がない場合は NULL。
解説
各呼び出しの後、 pos の値は、サーバー項目である場合とそうでない場合があるドキュメント内の次の項目に対して設定されます。
例
// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
// Use pItem
}
COleDocument::GetPrimarySelectedItem
指定したビューで現在選択されている OLE 項目を取得するために、フレームワークによって呼び出されます。
virtual COleClientItem* GetPrimarySelectedItem(CView* pView);
パラメーター
pView
文書を表示するアクティブなビュー オブジェクトへのポインター。
戻り値
選択した単一の OLE 項目へのポインター。OLE 項目が選択されていない場合、または複数の項目が選択されている場合は NULL。
解説
既定の実装では、含まれている OLE 項目の一覧で、選択した 1 つの項目が検索され、その項目へのポインターが返されます。 項目が選択されていない場合、または複数の項目が選択されている場合、この関数は NULL を返します。 この関数を機能させるには、ビュー クラスの CView::IsSelected
メンバー関数をオーバーライドする必要があります。 含まれている OLE 項目を独自に格納する方法がある場合は、この関数をオーバーライドします。
COleDocument::GetStartPosition
この関数を呼び出して、ドキュメント内の最初の項目の位置を取得します。
virtual POSITION GetStartPosition() const;
戻り値
ドキュメントのアイテムの反復処理を開始するために使用できる POSITION 値。ドキュメントに項目がない場合は NULL。
解説
GetNextItem
、GetNextClientItem
、またはGetNextServerItem
に返される値を渡します。
COleDocument::HasBlankItems
この関数を呼び出して、文書に空白の項目が含まれているかどうかを確認します。
BOOL HasBlankItems() const;
戻り値
文書に空白項目が含まれている場合は 0 以外。それ以外の場合は 0。
解説
空白の項目は、四角形が空の項目です。
COleDocument::OnEditChangeIcon
[OLE 変更アイコン] ダイアログ ボックスを表示し、現在選択されている OLE 項目を表すアイコンを、ユーザーがダイアログ ボックスで選択したアイコンに変更します。
afx_msg void OnEditChangeIcon();
解説
OnEditChangeIcon
は、 COleChangeIconDialog
アイコンの変更ダイアログ ボックスを作成して起動します。
COleDocument::OnEditConvert
[OLE 変換] ダイアログ ボックスを表示し、ダイアログ ボックスのユーザーの選択に従って、現在選択されている OLE アイテムを変換またはアクティブ化します。
afx_msg void OnEditConvert();
解説
OnEditConvert
COleConvertDialog
変換] ダイアログ ボックスを作成して起動します。
変換の例として、Microsoft Word 文書をワードパッド 文書に変換する方法があります。
COleDocument::OnEditLinks
[OLE の編集/リンク] ダイアログ ボックスを表示します。
afx_msg void OnEditLinks();
解説
OnEditLinks
は、ユーザーがリンク オブジェクトを変更できるようにする [ COleLinksDialog
リンク] ダイアログ ボックスを作成して起動します。
COleDocument::OnFileSendMail
ドキュメントを添付ファイルとして含む常駐メール ホスト (存在する場合) を介してメッセージを送信します。
afx_msg void OnFileSendMail();
解説
OnFileSendMail
は、無題のドキュメントと変更されたドキュメントを一時ファイルにシリアル化 (保存) するために OnSaveDocument
を呼び出し、電子メールで送信されます。 ドキュメントが変更されていない場合は、一時ファイルは必要ありません。元のファイルが送信されます。 OnFileSendMail
まだ読み込まれていない場合は、MAPI32.DLLが読み込まれます。
CDocument
のOnFileSendMail
の実装とは異なり、この関数は複合ファイルを正しく処理します。
詳細については、MFC の MAPI トピック および MAPI サポート 記事を参照してください。
COleDocument::OnShowViews
フレームワークは、ドキュメントの表示状態が変更された後にこの関数を呼び出します。
virtual void OnShowViews(BOOL bVisible);
パラメーター
bVisible
ドキュメントが表示または非表示になったかどうかを示します。
解説
この関数の既定のバージョンでは何も行われません。 ドキュメントの可視性が変更されたときにアプリケーションで特別な処理を実行する必要がある場合は、オーバーライドします。
COleDocument::OnUpdateEditChangeIcon
[編集] メニューの [アイコンの変更] コマンドを更新するためにフレームワークによって呼び出されます。
afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを生成したメニューを表す CCmdUI
構造体へのポインター。 更新ハンドラーは、pCmdUI を介してCCmdUI
構造体のEnable
メンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
OnUpdateEditChangeIcon
は、ドキュメントに有効なアイコンが存在するかどうかに応じて、コマンドのユーザー インターフェイスを更新します。 動作を変更するには、この関数をオーバーライドします。
COleDocument::OnUpdateEditLinksMenu
[編集] メニューの [リンク] コマンドを更新するためにフレームワークによって呼び出されます。
afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを生成したメニューを表す CCmdUI
構造体へのポインター。 更新ハンドラーは、pCmdUI を介してCCmdUI
構造体のEnable
メンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
ドキュメント内の最初の OLE アイテムから始めて、 OnUpdateEditLinksMenu
は各項目にアクセスし、アイテムがリンクであるかどうかをテストし、リンクの場合は Links コマンドを有効にします。 動作を変更するには、この関数をオーバーライドします。
COleDocument::OnUpdateObjectVerbMenu
フレームワークによって、編集メニューの ObjectName コマンドと、 ObjectName コマンドからアクセスする Verb サブメニューを更新するために呼び出されます。ここで、 ObjectName はドキュメントに埋め込まれている OLE オブジェクトの名前です。
afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを生成したメニューを表す CCmdUI
構造体へのポインター。 更新ハンドラーは、pCmdUI を介してCCmdUI
構造体のEnable
メンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
OnUpdateObjectVerbMenu
は、ドキュメント内に有効なオブジェクトが存在するかどうかに応じて、 ObjectName コマンドのユーザー インターフェイスを更新します。 オブジェクトが存在する場合は、[編集] メニューの ObjectName コマンドが有効になります。 このメニュー コマンドを選択すると、[動詞] サブメニューが表示されます。 Verb サブメニューには、編集、プロパティなど、オブジェクトで使用できるすべての動詞コマンドが含まれています。 動作を変更するには、この関数をオーバーライドします。
COleDocument::OnUpdatePasteLinkMenu
リンクされた OLE アイテムをクリップボードから貼り付けることができるかどうかを判断するために、フレームワークによって呼び出されます。
afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを生成したメニューを表す CCmdUI
構造体へのポインター。 更新ハンドラーは、pCmdUI を介してCCmdUI
構造体のEnable
メンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
[Paste Special]\(特殊な貼り付け\) メニュー コマンドは、アイテムをドキュメントに貼り付けることができるかどうかに応じて有効または無効になります。
COleDocument::OnUpdatePasteMenu
埋め込まれた OLE 項目をクリップボードから貼り付けることができるかどうかを判断するために、フレームワークによって呼び出されます。
afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを生成したメニューを表す CCmdUI
構造体へのポインター。 更新ハンドラーは、pCmdUI を介してCCmdUI
構造体のEnable
メンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
[貼り付け] メニューのコマンドとボタンは、アイテムをドキュメントに貼り付けることができるかどうかに応じて有効または無効になります。
COleDocument::RemoveItem
ドキュメントから項目を削除するには、この関数を呼び出します。
virtual void RemoveItem(CDocItem* pItem);
パラメーター
pItem
削除するドキュメント項目へのポインター。
解説
通常、この関数を明示的に呼び出す必要はありません。これは、 COleClientItem
と COleServerItem
のデストラクターによって呼び出されます。
COleDocument::UpdateModifiedFlag
この関数を呼び出して、含まれている OLE 項目のいずれかが変更された場合に文書を変更済みとしてマークします。
virtual void UpdateModifiedFlag();
解説
これにより、ドキュメント内のネイティブ データが変更されていない場合でも、フレームワークは閉じる前にドキュメントを保存するようにユーザーに求められます。