DdeClientTransaction 函数 (ddeml.h)
开始客户端和服务器之间的数据事务。 只有动态数据交换 (DDE) 客户端应用程序才能调用此函数,并且应用程序只能在与服务器建立会话后使用它。
语法
HDDEDATA DdeClientTransaction(
[in, optional] LPBYTE pData,
[in] DWORD cbData,
[in] HCONV hConv,
[in, optional] HSZ hszItem,
[in] UINT wFmt,
[in] UINT wType,
[in] DWORD dwTimeout,
[out, optional] LPDWORD pdwResult
);
参数
[in, optional] pData
类型: LPBYTE
客户端必须传递到服务器的数据的开头。
(可选)应用程序可以指定要传递到服务器的 HDDEDATA) (数据句柄,在这种情况下, cbData 参数应设置为 -1。 仅当 wType 参数 XTYP_EXECUTE 或 XTYP_POKE时才需要此参数。 否则,此参数应为 NULL。
对于此参数的可选用法, XTYP_POKEpData 是数据句柄的事务,该句柄必须由之前调用 DdeCreateDataHandle 函数创建,并且采用 wFmt 参数中指定的相同数据格式。
[in] cbData
类型:DWORD
如果数据是字符串,则 pData 参数指向的数据的长度(包括终止 NULL)。 值为 -1 表示 pData 是标识所发送数据的数据句柄。
[in] hConv
类型: HCONV
要在其中发生事务的会话的句柄。
[in, optional] hszItem
类型: HSZ
事务期间要为其交换数据的数据项的句柄。 此句柄必须由之前对 DdeCreateStringHandle 函数的调用创建。 (忽略此参数,如果XTYP_EXECUTE wType 参数,则应将此参数设置为 0L ) 。
[in] wFmt
类型: UINT
提交或请求数据项的标准剪贴板格式。
如果 wType 参数指定的事务未传递数据或 XTYP_EXECUTE,则此参数应为零。
如果 wType 参数指定的事务引用非执行 DDE 数据 ( XTYP_POKE、 XTYP_ADVSTART、 XTYP_ADVSTOPXTYP_REQUEST) , 则 wFmt 值必须是有效的预定义 (CF_) DDE 格式或有效的已注册剪贴板格式。
[in] wType
类型: UINT
事务类型。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
开始建议循环。 会话中可以存在任意数量的不同建议循环。 应用程序可以通过将 XTYP_ADVSTART 事务类型与以下一个或多个标志组合来更改建议循环类型:
|
|
结束建议循环。 |
|
开始执行事务。 |
|
开始戳事务。 |
|
开始请求事务。 |
[in] dwTimeout
类型:DWORD
客户端在同步事务中等待服务器应用程序响应的最长时间(以毫秒为单位)。 应为异步事务 TIMEOUT_ASYNC 此参数。
[out, optional] pdwResult
类型: LPDWORD
指向接收事务结果的变量的指针。 不检查结果的应用程序可以为此值使用 NULL。 对于同步事务,此变量的低序字包含事务产生的任何适用的DDE_标志。 这为依赖于 DDE_APPSTATUS 位的应用程序提供支持。 但是,建议应用程序不再使用这些位,因为它们在 动态数据交换管理库 (DDEML) 的未来版本中可能不受支持。 对于异步事务,此变量使用唯一的事务标识符填充,以便与 DdeAbandonTransaction 函数和 XTYP_XACT_COMPLETE 事务一起使用。
返回值
类型: HDDEDATA
如果函数成功,则返回值是一个数据句柄,用于标识客户端需要服务器数据的成功同步事务的数据。 对于成功的异步事务和客户端不需要数据的同步事务,返回值为非零值。 对于所有不成功的事务,返回值为零。
DdeGetLastError 函数可用于获取错误代码,该错误代码可以是以下值之一:
注解
当应用程序使用 完 DdeClientTransaction 返回的数据句柄后,应用程序应通过调用 DdeFreeDataHandle 函数释放句柄。
事务可以是同步的,也可以是异步的。 在同步事务期间,在事务成功完成或失败之前 ,DdeClientTransaction 不会返回 。 同步事务会导致客户端在等待各种异步事件时进入模式循环。 因此,客户端应用程序在等待同步事务时仍可以响应用户输入,但由于与第一个事务关联的活动,应用程序无法开始第二个同步事务。 如果同一任务的任何实例已在进行同步事务,则 DdeClientTransaction 将失败。
在异步事务期间, DdeClientTransaction 在事务开始后返回 ,并传递事务标识符以供参考。 当服务器的 DDE 回调函数处理完异步事务时,系统会向客户端发送 XTYP_XACT_COMPLETE 事务。 此事务为客户端提供它通过调用 DdeClientTransaction 启动的异步事务的结果。 客户端应用程序可以通过调用 DdeAbandonTransaction 函数来选择放弃异步事务。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ddeml.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
请参阅
概念性
引用