次の方法で共有


COleClientItem クラス

OLE アイテムへのコンテナー インターフェイスを定義します。

構文

class COleClientItem : public CDocItem

メンバー

パブリック コンストラクター

名前 説明
COleClientItem::COleClientItem COleClientItem オブジェクトを構築します。

パブリック メソッド

名前 説明
COleClientItem::Activate 操作の OLE 項目を開き、指定した動詞を実行します。
COleClientItem::ActivateAs アイテムを別の種類としてアクティブにします。
COleClientItem::AttachDataObject OLE オブジェクト内のデータにアクセスします。
COleClientItem::CanCreateFromData コンテナー アプリケーションが埋め込みオブジェクトを作成できるかどうかを示します。
COleClientItem::CanCreateLinkFromData コンテナー アプリケーションがリンク オブジェクトを作成できるかどうかを示します。
COleClientItem::CanPaste クリップボードに埋め込み可能な OLE 項目と静的 OLE 項目のどちらが含まれているかを示します。
COleClientItem::CanPasteLink クリップボードにリンク可能な OLE 項目が含まれているかどうかを示します。
COleClientItem::Close サーバーへのリンクを閉じますが、OLE 項目は破棄しません。
COleClientItem::ConvertTo 項目を別の型に変換します。
COleClientItem::CopyToClipboard OLE 項目をクリップボードにコピーします。
COleClientItem::CreateCloneFrom 既存の項目の複製を作成します。
COleClientItem::CreateFromClipboard クリップボードから埋め込みアイテムを作成します。
COleClientItem::CreateFromData データ オブジェクトから埋め込みアイテムを作成します。
COleClientItem::CreateFromFile ファイルから埋め込み項目を作成します。
COleClientItem::CreateLinkFromClipboard クリップボードからリンク アイテムを作成します。
COleClientItem::CreateLinkFromData データ オブジェクトからリンクアイテムを作成します。
COleClientItem::CreateLinkFromFile ファイルからリンクアイテムを作成します。
COleClientItem::CreateNewItem サーバー アプリケーションを起動して、新しい埋め込み項目を作成します。
COleClientItem::CreateStaticFromClipboard クリップボードから静的項目を作成します。
COleClientItem::CreateStaticFromData データ オブジェクトから静的項目を作成します。
COleClientItem::D eactivate アイテムを非アクティブ化します。
COleClientItem::D eactivateUI コンテナー アプリケーションのユーザー インターフェイスを元の状態に復元します。
COleClientItem::D elete OLE アイテムがリンク アイテムの場合は、そのアイテムを削除または閉じます。
COleClientItem::DoDragDrop ドラッグ アンド ドロップ操作を実行します。
COleClientItem::D oVerb 指定した動詞を実行します。
COleClientItem::D raw OLE 項目を描画します。
COleClientItem::GetActiveView 項目がアクティブ化されているビューを取得します。
COleClientItem::GetCachedExtent OLE 項目の四角形の境界を返します。
COleClientItem::GetClassID 現在の項目のクラス ID を取得します。
COleClientItem::GetClipboardData CopyToClipboard メンバー関数を呼び出すことによってクリップボードに配置されるデータを取得します。
COleClientItem::GetDocument 現在のアイテムを含む COleDocument オブジェクトを返します。
COleClientItem::GetDrawAspect レンダリング用のアイテムの現在のビューを取得します。
COleClientItem::GetExtent OLE 項目の四角形の境界を返します。
COleClientItem::GetIconFromRegistry 特定の CLSID のサーバーに関連付けられているアイコンへのハンドルを取得します。
COleClientItem::GetIconicMetafile アイテムのアイコンの描画に使用するメタファイルを取得します。
COleClientItem::GetInPlaceWindow アイテムのインプレース編集ウィンドウへのポインターを返します。
COleClientItem::GetItemState アイテムの現在の状態を取得します。
COleClientItem::GetLastStatus 最後の OLE 操作の状態を返します。
COleClientItem::GetLinkUpdateOptions リンク アイテム (高度な機能) の更新モードを返します。
COleClientItem::GetType OLE 項目の型 (埋め込み、リンク、または静的) を返します。
COleClientItem::GetUserType 項目の型を記述する文字列を取得します。
COleClientItem::IsInPlaceActive アイテムがインプレース アクティブな場合は TRUE を返します。
COleClientItem::IsLinkUpToDate リンク アイテムがソース ドキュメントと共に最新の状態である場合は TRUE を返します。
COleClientItem::IsModified アイテムが最後に保存されてから変更された場合は TRUE を返します。
COleClientItem::IsOpen アイテムがサーバー アプリケーションで現在開いている場合は TRUE を返します。
COleClientItem::IsRunning アイテムのサーバー アプリケーションが実行されている場合は TRUE を返します。
COleClientItem::OnActivate アクティブ化されたことを項目に通知するためにフレームワークによって呼び出されます。
COleClientItem::OnActivateUI アクティブ化され、そのユーザー インターフェイスを表示する必要があることを項目に通知するために、フレームワークによって呼び出されます。
COleClientItem::OnChange サーバーが OLE 項目を変更したときに呼び出されます。 実装が必要です。
COleClientItem::OnDeactivate 項目が非アクティブ化されたときにフレームワークによって呼び出されます。
COleClientItem::OnDeactivateUI サーバーがインプレース ユーザー インターフェイスを削除したときにフレームワークによって呼び出されます。
COleClientItem::OnGetClipboardData クリップボードにコピーするデータを取得するためにフレームワークによって呼び出されます。
COleClientItem::OnInsertMenus 複合メニューを作成するためにフレームワークによって呼び出されます。
COleClientItem::OnRemoveMenus 複合メニューからコンテナーのメニューを削除するためにフレームワークによって呼び出されます。
COleClientItem::OnSetMenu 複合メニューをインストールおよび削除するためにフレームワークによって呼び出されます。
COleClientItem::OnShowControlBars コントロール バーの表示と非表示を切り替えるためにフレームワークによって呼び出されます。
COleClientItem::OnUpdateFrameTitle フレーム ウィンドウのタイトル バーを更新するためにフレームワークによって呼び出されます。
COleClientItem::ReactivateAndUndo アイテムを再アクティブ化し、最後のインプレース編集操作を元に戻します。
COleClientItem::Release OLE リンク アイテムへの接続を解放し、開いていた場合は閉じます。 クライアント項目を破棄しません。
COleClientItem::Reload ActivateAsの呼び出し後にアイテムを再読み込みします。
COleClientItem::Run アイテムに関連付けられているアプリケーションを実行します。
COleClientItem::SetDrawAspect レンダリングするアイテムの現在のビューを設定します。
COleClientItem::SetExtent OLE 項目の外接する四角形を設定します。
COleClientItem::SetHostNames OLE アイテムの編集時にサーバーに表示される名前を設定します。
COleClientItem::SetIconicMetafile アイテムのアイコンの描画に使用するメタファイルをキャッシュします。
COleClientItem::SetItemRects 項目の外接する四角形を設定します。
COleClientItem::SetLinkUpdateOptions リンク アイテム (高度な機能) の更新モードを設定します。
COleClientItem::SetPrintDevice このクライアント項目の印刷ターゲット デバイスを設定します。
COleClientItem::UpdateLink アイテムのプレゼンテーション キャッシュを更新します。

保護メソッド

名前 説明
COleClientItem::CanActivate インプレース アクティブ化が許可されているかどうかを判断するためにフレームワークによって呼び出されます。
COleClientItem::OnChangeItemPosition 項目の位置が変更されたときにフレームワークによって呼び出されます。
COleClientItem::OnDeactivateAndUndo アクティブ化後に元に戻すためにフレームワークによって呼び出されます。
COleClientItem::OnDiscardUndoState アイテムの元に戻す状態情報を破棄するためにフレームワークによって呼び出されます。
COleClientItem::OnGetClipRect 項目のクリッピング四角形座標を取得するためにフレームワークによって呼び出されます。
COleClientItem::OnGetItemPosition ビューに対する項目の位置を取得するためにフレームワークによって呼び出されます。
COleClientItem::OnGetWindowContext 項目が所定の位置でアクティブ化されたときにフレームワークによって呼び出されます。
COleClientItem::OnScrollBy 項目をビューにスクロールするためにフレームワークによって呼び出されます。
COleClientItem::OnShowItem OLE 項目を表示するためにフレームワークによって呼び出されます。

解説

OLE 項目は、サーバー アプリケーションによって作成および管理されるデータを表します。これは、ユーザーが 1 つのドキュメントのように見えるように、ドキュメントに "シームレスに" 組み込むことができます。 結果は、OLE アイテムと含まれるドキュメントで構成される "複合ドキュメント" になります。

OLE 項目は、埋め込みまたはリンクすることができます。 埋め込まれている場合、そのデータは複合ドキュメントの一部として格納されます。 リンクされている場合、そのデータはサーバー アプリケーションによって作成された別のファイルの一部として格納され、そのファイルへのリンクのみが複合ドキュメントに格納されます。 すべての OLE 項目には、それらを編集するために呼び出す必要があるサーバー アプリケーションを指定する情報が含まれています。

COleClientItem は、サーバー アプリケーションからの要求に応答して呼び出されるオーバーライド可能な関数をいくつか定義します。これらのオーバーライド可能な機能は、通常、通知として機能します。 これにより、サーバー アプリケーションは、OLE アイテムの編集時にユーザーが行った変更をコンテナーに通知したり、編集中に必要な情報を取得したりできます。

