COleServerItem クラス

OLE アイテムへのサーバー インターフェイスが用意されています。

構文

class COleServerItem : public CDocItem

メンバー

保護されたコンストラクター

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

パブリック メソッド

名前 説明
COleServerItem::AddOtherClipboardData プレゼンテーション形式と変換形式をオブジェクトに COleDataSource 配置します。
COleServerItem::CopyToClipboard アイテムをクリップボードにコピーします。
COleServerItem::D oDragDrop ドラッグ アンド ドロップ操作を実行します。
COleServerItem::GetClipboardData データ転送で使用するデータ ソースを取得します (ドラッグ アンド ドロップまたはクリップボード)。
COleServerItem::GetDocument アイテムを含むサーバー ドキュメントを返します。
COleServerItem::GetEmbedSourceData OLE アイテムのCF_EMB (メガバイト)EDSOURCE データを取得します。
COleServerItem::GetItemName アイテムの名前を返します。 リンクされたアイテムにのみ使用されます。
COleServerItem::GetLinkSourceData OLE アイテムのCF_LINKSOURCE データを取得します。
COleServerItem::GetObjectDescriptorData OLE アイテムのCF_OBJECTDESCRIPTOR データを取得します。
COleServerItem::IsConnected 項目が現在アクティブなコンテナーにアタッチされているかどうかを示します。
COleServerItem::IsLinkedItem アイテムがリンクされた OLE アイテムを表すかどうかを示します。
COleServerItem::NotifyChanged リンクの自動更新を使用して、すべてのコンテナーを更新します。
COleServerItem::OnDoVerb 動詞を実行するために呼び出されます。
COleServerItem::OnDraw コンテナーが項目の描画を要求したときに呼び出されます。実装が必要です。
COleServerItem::OnDrawEx 特殊な項目描画のために呼び出されます。
COleServerItem::OnGetClipboardData クリップボードにコピーされるデータを取得するためにフレームワークによって呼び出されます。
COleServerItem::OnGetExtent OLE 項目のサイズを取得するためにフレームワークによって呼び出されます。
COleServerItem::OnInitFromData 指定されたデータ転送オブジェクトの内容を使用して OLE 項目を初期化するために、フレームワークによって呼び出されます。
COleServerItem::OnQueryUpdateItems リンクされたアイテムに更新が必要かどうかを判断するために呼び出されます。
COleServerItem::OnRenderData 遅延レンダリングの一環としてデータを取得します。
COleServerItem::OnRenderFileData 遅延レンダリングの CFile 一部としてオブジェクトにデータを取得します。
COleServerItem::OnRenderGlobalData 遅延レンダリングの一環としてデータを HGLOBAL に取得します。
COleServerItem::OnSetColorScheme アイテムの配色を設定するために呼び出されます。
COleServerItem::OnSetData アイテムのデータを設定するために呼び出されます。
COleServerItem::OnSetExtent OLE 項目のサイズを設定するためにフレームワークによって呼び出されます。
COleServerItem::OnUpdate アイテムが属するドキュメントの一部が変更されたときに呼び出されます。
COleServerItem::OnUpdateItems サーバー ドキュメント内のすべての項目のプレゼンテーション キャッシュを更新するために呼び出されます。
COleServerItem::SetItemName 項目の名前を設定します。 リンクされたアイテムにのみ使用されます。

保護メソッド

名前 説明
COleServerItem::GetDataSource 変換形式の格納に使用するオブジェクトを取得します。
COleServerItem::OnHide OLE 項目を非表示にするためにフレームワークによって呼び出されます。
COleServerItem::OnOpen OLE 項目を独自の最上位ウィンドウに表示するために、フレームワークによって呼び出されます。
COleServerItem::OnShow コンテナーが項目の表示を要求したときに呼び出されます。

パブリック データ メンバー

名前 説明
COleServerItem::m_sizeExtent OLE 項目の表示量をサーバーに通知します。

