OleCreateStaticFromData 関数 (ole2.h)
ネイティブ データを含まない表現のみを含む静的オブジェクトを、データ転送オブジェクトから作成します。
構文
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 |