IDataObject_GetData

データコンシューマーがソースデータオブジェクトからデータを取得するために呼び出す。

IDataObject_GetData this, pformatetcIn, pmedium

this : [comobj] IDataObject インターフェースの COM オブジェクト変数
pformatetcIn : [var] データを渡す際に使用する形式、メディウム、ターゲットデバイスを定義する FORMATETC 構造体へのポインター。ブール OR 演算子を使って複数のメディウムを指定でき、その場合メソッドは指定された中から最適なメディウムを選択できる。
pmedium : [int] tymed メンバーで返されたデータを含む記憶メディウムを示し、pUnkForRelease メンバーでメディウムの解放責任を示す STGMEDIUM 構造体へのポインター。pUnkForRelease が NULL の場合、メディウムの受け取り側が解放責任を負う。そうでない場合、pUnkForRelease は適切なオブジェクトの IUnknown を指し、その Release メソッドを呼び出せる。メディウムは GetData によって確保されデータが埋められなければならない。

(プラグイン / モジュール : com_misc.dll)

解説

データコンシューマーがソースデータオブジェクトからデータを取得するために呼び出す。

[戻り値]
成功時は S_OK を返す。その他の値には以下のものが含まれる。
(以下省略)

[備考]
データコンシューマーは、STGMEDIUM 構造体で定義される記憶メディウムを介してデータオブジェクトからデータを取得するために
GetData を呼び出す。呼び出し側へのメモ ブール OR 演算子で複数の許容可能な tymed メディウムを指定できる。GetData
は OR
された値からデータを最もよく表すメディウムを選択し、確保を行い、メディウムの解放責任を示さなければならない。ストリーム経由で転送されたデータは、ストリームポインターの位置
0 から現在のストリームポインター位置(終了時のストリームポインター位置)直前までに及ぶ。実装者へのメモ GetData は
FORMATETC
構造体のすべてのフィールドを確認しなければならない。要求されたアスペクトをレンダリングし、可能であれば要求されたメディウムを使用することが重要である。データオブジェクトが
FORMATETC で指定された情報に従えない場合、DV_E_FORMATETC
を返すべきである。メディウムの確保に失敗した場合、STG_E_MEDIUMFULL を返すべきである。STGMEDIUM
構造体のすべてのフィールドを埋めることが重要である。呼び出し側はデータ返却用に複数のメディウムを指定できるが、GetData
が提供できるメディウムは 1
つだけである。選択したメディウムで最初の転送が失敗した場合、エラーを返す前に指定された他のメディウムのいずれかを試すように実装できる。

情報

プラグイン / モジュールcom_misc.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_com_misc_gen2.hs