解説

リンク アイテムは、サーバー ドキュメントの一部またはすべてを表すことができます。 埋め込みアイテムは、常にサーバー ドキュメント全体を表します。

このクラスは COleServerItem 、OLE システムダイナミックリンク ライブラリ (DLL) によって呼び出されるオーバーライド可能なメンバー関数をいくつか定義します。通常は、コンテナー アプリケーションからの要求に応答します。 これらのメンバー関数を使用すると、コンテナー アプリケーションは、アイテムの表示、動詞の実行、さまざまな形式でのデータの取得など、さまざまな方法で間接的に項目を操作できます。

使用COleServerItemするには、そこからクラスを派生させ、OnDraw および Serialize メンバー関数を実装します。 この関数は OnDraw 、項目のメタファイル表現を提供し、コンテナー アプリケーションが複合ドキュメントを開いたときに表示できるようにします。 関数CObjectSerialize、アイテムのネイティブ表現を提供し、埋め込み項目をサーバーアプリケーションとコンテナー アプリケーション間で転送できるようにします。 OnGetExtent は、項目の自然なサイズをコンテナーに提供し、コンテナーが項目のサイズを変更できるようにします。

サーバーと関連トピックの詳細については、「サーバー: サーバーの 実装 」および「コンテナー/サーバー アプリケーションの作成」の記事 「コンテナー: 高度な機能」を参照してください。

継承階層

CObject

CCmdTarget

CDocItem

COleServerItem

必要条件

ヘッダー: afxole.h

COleServerItem::AddOtherClipboardData

OLE アイテムのプレゼンテーション形式と変換形式を指定した COleDataSource オブジェクトに配置するには、この関数を呼び出します。

void AddOtherClipboardData(COleDataSource* pDataSource);

パラメーター

pDataSource
データを COleDataSource 配置するオブジェクトへのポインター。

解説

項目の プレゼンテーション形式 (メタファイル画像) を提供するには、OnDraw メンバー関数を実装する必要があります。 他の変換形式をサポートするには、GetDataSource によって返される COleDataSource オブジェクトを使用してそれらを登録し、OnRenderData メンバー関数をオーバーライドして、サポートする形式のデータを提供します。

COleServerItem::COleServerItem

オブジェクトを COleServerItem 構築し、サーバー ドキュメントのドキュメント アイテムのコレクションに追加します。

COleServerItem(
    COleServerDoc* pServerDoc,
    BOOL bAutoDelete);

パラメーター

pServerDoc
新しい項目を含むドキュメントへのポインター。

bAutoDelete
オブジェクトへのリンクが解放されたときにオブジェクトを削除できるかどうかを示すフラグ。 オブジェクトがドキュメントのデータのCOleServerItem不可欠な部分でありStandard Edition削除する必要がある場合は、これを FAL に設定します。 オブジェクトが、フレームワークによって削除できるドキュメントのデータ内の範囲を識別するために使用されるセカンダリ構造体である場合は、これを TRUE に設定します。

COleServerItem::CopyToClipboard

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

void CopyToClipboard(BOOL bIncludeLink = FALSE);

パラメーター

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

解説

この関数では、OnGetClipboardData メンバー関数を使用して、サポートされている形式で OLE 項目のデータを含む COleDataSource オブジェクトを作成します。 次に、COleDataSource::SetClipboard 関数を使用してオブジェクトをクリップボードに配置COleDataSourceします。 この COleDataSource オブジェクトには、アイテムのネイティブ データとその表現CF_METAFILEPICT形式のほか、サポートする任意の変換形式のデータが含まれます。 このメンバー関数を 機能させるには、SerializeOnDraw を実装する必要があります。

COleServerItem::D oDragDrop

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

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

パラメーター

lpRectItem
クライアント領域を基準にした画面上の項目の四角形 (ピクセル単位)。

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

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

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 に関する記事を参照してください。

