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 のサポートに関する記事を参照してください。
継承階層
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。
解説
または 、 に返される値を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 を読み込みます。
for CDocument
のOnFileSendMail
実装とは異なり、この関数は複合ファイルを正しく処理します。
詳細については、MFC の記事の MAPI トピックと MAPI サポートを参照してください。
COleDocument::OnShowViews
フレームワークは、ドキュメントの表示状態が変更された後にこの関数を呼び出します。
virtual void OnShowViews(BOOL bVisible);
パラメーター
bVisible
ドキュメントが表示または非表示になったかどうかを示します。
解説
この関数の既定のバージョンでは何も行われません。 ドキュメントの可視性が変更されたときにアプリケーションで特別な処理を実行する必要がある場合は、オーバーライドします。
COleDocument::OnUpdateEditChangeIcon
[編集] メニューの [アイコンの変更] コマンドを更新するためにフレームワークによって呼び出されます。
afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを CCmdUI
生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUI をEnable
CCmdUI
介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
OnUpdateEditChangeIcon
は、ドキュメントに有効なアイコンが存在するかどうかに応じて、コマンドのユーザー インターフェイスを更新します。 動作を変更するには、この関数をオーバーライドします。
COleDocument::OnUpdateEditLinksMenu
[編集] メニューの [リンク] コマンドを更新するためにフレームワークによって呼び出されます。
afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを CCmdUI
生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUI をEnable
CCmdUI
介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
ドキュメントの最初の OLE 項目から始めて、 OnUpdateEditLinksMenu
各項目にアクセスし、項目がリンクであるかどうかをテストし、リンクの場合は Links コマンドを有効にします。 動作を変更するには、この関数をオーバーライドします。
COleDocument::OnUpdateObjectVerbMenu
[編集] メニューの ObjectName コマンドと ObjectName コマンドからアクセスする Verb サブメニューを更新するためにフレームワークによって呼び出されます。ObjectNameは、ドキュメントに埋め込まれている OLE オブジェクトの名前です。
afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを CCmdUI
生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUI をEnable
CCmdUI
介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
OnUpdateObjectVerbMenu
は、 有効なオブジェクトがドキュメントに存在するかどうかに応じて、ObjectName コマンドのユーザー インターフェイスを更新します。 オブジェクトが存在する場合は、[編集] メニューの ObjectName コマンドが有効になります。 このメニュー コマンドを選択すると、[動詞] サブメニューが表示されます。 Verb サブメニューには、編集、プロパティなど、オブジェクトで使用できるすべての動詞コマンドが含まれています。 動作を変更するには、この関数をオーバーライドします。
COleDocument::OnUpdatePasteLinkMenu
リンクされた OLE アイテムをクリップボードから貼り付けることができるかどうかを判断するために、フレームワークによって呼び出されます。
afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを CCmdUI
生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUI をEnable
CCmdUI
介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
[Paste Special]\(特殊な貼り付け\) メニュー コマンドは、アイテムをドキュメントに貼り付けることができるかどうかに応じて有効または無効になります。
COleDocument::OnUpdatePasteMenu
埋め込まれた OLE 項目をクリップボードから貼り付けることができるかどうかを判断するために、フレームワークによって呼び出されます。
afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);
パラメーター
pCmdUI
更新コマンドを CCmdUI
生成したメニューを表す構造体へのポインター。 更新ハンドラーは、pCmdUI をEnable
CCmdUI
介して構造体のメンバー関数を呼び出して、ユーザー インターフェイスを更新します。
解説
[貼り付け] メニューのコマンドとボタンは、アイテムをドキュメントに貼り付けることができるかどうかに応じて有効または無効になります。
COleDocument::RemoveItem
ドキュメントから項目を削除するには、この関数を呼び出します。
virtual void RemoveItem(CDocItem* pItem);
パラメーター
pItem
削除するドキュメント項目へのポインター。
解説
通常、この関数を明示的に呼び出す必要はありません。それはデストラクター COleClientItem
COleServerItem
によって呼び出されます。
COleDocument::UpdateModifiedFlag
この関数を呼び出して、含まれている OLE 項目のいずれかが変更された場合に文書を変更済みとしてマークします。
virtual void UpdateModifiedFlag();
解説
これにより、ドキュメント内のネイティブ データが変更されていない場合でも、フレームワークは閉じる前にドキュメントを保存するようにユーザーに求められます。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示