Loads a string resource from the executable file associated with a specified module, copies the string into a buffer, and appends a terminating null character.
int LoadStringA( HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax );
A handle to an instance of the module whose executable file contains the string resource. To get the handle to the application itself, call the GetModuleHandle function with NULL.
The identifier of the string to be loaded.
The buffer is to receive the string. Must be of sufficient length to hold a pointer (8 bytes).
The size of the buffer, in characters. The string is truncated and null-terminated if it is longer than the number of characters specified. If this parameter is 0, then lpBuffer receives a read-only pointer to the resource itself.
If the function succeeds, the return value is the number of characters copied into the buffer, not including the terminating null character, or zero if the string resource does not exist. To get extended error information, call GetLastError.
TCHAR szBuffer, then sizeof(szBuffer) gives the size of the buffer in bytes, which could lead to a buffer overflow for the Unicode version of the function. Buffer overflow situations are the cause of many security problems in applications. In this case, using
sizeof(szBuffer)/sizeof(szBuffer)would give the proper size of the buffer.
For an example, see Creating a Child Window
|Windows version||Windows 2000 Professional [desktop apps only] Windows 2000 Server [desktop apps only]|
|Header||winuser.h (include Windows.h)|