COleServerItem::GetClipboardData

この関数を呼び出して、CopyToClipboard を呼び出した場合にクリップボードにコピーされるすべてのデータを指定した COleDataSource オブジェクトに格納します (DoDragDrop を呼び出した場合も同じデータが転送されます)。

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

パラメーター

pDataSource
COleDataSourceサポートされているすべての形式で OLE アイテムのデータを受け取るオブジェクトへのポインター。

bIncludeLink
リンク データをクリップボードにコピーする場合は TRUE。 FAL Standard Edition サーバー アプリケーションがリンクをサポートしていない場合。

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

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

解説

この関数は、GetEmbedSourceData メンバー関数を呼び出して OLE 項目のネイティブ データを取得し、AddOtherClipboardData メンバー関数を呼び出して、プレゼンテーション形式とサポートされている変換形式を取得します。 bIncludeLink が TRUE の場合、この関数は GetLinkSourceData も呼び出して、アイテムのリンク データを取得します。

指定された形式の前または後にオブジェクトに書式を COleDataSource 配置する場合は、この関数を CopyToClipboardオーバーライドします。

COleServerItem::GetDataSource

この関数を呼び出して、サーバー アプリケーションが サポートする変換形式を格納するために使用される COleDataSource オブジェクトを取得します。

COleDataSource* GetDataSource();

戻り値

変換形式を COleDataSource 格納するために使用するオブジェクトへのポインター。

解説

サーバー アプリケーションでデータ転送操作中にさまざまな形式のデータを提供する場合は、この関数によって返されるオブジェクトにそれらの形式 COleDataSource を登録します。 たとえば、クリップボードまたはドラッグ アンド ドロップ操作用に OLE アイテムのCF_TEXT表現を指定する場合は、この関数が返すオブジェクトに書式 COleDataSource を登録し、メンバー関数を OnRenderXxxData オーバーライドしてデータを提供します。

COleServerItem::GetDocument

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

COleServerDoc* GetDocument() const;

戻り値

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

解説

これにより、コンストラクターに引数として渡したサーバー ドキュメントに COleServerItem アクセスできます。

COleServerItem::GetEmbedSourceData

OLE アイテムのCF_EMB (メガバイト)EDSOURCE データを取得するには、この関数を呼び出します。

void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);

パラメーター

lpStgMedium
OLE 項目のCF_EMB (メガバイト)EDSOURCE データを受け取る STGMEDIUM 構造体へのポインター。

解説

この形式には、アイテムのネイティブ データが含まれます。 この関数が正常に動作するためには、 Serialize メンバー関数を実装しておく必要があります。

その後、COleDataSource::CacheData を使用してデータ ソースに結果を追加できます。 この関数は、COleServerItem::OnGetClipboardData によって 自動的に呼び出されます

詳細については、Windows SDK の STGMEDIUM を参照してください

COleServerItem::GetItemName

この関数を呼び出して、項目の名前を取得します。

const CString& GetItemName() const;

戻り値

項目の名前。

解説

通常、この関数はリンクされたアイテムに対してのみ呼び出します。

COleServerItem::GetLinkSourceData

OLE アイテムのCF_LINKSOURCE データを取得するには、この関数を呼び出します。

BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);

パラメーター

lpStgMedium
OLE 項目の CF_LINKSOURCE データを受け取る STGMEDIUM 構造体へのポインター。

戻り値

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

解説

この形式には、OLE アイテムの種類を記述する CLSID と、OLE アイテムを含むドキュメントを検索するために必要な情報が含まれます。

その後、COleDataSource::CacheData を使用してデータ ソースに結果を追加できます。 この関数は OnGetClipboardData によって 自動的に呼び出されます

詳細については、Windows SDK の STGMEDIUM を参照してください

COleServerItem::GetObjectDescriptorData

OLE アイテムのCF_OBJECTDESCRIPTOR データを取得するには、この関数を呼び出します。

