次の方法で共有


DdeEnableCallback 関数 (ddeml.h)

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

構文

BOOL DdeEnableCallback(
  [in] DWORD idInst,
  [in] HCONV hConv,
  [in] UINT  wCmd
);

パラメーター

[in] idInst

型: DWORD

DdeInitialize 関数の以前の呼び出しによって取得されたアプリケーション インスタンス識別子。

[in] hConv

種類: HCONV

会話を有効または無効にするハンドル。 このパラメーターが NULL の場合、関数はすべての会話に影響します。

[in] wCmd

型: UINT

関数コード。 このパラメーターには、次の値のいずれかを指定できます。

意味
EC_ENABLEALL
0
指定した会話のすべてのトランザクションを有効にします。
EC_ENABLEONE
0x0080
指定した会話に対して 1 つのトランザクションを有効にします。
EC_DISABLE
0x0008
指定した会話のすべてのブロック可能なトランザクションを無効にします。

サーバー アプリケーションでは、次のトランザクションを無効にすることができます。

クライアント アプリケーションでは、次のトランザクションを無効にすることができます。
EC_QUERYWAITING
2
指定した会話のキューにトランザクションがあるかどうかを判断します。

戻り値

種類: BOOL

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。

wCmd パラメーターがEC_QUERYWAITINGされ、アプリケーション トランザクション キューに処理されていない 1 つ以上の未処理のトランザクションが含まれている場合、戻り値は TRUE になります。それ以外の場合は FALSE です

DdeGetLastError 関数を使用してエラー コードを取得できます。次のいずれかの値を指定できます。

解説

アプリケーションは、動的データ交換 (DDE) コールバック関数から CBR_BLOCK リターン コードを返すことによって、特定の会話のトランザクションを無効にすることができます。 DdeEnableCallback 関数を使用して会話を再度有効にすると、オペレーティング システムは、会話が無効になったときに処理中であったのと同じトランザクションを生成します。

EC_QUERYWAITING フラグを使用しても、会話の有効化状態は変更されず、DdeEnableCallback の呼び出しのコンテキスト内でトランザクションが発行されることはありません。

ddeEnableCallbackEC_QUERYWAITING で呼び出され、関数が 0 以外の値を返す場合、アプリケーションは、メッセージ処理の迅速な許可、コールバックからの戻り、コールバックの有効化を試みる必要があります。 このような結果は、後続のコールバックが行われることを保証するものではありません。 EC_QUERYWAITINGを使用して DdeEnableCallback を呼び出すと、ブロックされたコールバックを持つアプリケーションは、ブロックされた会話で保留中のトランザクションがあるかどうかを判断できます。 もちろん、このような呼び出しで 0 が返された場合でも、アプリケーションは常にタイムリーにメッセージを処理する必要があります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ddeml.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

概念

DdeConnect

DdeConnectList

DdeDisconnect

DdeInitialize

動的データ交換管理ライブラリ

参照