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 は、OLE アプリケーションが Microsoft Foundation クラス ライブラリによって提供されるドキュメント/ビュー アーキテクチャを使用できるようにする、から CDocument派生しています。

COleDocumentは、ドキュメントを OLE 項目を処理する CDocItem オブジェクトのコレクションとして扱います。 コンテナー アプリケーションとサーバー アプリケーションでは、ドキュメントに OLE 項目を含める必要があるため、このようなアーキテクチャが必要です。 COleServerItem クラスと COleClientItem クラスの両方からCDocItem派生し、アプリケーションと OLE 項目間の相互作用を管理します。

単純なコンテナー アプリケーションを作成する場合は、ドキュメント クラス COleDocumentを . ドキュメントに含まれる埋め込みアイテムへのリンクをサポートするコンテナー アプリケーションを作成する場合は、COleLinkingDoc から ドキュメント クラスを派生させます。 サーバー アプリケーションまたはコンテナー/サーバーの組み合わせを記述する場合は、COleServerDoc から ドキュメント クラスを派生させますCOleLinkingDoc から COleServerDoc 派生しているため COleDocument、これらのクラスは、 で COleDocument 使用可能なすべてのサービスを継承します CDocument

使用 COleDocumentするには、そのクラスからクラスを派生させ、アプリケーションの OLE 以外のデータと、埋め込みまたはリンクされたアイテムを管理する機能を追加します。 アプリケーションのネイティブ データを格納する -derived クラスを定義 CDocItemする場合は、OLE データと OLE 以外のデータの両方を格納するために定義された COleDocument 既定の実装を使用できます。 OLE 以外のデータを OLE 項目とは別に格納するための独自のデータ構造を設計することもできます。 詳細については、「コンテナー: 複合ファイル」を参照してください。

CDocument は、メール サポート (MAPI) が存在する場合に、メール経由でドキュメントを送信することをサポートします。 COleDocumentは、複合ドキュメントを正しく処理するように OnFileSendMail を更新しました。 詳細については、MFC での MAPI および MAPI のサポートに関する記事を参照してください。

継承階層

CObject

CCmdTarget

Cdocument

COleDocument

必要条件

ヘッダー: afxole.h

COleDocument::AddItem

ドキュメントに項目を追加するには、この関数を呼び出します。

virtual void AddItem(CDocItem* pItem);

パラメーター

pItem
追加するドキュメントアイテムへのポインター。

解説

この関数は、ドキュメントへのポインターを受け入れるコンストラクターCOleServerItemによってCOleClientItem呼び出されたときに明示的に呼び出す必要はありません。

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 はこの構造体でのユーザーの選択に関する情報を返します。 m_pd CPrintDialog オブジェクトのメンバーは構造体ですPRINTDLG

詳細については、Windows SDK の PRINTDLG 構造体を参照してください。

詳細については、Windows SDK の DVTARGETDEVICE 構造体を参照してください。

COleDocument::COleDocument

COleDocument オブジェクトを構築します。

COleDocument();

COleDocument::EnableCompoundFile

複合ファイル形式を使用してドキュメントを格納する場合は、この関数を呼び出します。

void EnableCompoundFile(BOOL bEnable = TRUE);

パラメーター

bEnable
複合ファイルのサポートを有効にするか無効にするかを指定します。

解説

これは構造化ストレージとも呼ばれます。 通常、この関数は、-derived クラスの COleDocumentコンストラクターから呼び出します。 複合ドキュメントの詳細については、「コンテナー: 複合ファイル」を参照してください

このメンバー関数を呼び出さない場合、ドキュメントは非構造化 ("フラット") ファイル形式で格納されます。

文書で複合ファイルのサポートを有効または無効にした後、ドキュメントの有効期間中に設定を変更しないでください。

COleDocument::GetInPlaceActiveItem

この関数を呼び出して、pWnd識別されるビューを含むフレーム ウィンドウ内で現在アクティブになっている OLE 項目を取得します。

virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);

パラメーター

pWnd
コンテナー ドキュメントを表示するウィンドウへのポインター。

戻り値

1 つのインプレースアクティブ OLE 項目へのポインター。現在"インプレース アクティブ" 状態の OLE 項目がない場合は NULL。

COleDocument::GetNextClientItem

この関数を繰り返し呼び出して、ドキュメント内の各クライアント項目にアクセスします。

COleClientItem* GetNextClientItem(POSITION& pos) const;

パラメーター

pos
の前の呼び出しによって設定された POSITION 値への GetNextClientItem参照。初期値はメンバー関数によって 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
の前の呼び出しによって設定された POSITION 値への GetNextItem参照。初期値はメンバー関数によって 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
の前の呼び出しによって設定された POSITION 値への GetNextServerItem参照。初期値はメンバー関数によって 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。

解説

または 、 に返される値をGetNextItemGetNextClientItemGetNextServerItem渡します。

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 文書をワードパッド 文書に変換する方法があります。

[OLE の編集/リンク] ダイアログ ボックスを表示します。

afx_msg void OnEditLinks();

解説