void GetObjectDescriptorData(
    LPPOINT lpOffset,
    LPSIZE lpSize,
    LPSTGMEDIUM lpStgMedium);

パラメーター

lpOffset
OLE 項目の左上隅からのマウス クリックのオフセット。 NULL にすることができます。

lpSize
OLE 項目のサイズ。 NULL にすることができます。

lpStgMedium
OLE 項目の CF_OBJECTDESCRIPTOR データを受け取る STGMEDIUM 構造体へのポインター。

解説

情報は lpStgMedium指す構造体にコピーされますSTGMEDIUM。 この形式には、[特殊な貼り付け] ダイアログに必要な情報が含まれます。

詳細については、Windows SDK の STGMEDIUM を参照してください

COleServerItem::IsConnected

OLE 項目が接続されているかどうかを確認するには、この関数を呼び出します。

BOOL IsConnected() const;

戻り値

項目が接続されている場合は 0 以外。それ以外の場合は 0。

解説

OLE 項目は、1 つ以上のコンテナーに項目への参照がある場合に接続されていると見なされます。 参照カウントが 0 より大きい場合、または埋め込み項目である場合、項目は接続されます。

COleServerItem::IsLinkedItem

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

BOOL IsLinkedItem() const;

戻り値

アイテムがリンクアイテムの場合は 0 以外。それ以外の場合は 0。

解説

アイテムが有効で、ドキュメントの埋め込みアイテムの一覧に返されない場合、アイテムはリンクされます。 リンクされたアイテムは、コンテナーに接続されている場合もあれば、接続されていない場合もあります。

リンクされた項目と埋め込みアイテムの両方に同じクラスを使用するのが一般的です。 IsLinkedItem では、コードが一般的な場合は何度もありますが、リンクされた項目の動作を埋め込みアイテムとは異なる方法で行うことができます。

COleServerItem::m_sizeExtent

このメンバーは、コンテナー ドキュメントに表示されるオブジェクトの量をサーバーに通知します。

CSize m_sizeExtent;

解説

OnSetExtent の既定の実装では、このメンバーが設定されます。

COleServerItem::NotifyChanged

リンクされたアイテムが変更された後、この関数を呼び出します。

void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);

パラメーター

nDrawAspect
OLE 項目のどの側面が変更されたかを示す DVASPECT 列挙体の値。 このパラメーターには、次のいずれかの値を指定できます。

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

  • DVASPECT_THUMB (メガバイト)NAIL 項目は、閲覧ツールに表示できるように、"サムネイル" 表現でレンダリングされます。

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

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

解説

コンテナー 項目が自動リンクを使用してドキュメントにリンクされている場合、項目は変更を反映するように更新されます。 Microsoft Foundation クラス ライブラリを使用して記述されたコンテナー アプリケーションでは、 COleClientItem::OnChange が応答で呼び出されます。

COleServerItem::OnDoVerb

指定された動詞を実行するためにフレームワークによって呼び出されます。

virtual void OnDoVerb(LONG iVerb);

パラメーター

iVerb
実行する動詞を指定します。 次のいずれかになります。

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

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

解説

コンテナー アプリケーションが Microsoft Foundation クラス ライブラリを使用して作成された場合、この関数は、対応するCOleClientItemオブジェクトの COleClientItem::Activate メンバー関数が呼び出されたときに呼び出されます。 既定の実装では、主動詞またはOLEIVERB_SHOWが指定されている場合は OnShow メンバー関数を呼び出し、第 2 動詞またはOLEIVERB_OPENが指定されている場合は OnOpenOLEIVERB_HIDEが指定されている場合は OnHide を呼び出します。 iVerb が上記の動詞の 1 つでない場合、既定の実装呼び出しOnShow

主動詞に項目が表示されない場合は、この関数をオーバーライドします。 たとえば、項目がサウンド録音で、その主動詞が Play の場合、アイテムを再生するためにサーバー アプリケーションを表示する必要はありません。

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

