DdeCreateStringHandle函数创建一个句柄,用于标识【PES】参数指向的字符串。动态数据交换(DDE)客户端或服务器应用程序可以将字符串句柄作为参数传递给其他动态数据交换管理库(DDEML)函数。
HSZ DdeCreateStringHandle(
DWORD 【idInst】, | //实例标识符en |
LPTSTR 【PES】, | //指向空终止字符串的指针 |
INT 【iCodePage】 | //代码页标识符 |
); |
参数
【idInst】
指定通过先前调用DdeInitialize函数获取的应用程序实例标识符。
【PES】
指向包含要为其创建句柄的以null结尾的字符串的缓冲区。此字符串最多可以包含255个字符。这个限制的原因是使用全局原子来实现DDEML字符串管理功能。
【iCodePage】
指定用于呈现字符串的代码页。该值应为CP_WINANSI(默认代码页)或CP_WINUNICODE,具体取决于客户端应用程序是否调用了ANSI或Unicode版本的DdeInitialize.
返回值
如果函数成功,则返回值是一个字符串句柄。
如果函数失败,返回值为0L。
错误
DdeGetLastError函数可用于获取错误代码,可能是以下值之一:
DMLERR_INVALIDPARAMETER
DMLERR_NO_ERROR
DMLERR_SYS_ERROR
备注
字符串句柄的值与其标识的字符串的情况无关。
当一个应用程序创建一个字符串句柄或在回调函数中接收一个,然后使用DdeKeepStringHandle函数保留它时,应用程序必须在不再需要该字符串句柄时释放该字符串句柄。
一个实例特定的字符串句柄不能从字符串句柄映射到字符串并返回到字符串句柄。这在以下示例中显示,其中DdeQueryString函数从字符串句柄创建一个字符串,DdeCreateStringHandle从该字符串创建一个字符串句柄,但两个句柄不一样:
DWORD idInst;
DWORD cb;
HSZ hszInst, hszNew;
PSZ pszInst;
DdeQueryString(idInst, hszInst, pszInst, cb, CP_WINANSI);
hszNew = DdeCreateStringHandle(idInst, pszInst, CP_WINANSI);
// hszNew!= HszInst!
也可以看看
DdeAccessData, DdeCmpStringHandles, DdeFreeStringHandle, DdeInitialize, DdeKeepStringHandle, DdeQueryString