DdeCreateStringHandle
The DdeCreateStringHandle
function creates a handle that identifies the string pointed to by the psz
parameter. A dynamic data exchange (DDE) client or server application can pass
the string handle as a parameter to other Dynamic Data Exchange Management
Library (DDEML) functions.
HSZ DdeCreateStringHandle(
DWORD idInst, |
// instance
identifier |
LPTSTR psz, |
// pointer to
null-terminated string |
int iCodePage |
// code page
identifier |
); |
|
Parameters
idInst
Specifies the
application instance identifier obtained by a previous call to the DdeInitialize
psz
Points to a
buffer that contains the null-terminated string for which a handle is to be
created. This string may be up to 255 characters. The reason for this limit is
that DDEML string management functions are implemented using global atoms.
iCodePage
Specifies the
code page used to render the string. This value should be either CP_WINANSI
(the default code page) or CP_WINUNICODE, depending on whether the ANSI or
Unicode version of DdeInitialize was called by the client application.
Return Values
If the function
succeeds, the return value is a string handle.
If the
function fails, the return value is 0L.
Errors
The DdeGetLastError
DMLERR_INVALIDPARAMETER
DMLERR_NO_ERROR
DMLERR_SYS_ERROR
Remarks
The value of
a string handle is not related to the case of the string it identifies.
When an
application either creates a string handle or receives one in the callback
function and then uses the DdeKeepStringHandleC96L7S function to keep it, the application must
free that string handle when it is no longer needed.
An
instance-specific string handle cannot be mapped from string handle to string
and back to string handle. This is shown in the following example, in which the
DdeQueryString
DWORD idInst;
DWORD cb;
HSZ hszInst, hszNew;
PSZ pszInst;
DdeQueryString(idInst, hszInst, pszInst, cb,
CP_WINANSI);
hszNew = DdeCreateStringHandle(idInst, pszInst,
CP_WINANSI);
// hszNew != hszInst !
See Also