COleServerItem::OnDraw

OLE 項目をメタファイルにレンダリングするためにフレームワークによって呼び出されます。

virtual BOOL OnDraw(
    CDC* pDC,
    CSize& rSize) = 0;

パラメーター

pDC
アイテムを 描画する CDC オブジェクトへのポインター。 表示コンテキストは属性表示コンテキストに自動的に接続されるため、属性関数を呼び出すことができますが、そうするとメタファイルデバイス固有になります。

rSize
メタファイルを描画するサイズ (HIMETRIC 単位)。

戻り値

項目が正常に描画された場合は 0 以外。それ以外の場合は 0。

解説

OLE 項目のメタファイル表現は、コンテナー アプリケーションで項目を表示するために使用されます。 コンテナー アプリケーションが Microsoft Foundation クラス ライブラリを使用して書き込まれた場合、メタファイルは対応する COleClientItem オブジェクトの Draw メンバー関数によって使用されます。 既定の実装はありません。 指定したデバイス コンテキストに項目を描画するには、この関数をオーバーライドする必要があります。

COleServerItem::OnDrawEx

すべての描画に対してフレームワークによって呼び出されます。

virtual BOOL OnDrawEx(
    CDC* pDC,
    DVASPECT nDrawAspect,
    CSize& rSize);

パラメーター

pDC
アイテムを 描画する CDC オブジェクトへのポインター。 DC は属性 DC に自動的に接続されるため、属性関数を呼び出すことができますが、そうするとメタファイル デバイス固有になります。

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

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

  • DVASPECT_THUMB (メガバイト)NAIL 項目は、閲覧ツールに表示できるように、"サムネイル" 表現でレンダリングされます。

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

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

rSize
HIMETRIC 単位の項目のサイズ。

戻り値

項目が正常に描画された場合は 0 以外。それ以外の場合は 0。

解説

既定の実装は、DVASPECT が DVASPECT_CONTENT と等しい場合に呼び出 OnDraw されます。それ以外の場合は失敗します。

DVASPECT_ICONや DVASPECT_THUMB (メガバイト)NAIL など、DVASPECT_CONTENT以外の側面のプレゼンテーション データを提供するには、この関数をオーバーライドします。

COleServerItem::OnGetClipboardData

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

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

パラメーター

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

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

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

戻り値

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

解説

この関数の既定の実装では、GetClipboardData が呼び出 されます

COleServerItem::OnGetExtent

OLE 項目のサイズを HIMETRIC 単位で取得するためにフレームワークによって呼び出されます。

virtual BOOL OnGetExtent(
    DVASPECT nDrawAspect,
    CSize& rSize);

パラメーター

nDrawAspect
境界を取得する OLE アイテムの側面を指定します。 このパラメーターには、次のいずれかの値を指定できます。

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

  • DVASPECT_THUMB (メガバイト)NAIL 項目は、閲覧ツールに表示できるように、"サムネイル" 表現でレンダリングされます。

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

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

rSize
OLE 項目の CSize サイズを受け取るオブジェクトへの参照。

戻り値

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

解説

コンテナー アプリケーションが Microsoft Foundation クラス ライブラリを使用して書き込まれた場合、対応するCOleClientItemオブジェクトの GetExtent メンバー関数が呼び出されたときにこの関数が呼び出されます。 既定の実装では、何も行われません。 自分で実装する必要があります。 OLE アイテムのサイズに対する要求を処理するときに特別な処理を実行する場合は、この関数をオーバーライドします。

COleServerItem::OnHide

OLE 項目を非表示にするためにフレームワークによって呼び出されます。

virtual void OnHide();

解説

既定の呼び出し COleServerDoc::OnShowDocument( FALSE )。 この関数は、OLE 項目が非表示になっていることをコンテナーに通知します。 OLE アイテムを非表示にするときに特別な処理を実行する場合は、この関数をオーバーライドします。

