OleCreateLinkFromData 関数 (ole2.h)

クリップボードから、または OLE ドラッグ アンド ドロップ操作の一部として取得されたデータ転送オブジェクトからリンク オブジェクトを作成します。

構文

HRESULT OleCreateLinkFromData(
  [in]  LPDATAOBJECT    pSrcDataObj,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

パラメーター

[in] pSrcDataObj

リンク オブジェクトの作成元となるデータ転送オブジェクトの IDataObject インターフェイスへのポインター。

[in] riid

呼び出し元が後で使用するインターフェイスの識別子を参照して、新しいオブジェクトと通信します (通常は、 IOleObject のインターフェイス識別子として OLE ヘッダーで定義IID_IOleObject)。

[in] renderopt

新しく作成されたオブジェクトが持つローカルにキャッシュされた描画またはデータ取得機能を示す列挙 OLERENDER の値。 その他の考慮事項については、次の「解説」セクションで説明します。

[in] pFormatEtc

新しく作成されたオブジェクトが持つローカルキャッシュ描画またはデータ取得機能を示す列挙 OLERENDER からの値へのポインター。 選択した OLERENDER 値は、 pFormatEtc パラメーターに指定できる値に影響します。

[in] pClientSite

オブジェクトがコンテナーからサービスを要求するプライマリ インターフェイスである IOleClientSite のインスタンスへのポインター。 このパラメーターは、NULL でもかまいません。

[in] pStg

ストレージ オブジェクトの IStorage インターフェイスへのポインター。 このパラメーターを NULL にすることはできません。

[out] ppvObj

riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。 正常に戻ると、 ppvObj には、新しく作成されたオブジェクトに対して要求されたインターフェイス ポインターが含まれます。

戻り値

この関数は、成功したS_OKを返します。 その他の可能な値は次のとおりです。

リターン コード 説明
CLIPBRD_E_CANT_OPEN
クリップボードを開くことができません。
OLE_E_CANT_GETMONIKER
オブジェクトのモニカーを抽出できません。
OLE_E_CANT_BINDTOSOURCE
ソースにバインドできません。 キャッシュの初期化データを取得するには、バインドが必要です。

注釈

OleCreateLinkFromData 関数は、貼り付けリンク操作またはドラッグ リンク操作を実装するために使用されます。 その操作は OleCreateFromData 関数の操作と似ていますが、リンクが作成され、さまざまなデータ形式が検索される点が異なります。 CF_LINKSOURCE形式が存在せず、FileName または FileNameW クリップボード形式がデータ転送オブジェクトに存在する場合、 OleCreateLinkFromData は、指定されたファイルへのリンクを含むパッケージを作成します。

renderopt パラメーターと pFormatetc パラメーターを使用して、新しく作成されたオブジェクトのキャッシュ機能を制御します。 キャッシュ対象を特定する方法の一般的な情報については、renderopt と pFormatetc の間の相互作用の説明については、OLERENDER 列挙を参照してください。 ただし、 OleCreateLinkFromData がキャッシュを初期化する方法には、次のように、これらのパラメーターの追加の特定の効果がいくつかあります。

説明
OLERENDER_DRAW、OLERENDER_FORMAT プレゼンテーション情報がソース データ オブジェクトの他の形式の場合は、この情報が使用されます。 情報が存在しない場合、キャッシュは最初は空ですが、オブジェクトが初めて実行されるときに塗りつぶされます。 新しく作成されたオブジェクトには、他の形式はキャッシュされません。
OLERENDER_NONE、OLERENDER_ASIS 新しく作成されたオブジェクトにはキャッシュされません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ole2.h
Library Ole32.lib
[DLL] Ole32.dll

こちらもご覧ください

OleCreateLink