COleClientItem は、 COleDocumentCOleLinkingDoc、または COleServerDoc クラスで使用できます。 COleClientItemを使用するには、そこからクラスを派生させ、OnChange メンバー関数を実装します。この関数は、コンテナーが項目に加えられた変更にどのように応答するかを定義します。 インプレース アクティブ化をサポートするには、 OnGetItemPosition メンバー関数をオーバーライドします。 この関数は、OLE 項目の表示位置に関する情報を提供します。

コンテナー インターフェイスの使用の詳細については、「Containers: コンテナーの実装およびActivation記事を参照してください。

Note

Windows SDK は、埋め込みおよびリンクされた項目を "オブジェクト" と参照し、項目の種類を "クラス" と参照します。このリファレンスでは、"item" という用語を使用して、OLE エンティティを対応する C++ オブジェクトと区別し、用語 "type" を使用して OLE カテゴリを C++ クラスと区別します。

継承階層

CObject

CCmdTarget

CDocItem

COleClientItem

要件

ヘッダー: afxole.h

COleClientItem::Activate

この関数を呼び出して、例外がスローされたときに独自の処理を実行できるように、 DoVerb の代わりに指定された動詞を実行します。

void Activate(
    LONG nVerb,
    CView* pView,
    LPMSG lpMsg = NULL);

パラメーター

nVerb
実行する動詞を指定します。 次のいずれかを指定できます。

Value 意味 記号
- 0 主動詞 OLEIVERB_PRIMARY
- 1 第 2 動詞 (なし)
- 1 編集用のアイテムを表示する OLEIVERB_SHOW
- 2 別のウィンドウでアイテムを編集する OLEIVERB_OPEN
- 3 アイテムを非表示にする OLEIVERB_HIDE

通常、-1 値は別の動詞のエイリアスです。 開く編集がサポートされていない場合、-2 は -1 と同じ効果を持ちます。 その他の値については、Windows SDK IOleObject::D oVerb を参照してください。

pView
OLE 項目を含むコンテナー ビュー ウィンドウへのポインター。これは、インプレース アクティブ化のためにサーバー アプリケーションによって使用されます。 コンテナーがインプレース アクティブ化をサポートしていない場合、このパラメーターは NULL にする必要があります。

lpMsg
項目がアクティブ化される原因となったメッセージへのポインター。

解説

サーバー アプリケーションが Microsoft Foundation クラス ライブラリを使用して作成された場合、この関数により、対応するCOleServerItem オブジェクトの OnDoVerb メンバー関数が実行されます。

主動詞が Edit で、 nVerb パラメーターに 0 が指定されている場合は、OLE 項目の編集を許可するためにサーバー アプリケーションが起動されます。 コンテナー アプリケーションがインプレース アクティブ化をサポートしている場合は、その場で編集を行うことができます。 コンテナーがインプレース アクティブ化をサポートしていない場合 (または Open 動詞が指定されている場合)、サーバーは別のウィンドウで起動され、そこで編集を行うことができます。 通常、コンテナー アプリケーションのユーザーが OLE 項目をダブルクリックすると、 nVerb パラメーターの主動詞の値によって、ユーザーが実行できるアクションが決まります。 ただし、サーバーがサポートするアクションが 1 つだけの場合、 nVerb パラメーターで指定されている値に関係なく、そのアクションが実行されます。

詳細については、Windows SDK の「 IOleObject::D oVerb 」を参照してください。

COleClientItem::ActivateAs

OLE のオブジェクト変換機能を使用して、 clsidNew で指定された型の項目であるかのように項目をアクティブにします。

virtual BOOL ActivateAs(
    LPCTSTR lpszUserType,
    REFCLSID clsidOld,
    REFCLSID clsidNew);

パラメーター

lpszUserType
"Word 文書" など、ターゲット ユーザーの種類を表す文字列へのポインター。

clsidOld
アイテムの現在のクラス ID への参照。 クラス ID は、リンクでない限り、格納されている実際のオブジェクトの型を表す必要があります。 その場合は、リンクが参照する項目の CLSID である必要があります。 COleConvertDialog は、アイテムの正しいクラス ID を自動的に提供します。

clsidNew
ターゲット クラス ID への参照。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

これは、 COleConvertDialog::D oConvert によって自動的に呼び出されます。 通常は直接呼び出されません。

COleClientItem::AttachDataObject

OLE アイテム内のデータにアクセスするための COleDataObject を初期化するには、この関数を呼び出します。

void AttachDataObject(COleDataObject& rDataObject) const;

パラメーター

rDataObject
OLE アイテム内のデータにアクセスできるように初期化される COleDataObject オブジェクトへの参照。

COleClientItem::CanActivate

ユーザーが OLE 項目のインプレース アクティブ化を要求したときにフレームワークによって呼び出されます。この関数の戻り値は、インプレース アクティブ化を許可するかどうかを決定します。

virtual BOOL CanActivate();

戻り値

インプレース アクティブ化が許可されている場合は 0 以外。それ以外の場合は 0。

解説

コンテナーに有効なウィンドウがある場合、既定の実装ではインプレース アクティブ化が許可されます。 アクティブ化要求を受け入れるか拒否するための特別なロジックを実装するには、この関数をオーバーライドします。 たとえば、OLE アイテムが小さすぎる場合や、現在表示されていない場合は、アクティブ化要求を拒否できます。

詳細については、Windows SDK の「 IOleInPlaceSite::CanInPlaceActivate 」を参照してください。

COleClientItem::CanCreateFromData

コンテナー アプリケーションが、指定された COleDataObject オブジェクトから埋め込みオブジェクトを作成できるかどうかを確認します。

static BOOL PASCAL CanCreateFromData(const COleDataObject* pDataObject);

パラメーター

pDataObject
OLE アイテムの作成元となる COleDataObject オブジェクトへのポインター。

戻り値

コンテナーが COleDataObject オブジェクトから埋め込みオブジェクトを作成できる場合は 0 以外、それ以外の場合は 0。

解説

COleDataObject クラスは、クリップボード、ドラッグ アンド ドロップ、または埋め込み OLE 項目からさまざまな形式のデータを取得するために、データ転送で使用されます。

コンテナーでは、この関数を使用して、[貼り付けの編集] コマンドと [特殊な貼り付けの編集] コマンドを有効または無効にすることができます。

詳細については、「 Data オブジェクトとデータ ソース (OLE)」を参照してください。

COleClientItem::CanCreateLinkFromData

コンテナー アプリケーションが、指定された COleDataObject オブジェクトからリンク オブジェクトを作成できるかどうかを確認します。

static BOOL PASCAL CanCreateLinkFromData(const COleDataObject* pDataObject);

パラメーター

pDataObject
OLE アイテムの作成元となる COleDataObject オブジェクトへのポインター。

戻り値

コンテナーが COleDataObject オブジェクトからリンク オブジェクトを作成できる場合は 0 以外。

解説

COleDataObject クラスは、クリップボード、ドラッグ アンド ドロップ、または埋め込み OLE 項目からさまざまな形式のデータを取得するために、データ転送で使用されます。

コンテナーでは、この関数を使用して、特殊な貼り付け編集コマンドと貼り付けリンクの編集コマンドを有効または無効にすることができます。

詳細については、「 Data オブジェクトとデータ ソース (OLE)」を参照してください。

COleClientItem::CanPaste

埋め込み OLE 項目をクリップボードから貼り付けることができるかどうかを確認するには、この関数を呼び出します。

static BOOL PASCAL CanPaste();

戻り値

埋め込み OLE 項目をクリップボードから貼り付けることができる場合は 0 以外。それ以外の場合は 0。

解説

詳細については、Windows SDK の「 OleGetClipboard および OleQueryCreateFromData を参照してください。

この関数を呼び出して、リンクされた OLE アイテムをクリップボードから貼り付けることができるかどうかを確認します。

static BOOL PASCAL CanPasteLink();

戻り値

リンクされた OLE 項目をクリップボードから貼り付けることができる場合は 0 以外。それ以外の場合は 0。

解説

詳細については、Windows SDK の「 OleGetClipboard および OleQueryLinkFromData を参照してください。

COleClientItem::Close

この関数を呼び出して、OLE 項目の状態を実行中の状態から読み込まれた状態に変更します。つまり、ハンドラーをメモリに読み込んでもサーバーが実行されていない状態に変更します。

void Close(OLECLOSE dwCloseOption = OLECLOSE_SAVEIFDIRTY);

パラメーター

dwCloseOption
読み込まれた状態に戻ったときに OLE 項目を保存する状況を指定するフラグ。 次のいずれかの値になります。

  • OLECLOSE_SAVEIFDIRTY OLE 項目を保存します。

  • OLECLOSE_NOSAVE OLE アイテムを保存しないでください。

  • OLECLOSE_PROMPTSAVE OLE 項目を保存するかどうかをユーザーに確認します。

解説

OLE 項目が実行されていない場合、この関数は無効です。

詳細については、Windows SDK IOleObject::Close を参照してください。

COleClientItem::COleClientItem

COleClientItem オブジェクトを構築し、コンテナー ドキュメントのドキュメント 項目のコレクションに追加します。これは、C++ オブジェクトのみを構築し、OLE の初期化を実行しません。

COleClientItem(COleDocument* pContainerDoc = NULL);

パラメーター

pContainerDoc
この項目を含むコンテナー ドキュメントへのポインター。 これは、任意の COleDocument 派生物にすることができます。

解説

NULL ポインターを渡した場合、コンテナー ドキュメントに追加は行われません。 COleDocument::AddItem を明示的に呼び出す必要があります。

OLE 項目を使用する前に、次のいずれかの作成メンバー関数を呼び出す必要があります。

COleClientItem::ConvertTo

このメンバー関数を呼び出して、項目を clsidNew で指定された型に変換します。

virtual BOOL ConvertTo(REFCLSID clsidNew);