COleServerItem::OnInitFromData

pDataObject の内容 を使用して OLE 項目を初期化するためにフレームワークによって呼び出されます

virtual BOOL OnInitFromData(
    COleDataObject* pDataObject,
    BOOL bCreation);

パラメーター

pDataObject
OLE アイテムを初期化するためのさまざまな形式のデータを含む OLE データ オブジェクトへのポインター。

bCreation
コンテナー アプリケーションによって新しく作成される OLE 項目を初期化するために関数が呼び出される場合は TRUE。 FAL Standard Edition既存の OLE 項目の内容を置き換えるために関数が呼び出された場合。

戻り値

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

解説

bCreation が TRUE の場合、コンテナーが現在の選択範囲に基づいて新しいオブジェクトの挿入を実装している場合に、この関数が呼び出されます。 選択したデータは、新しい OLE アイテムを作成するときに使用されます。 たとえば、スプレッドシート プログラムでセル範囲を選択し、[新しいオブジェクトの挿入] を使用して、選択した範囲内の値に基づいてグラフを作成します。 既定の実装では、何も行われません。 この関数をオーバーライドして、pDataObject によって提供される形式から受け入れ可能な形式を選択し、指定されたデータに基づいて OLE 項目を初期化します。 これは、高度なオーバーライドが可能です。

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

COleServerItem::OnOpen

OLE 項目をインプレースではなく、サーバー アプリケーションの別のインスタンスに表示するためにフレームワークによって呼び出されます。

virtual void OnOpen();

解説

既定の実装では、OLE 項目を含むドキュメントを表示する最初のフレーム ウィンドウがアクティブになります。アプリケーションがミニサーバーの場合、既定の実装では メイン ウィンドウが表示されます。 この関数は、OLE 項目が開かれたことをコンテナーに通知します。

OLE アイテムを開くときに特別な処理を実行する場合は、この関数をオーバーライドします。 これは特に、選択項目を開いたときにリンクに設定するリンクアイテムで一般的です。

詳細については、Windows SDK の IOleClientSite::OnShowWindow を参照してください

COleServerItem::OnQueryUpdateItems

現在のサーバー ドキュメント内のリンクされたアイテムが古くなっているかどうかを判断するために、フレームワークによって呼び出されます。

virtual BOOL OnQueryUpdateItems();

戻り値

ドキュメントに更新が必要な項目がある場合は 0 以外。すべての項目が最新の場合は 0。

解説

ソース ドキュメントが変更されているが、リンクアイテムが更新されていない場合、アイテムは古く、ドキュメントの変更を反映していません。

COleServerItem::OnRenderData

指定した形式のデータを取得するためにフレームワークによって呼び出されます。

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

パラメーター

lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。

lpStgMedium
データが返される STGMEDIUM 構造体を参照します。

戻り値

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

解説

指定された形式は、遅延レンダリング用の DelayRenderData または DelayRenderFileData メンバー関数を使って COleDataSource オブジェクトに以前に配置されたものです。 指定されたストレージ メディアがファイルまたはメモリである場合、この関数の既定の実装では、それぞれ OnRenderFileData または OnRenderGlobalData が呼び出されます。 どちらの形式も指定されていない場合、既定の実装では 0 が返され、何も返されません。

lpStgMedium-tymed> がTYMED_NULL場合、STGMEDIUM は lpFormatEtc-tymed> で指定されたとおりに割り当てられ、塗りつぶされます。 TYMED_NULLしない場合は、STGMEDIUM にデータを入力する必要があります。

これは、高度なオーバーライドが可能です。 この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 データが小さく、サイズが固定されている場合は、OnRenderGlobalData をオーバーライドします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData をオーバーライドします。

詳細については、Windows SDK の IDataObject::GetData、STGMEDIUMFORMATETCおよび TYMED を参照してください。

