DdeEnableCallback
The DdeEnableCallback
function enables or disables transactions for a specific conversation or for
all conversations currently established by the calling application.
After
disabling transactions for a conversation, the operating system places the
transactions for that conversation in a transaction queue associated with the
application. The application should reenable the conversation as soon as possible
to avoid losing queued transactions.
BOOL DdeEnableCallback(
DWORD idInst, |
// instance
identifier |
HCONV hConv, |
// handle to
conversation |
UINT wCmd |
// enable or
disable function code |
); |
|
Parameters
idInst
Specifies the
application-instance identifier obtained by a previous call to the DdeInitialize
hConv
Identifies
the conversation to enable or disable. If this parameter is NULL, the function
affects all conversations.
wCmd
Specifies the
function code. This parameter can be one of the following values:
Value |
Meaning |
EC_ENABLEALL |
Enables all
transactions for the specified conversation. |
EC_ENABLEONE |
Enables one
transaction for the specified conversation. |
EC_DISABLE |
Disables
all blockable transactions for the specified conversation. A server
application can disable the following transactions: XTYP_ADVSTART A client
application can disable the following transactions: XTYP_ADVDATA |
EC_QUERYWAITING |
Determines
whether any transactions are in the queue for the specified conversation. |
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero.
If the wCmd
parameter is EC_QUERYWAITING, and the application transaction queue contains
one or more unprocessed transactions that are not being processed, the return
value is TRUE; otherwise, it is FALSE.
Errors
Use the DdeGetLastError
DMLERR_DLL_NOT_INITIALIZED
DMLERR_NO_ERROR
DMLERR_INVALIDPARAMETER
Remarks
An
application can disable transactions for a specific conversation by returning
the CBR_BLOCK return code from its dynamic data exchange (DDE) callback
function. When you reenable the conversation by using the DdeEnableCallback
function, the operating system generates the same transaction that was in
process when the conversation was disabled.
Using the
EC_QUERYWAITING flag does not change the enable state of the conversation and
does not cause transactions to be issued within the context of the call to DdeEnableCallback.
If DdeEnableCallback
is called with EC_QUERYWAITING and the return value is TRUE, an application
should try to quickly allow message processing, return from its callback, or
enable callbacks. Such a result does not guarantee that subsequent callbacks
will be made. Calling DdeEnableCallback with EC_QUERYWAITING lets an
application with blocked callbacks determine whether there are any transactions
pending on the blocked conversation. Of course, even if such a call returns
false, an application should always process messages in a timely manner.
See Also