パラメーター

clsidNew
ターゲット型のクラス ID。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

これは、 COleConvertDialog によって自動的に呼び出されます。 直接呼び出す必要はありません。

COleClientItem::CopyToClipboard

OLE 項目をクリップボードにコピーするには、この関数を呼び出します。

void CopyToClipboard(BOOL bIncludeLink = FALSE);

パラメーター

bIncludeLink
リンク情報をクリップボードにコピーする必要がある場合は TRUE。リンクアイテムを貼り付けることができます。それ以外の場合は FALSE。

解説

通常、この関数は、[編集] メニューから [コピー] または [切り取り] コマンドのメッセージ ハンドラーを記述するときに呼び出します。 Copy または Cut コマンドを実装する場合は、コンテナー アプリケーションで項目の選択を実装する必要があります。

詳細については、Windows SDK の「 OleSetClipboard 」を参照してください。

COleClientItem::CreateCloneFrom

指定した OLE 項目のコピーを作成するには、この関数を呼び出します。

BOOL CreateCloneFrom(const COleClientItem* pSrcItem);

パラメーター

pSrcItem
複製する OLE 項目へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

コピーはソースアイテムと同じです。 この関数を使用すると、元に戻す操作をサポートできます。

COleClientItem::CreateFromClipboard

クリップボードの内容から埋め込み項目を作成するには、この関数を呼び出します。

