DdeCreateDataHandle

DDE オブジェクトを作成し、指定されたバッファのデータでオブジェクトを埋める。DDE アプリケーションは、相手のアプリケーションにデータを渡すトランザクション中にこの関数を使用する。

DdeCreateDataHandle idInst, pSrc, cb, cbOff, hszItem, wFmt, afCmd

idInst : [int] 型: DWORD DdeInitialize 関数の以前の呼び出しで取得したアプリケーションインスタンス識別子。
pSrc : [var] 型: LPBYTE DDE オブジェクトにコピーするデータ。NULL の場合、データはオブジェクトにコピーされない。
cb : [int] 型: DWORD pSrc が指すバッファからコピーするメモリ量 (バイト)。データが文字列の場合は終端 NULL を含む。0 の場合、pSrc パラメータは無視される。
cbOff : [int] 型: DWORD pSrc パラメータが指すバッファの先頭からのオフセット (バイト)。このオフセットからバッファのデータが DDE オブジェクトにコピーされる。
hszItem : [intptr] 型: HSZ DDE オブジェクトに対応するデータ項目を指定する文字列へのハンドル。このハンドルは DdeCreateStringHandle 関数の以前の呼び出しで作成されたものでなければならない。データハンドルが XTYP_EXECUTE トランザクションで使用される場合、このパラメータは 0L でなければならない。
wFmt : [int] 型: UINT データの標準クリップボード形式。
afCmd : [int] 型: UINT 作成フラグ。HDATA_APPOWNED を指定でき、これは DdeCreateDataHandle 関数を呼び出すサーバアプリケーションがこの関数が作成するデータハンドルを所有することを指定する。このフラグにより、アプリケーションは各アプリケーションに渡す別々のハンドルを作成するのではなく、データハンドルを他の DDEML アプリケーションと共有できる。このフラグを指定する場合、アプリケーションは最終的に DdeFreeDataHandle 関数を使ってハンドルに関連する共有メモリオブジェクトを解放しなければならない。このフラグが指定されていない場合、データハンドルがアプリケーションの DDE コールバック関数によって返されたか、別の DDEML 関数のパラメータとして使われた後、ハンドルを作成したアプリケーション内でハンドルは無効になる。

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

解説

DDE オブジェクトを作成し、指定されたバッファのデータでオブジェクトを埋める。DDE
アプリケーションは、相手のアプリケーションにデータを渡すトランザクション中にこの関数を使用する。

[戻り値]
型: HDDEDATA 関数が成功した場合、戻り値はデータハンドル。関数が失敗した場合、戻り値は 0L。エラーコードは
DdeGetLastError 関数で取得でき、次のいずれかになる:

[備考]
DDE オブジェクト内の埋められていない位置は未定義である。データハンドルが他の DDEML 関数のパラメータとして使われた、または
DDE コールバック関数によって返された後は、ハンドルは識別する DDE オブジェクトへの読み取りアクセスにのみ使用できる。

情報

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