クライアントとサーバ間のデータトランザクションを開始する。この関数を呼べるのは DDE クライアントアプリケーションのみで、サーバとの会話を確立した後にのみ使用できる。
DdeClientTransaction pData, cbData, hConv, hszItem, wFmt, wType, dwTimeout, pdwResult
pData : [var] 型: LPBYTE クライアントがサーバに渡すデータの先頭。あるいはサーバに渡すデータハンドル (HDDEDATA) を指定でき、その場合 cbData は -1 に設定する必要がある。このパラメータは wType が XTYP_EXECUTE または XTYP_POKE の場合のみ必要。それ以外の場合、このパラメータは NULL であるべき。pData がデータハンドルである XTYP_POKE トランザクションでは、ハンドルは wFmt パラメータで指定されたものと同じデータ形式を使用して DdeCreateDataHandle 関数の以前の呼び出しで作成されている必要がある。 cbData : [int] 型: DWORD pData パラメータが指すデータの長さ (バイト)。データが文字列の場合は終端 NULL を含む。-1 は pData が送信されるデータを識別するデータハンドルであることを示す。 hConv : [intptr] 型: HCONV トランザクションを行う会話へのハンドル。 hszItem : [intptr] 型: HSZ トランザクション中にデータが交換されるデータ項目へのハンドル。このハンドルは DdeCreateStringHandle 関数の以前の呼び出しで作成されたものでなければならない。wType が XTYP_EXECUTE の場合、このパラメータは無視される (0L に設定すべき)。 wFmt : [int] 型: UINT データ項目が送信または要求される標準クリップボード形式。wType で指定されたトランザクションがデータを渡さない、または XTYP_EXECUTE の場合、このパラメータは 0 であるべき。wType が非実行 DDE データ (XTYP_POKE、XTYP_ADVSTART、XTYP_ADVSTOP、XTYP_REQUEST) を参照する場合、wFmt は有効な定義済み (CF_) DDE 形式または有効な登録済みクリップボード形式でなければならない。 wType : [int] 型: UINT dwTimeout : [int] 型: DWORD 同期トランザクションでクライアントがサーバアプリケーションからの応答を待つ最大時間 (ミリ秒)。非同期トランザクションの場合、TIMEOUT_ASYNC を指定する。 pdwResult : [var] 型: LPDWORD トランザクションの結果を受け取る変数へのポインタ。結果を確認しないアプリケーションは NULL を渡せる。同期トランザクションでは、この変数の下位ワードにトランザクションから生じる適用可能な DDE_ フラグが含まれる。これは DDE_APPSTATUS ビットに依存するアプリケーションのサポートを提供する。ただし、これらのビットは将来のバージョンの DDEML でサポートされない可能性があるため、アプリケーションはこれらのビットを使用しないことが推奨される。非同期トランザクションでは、この変数には DdeAbandonTransaction 関数や XTYP_XACT_COMPLETE トランザクションで使用する一意のトランザクション識別子が格納される。
(プラグイン / モジュール : user32.dll)
クライアントとサーバ間のデータトランザクションを開始する。この関数を呼べるのは DDE クライアントアプリケーションのみで、サーバとの会話を確立した後にのみ使用できる。 [戻り値] 型: HDDEDATA 関数が成功した場合、戻り値はクライアントがサーバからデータを期待する成功した同期トランザクションのデータを識別するデータハンドル。成功した非同期トランザクション、およびクライアントがデータを期待しない同期トランザクションでは戻り値は 0 以外。すべての失敗トランザクションでは戻り値は 0。エラーコードは DdeGetLastError 関数で取得でき、次のいずれかになる: [備考] DdeClientTransaction が返したデータハンドルの使用が終わったら、アプリケーションは DdeFreeDataHandle 関数を呼んでハンドルを解放すべきである。トランザクションは同期または非同期にできる。同期トランザクション中、DdeClientTransaction はトランザクションが正常に完了するか失敗するまで戻らない。同期トランザクションはクライアントを各種非同期イベントを待つモーダルループに入れる。このため、クライアントアプリケーションは同期トランザクションを待つ間もユーザ入力に応答できるが、最初のトランザクションに関連するアクティビティのため 2 番目の同期トランザクションを開始できない。同じタスクのインスタンスが既に同期トランザクションを進行中の場合、DdeClientTransaction は失敗する。非同期トランザクション中、DdeClientTransaction はトランザクションが開始した後、参照用のトランザクション識別子を渡して戻る。サーバの DDE コールバック関数が非同期トランザクションの処理を完了すると、システムはクライアントに XTYP_XACT_COMPLETE トランザクションを送信する。このトランザクションは、クライアントが DdeClientTransaction を呼んで開始した非同期トランザクションの結果をクライアントに提供する。クライアントアプリケーションは DdeAbandonTransaction 関数を呼んで非同期トランザクションを破棄することを選択できる。
| プラグイン / モジュール | user32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_user32_gen2.hs |