クリップボードから取得したもの、または OLE ドラッグアンドドロップ操作の一部として取得したデータ転送オブジェクトから埋め込みオブジェクトを作成する。OLE ドラッグアンドドロップ操作からの貼り付け実装に使用することを想定している。
OleCreateFromData pSrcDataObj, riid, renderopt, pFormatEtc, pClientSite, pStg, ppvObj
pSrcDataObj : [var] オブジェクト作成の元となるデータを保持するデータ転送オブジェクト上の IDataObject インターフェイスへのポインタ。 riid : [var] 呼び出し側が後に新しいオブジェクトと通信するために使用するインターフェイスの識別子への参照(通常は IID_IOleObject で、これは OLE ヘッダで IOleObject のインターフェイス識別子として定義されている)。 renderopt : [int] 新しく作成されるオブジェクトが持つローカルキャッシュによる描画またはデータ取得機能を示す OLERENDER 列挙の値。追加の考慮事項については後述の「備考」を参照。 pFormatEtc : [var] 新しく作成されるオブジェクトが持つローカルキャッシュによる描画またはデータ取得機能を示す OLERENDER 列挙値へのポインタ。選択された OLERENDER 値は pFormatEtc パラメータの取り得る値に影響する。 pClientSite : [var] オブジェクトがコンテナからサービスを要求するための主要インターフェイスである IOleClientSite のインスタンスへのポインタ。このパラメータには NULL を指定できる。 pStg : [var] ストレージオブジェクト上の IStorage インターフェイスへのポインタ。このパラメータに NULL を指定することはできない。 ppvObj : [var] riid で要求したインターフェイスポインタを受け取るポインタ変数のアドレス。正常終了した場合、*ppvObj には新しく作成されたオブジェクト上の要求されたインターフェイスポインタが格納される。
(プラグイン / モジュール : ole32.dll)
クリップボードから取得したもの、または OLE ドラッグアンドドロップ操作の一部として取得したデータ転送オブジェクトから埋め込みオブジェクトを作成する。OLE ドラッグアンドドロップ操作からの貼り付け実装に使用することを想定している。 [戻り値] この関数は成功時に S_OK を返す。その他の戻り値には以下が含まれる。 (以下省略) [備考] OleCreateFromData 関数は、IDataObject インターフェイスをサポートするデータ転送オブジェクトから埋め込みオブジェクトを作成する。この場合のデータオブジェクトは、OleGetClipboard 関数の呼び出しでクリップボードから取得したものか、または OLE ドラッグアンドドロップ操作の一部として渡されたもの(データオブジェクトは IDropTarget::Drop の呼び出しに渡される)である。FileName または FileNameW クリップボード形式(CF_FILENAME)がデータ転送オブジェクト内に存在し、CF_EMBEDDEDOBJECT または CF_EMBEDSOURCE が存在しない場合、OleCreateFromData はまず指定されたファイルを含むパッケージを作成しようとする。一般に、最初に利用可能な形式を使用する。パッケージを作成できない場合、OleCreateFromData は CF_EMBEDDEDOBJECT 形式を使ってオブジェクトの作成を試みる。この形式が利用できない場合は、CF_EMBEDSOURCE 形式での作成を試みる。いずれの形式も利用できず、データ転送オブジェクトが IPersistStorage インターフェイスをサポートしている場合、OleCreateFromData はオブジェクトの IPersistStorage::Save を呼び出してオブジェクト自身に保存させる。 既存のリンクオブジェクトが選択されたうえでコピーされた場合、それはクリップボード上では通常の埋め込み可能オブジェクトとして現れる。したがって、OleCreateFromData を呼び出す貼り付け操作はリンクオブジェクトを作成する可能性がある。貼り付け操作の後、コンテナは QueryInterface 関数を呼び出して IID_IOleLink(OLE ヘッダで IOleLink のインターフェイス識別子として定義されている)を要求し、リンクオブジェクトが作成されたかどうかを判定すべきである。 renderopt および pFormatetc パラメータを使用して、新しく作成されるオブジェクトのキャッシュ機能を制御する。これらのパラメータの相互作用を使って何をキャッシュするかを判断する方法に関する一般的な情報については OLERENDER 列挙を参照。ただし、これらのパラメータが OleCreateFromData のキャッシュ初期化方法に及ぼす具体的な影響がいくつかある。 OleCreateFromData が CF_EMBEDDEDOBJECT または CF_EMBEDSOURCE のどちらかのクリップボード形式を使用して埋め込みオブジェクトを作成する場合、両者の主な違いはキャッシュ初期化データの格納場所である。 (以下省略)
| プラグイン / モジュール | ole32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ole32_gen2.hs |