OnEditLinks は、リンク オブジェクトを COleLinksDialog 変更できる [リンク] ダイアログ ボックスを作成して起動します。

COleDocument::OnFileSendMail

ドキュメントを添付ファイルとして含む常駐メール ホスト (存在する場合) を介してメッセージを送信します。

afx_msg void OnFileSendMail();

解説

OnFileSendMail 無題および変更されたドキュメントを一時ファイルにシリアル化 (保存) するための呼び出 OnSaveDocument し。その後、電子メールで送信されます。 ドキュメントが変更されていない場合は、一時ファイルは必要ありません。元のファイルが送信されます。 OnFileSendMail 読み込まれていない場合は、MAPI32.DLL を読み込みます。

for CDocumentOnFileSendMail実装とは異なり、この関数は複合ファイルを正しく処理します。

詳細については、MFC の記事の MAPI トピックと MAPI サポートを参照してください。

COleDocument::OnShowViews

フレームワークは、ドキュメントの表示状態が変更された後にこの関数を呼び出します。

virtual void OnShowViews(BOOL bVisible);

パラメーター

bVisible
ドキュメントが表示または非表示になったかどうかを示します。

解説

この関数の既定のバージョンでは何も行われません。 ドキュメントの可視性が変更されたときにアプリケーションで特別な処理を実行する必要がある場合は、オーバーライドします。

COleDocument::OnUpdateEditChangeIcon

[編集] メニューの [アイコンの変更] コマンドを更新するためにフレームワークによって呼び出されます。

afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);

パラメーター

pCmdUI
更新コマンドを CCmdUI 生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUIEnableCCmdUI介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。

解説

OnUpdateEditChangeIcon は、ドキュメントに有効なアイコンが存在するかどうかに応じて、コマンドのユーザー インターフェイスを更新します。 動作を変更するには、この関数をオーバーライドします。

COleDocument::OnUpdateEditLinksMenu

[編集] メニューの [リンク] コマンドを更新するためにフレームワークによって呼び出されます。

afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);

パラメーター

pCmdUI
更新コマンドを CCmdUI 生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUIEnableCCmdUI介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。

解説

ドキュメントの最初の OLE 項目から始めて、 OnUpdateEditLinksMenu 各項目にアクセスし、項目がリンクであるかどうかをテストし、リンクの場合は Links コマンドを有効にします。 動作を変更するには、この関数をオーバーライドします。

COleDocument::OnUpdateObjectVerbMenu

[編集] メニューの ObjectName コマンドと ObjectName コマンドからアクセスする Verb サブメニューを更新するためにフレームワークによって呼び出されます。ObjectNameは、ドキュメントに埋め込まれている OLE オブジェクトの名前です。

afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);

パラメーター

pCmdUI
更新コマンドを CCmdUI 生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUIEnableCCmdUI介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。

解説

OnUpdateObjectVerbMenu は、 有効なオブジェクトがドキュメントに存在するかどうかに応じて、ObjectName コマンドのユーザー インターフェイスを更新します。 オブジェクトが存在する場合は、[編集] メニューの ObjectName コマンドが有効になります。 このメニュー コマンドを選択すると、[動詞] サブメニューが表示されます。 Verb サブメニューには、編集、プロパティなど、オブジェクトで使用できるすべての動詞コマンドが含まれています。 動作を変更するには、この関数をオーバーライドします。

COleDocument::OnUpdatePasteLinkMenu

リンクされた OLE アイテムをクリップボードから貼り付けることができるかどうかを判断するために、フレームワークによって呼び出されます。

afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);

パラメーター

pCmdUI
更新コマンドを CCmdUI 生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUIEnableCCmdUI介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。

解説

[Paste Special]\(特殊な貼り付け\) メニュー コマンドは、アイテムをドキュメントに貼り付けることができるかどうかに応じて有効または無効になります。

COleDocument::OnUpdatePasteMenu

埋め込まれた OLE 項目をクリップボードから貼り付けることができるかどうかを判断するために、フレームワークによって呼び出されます。

afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);

パラメーター

pCmdUI
更新コマンドを CCmdUI 生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUIEnableCCmdUI介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。

解説

[貼り付け] メニューのコマンドとボタンは、アイテムをドキュメントに貼り付けることができるかどうかに応じて有効または無効になります。

COleDocument::RemoveItem

ドキュメントから項目を削除するには、この関数を呼び出します。

virtual void RemoveItem(CDocItem* pItem);

パラメーター

pItem
削除するドキュメント項目へのポインター。

解説

通常、この関数を明示的に呼び出す必要はありません。それはデストラクター COleClientItemCOleServerItemによって呼び出されます。

COleDocument::UpdateModifiedFlag

この関数を呼び出して、含まれている OLE 項目のいずれかが変更された場合に文書を変更済みとしてマークします。

virtual void UpdateModifiedFlag();

解説

これにより、ドキュメント内のネイティブ データが変更されていない場合でも、フレームワークは閉じる前にドキュメントを保存するようにユーザーに求められます。

関連項目

MFC サンプル コンテナー
MFC サンプル MFCBIND
CDocument クラス
階層図