COleServerItem::OnRenderFileData

ストレージ メディアがファイルである場合に、指定した形式のデータを取得するためにフレームワークによって呼び出されます。

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

パラメーター

lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。

pFile
データが CFile レンダリングされるオブジェクトを指します。

戻り値

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

解説

指定された形式は、遅延レンダリング用の DelayRenderData メンバー関数を使って COleDataSource オブジェクトに以前に配置されたものです。 この関数の既定の実装では、単に FALSE が返されます。

これは、高度なオーバーライドが可能です。 この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 複数のストレージ メディアを処理する場合は、OnRenderData をオーバーライド します。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData をオーバーライドします。

詳細については、Windows SDK の IDataObject::GetData と FORMATETC に関するページを参照してください

COleServerItem::OnRenderGlobalData

指定したストレージ メディアがグローバル メモリである場合に、指定した形式でデータを取得するために、フレームワークによって呼び出されます。

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

パラメーター

lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。

phGlobal
データが返されるグローバル メモリへのハンドルを参照します。 メモリが割り当てられていない場合、このパラメーターは NULL にすることができます。

戻り値

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

解説

指定された形式は、遅延レンダリング用の DelayRenderData メンバー関数を使って COleDataSource オブジェクトに以前に配置されたものです。 この関数の既定の実装では、単に FALSE が返されます。

phGlobal が NULL の場合は、新しい HGLOBAL を割り当て、phGlobal で返す必要があります。 それ以外の場合は、phGlobal によって指定された HGLOBAL にデータを入力する必要があります。 HGLOBAL に配置されるデータの量は、メモリ ブロックの現在のサイズを超えてはなりません。 また、ブロックをより大きなサイズに再割り当てすることはできません。

これは、高度なオーバーライドが可能です。 この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 複数のストレージ メディアを処理する場合は、OnRenderData をオーバーライド します。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData をオーバーライドします。

詳細については、Windows SDK の IDataObject::GetData と FORMATETC に関するページを参照してください

COleServerItem::OnSetColorScheme

OLE アイテムの編集時に使用するカラー パレットを指定するために、フレームワークによって呼び出されます。

virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);

パラメーター

lpLogPalette
Windows LOGPALETTE 構造体へのポインター。

戻り値

カラー パレットを使用する場合は 0 以外。それ以外の場合は 0。

解説

コンテナー アプリケーションが Microsoft Foundation クラス ライブラリを使用して作成された場合、この関数は、対応するCOleClientItemオブジェクトの IOleObject::SetColorScheme 関数が呼び出されたときに呼び出されます。 既定の実装では FALSE が返されます。 推奨パレットを使用する場合は、この関数をオーバーライドします。 サーバー アプリケーションは、推奨されるパレットを使用する必要はありません。

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

COleServerItem::OnSetData

OLE 項目のデータを指定したデータに置き換えるために、フレームワークによって呼び出されます。

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

パラメーター

lpFormatEtc
データの形式を 指定する FORMATETC 構造体へのポインター。

lpStgMedium
データが 存在する STGMEDIUM 構造体へのポインター。

bRelease
関数呼び出しの完了後にだれがストレージ メディアの所有権を持つかを示します。 呼び出し元は、ストレージ メディアに代わって割り当てられたリソースを解放する責任をだれが負うかを決定します。 呼び出し元は、bRelease を設定することでこれを行います。 bRelease が 0 以外の場合、サーバー項目は所有権を取得し、使用が完了したときにメディアを解放します。 bRelease が 0 の場合、呼び出し元は所有権を保持し、サーバー項目は呼び出しの期間中のみストレージ メディアを使用できます。

戻り値

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

解説

サーバー項目は、正常に取得されるまでデータの所有権を取得しません。 つまり、0 を返しても所有権は取得されません。 データ ソースが所有権を取得する場合は、ReleaseStgMedium 関数を呼び出してストレージ メディアを解放します。

