DdeGetLastError 函数 (ddeml.h)

检索动态数据交换管理库 (DDEML) 函数失败时设置的最新错误代码,并将错误代码重置为DMLERR_NO_ERROR。

语法

UINT DdeGetLastError(
  [in] DWORD idInst
);

参数

[in] idInst

类型:DWORD

由上一次调用 DdeInitialize 函数获取的应用程序实例标识符。

返回值

类型: UINT

如果函数成功,则返回值是最后一个错误代码,可以是以下值之一。

返回代码/值 说明
DMLERR_ADVACKTIMEOUT
0x4000
同步建议事务的请求已超时。
DMLERR_BUSY
0x4001
对事务的响应导致设置 DDE_FBUSY 标志。
DMLERR_DATAACKTIMEOUT
0x4002
同步数据事务的请求已超时。
DMLERR_DLL_NOT_INITIALIZED
0x4003
调用 DDEML 函数时未首先调用 DdeInitialize 函数,或者将无效的实例标识符传递给 DDEML 函数。
DMLERR_DLL_USAGE
0x4004
初始化为 APPCLASS_MONITOR 的应用程序尝试执行 DDE 事务,或者初始化为 APPCMD_CLIENTONLY 的应用程序尝试执行服务器事务。
DMLERR_EXECACKTIMEOUT
0x4005
同步执行事务的请求已超时。
DMLERR_INVALIDPARAMETER
0x4006
DDEML 无法验证参数。 一些可能的原因如下:

应用程序使用与事务所需的项名称句柄不同的项名称句柄初始化的数据句柄。

应用程序使用了一个数据句柄,该句柄是使用与事务所需的不同的剪贴板数据格式初始化的。

应用程序将客户端会话句柄与服务器端函数配合使用,反之亦然。

应用程序使用释放的数据句柄或字符串句柄。

应用程序的多个实例使用了同一对象。

DMLERR_LOW_MEMORY
0x4007
DDEML 应用程序创建了一个长时间的争用条件, (服务器应用程序超过客户端) ,导致占用大量内存。
DMLERR_MEMORY_ERROR
0x4008
内存分配失败。
DMLERR_NO_CONV_ESTABLISHED
0x400a
客户端尝试建立会话失败。
DMLERR_NOTPROCESSED
0x4009
事务失败。
DMLERR_POKEACKTIMEOUT
0x400b
同步戳击事务的请求已超时。
DMLERR_POSTMSG_FAILED
0x400c
PostMessage 函数的内部调用失败。
DMLERR_REENTRANCY
0x400d
具有同步事务的应用程序实例已尝试启动另一个同步事务,或者从 DDEML 回调函数中调用了 DdeEnableCallback 函数。
DMLERR_SERVER_DIED
0x400e
在客户端终止的会话上尝试了服务器端事务,或者在完成事务之前服务器终止。
DMLERR_SYS_ERROR
0x400f
DDEML 中发生了内部错误。
DMLERR_UNADVACKTIMEOUT
0x4010
结束建议事务的请求已超时。
DMLERR_UNFOUND_QUEUE_ID
0x4011
传递给 DDEML 函数的事务标识符无效。 应用程序从 XTYP_XACT_COMPLETE 回调返回后,该回调函数的事务标识符将不再有效。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ddeml.h (包括 Windows.h)
Library User32.lib
DLL User32.dll

请参阅

概念性

DdeEnableCallback

DdeInitialize

动态数据交换管理库

PostMessage

引用