BOOL CreateFromClipboard(
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

通常、この関数は、[編集] メニューの [貼り付け] コマンドのメッセージ ハンドラーから呼び出します。 ([貼り付け] コマンドは、 CanPaste メンバー関数は 0 以外の値を返します。

詳細については、Windows SDK の「 OLERENDER および FORMATETC 」を参照してください。

COleClientItem::CreateFromData

この関数を呼び出して、 COleDataObject オブジェクトから埋め込みアイテムを作成します。

BOOL CreateFromData(
    COleDataObject* pDataObject,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

pDataObject
OLE アイテムの作成元となる COleDataObject オブジェクトへのポインター。

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

クリップボードからの貼り付けやドラッグ アンド ドロップ操作などのデータ転送操作は、サーバー アプリケーションによって提供される情報を含む COleDataObject オブジェクトを提供します。 これは通常、 CView::OnDrop のオーバーライドで使用されます。

詳細については、Windows SDK の「 OleCreateFromDataOLERENDER、および FORMATETC を参照してください。

COleClientItem::CreateFromFile

この関数を呼び出して、ファイルから埋め込み OLE 項目を作成します。

BOOL CreateFromFile(
    LPCTSTR lpszFileName,
    REFCLSID clsid = CLSID_NULL,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

lpszFileName
OLE 項目の作成元となるファイルの名前へのポインター。

clsid
将来の使用のために予約済み。

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

フレームワークは、 COleInsertDialog::CreateItem ユーザーが [ファイルから作成] ボタンを選択したときに [オブジェクトの挿入] ダイアログ ボックスから [OK] を選択した場合に、この関数を呼び出します。

詳細については、Windows SDK の「 OleCreateFromFileOLERENDER、および FORMATETC を参照してください。

COleClientItem::CreateLinkFromClipboard

クリップボードの内容からリンクアイテムを作成するには、この関数を呼び出します。

BOOL CreateLinkFromClipboard(
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

通常、この関数は、[編集] メニューの [リンクの貼り付け] コマンドのメッセージ ハンドラーから呼び出します。 ([リンクの貼り付け] コマンドは、 の既定の実装で有効になっていますCOleDocument リンク可能な OLE アイテムがクリップボードに含まれている場合)。

詳細については、Windows SDK の「 OLERENDER および FORMATETC 」を参照してください。

COleClientItem::CreateLinkFromData

この関数を呼び出して、 COleDataObject オブジェクトからリンクアイテムを作成します。

BOOL CreateLinkFromData(
    COleDataObject* pDataObject,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

pDataObject
OLE アイテムの作成元となる COleDataObject オブジェクトへのポインター。

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ユーザーがリンクを作成する必要があることを示すときに、ドロップ操作中にこれを呼び出します。 また、[貼り付けの編集] コマンドを処理するためにも使用できます。 これは、リンク オプションが選択されたときに、 COleClientItem::CreateLinkFromClipboard および COlePasteSpecialDialog::CreateItem のフレームワークによって呼び出されます。

詳細については、Windows SDK の「 OleCreateLinkFromDataOLERENDER、および FORMATETC を参照してください。

COleClientItem::CreateLinkFromFile

この関数を呼び出して、ファイルからリンクされた OLE アイテムを作成します。

BOOL CreateLinkFromFile(
    LPCTSTR lpszFileName,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

lpszFileName
OLE 項目の作成元となるファイルの名前へのポインター。

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

[ファイルから作成] ボタンを選択し、[リンク] チェック ボックスをオンにすると、ユーザーが [オブジェクトの挿入] ダイアログ ボックスで [OK] を選択した場合、フレームワークはこの関数を呼び出します。 これは、 COleInsertDialog::CreateItem から呼び出されます。

詳細については、Windows SDK の「 OleCreateLinkToFileOLERENDER、および FORMATETC を参照してください。

COleClientItem::CreateNewItem

埋め込み項目を作成するには、この関数を呼び出します。この関数は、ユーザーが OLE 項目を作成できるようにするサーバー アプリケーションを起動します。

BOOL CreateNewItem(
    REFCLSID clsid,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

clsid
作成する OLE アイテムの種類を一意に識別する ID。

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ユーザーが [新規作成] ボタンを選択したときに [オブジェクトの挿入] ダイアログ ボックスで [OK] を選択した場合、フレームワークはこの関数を呼び出します。

詳細については、Windows SDK の「 OleCreateOLERENDER、および FORMATETC 」を参照してください。

COleClientItem::CreateStaticFromClipboard

クリップボードの内容から静的項目を作成するには、この関数を呼び出します。

BOOL CreateStaticFromClipboard(
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

静的項目にはプレゼンテーション データが含まれますが、ネイティブ データは含まれません。その結果、編集できません。 通常、この関数は、 CreateFromClipboard メンバー関数が失敗した場合に呼び出します。

詳細については、Windows SDK の「 OLERENDER および FORMATETC 」を参照してください。

COleClientItem::CreateStaticFromData

この関数を呼び出して、 COleDataObject オブジェクトから静的項目を作成します。

BOOL CreateStaticFromData(
    COleDataObject* pDataObject,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

パラメーター

pDataObject
OLE アイテムの作成元となる COleDataObject オブジェクトへのポインター。

render
サーバーが OLE 項目をレンダリングする方法を指定するフラグ。 使用可能な値については、Windows SDK の「 OLERENDER 」を参照してください。

cfFormat
OLE アイテムの作成時にキャッシュするクリップボード のデータ形式を指定します。

lpFormatEtc
renderがOLERENDER_FORMATまたはOLERENDER_DRAWの場合に使用されるFORMATETC構造体へのポインター。 cfFormat で指定したクリップボード形式以外に追加の形式情報を指定する場合にのみ、このパラメーターの値を指定します。 このパラメーターを省略すると、 FORMATETC 構造体の他のフィールドに既定値が使用されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

静的項目にはプレゼンテーション データが含まれますが、ネイティブ データは含まれません。したがって、編集することはできません。 これは基本的に CreateStaticFromClipboardと同じですが クリップボードだけでなく任意の COleDataObjectから静的アイテムを作成できます。

COlePasteSpecialDialog::CreateItem Static が選択されている場合に使用されます。

詳細については、Windows SDK の「 OleCreateStaticFromDataOLERENDER、および FORMATETC を参照してください。

COleClientItem::D eactivate

OLE アイテムを非アクティブ化し、関連付けられているリソースを解放するには、この関数を呼び出します。

void Deactivate();

解説

通常は、ユーザーが項目の境界外のクライアント領域でマウスをクリックしたときに、インプレースアクティブ OLE アイテムを非アクティブにします。 OLE 項目を非アクティブ化すると元に戻す状態が破棄され、 ReactivateAndUndo メンバー関数を呼び出すことができなくなります。

アプリケーションで元に戻すことがサポートされている場合は、 Deactivateを呼び出さないでください。代わりに、 DeactivateUI を呼び出します。

詳細については、Windows SDK IOleInPlaceObject::InPlaceDeactivate を参照してください。

COleClientItem::D eactivateUI

ユーザーがインプレースでアクティブ化された項目を非アクティブ化するときに、この関数を呼び出します。

void DeactivateUI();

解説

この関数は、コンテナー アプリケーションのユーザー インターフェイスを元の状態に戻し、インプレース アクティブ化のために作成されたメニューやその他のコントロールを非表示にします。

この関数は、アイテムの元に戻す状態情報をフラッシュしません。 この情報は、 ReactivateAndUndo を使用してサーバー アプリケーションで元に戻すコマンドを実行できるように保持されます。これは、アイテムを非アクティブ化した直後にコンテナーの元に戻すコマンドが選択された場合です。

詳細については、Windows SDK IOleInPlaceObject::InPlaceDeactivate を参照してください。

COleClientItem::D elete

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

void Delete(BOOL bAutoDelete = TRUE);

パラメーター

bAutoDelete
アイテムをドキュメントから削除するかどうかを指定します。

解説

この関数は、 Release メンバー関数を呼び出します。これにより、アイテムの C++ オブジェクトが削除され、OLE アイテムがドキュメントから完全に削除されます。 OLE 項目が埋め込まれている場合、そのアイテムのネイティブ データは削除されます。 これは常に実行中のサーバーを閉じます。したがって、アイテムが開いているリンクである場合、この関数はそれを閉じます。

COleClientItem::DoDragDrop

DoDragDrop メンバー関数を呼び出して、ドラッグ アンド ドロップ操作を実行します。

DROPEFFECT DoDragDrop(
    LPCRECT lpItemRect,
    CPoint ptOffset,
    BOOL bIncludeLink = FALSE,
    DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
    LPCRECT lpRectStartDrag = NULL);

パラメーター

lpItemRect
クライアント座標 (ピクセル) での画面上の項目の四角形。

ptOffset
ドラッグ時のマウス位置 lpItemRect からのオフセット。

bIncludeLink
リンク データをクリップボードにコピーする必要がある場合は、これを TRUE に設定します。 サーバー アプリケーションがリンクをサポートしていない場合は、FALSE に設定します。

dwEffects
ドラッグ操作でドラッグ 元が許可する効果を指定します。

lpRectStartDrag
ドラッグが実際に開始される場所を定義する四角形へのポインター。 詳細については、「解説」を参照してください。

戻り値

DROPEFFECT 値。 DROPEFFECT_MOVEされている場合は、元のデータを削除する必要があります。

解説

ドラッグ アンド ドロップ操作はすぐには開始されません。 マウス カーソルが lpRectStartDrag で指定された四角形を離れるまで、または指定したミリ秒が経過するまで待ちます。 lpRectStartDrag が NULL の場合、四角形のサイズは 1 ピクセルです。

遅延時間は、レジストリ キーの設定によって指定されます。 遅延時間を変更するには、CWinApp::WriteProfileString または CWinApp::WriteProfileInt を呼び出します。 遅延時間を指定しない場合は、既定値の 200 ミリ秒が使用されます。 ドラッグの遅延時間は次のように格納されます。

  • Windows NT ドラッグの遅延時間は HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay に格納されます。

  • Windows 3.x ドラッグの遅延時間は、WIN.INI ファイルの [Windows} セクションに格納されます。

  • Windows 95/98 ドラッグの遅延時間は、キャッシュされたバージョンの WIN.INI に格納されます。

ドラッグの遅延情報がレジストリまたは .INI ファイルのいずれかに格納される方法について詳しくは、Windows SDK の WriteProfileString に関する記事を参照してください。

COleClientItem::D oVerb

DoVerbを呼び出して、指定した動詞を実行します。

virtual BOOL DoVerb(
    LONG nVerb,
    CView* pView,
    LPMSG lpMsg = NULL);

パラメーター

nVerb
実行する動詞を指定します。 これには、次のいずれかを含めることができます。

Value 意味 記号
- 0 主動詞 OLEIVERB_PRIMARY
- 1 第 2 動詞 (なし)
- 1 編集用のアイテムを表示する OLEIVERB_SHOW
- 2 別のウィンドウでアイテムを編集する OLEIVERB_OPEN
- 3 アイテムを非表示にする OLEIVERB_HIDE

通常、-1 値は別の動詞のエイリアスです。 開く編集がサポートされていない場合、-2 は -1 と同じ効果を持ちます。 その他の値については、Windows SDK IOleObject::D oVerb を参照してください。

pView
ビュー ウィンドウへのポインター。これは、インプレース アクティブ化のためにサーバーによって使用されます。 コンテナー アプリケーションでインプレース アクティブ化が許可されていない場合、このパラメーターは NULL にする必要があります。

lpMsg
項目がアクティブ化される原因となったメッセージへのポインター。

戻り値

動詞が正常に実行された場合は 0 以外。それ以外の場合は 0。

解説

この関数は、 Activate メンバー関数を呼び出して動詞を実行します。 また、例外をキャッチし、スローされた場合はメッセージ ボックスをユーザーに表示します。

主動詞が Edit で、 nVerb パラメーターに 0 が指定されている場合は、OLE 項目の編集を許可するためにサーバー アプリケーションが起動されます。 コンテナー アプリケーションがインプレース アクティブ化をサポートしている場合は、その場で編集を行うことができます。 コンテナーがインプレース アクティブ化をサポートしていない場合 (または Open 動詞が指定されている場合)、サーバーは別のウィンドウで起動され、そこで編集を行うことができます。 通常、コンテナー アプリケーションのユーザーが OLE 項目をダブルクリックすると、 nVerb パラメーターの主動詞の値によって、ユーザーが実行できるアクションが決まります。 ただし、サーバーがサポートするアクションが 1 つだけの場合、 nVerb パラメーターで指定されている値に関係なく、そのアクションが実行されます。

COleClientItem::D raw

この関数を呼び出して、指定したデバイス コンテキストを使用して、指定した外接する四角形に OLE 項目を描画します。

BOOL Draw(
    CDC* pDC,
    LPCRECT lpBounds,
    DVASPECT nDrawAspect = (DVASPECT)-1);

パラメーター

pDC
OLE アイテムの描画に使用 CDC オブジェクトへのポインター。

lpBounds
OLE アイテムを描画する外接する四角形を定義する CRect オブジェクトまたは RECT 構造体へのポインター (デバイス コンテキストによって決定される論理単位)。

nDrawAspect
OLE 項目の側面、つまり表示方法を指定します。 nDrawAspect が -1 の場合、SetDrawAspect を使用して設定された最後の縦横比が使用されます。 このフラグに使用できる値の詳細については、「 SetDrawAspectを参照してください。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数は、COleServerItemOnDraw メンバー関数によって作成された OLE 項目のメタファイル表現を使用できます。

通常、画面表示には Draw を使用し、画面デバイス コンテキストを pDC として渡します。 この場合は、最初の 2 つのパラメーターのみを指定する必要があります。

lpBounds パラメーターは、ターゲット デバイス コンテキスト (現在のマッピング モードを基準とする) の四角形を識別します。 レンダリングには画像のスケーリングが含まれる場合があり、コンテナー アプリケーションで使用して、表示されるビューと最終的な印刷イメージの間で拡大縮小するビューを適用できます。

詳細については、Windows SDK の「 IViewObject::D raw 」を参照してください。

COleClientItem::GetActiveView

アイテムがインプレースアクティブ化されているビューを返します。

CView* GetActiveView() const;

戻り値

ビューへのポインター。それ以外の場合、アイテムがインプレースアクティブ化されていない場合は NULL。

COleClientItem::GetCachedExtent

OLE 項目のサイズを取得するには、この関数を呼び出します。

BOOL GetCachedExtent(
    LPSIZE lpSize,
    DVASPECT nDrawAspect = (DVASPECT)-1);

パラメーター

lpSize
サイズ情報を受け取る SIZE 構造体または CSize オブジェクトへのポインター。

nDrawAspect
境界を取得する OLE アイテムの側面を指定します。 指定できる値については、「 SetDrawAspect」を参照してください。

戻り値

成功した場合は 0 以外。OLE 項目が空白の場合は 0。

解説

この関数は、 GetExtent と同じ情報を提供します。 ただし、 GetCachedExtent を呼び出して、 OnChange などの他の OLE ハンドラーの処理中にエクステント情報を取得。 寸法はMM_HIMETRIC単位で表示されます。

これは、GetCachedExtentがこの項目の範囲を取得するために IOleObject インターフェイスを使用するのではなく、IViewObject2 インターフェイスを使用するためです。 IViewObject2 COM オブジェクトは、IViewObject::D raw の前の呼び出しで使用されたエクステント情報をキャッシュします。

詳細については、Windows SDK IViewObject2::GetExtent を参照してください。

COleClientItem::GetClassID

項目のクラス ID を、 pClassID が指すメモリに返します。

void GetClassID(CLSID* pClassID) const;

パラメーター

pClassID
クラス ID を取得する CLSID 型の識別子へのポインター。 CLSID の詳細については、Windows SDK を参照してください。

解説

クラス ID は、アイテムを編集するアプリケーションを一意に識別する 128 ビットの番号です。

詳細については、Windows SDK IPersist::GetClassID を参照してください。

COleClientItem::GetClipboardData

この関数を呼び出して、CopyToClipboard メンバー関数の呼び出しによってクリップボードに配置されるすべてのデータを含むCOleDataSource オブジェクトを取得します。

void GetClipboardData(
    COleDataSource* pDataSource,
    BOOL bIncludeLink = FALSE,
    LPPOINT lpOffset = NULL,
    LPSIZE lpSize = NULL);

パラメーター

pDataSource
OLE アイテムに含まれるデータを受け取る COleDataSource オブジェクトへのポインター。

bIncludeLink
リンク データを含める必要がある場合は TRUE。それ以外の場合は FALSE。

lpOffset
オブジェクトの原点からのマウス カーソルのオフセット (ピクセル単位)。

lpSize
オブジェクトのサイズ (ピクセル単位)。

解説

GetClipboardData は、 OnGetClipboardData の既定の実装として呼び出されます。 CopyToClipboardが提供するデータ形式に加えてデータ形式を提供する場合にのみ、OnGetClipboardDataをオーバーライドします。 これらの形式を CopyToClipboard の呼び出しの前または呼び出し後にCOleDataSource オブジェクトに配置し、COleDataSource オブジェクトを COleDataSource::SetClipboard 関数に渡します。 たとえば、コンテナー ドキュメント内の OLE 項目の位置をクリップボードに添付する場合は、その情報を渡すための独自の形式を定義し、CopyToClipboardを呼び出す前にCOleDataSourceに配置します。

COleClientItem::GetDocument

OLE 項目を含むドキュメントへのポインターを取得するには、この関数を呼び出します。

COleDocument* GetDocument() const;

戻り値

OLE 項目を含むドキュメントへのポインター。 アイテムがドキュメントの一部でない場合は NULL。

解説

このポインターを使用すると、COleClientItem コンストラクターに引数として渡したCOleDocument オブジェクトにアクセスできます。

COleClientItem::GetDrawAspect

GetDrawAspectメンバー関数を呼び出して、アイテムの現在の "aspect" (ビュー) を決定します。

DVASPECT GetDrawAspect() const;

戻り値

SetDrawAspect のリファレンスに値がリストされている DVASPECT 列挙体の値。

解説

アスペクトは、アイテムのレンダリング方法を指定します。

COleClientItem::GetExtent

OLE 項目のサイズを取得するには、この関数を呼び出します。

BOOL GetExtent(
    LPSIZE lpSize,
    DVASPECT nDrawAspect = (DVASPECT)- 1);

パラメーター

lpSize
サイズ情報を受け取る SIZE 構造体または CSize オブジェクトへのポインター。

nDrawAspect
境界を取得する OLE アイテムの側面を指定します。 指定できる値については、「 SetDrawAspect」を参照してください。

戻り値

成功した場合は 0 以外。OLE 項目が空白の場合は 0。

解説

サーバー アプリケーションが Microsoft Foundation クラス ライブラリを使用して作成された場合、この関数により、対応するCOleServerItem オブジェクトの OnGetExtent メンバー関数が呼び出されます。 取得したサイズは、 SetExtent メンバー関数によって最後に設定されたサイズと異なる場合があることに注意してください。 SetExtent で指定されたサイズは提案として扱われます。 寸法はMM_HIMETRIC単位で表示されます。

Note

OnChange など、OLE ハンドラーの処理中にGetExtentを呼び出さないでください。 代わりに GetCachedExtent を呼び出します。

詳細については、Windows SDK の「 IOleObject::GetExtent 」を参照してください。

COleClientItem::GetIconFromRegistry

このメンバー関数を呼び出して、特定の CLSID のサーバーに関連付けられているアイコン リソースへのハンドルを取得します。

HICON GetIconFromRegistry() const;

static HICON GetIconFromRegistry(CLSID& clsid);

パラメーター

clsid
アイコンに関連付けられているサーバーの CLSID への参照。

戻り値

アイコン リソースの有効なハンドル。サーバーのアイコンまたは既定のアイコンが見つからない場合は NULL。

解説

このメンバー関数は、サーバーが既に実行されている場合でも、サーバーを起動したり、アイコンを動的に取得したりしません。 代わりに、このメンバー関数は、サーバーの実行可能イメージを開き、登録時にサーバーに関連付けられている静的アイコンを取得します。

COleClientItem::GetIconicMetafile

アイテムのアイコンの描画に使用するメタファイルを取得します。

HGLOBAL GetIconicMetafile();

戻り値

成功した場合のメタファイルへのハンドル。それ以外の場合は NULL。

解説

現在のアイコンがない場合は、既定のアイコンが返されます。 これは MFC/OLE ダイアログによって自動的に呼び出され、通常は直接呼び出されません。

また、この関数は SetIconicMetafile を呼び出して、後で使用するためにメタファイルをキャッシュします。

COleClientItem::GetInPlaceWindow

GetInPlaceWindowメンバー関数を呼び出して、インプレース編集のためにアイテムが開かれたウィンドウへのポインターを取得します。

CWnd* GetInPlaceWindow();

戻り値

アイテムのインプレース編集ウィンドウへのポインター。アイテムがアクティブでない場合、またはそのサーバーが使用できない場合は NULL。

解説

この関数は、インプレースアクティブなアイテムに対してのみ呼び出す必要があります。

COleClientItem::GetItemState

OLE アイテムの現在の状態を取得するには、この関数を呼び出します。

UINT GetItemState() const;

戻り値

COleClientItem::ItemState列挙値。emptyStateloadedStateopenStateactiveStateactiveUIStateのいずれかになります。 これらの状態については、「Containers: Client-Item Statesに関する記事を参照してください。

解説

OLE 項目の状態が変化したときに通知を受け取る場合は、 OnChange メンバー関数を使用します。

詳細については、「 Containers: Client-Item States」を参照してください。

COleClientItem::GetLastStatus

最後の OLE 操作の状態コードを返します。

SCODE GetLastStatus() const;

戻り値

SCODE 値。

解説

FALSE の BOOL 値を返すメンバー関数、または NULL を返すその他のメンバー関数の場合、 GetLastStatus は、より詳細なエラー情報を返します。 ほとんどの OLE メンバー関数では、より重大なエラーに対して例外がスローされます。 SCODE の解釈に関する具体的な情報は、最後に SCODE 値を返した基になる OLE 呼び出しによって異なります。

SCODE の詳細については、Windows SDK ドキュメントの「 COM エラー コードの構造 を参照してください。

COleClientItem::GetLinkUpdateOptions

OLE 項目のリンク更新オプションの現在の値を取得するには、この関数を呼び出します。

OLEUPDATE GetLinkUpdateOptions();

戻り値

次のいずれかの値です。

  • OLEUPDATE_ALWAYS可能な限りリンク アイテムを更新します。 このオプションは、[リンク] ダイアログ ボックスの [リンクの自動更新] ラジオ ボタンをサポートしています。

  • OLEUPDATE_ONCALLコンテナー アプリケーションからの要求時にのみリンクアイテムを更新します ( UpdateLink メンバー関数が呼び出されたとき)。 このオプションは、[リンク] ダイアログ ボックスの [リンクの手動更新] ラジオ ボタンをサポートします。

解説

これは高度な操作です。

この関数は、 COleLinksDialog クラスによって自動的に呼び出されます。

詳細については、Windows SDK IOleLink::GetUpdateOptions を参照してください。

COleClientItem::GetType

この関数を呼び出して、OLE 項目が埋め込まれているかリンクされているか、静的かを判断します。

OLE_OBJTYPE GetType() const;

戻り値

次のいずれかの値を持つ符号なし整数。

  • OT_LINK OLE 項目はリンクです。

  • OT_EMBEDDED OLE 項目が埋め込まれています。

  • OT_STATIC OLE アイテムは静的です。つまり、ネイティブ データではなくプレゼンテーション データのみが含まれるため、編集できません。

COleClientItem::GetUserType

この関数を呼び出して、OLE アイテムの種類を説明するユーザーに表示される文字列 ("Word 文書" など) を取得します。

void GetUserType(
    USERCLASSTYPE nUserClassType,
    CString& rString);

パラメーター

nUserClassType
OLE 項目の型を記述する文字列の目的のバリアントを示す値。 これには、次のいずれかの値を指定できます。

  • USERCLASSTYPE_FULL ユーザーに表示される完全な型名。

  • USERCLASSTYPE_SHORTポップアップ メニューと [リンクの編集] ダイアログ ボックスで使用する短い名前 (最大 15 文字)。

  • USERCLASSTYPE_APPNAME クラスにサービスを提供するアプリケーションの名前。

rString
OLE アイテムの型を記述する文字列が返される CString オブジェクトへの参照。

解説

多くの場合、これはシステム登録データベースのエントリです。

完全な型名が要求されても使用できない場合は、代わりに短い名前が使用されます。 登録データベースに OLE アイテムの種類のエントリが見つからない場合、または OLE アイテムの種類に登録されているユーザー型がない場合は、現在 OLE アイテムに格納されているユーザーの種類が使用されます。 そのユーザー型名が空の文字列の場合は、"Unknown Object" が使用されます。

詳細については、Windows SDK の「 IOleObject::GetUserType 」を参照してください。

COleClientItem::IsInPlaceActive

OLE アイテムがインプレース アクティブかどうかを確認するには、この関数を呼び出します。

BOOL IsInPlaceActive() const;

戻り値

OLE 項目がインプレースアクティブの場合は 0 以外。それ以外の場合は 0。

解説

アイテムがインプレースで編集されているかどうかに応じて、さまざまなロジックを実行するのが一般的です。 この関数は、現在の項目の状態が activeStateactiveUIStateのどちらと等しいかをチェックします。

COleClientItem::IsLinkUpToDate

OLE 項目が最新かどうかを確認するには、この関数を呼び出します。

BOOL IsLinkUpToDate() const;

戻り値

OLE 項目が最新の場合は 0 以外。それ以外の場合は 0。

解説

リンクされたアイテムは、ソース ドキュメントが更新された場合、古い状態になる可能性があります。 その中にリンクを含む埋め込みアイテムも、同様に古くなる可能性があります。 この関数は、OLE 項目の再帰チェックを実行します。 OLE アイテムが最新でないかどうかを判断すると、実際に更新を実行する場合と同じくらいコストがかかる場合があることに注意してください。

これは、 COleLinksDialog 実装によって自動的に呼び出されます。

詳細については、Windows SDK の「 IOleObject::IsUpToDate 」を参照してください。

COleClientItem::IsModified

OLE アイテムがダーティかどうかを確認するには、この関数を呼び出します (最後に保存されてから変更されます)。

BOOL IsModified() const;

戻り値

OLE 項目がダーティの場合は 0 以外。それ以外の場合は 0。

解説

詳細については、Windows SDK IPersistStorage::IsDirty を参照してください。

COleClientItem::IsOpen

OLE アイテムが開いているかどうかを確認するには、この関数を呼び出します。つまり、別のウィンドウで実行されているサーバー アプリケーションのインスタンスで開きます。

BOOL IsOpen() const;

戻り値

OLE 項目が開いている場合は 0 以外。それ以外の場合は 0。

解説

これは、ハッチング パターンを使用してオブジェクトを描画するタイミングを決定するために使用されます。 開いているオブジェクトには、オブジェクトの上にハッチング パターンが描画されている必要があります。 これを行うには、 CRectTracker オブジェクトを使用できます。

COleClientItem::IsRunning

OLE 項目が実行されているかどうかを確認するには、この関数を呼び出します。つまり、項目が読み込まれ、サーバー アプリケーションで実行されているかどうか。

BOOL IsRunning() const;

戻り値

OLE 項目が実行されている場合は 0 以外。それ以外の場合は 0。

解説

詳細については、Windows SDK の「 OleIsRunning 」を参照してください。

COleClientItem::OnActivate

項目がアクティブになったばかりであることを通知するためにフレームワークによって呼び出されます。

virtual void OnActivate();

解説

この関数は、ユーザー インターフェイスがコンテナー アプリケーションにインストールされていることを示すのではなく、サーバーが実行されていることを示すために呼び出されることに注意してください。 この時点で、オブジェクトにはアクティブなユーザー インターフェイスがありません ( activeUIStateされていません)。 メニューまたはツール バーがインストールされていません。 OnActivateUI メンバー関数は、その場合に呼び出されます。

既定の実装では、OLE_CHANGEDSTATEをパラメーターとして使用して OnChange メンバー関数を呼び出します。 アイテムがインプレースアクティブになったときにカスタム処理を実行するには、この関数をオーバーライドします。

COleClientItem::OnActivateUI

フレームワークは、オブジェクトがアクティブな UI 状態になったときに OnActivateUI を呼び出します。

virtual void OnActivateUI();

解説

これで、オブジェクトのツール バーとメニューがインストールされました。

既定の実装では、後の GetServerWindow 呼び出しでサーバーの HWND が記憶されます。

COleClientItem::OnChange

ユーザーが OLE 項目を変更、保存、または閉じるときに、フレームワークによって呼び出されます。

virtual void OnChange(
    OLE_NOTIFICATION nCode,
    DWORD dwParam);

パラメーター

nCode
サーバーがこの項目を変更した理由。 次のいずれかの値になります。

  • OLE_CHANGED OLE アイテムの外観が変更されました。

  • OLE_SAVED OLE 項目が保存されました。

  • OLE_CLOSED OLE アイテムが閉じられました。

  • OLE_CHANGED_STATE OLE 項目の状態が変更されました。

dwParam
nCodeがOLE_SAVEDまたはOLE_CLOSEDの場合、このパラメーターは使用されません。 nCodeがOLE_CHANGEDの場合、このパラメーターは変更された OLE アイテムの側面を指定します。 指定できる値については、COleClientItem::D rawdwParam パラメーターを参照してください。 nCodeがOLE_CHANGED_STATEの場合、このパラメーターはCOleClientItem::ItemState列挙値であり、入力される状態を記述します。 emptyStateloadedStateopenStateactiveState、またはactiveUIStateのいずれかの値を指定できます。

解説

(サーバー アプリケーションが Microsoft Foundation クラス ライブラリを使用して記述されている場合、この関数は、COleServerDocまたはCOleServerItemNotifyメンバー関数に応答して呼び出されます)。既定の実装では、nCodeがOLE_CHANGEDまたはOLE_SAVEDされている場合、コンテナー ドキュメントが変更済みとしてマークされます。

OLE_CHANGED_STATEの場合、 GetItemState から返された現在の状態は引き続き古い状態になります。つまり、この状態が変更される前の現在の状態です。

OLE アイテムの状態の変更に応答するには、この関数をオーバーライドします。 通常、アイテムの表示領域を無効にして、アイテムの外観を更新します。 オーバーライドの開始時に基底クラスの実装を呼び出します。

COleClientItem::OnChangeItemPosition

インプレース アクティブ化中に OLE 項目のエクステントが変更されたことをコンテナーに通知するために、フレームワークによって呼び出されます。

virtual BOOL OnChangeItemPosition(const CRect& rectPos);

パラメーター

rectPos
コンテナー アプリケーションのクライアント領域に対する項目の相対位置を示します。

戻り値

項目の位置が正常に変更された場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、OLE 項目の新しい表示可能な四角形が決定され、新しい値を使用して SetItemRects を呼び出します。 既定の実装では、項目の表示される四角形が計算され、その情報がサーバーに渡されます。

この関数をオーバーライドして、サイズ変更/移動操作に特別なルールを適用します。 アプリケーションが MFC で記述されている場合、この呼び出しは、サーバーが COleServerDoc::RequestPositionChange を呼び出したために発生します。

COleClientItem::OnDeactivate

OLE 項目がインプレースアクティブ状態 ( activeState) から読み込まれた状態に遷移するときにフレームワークによって呼び出されます。つまり、インプレースアクティブ化後に非アクティブ化されます。

virtual void OnDeactivate();

解説

この関数は、OLE 項目が閉じられていることを示すために呼び出されることに注意してください。ユーザー インターフェイスがコンテナー アプリケーションから削除されているわけではありません。 その場合、 OnDeactivateUI メンバー関数が呼び出されます。

既定の実装では、OLE_CHANGEDSTATEをパラメーターとして使用して OnChange メンバー関数を呼び出します。 この関数をオーバーライドして、インプレースアクティブアイテムが非アクティブになったときにカスタム処理を実行します。 たとえば、コンテナー アプリケーションで元に戻すコマンドをサポートしている場合は、この関数をオーバーライドして元に戻す状態を破棄できます。これは、OLE アイテムに対して最後に実行した操作を、アイテムが非アクティブ化された後に元に戻すことができないことを示します。

COleClientItem::OnDeactivateAndUndo

ユーザーが OLE 項目をアクティブ化した後で元に戻すコマンドを呼び出すと、フレームワークによって呼び出されます。

virtual void OnDeactivateAndUndo();

解説

既定の実装では、 DeactivateUI を呼び出して、サーバーのユーザー インターフェイスを非アクティブ化します。 コンテナー アプリケーションで undo コマンドを実装する場合は、この関数をオーバーライドします。 オーバーライドで、関数の基底クラス バージョンを呼び出し、アプリケーションで実行された最後のコマンドを元に戻します。

詳細については、Windows SDK の「 IOleInPlaceSite::D eactivateAndUndo を参照してください。

COleClientItem::OnDeactivateUI

ユーザーがインプレースでアクティブ化されたアイテムを非アクティブ化するときに呼び出されます。

virtual void OnDeactivateUI(BOOL bUndoable);

パラメーター

bUndoable
編集の変更を元に戻すことができるかどうかを指定します。

解説

この関数は、コンテナー アプリケーションのユーザー インターフェイスを元の状態に戻し、インプレース アクティブ化のために作成されたメニューやその他のコントロールを非表示にします。

bUndoable が FALSE の場合、コンテナーは元に戻すコマンドを無効にする必要があります。これは、サーバーによって最後に実行された操作が元に戻せないことを示しているため、コンテナーの元に戻す状態を実質的に破棄します。

COleClientItem::OnDiscardUndoState

OLE アイテムの編集中に元に戻す状態を破棄するアクションをユーザーが実行すると、フレームワークによって呼び出されます。

virtual void OnDiscardUndoState();

解説

既定の実装では、何も行われません。 コンテナー アプリケーションで undo コマンドを実装する場合は、この関数をオーバーライドします。 オーバーライドで、コンテナー アプリケーションの元に戻す状態を破棄します。

サーバーが Microsoft Foundation クラス ライブラリを使用して書き込まれた場合、サーバーは、 COleServerDoc::D iscardUndoState を呼び出すことによって、この関数を呼び出すことができます。

詳細については、Windows SDK の「 IOleInPlaceSite::D iscardUndoState 」を参照してください。

COleClientItem::OnGetClipboardData

CopyToClipboard または DoDragDrop メンバー関数の呼び出しによってクリップボードに配置されるすべてのデータを含むCOleDataSource オブジェクトを取得するためにフレームワークによって呼び出されます。

virtual COleDataSource* OnGetClipboardData(
    BOOL bIncludeLink,
    LPPOINT lpOffset,
    LPSIZE lpSize);

パラメーター

bIncludeLink
リンク データをクリップボードにコピーする必要がある場合は、これを TRUE に設定します。 サーバー アプリケーションがリンクをサポートしていない場合は、これを FALSE に設定します。

lpOffset
オブジェクトの原点からのマウス カーソルのオフセットへのポインター (ピクセル単位)。

lpSize
オブジェクトのサイズをピクセル単位で指すポインター。

戻り値

クリップボード データを含む COleDataSource オブジェクトへのポインター。

解説

この関数の既定の実装は、 GetClipboardData を呼び出します。

COleClientItem::OnGetClipRect

フレームワークは、 OnGetClipRect メンバー関数を呼び出して、編集中のアイテムのクリッピング四角形座標を取得します。

virtual void OnGetClipRect(CRect& rClipRect);

パラメーター

rClipRect
項目のクリッピング四角形座標を保持するクラス CRect のオブジェクトへのポインター。

解説

座標は、コンテナー アプリケーション ウィンドウのクライアント領域を基準としたピクセル単位です。

既定の実装では、項目がインプレース アクティブなビューのクライアント四角形を返すだけです。

COleClientItem::OnGetItemPosition

フレームワークは、 OnGetItemPosition メンバー関数を呼び出して、その場で編集されている項目の座標を取得します。

virtual void OnGetItemPosition(CRect& rPosition);

パラメーター

rPosition
項目の位置座標を格納する CRect オブジェクトへの参照。

解説

座標は、コンテナー アプリケーション ウィンドウのクライアント領域を基準としたピクセル単位です。

この関数の既定の実装は、何も行いません。 インプレース編集をサポートするアプリケーションには、その実装が必要です。

COleClientItem::OnGetWindowContext

項目が所定の位置でアクティブ化されたときにフレームワークによって呼び出されます。

virtual BOOL OnGetWindowContext(
    CFrameWnd** ppMainFrame,
    CFrameWnd** ppDocFrame,
    LPOLEINPLACEFRAMEINFO lpFrameInfo);

パラメーター

ppMainFrame
メイン フレーム ウィンドウへのポインターへのポインター。

ppDocFrame
ドキュメント フレーム ウィンドウへのポインターへのポインター。

lpFrameInfo
フレーム ウィンドウ情報を受け取る OLEINPLACEFRAMEINFO 構造体へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数は、OLE アイテムの親ウィンドウに関する情報を取得するために使用されます。

コンテナーが MDI アプリケーションの場合、既定の実装では、ppMainFrameCMDIFrameWnd オブジェクトへのポインターとppDocFrameのアクティブなCMDIChildWnd オブジェクトへのポインターが返されます。 コンテナーが SDI アプリケーションの場合、既定の実装では、ppMainFrameCFrameWnd オブジェクトへのポインターが返され、ppDocFrame で NULL が返されます。 既定の実装では、 lpFrameInfo のメンバーも格納されます。

既定の実装がアプリケーションに合わない場合にのみ、この関数をオーバーライドします。たとえば、アプリケーションに SDI または MDI とは異なるユーザー インターフェイス パラダイムがある場合などです。 これは、高度なオーバーライドが可能です。

詳細については、「 IOleInPlaceSite::GetWindowContext および Windows SDK の OLEINPLACEFRAMEINFO 構造体」を参照してください。

COleClientItem::OnInsertMenus

コンテナー アプリケーションのメニューを空のメニューに挿入するために、インプレース アクティブ化中にフレームワークによって呼び出されます。

virtual void OnInsertMenus(
    CMenu* pMenuShared,
    LPOLEMENUGROUPWIDTHS lpMenuWidths);

パラメーター

pMenuShared
空のメニューをポイントします。

lpMenuWidths
[ファイル]、[編集]、[コンテナー]、[オブジェクト]、[ウィンドウ]、[ヘルプ] の各メニュー グループに含まれるメニューの数を示す 6 つの LONG 値の配列をポイントします。 コンテナー アプリケーションは、この配列の要素 0、2、および 4 に対応する [ファイル]、[コンテナー]、および [ウィンドウ] メニュー グループを担当します。

解説

その後、このメニューがサーバーに渡され、独自のメニューが挿入され、複合メニューが作成されます。 この関数を繰り返し呼び出して、複数の複合メニューを作成できます。

既定の実装では、 pMenuShared インプレース コンテナー メニュー、つまり[ファイル]、[コンテナー]、[ウィンドウ] メニュー グループに挿入されます。 CDocTemplate::SetContainerInfo を使用して、このメニュー リソースを設定します。 既定の実装では、メニュー リソースに応じて、 lpMenuWidths の要素 0、2、4 にも適切な値が割り当てられます。 既定の実装がアプリケーションに適していない場合は、この関数をオーバーライドします。たとえば、アプリケーションでリソースをドキュメントの種類に関連付けするためのドキュメント テンプレートを使用しない場合などです。 この関数をオーバーライドする場合は、 OnSetMenuOnRemoveMenus もオーバーライドする必要があります。 これは、高度なオーバーライドが可能です。

詳細については、Windows SDK IOleInPlaceFrame::InsertMenus を参照してください。

COleClientItem::OnRemoveMenus

インプレース アクティブ化が終了したときに、指定した複合メニューからコンテナーのメニューを削除するためにフレームワークによって呼び出されます。

virtual void OnRemoveMenus(CMenu* pMenuShared);

パラメーター

pMenuShared
OnInsertMenus メンバー関数の呼び出しによって構築された複合メニューをポイントします。

解説

既定の実装では、 pMenuShared インプレース コンテナー メニュー、つまり[ファイル]、[コンテナー]、[ウィンドウ] メニュー グループから削除されます。 既定の実装がアプリケーションに適していない場合は、この関数をオーバーライドします。たとえば、アプリケーションでリソースをドキュメントの種類に関連付けするためのドキュメント テンプレートを使用しない場合などです。 この関数をオーバーライドする場合は、 OnInsertMenus および OnSetMenu もオーバーライドする必要があります。 これは、高度なオーバーライドが可能です。

pMenuSharedのサブメニューは、サーバーがOnInsertMenusを繰り返し呼び出した場合、複数の複合メニューで共有できます。 そのため、 OnRemoveMenusのオーバーライド内のサブメニューは削除しないでください。デタッチする必要があります。

詳細については、Windows SDK IOleInPlaceFrame::RemoveMenus を参照してください。

COleClientItem::OnScrollBy

サーバーからの要求に応答して OLE 項目をスクロールするためにフレームワークによって呼び出されます。

virtual BOOL OnScrollBy(CSize sizeExtent);

パラメーター

sizeExtent
x 方向と y 方向にスクロールする距離をピクセル単位で指定します。

戻り値

項目がスクロールされた場合は 0 以外。項目をスクロールできなかった場合は 0。

解説

たとえば、OLE 項目が部分的に表示されていて、ユーザーがインプレース編集を実行しているときに表示領域の外側に移動した場合、カーソルを表示したままにするためにこの関数が呼び出されます。 既定の実装では、何も行われません。 指定した量で項目をスクロールするには、この関数をオーバーライドします。 スクロールの結果、OLE 項目の表示部分が変更される可能性があることに注意してください。 SetItemRects を呼び出して、項目の表示される四角形を更新します。

詳細については、Windows SDK IOleInPlaceSite::Scroll を参照してください。

COleClientItem::OnSetMenu

インプレース アクティブ化が開始および終了すると、フレームワークによって 2 回呼び出されます。複合メニューを初めてインストールし、2 回目 ( holemenu NULL に等しい) を削除します。

virtual void OnSetMenu(
    CMenu* pMenuShared,
    HOLEMENU holemenu,
    HWND hwndActiveObject);

パラメーター

pMenuShared
OnInsertMenus メンバー関数とInsertMenu関数の呼び出しによって構築された複合メニューへのポインター。

holemenu
OleCreateMenuDescriptor関数によって返されるメニュー記述子へのハンドル。ディスパッチ コードを削除する場合は NULL。

hwndActiveObject
OLE アイテムの編集ウィンドウを処理します。 OLE から編集コマンドを受け取るウィンドウです。

解説

既定の実装では、複合メニューをインストールまたは削除し、 OleSetMenuDescriptor 関数を呼び出してディスパッチ コードをインストールまたは削除します。 既定の実装がアプリケーションに適していない場合は、この関数をオーバーライドします。 この関数をオーバーライドする場合は、 OnInsertMenusOnRemoveMenus もオーバーライドする必要があります。 これは、高度なオーバーライドが可能です。

詳細については、Windows SDK の「 OleCreateMenuDescriptorOleSetMenuDescriptor、および IOleInPlaceFrame::SetMenu を参照してください。

COleClientItem::OnShowControlBars

コンテナー アプリケーションのコントロール バーを表示および非表示にするためにフレームワークによって呼び出されます。

virtual BOOL OnShowControlBars(
    CFrameWnd* pFrameWnd,
    BOOL bShow);

パラメーター

pFrameWnd
コンテナー アプリケーションのフレーム ウィンドウへのポインター。 メイン フレーム ウィンドウまたは MDI 子ウィンドウを指定できます。

bShow
コントロール バーを表示するか非表示にするかを指定します。

戻り値

関数呼び出しによってコントロール バーの状態が変更された場合は 0 以外。呼び出しによって変更が発生しない場合、または pFrameWnd がコンテナーのフレーム ウィンドウを指していない場合は 0。

解説

コントロール バーが既に bShow. で指定された状態にある場合、この関数は 0 を返します。これは、たとえば、コントロール バーが非表示で、 bShow が FALSE の場合に発生します。

既定の実装では、最上位レベルのフレーム ウィンドウからツール バーが削除されます。

COleClientItem::OnShowItem

OLE 項目を表示するためにフレームワークによって呼び出され、編集中に完全に表示されます。

virtual void OnShowItem();

解説

これは、コンテナー アプリケーションが埋め込みアイテムへのリンクをサポートする場合に使用されます (つまり、ドキュメント クラスを COleLinkingDoc から派生させた場合)。 この関数は、インプレース アクティブ化中、または OLE 項目がリンク ソースであり、ユーザーが編集する場合に呼び出されます。 既定の実装では、コンテナー ドキュメントの最初のビューがアクティブになります。 OLE 項目が表示されるように文書をスクロールするには、この関数をオーバーライドします。

COleClientItem::OnUpdateFrameTitle

フレーム ウィンドウのタイトル バーを更新するために、インプレース アクティブ化中にフレームワークによって呼び出されます。

virtual BOOL OnUpdateFrameTitle();

戻り値

この関数がフレーム タイトルを正常に更新した場合は 0 以外、それ以外の場合は 0。

解説

既定の実装では、フレーム ウィンドウのタイトルは変更されません。 docname の "server app - item" など、アプリケーションに別のフレーム タイトルが必要な場合は、この関数をオーバーライドします ("Microsoft Excel - REPORT.DOC のスプレッドシート" のように)。 これは、高度なオーバーライドが可能です。

COleClientItem::ReactivateAndUndo

OLE アイテムを再アクティブ化し、インプレース編集中にユーザーが最後に実行した操作を元に戻すには、この関数を呼び出します。

BOOL ReactivateAndUndo();

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

コンテナー アプリケーションで元に戻すコマンドがサポートされている場合は、OLE 項目を非アクティブ化した直後にユーザーが元に戻すコマンドを選択した場合に、この関数を呼び出します。

サーバー アプリケーションが Microsoft Foundation クラス ライブラリで記述されている場合、この関数により、サーバーは COleServerDoc::OnReactivateAndUndo を呼び出します。

詳細については、Windows SDK IOleInPlaceObject::ReactivateAndUndo を参照してください。

COleClientItem::Release

OLE 項目で使用されるリソースをクリーンアップするには、この関数を呼び出します。

virtual void Release(OLECLOSE dwCloseOption = OLECLOSE_NOSAVE);

パラメーター

dwCloseOption
読み込まれた状態に戻ったときに OLE 項目を保存する状況を指定するフラグ。 使用可能な値の一覧については、「 COleClientItem::Closeを参照してください。

解説

Release は、 COleClientItem デストラクターによって呼び出されます。

詳細については、Windows SDK IUnknown::Release を参照してください。

COleClientItem::Reload

アイテムを閉じて再読み込みします。

BOOL Reload();

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

Reload関数は、ActivateAs の呼び出しによって、アイテムを別の種類の項目としてアクティブ化した後に呼び出します。

COleClientItem::Run

この項目に関連付けられているアプリケーションを実行します。

void Run();

解説

Runメンバー関数を呼び出して、アイテムをアクティブ化する前にサーバー アプリケーションを起動します。 これは、 ActivateDoVerb によって自動的に実行されるため、通常、この関数を呼び出す必要はありません。 DoVerbを実行する前に、SetExtentなどの項目属性を設定するためにサーバーを実行する必要がある場合は、この関数を呼び出します。

COleClientItem::SetDrawAspect

SetDrawAspectメンバー関数を呼び出して、項目の "aspect" (ビュー) を設定します。

virtual void SetDrawAspect(DVASPECT nDrawAspect);

パラメーター

nDrawAspect
DVASPECT 列挙型の値。 このパラメーターには、次のいずれかの値を指定できます。

  • DVASPECT_CONTENT項目は、コンテナー内の埋め込みオブジェクトとして表示できるように表されます。

  • DVASPECT_THUMBNAILアイテムは、閲覧ツールに表示できるように、"サムネイル" 表現でレンダリングされます。

  • DVASPECT_ICON項目はアイコンで表されます。

  • DVASPECT_DOCPRINT項目は、[ファイル] メニューの [印刷] コマンドを使用して印刷されたかのように表されます。

解説

この側面は、その関数の nDrawAspect 引数の既定値が使用されている場合に、Draw によって項目をレンダリングする方法を指定します。

この関数は、変更アイコン (およびアイコンの変更ダイアログを直接呼び出すその他のダイアログ) によって自動的に呼び出され、ユーザーから要求されたときにアイコン表示の側面を有効にします。

COleClientItem::SetExtent

OLE アイテムで使用できる領域の量を指定するには、この関数を呼び出します。

void SetExtent(
    const CSize& size,
    DVASPECT nDrawAspect = DVASPECT_CONTENT);

パラメーター

size
サイズ情報を含む CSize オブジェクト。

nDrawAspect
境界を設定する OLE 項目の側面を指定します。 指定できる値については、「 SetDrawAspect」を参照してください。

解説

サーバー アプリケーションが Microsoft Foundation クラス ライブラリを使用して作成された場合、これにより、対応するCOleServerItem オブジェクトの OnSetExtent メンバー関数が呼び出されます。 OLE 項目は、それに応じて表示を調整できます。 寸法はMM_HIMETRIC単位にする必要があります。 ユーザーが OLE 項目のサイズを変更するとき、または何らかの形式のレイアウト ネゴシエーションをサポートしている場合は、この関数を呼び出します。

詳細については、Windows SDK の「 IOleObject::SetExtent 」を参照してください。

COleClientItem::SetHostNames

この関数を呼び出して、コンテナー アプリケーションの名前と、埋め込み OLE 項目のコンテナーの名前を指定します。

void SetHostNames(
    LPCTSTR lpszHost,
    LPCTSTR lpszHostObj);

パラメーター

lpszHost
コンテナー アプリケーションのユーザーに表示される名前へのポインター。

lpszHostObj
OLE 項目を含むコンテナーの識別文字列へのポインター。

解説

サーバー アプリケーションが Microsoft Foundation クラス ライブラリを使用して作成された場合、この関数は OLE アイテムを含むCOleServerDoc ドキュメントの OnSetHostNames メンバー関数を呼び出します。 この情報は、OLE アイテムの編集中にウィンドウ タイトルで使用されます。 コンテナー ドキュメントが読み込まれるたびに、フレームワークはドキュメント内のすべての OLE アイテムに対してこの関数を呼び出します。 SetHostNames は埋め込み項目にのみ適用されます。 埋め込み OLE 項目を編集用にアクティブ化するたびに、この関数を呼び出す必要はありません。

これは、オブジェクトが読み込まれるとき、またはファイルが別の名前で保存されるときに、アプリケーション名とドキュメント名を使用して自動的に呼び出されます。 したがって、通常、この関数を直接呼び出す必要はありません。

詳細については、Windows SDK の「 IOleObject::SetHostNames 」を参照してください。

COleClientItem::SetIconicMetafile

アイテムのアイコンの描画に使用するメタファイルをキャッシュします。

BOOL SetIconicMetafile(HGLOBAL hMetaPict);

パラメーター

hMetaPict
アイテムのアイコンの描画に使用されるメタファイルのハンドル。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

GetIconicMetafile を使用してメタファイルを取得します。

hMetaPict パラメーターがアイテムにコピーされるため、呼び出し元がhMetaPictを解放する必要があります。

COleClientItem::SetItemRects

OLE 項目の外接する四角形または表示されている四角形を設定するには、この関数を呼び出します。

BOOL SetItemRects(
    LPCRECT lpPosRect = NULL,
    LPCRECT lpClipRect = NULL);

パラメーター

lprcPosRect
クライアント座標での、親ウィンドウを基準とした OLE 項目の境界を含む四角形へのポインター。

lprcClipRect
OLE アイテムの親ウィンドウを基準とした、表示されている部分の境界を含む四角形へのポインター (クライアント座標)。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数は、 OnChangeItemPosition メンバー関数の既定の実装によって呼び出されます。 OLE 項目の位置または表示部分が変更されるたびに、この関数を呼び出す必要があります。 通常、これはビューの OnSize および OnScrollBy メンバー関数から呼び出されることを意味します。

詳細については、Windows SDK の「 IOleInPlaceObject::SetObjectRects 」を参照してください。

COleClientItem::SetLinkUpdateOptions

この関数を呼び出して、指定したリンク アイテムの表示にリンク更新オプションを設定します。

void SetLinkUpdateOptions(OLEUPDATE dwUpdateOpt);

パラメーター

dwUpdateOpt
この項目のリンク更新オプションの値。 この値は、次のいずれかである必要があります。

  • OLEUPDATE_ALWAYS可能な限りリンク アイテムを更新します。 このオプションは、[リンク] ダイアログ ボックスの [リンクの自動更新] ラジオ ボタンをサポートしています。

  • OLEUPDATE_ONCALLコンテナー アプリケーションからの要求時にのみリンクアイテムを更新します ( UpdateLink メンバー関数が呼び出されたとき)。 このオプションは、[リンク] ダイアログ ボックスの [リンクの手動更新] ラジオ ボタンをサポートします。

解説

通常、[リンク] ダイアログ ボックスでユーザーが選択した更新オプションを変更しないでください。

詳細については、Windows SDK IOleLink::SetUpdateOptions を参照してください。

COleClientItem::SetPrintDevice

この項目の印刷ターゲット デバイスを変更するには、この関数を呼び出します。

BOOL SetPrintDevice(const DVTARGETDEVICE* ptd);
BOOL SetPrintDevice(const PRINTDLG* ppd);

パラメーター

ptd
新しい印刷ターゲット デバイスに関する情報を含む DVTARGETDEVICE データ構造体へのポインター。 NULL にすることができます。

ppd
新しい印刷ターゲット デバイスに関する情報を含む PRINTDLG データ構造体へのポインター。 NULL にすることができます。

戻り値

関数が成功した場合は 0 以外。それ以外の場合は 0。

解説

この関数は、アイテムの印刷先デバイスを更新しますが、プレゼンテーション キャッシュは更新しません。 アイテムのプレゼンテーション キャッシュを更新するには、 UpdateLink を呼び出します。

この関数の引数には、OLE システムがターゲット デバイスを識別するために使用する情報が含まれています。 PRINTDLG構造体には、Windows が一般的な [印刷] ダイアログ ボックスを初期化するために使用する情報が含まれています。 ユーザーがダイアログ ボックスを閉じると、Windows はこの構造体でのユーザーの選択に関する情報を返します。 CPrintDialog オブジェクトのm_pd メンバーは、PRINTDLG構造体です。

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

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

OLE アイテムのプレゼンテーション データをすぐに更新するには、この関数を呼び出します。

BOOL UpdateLink();

戻り値

正常に完了した場合はゼロ以外、それ以外の場合は 0 です。

解説

リンクされたアイテムの場合、関数はリンク ソースを検索して、OLE アイテムの新しいプレゼンテーションを取得します。 このプロセスには、1 つ以上のサーバー アプリケーションの実行が含まれる場合があり、これには時間がかかる可能性があります。 埋め込み項目の場合、関数は再帰的に動作し、埋め込み項目に古いリンクが含まれているかどうかを確認し、更新します。 ユーザーは、[リンク] ダイアログ ボックスを使用して個々のリンクを手動で更新することもできます。

詳細については、Windows SDK の「 IOleLink::Update 」を参照してください。

関連項目

MFC サンプル MFCBIND
MFC サンプル OCLIENT
CDocItem クラス
階層図
COleServerItem クラス