既定の実装では、何も行われません。 OLE アイテムのデータを指定したデータに置き換えるには、この関数をオーバーライドします。 これは、高度なオーバーライドが可能です。

詳細については、Windows SDK の STGMEDIUM、FORMATETC、ReleaseStgMediumを参照してください。

COleServerItem::OnSetExtent

コンテナー ドキュメント内で使用可能な領域の量を OLE 項目に通知するために、フレームワークによって呼び出されます。

virtual BOOL OnSetExtent(
    DVASPECT nDrawAspect,
    const CSize& size);

パラメーター

nDrawAspect
境界を指定する OLE アイテムの側面を指定します。 このパラメーターには、次のいずれかの値を指定できます。

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

  • DVASPECT_THUMB (メガバイト)NAIL 項目は、閲覧ツールに表示できるように、"サムネイル" 表現でレンダリングされます。

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

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

size
OLE 項目の 新しいサイズを指定する CSize 構造体。

戻り値

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

解説

コンテナー アプリケーションが Microsoft Foundation クラス ライブラリを使用して書き込まれた場合、この関数は、対応するCOleClientItemオブジェクトの SetExtent メンバー関数が呼び出されたときに呼び出されます。 既定の実装では、nDrawAspect がDVASPECT_CONTENT場合は、m_sizeExtent メンバーを指定したサイズに設定します。それ以外の場合は 0 を返します。 アイテムのサイズを変更するときに特別な処理を実行するには、この関数をオーバーライドします。

COleServerItem::OnShow

OLE 項目を所定の位置に表示するようにサーバー アプリケーションに指示するために、フレームワークによって呼び出されます。

virtual void OnShow();

解説

この関数は、通常、コンテナー アプリケーションのユーザーがアイテムを作成するか、アイテムを表示する必要がある動詞 (Edit など) を実行するときに呼び出されます。 既定の実装では、インプレース アクティブ化が試行されます。 これが失敗した場合、関数はメンバー関数を OnOpen 呼び出して、OLE 項目を別のウィンドウに表示します。

OLE 項目が表示されたときに特別な処理を実行する場合は、この関数をオーバーライドします。

COleServerItem::OnUpdate

項目が変更されたときにフレームワークによって呼び出されます。

virtual void OnUpdate(
    COleServerItem* pSender,
    LPARAM lHint,
    CObject* pHint,
    DVASPECT nDrawAspect);

パラメーター

pSender
ドキュメントを変更したアイテムへのポインター。 NULL にすることができます。

lHint
変更に関する情報を格納します。

pHint
変更に関する情報を格納しているオブジェクトへのポインター。

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

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

  • DVASPECT_THUMB (メガバイト)NAIL 項目は、閲覧ツールに表示できるように、"サムネイル" 表現でレンダリングされます。

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

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

解説

既定の実装では、ヒントや送信者に関係なく NotifyChanged が呼び出 されます

COleServerItem::OnUpdateItems

サーバー ドキュメント内のすべての項目を更新するためにフレームワークによって呼び出されます。

virtual void OnUpdateItems();

解説

既定の実装では、ドキュメント内のすべてのCOleClientItemオブジェクトに対して UpdateLink が呼び出されます。

COleServerItem::SetItemName

リンク アイテムを作成してその名前を設定するときに、この関数を呼び出します。

void SetItemName(LPCTSTR lpszItemName);

パラメーター

lpszItemName
項目の新しい名前へのポインター。

解説

名前はドキュメント内で一意である必要があります。 リンク アイテムを編集するためにサーバー アプリケーションが呼び出されると、アプリケーションはこの名前を使用してアイテムを検索します。 埋め込み項目に対してこの関数を呼び出す必要はありません。

関連項目

MFC サンプル HIERSVR
CDocItem クラス
階層図
COleClientItem クラス
COleServerDoc クラス
COleTemplateServer クラス