DWORD DdeQueryStringA(
DWORD idInst,
HSZ hsz,
LPSTR psz,
DWORD cchMax,
int iCodePage
);
- idInst: DDEML 实例的标识符,标识了调用这个函数的应用程序的实例。
- hsz: 字符串的句柄。
- psz: 用于接收字符串的缓冲区。
- cchMax: 缓冲区的大小,以字符为单位。
- iCodePage: 代码页标识,指定了返回字符串的代码页。
这个函数的目的是从 DDEML 字符串句柄中检索字符串。它会将字符串复制到指定的缓冲区中,并返回实际复制的字符数(不包括终止符)。如果缓冲区大小不足以容纳整个字符串,函数将截断字符串以适应缓冲区,并返回实际复制的字符数。
请注意,在这个函数的名称中,后缀 "A" 表示 ANSI 版本。如果你的应用程序是 Unicode 应用程序,你可能会使用 DdeQueryStringW 函数,其中 "W" 表示 Unicode 版本。在 ANSI 版本中,字符串使用 LPSTR 类型,而在 Unicode 版本中,字符串使用 LPWSTR 类型。
这是一个简单的示例:
#include <Ddeml.h>
// ...
DWORD idInst; // 从 DdeInitialize 获得的 DDEML 实例标识符
HSZ hsz; // 字符串句柄
char buffer[256]; // 用于接收字符串的缓冲区
DWORD dwResult = DdeQueryStringA(idInst, hsz, buffer, sizeof(buffer), CP_WINANSI);
if (dwResult > 0) {
// 字符串成功复制到缓冲区中
printf("String: %s\n", buffer);
} else {
// 处理错误
}
在实际使用时,请根据你的应用程序需要调整参数和错误处理。
转载请注明出处:http://www.zyzy.cn/article/detail/26491/Win32 API/Ddeml.h/DdeQueryStringA