在调用任何其他DDEML函数之前,应用程序必须调用DdeInitialize函数。DdeInitialize获取应用程序的实例标识符,使用DDEML注册应用程序的DDE回调函数,并为回调函数指定事务过滤器标志。
应用程序或动态链接库(DLL)的每个实例必须将其实例标识符作为【idInst】参数传递给需要它的任何其他DDEML函数。多个DDEML实例的目的是支持在应用程序正在使用DDEML的同时使用DDEML的DLL。应用程序不得使用多个DDEML实例。
【事务过滤器】通过防止DDEML将不需要的事务传递到应用程序的DDE回调函数来优化系统性能。一个应用程序在调用DdeInitialize时设置事务过滤器。应用程序必须为其回调函数中不处理的每种类型的事务指定事务过滤器标志。应用程序可以随后调用DdeInitialize来更改其事务过滤器。有关事务过滤器标志的完整列表,请参阅【Microsoft Win32程序员参考,第3卷】中的DdeInitialize的说明。有关交易的更多信息,请参阅交易管理.
以下示例显示如何初始化应用程序以使用DDEML。
DWORD idInst = 0;
HINSTANCE hinst;
.
.
.
DdeInitialize(& idInst,/ *接收实例标识符* /en
(PFNCALLBACK)DdeCallback,/ *回调函数的地址* /
CBF_FAIL_EXECUTES | / * filter XTYPE_EXECUTE * /
CBF_SKIP_ALLNOTIFICATIONS,/ *过滤器通知* /
0);
.
.
.
当不再使用DDEML时,应用程序必须调用DdeUninitialize函数。此函数终止当前为应用程序打开的任何会话,并释放为应用程序分配的系统的DDEML资源。