OleCreateStaticFromData 関数 (ole2.h)

ネイティブ データを含まない表現のみを含む静的オブジェクトを、データ転送オブジェクトから作成します。

メモ OLESTREAM から IStorage への変換関数では、静的オブジェクトも変換されます。
 

構文

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

パラメーター

[in] pSrcDataObj

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

[in] iid

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

[in] renderopt

新しく作成されたコンポーネントでコンテナーが必要とするローカルにキャッシュされた描画またはデータ取得機能を示す列挙 OLERENDER からの値。 この関数にOLERENDER_NONEまたはOLERENDER_ASISレンダリング オプションを渡すとエラーになります。

[in] pFormatEtc

renderopt の値として使用される OLERENDER フラグに応じて、FORMATETC 列挙値の 1 つへのポインターを指定できます。 制限については、 OLERENDER 列挙を参照してください。

[in] pClientSite

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

[in] pStg

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

[out] ppvObj

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

戻り値

この関数は、成功したS_OKを返します。

注釈

OleCreateStaticFromData 関数は、IDataObject インターフェイスを提供する限り、任意のオブジェクトを静的オブジェクトに変換できます。 OLE リンクまたは埋め込み用の [図に変換] オプションを実装する場合に便利です。

静的オブジェクトを作成できるのは、ソースが OLE でレンダリングされたクリップボード形式 (CF_METAFILEPICT、CF_DIB、CF_ BITMAP、CF_ENHMETAFILEのいずれか) をサポートしている場合のみです。

OleCreateStaticFromData を呼び出して、クリップボードから静的オブジェクトを貼り付けることもできます。 オブジェクトが静的かどうかを判断するには、 OleQueryCreateFromData 関数を呼び出します。この関数は、CF_METAFILEPICT、CF_DIB、CF_BITMAP、またはCF_ENHMETAFILEのいずれかが存在し、OLE 形式が存在しない場合にOLE_S_STATICを返します。 これは、オブジェクトを作成するために OleCreateFromData 関数ではなく 、OleCreateStaticFromData を呼び出す必要があることを示します。

新しい静的オブジェクトは、CF_METAFILEPICTの場合はクラスCLSID_StaticMetafile、CF_DIBまたはCF_BITMAPの場合はCLSID_StaticDib、CF_ENHMETAFILEの場合はCLSID_Picture_EnhMetafileです。 静的オブジェクトは、 IOleObject::GetMiscStatus から返されるOLEMISC_STATICビットとOLE_CANTLINKINSIDEビットを設定します。 静的オブジェクトには、アスペクト DVASPECT_CONTENTと LINDEX が -1 になります。

pSrcDataObject は、OleCreateStaticFromData が返された後も有効です。 pSrcDataObject を解放するのは呼び出し元の責任です。OLE では解放されません。

静的オブジェクトに複数のプレゼンテーション ストリームを含めることはできません。

要件

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

こちらもご覧ください

OleCreateFromData