Platform SDK: Interprocess Communications |
A client uses the XTYP_EXECUTE transaction to send a command string to the server. A DDE server callback function, DdeCallback, receives this transaction when a client specifies XTYP_EXECUTE in the DdeClientTransaction function.
HDDEDATA CALLBACK DdeCallback( UINT uType, // XTYP_EXECUTE UINT uFmt, // clipboard data format HCONV hconv, // handle to the conversation HSZ hsz1, // handle to a string HSZ hsz2, // handle to a string HDDEDATA hdata, // handle to a global memory object DWORD dwData1, // transaction-specific data DWORD dwData2 // transaction-specific data );
A server callback function should return DDE_FACK if it processes this transaction, DDE_FBUSY if it is too busy to process this transaction, or DDE_FNOTPROCESSED if it rejects this transaction.
This transaction is filtered if the server application specified the CBF_FAIL_EXECUTES flag in the DdeInitialize function.
An application must free the data handle obtained during this transaction. An application must, however, copy the command string associated with the data handle if the application must process the string after the callback function returns. An application can use the DdeGetData function to copy the data.
Because most client applications expect a server application to perform an XTYP_EXECUTE transaction synchronously, a server should attempt to perform all processing of the XTYP_EXECUTE transaction either from within the DDE callback function or by returning the CBR_BLOCK return code. If the hdata parameter is a command that instructs the server to terminate, the server should do so after processing the XTYP_EXECUTE transaction.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Ddeml.h; include Windows.h.
Dynamic Data Exchange Management Library Overview, Dynamic Data Exchange Management Transactions, DdeClientTransaction, DdeGetData, DdeInitialize