DdeEnableCallback

特定の会話または呼び出し元アプリケーションが現在確立しているすべての会話に対するトランザクションを有効または無効にする。

DdeEnableCallback idInst, hConv, wCmd

idInst : [int] 型: DWORD DdeInitialize 関数の以前の呼び出しで取得したアプリケーションインスタンス識別子。
hConv : [intptr] 型: HCONV 有効/無効にする会話へのハンドル。NULL の場合、関数はすべての会話に影響する。
wCmd : [int] 型: UINT

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

解説

特定の会話または呼び出し元アプリケーションが現在確立しているすべての会話に対するトランザクションを有効または無効にする。

[戻り値]
型: BOOL 関数が成功した場合、戻り値は 0 以外。関数が失敗した場合、戻り値は 0。wCmd が EC_QUERYWAITING
で、アプリケーションのトランザクションキューに処理されていない 1 つ以上の未処理トランザクションがある場合、戻り値は
TRUE。それ以外の場合は FALSE。エラーコードは DdeGetLastError 関数で取得でき、次のいずれかになる:

[備考]
アプリケーションは DDE コールバック関数から CBR_BLOCK
戻りコードを返すことで特定の会話のトランザクションを無効化できる。DdeEnableCallback
関数を使って会話を再有効化すると、オペレーティングシステムは会話が無効化されたときに進行中だったトランザクションと同じトランザクションを生成する。EC_QUERYWAITING
フラグを使っても会話の有効状態は変わらず、DdeEnableCallback
の呼び出しコンテキスト内でトランザクションが発行されることもない。EC_QUERYWAITING で DdeEnableCallback
を呼んで関数が 0
以外を返した場合、アプリケーションは速やかにメッセージ処理を許可する、コールバックから戻る、またはコールバックを有効化するように努めるべきである。そのような結果は、後続のコールバックが行われることを保証するものではない。EC_QUERYWAITING
で DdeEnableCallback
を呼ぶことで、コールバックがブロックされたアプリケーションはブロックされた会話に対して保留中のトランザクションがあるかどうかを判定できる。もちろん、そのような呼び出しが
0 を返しても、アプリケーションは常にメッセージをタイムリーに処理すべきである。

情報

プラグイン / モジュール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