使用DDEML的应用程序必须提供一个回调函数来处理影响应用程序的DDE事件。DDEML通过向应用程序的DDE回调函数发送事务来向应用程序通知这些事件。回调函数接收的事务取决于哪个回调过滤器标记DdeInitialize中指定的应用程序,以及应用程序是客户端还是服务器,还是两者。有关详细信息,请参阅DdeCallback.
以下示例显示了典型客户端应用程序的回调函数的一般结构。
HDDEDATA CALLBACK DdeCallback(uType,uFmt,hconv,hsz1,
hsz2,-ruleHData,dwData1,dwData2)
UINT uType; /* transaction type */
UINT uFmt; /* clipboard data format */
HCONV hconv; /* handle of conversation */
HSZ hsz1; /* handle of string */
HSZ hsz2; /* handle of string */
HDDEDATA hdata; /* handle of global memory object */
DWORD dwData1; /* transaction-specific data */
DWORD dwData2; /* transaction-specific data */
{
switch(uType){
case XTYP_REGISTER:
case XTYP_UNREGISTER:
.
.
.
return (HDDEDATA) NULL;
case XTYP_ADVDATA:
.
.
.
return (HDDEDATA) DDE_FACK;
case XTYP_XACT_COMPLETE:
.
.
.
return (HDDEDATA) NULL;
case XTYP_DISCONNECT:
.
.
.
return (HDDEDATA) NULL;
默认:
return (HDDEDATA) NULL;
}
}
【UTYPE】参数指定DDEML发送给回调函数的事务类型。剩余参数的值取决于事务类型。以下主题将描述生成它们的事务类型和事件。有关每种交易类型的详细信息,请参阅交易管理.