Microsoft KB Archive/102570

{|
 * width="100%"|

INFO: DdeCreateStringHandle lpszString param

 * }

Q102570

-

The information in this article applies to:


 * Microsoft Windows Software Development Kit (SDK) 3.1
 * Microsoft Win32 Application Programming Interface (API), used with:
 * Microsoft Windows NT Server versions 3.5, 3.51
 * Microsoft Windows NT Workstation versions 3.5, 3.51
 * Microsoft Windows 95

-

SUMMARY
The documentation for the DdeCreateStringHandle function in the Windows 3.1 Software Development Kit (SDK) "Programmer's Reference, Volume 2: Functions" incorrectly states that the lpszString parameter may point to a buffer of a null-terminated string of any length, when the string is actually limited to 255 characters.

DDEML string-management functions are internally implemented using global atom functions. DdeCreateStringHandle in particular, internally calls GlobalAddAtom, and therefore inherits the same limitation as atoms to a maximum of 255 characters in length.

MORE INFORMATION
DDEML applications use string handles extensively to carry out DDE tasks. To obtain a string handle for a string, an application calls DdeCreateStringHandle. This function registers the string with the system by adding the string to the global atom table, and returns a unique value identifying the string.

The global atom table table in Windows can maintain strings that are less than or equal to 255 characters in length. Any attempt to add a string of greater length to this global atom table will fail. Hence, a call to DdeCreateStringHandle fails for strings over 255 characters long.

This limitation is by design. DDEML applications that use the DdeCreateStringHandle function should conform to the 255-character limit. This limitation has been preserved on the Windows NT version of DDEML for compatibility reasons.

Additional query words: 3.10 3.50 4.00

Keywords : kbDDE

Issue type : kbinfo

Technology : kbAudDeveloper kbSDKSearch kbWin32sSearch kbWin32API kbWinSDKSearch