ID: Q196774
The information in this article applies to:
- Microsoft Windows NT 4.0
- Microsoft Windows, versions 95, 98
STABLUPD is a sample that explains the internal format of string table resource in a Win32 executable. It shows how to manipulate the string resource.
The sample provides a set of functions to manipulate blocks of strings in a Win32 executable and a UI to illustrate displaying and modifying strings. You can modify the strings only on Windows NT; Windows 95 and Windows 98 do not allow modification of strings.
The following file is available for download from the Microsoft Software Library:
~ stablupd.exe (size: 68054 bytes)
Release Date: MMM-DD-YYYY
For more information about downloading files from the Microsoft Software Library, please see the following article in the Microsoft Knowledge Base:
ARTICLE-ID: Q119591
TITLE : How to Obtain Microsoft Support Files from Online Services
String resources are stored in a Win32 executable as blocks of strings.
Each block can have up to sixteen strings and represents the smallest
granularity of string resource that can be loaded/updated. Each block is
identified by an identifier(ID), starting with one (1). We use this ID when
calling FindResource(), LoadResource() and UpdateResource().
A string with ID, nStringID, is located in the block with ID, nBlockID, given by the following formula:
nBlockID = (nStringID / 16) + 1; // Note integer division.
Each block has sixteen strings, each represented as an ordered pair
(LENGTH, TEXT). LENGTH is a WORD that specifies the size, in terms of
number of characters, in the TEXT that follows. TEXT follows LENGTH and
contains the string in UNICODE without the NULL terminating character.
There may be no characters in TEXT, in which case LENGTH is zero.
An executable does not have a string table block with ID, nBlockID, if it does not have any strings with Ids: ((nBlockID - 1) * 16) through ((nBlockID * 16) - 1).
The format is the same in all platforms--Windows NT, Windows 95, and Windows 98. To modify the strings, the sample uses the UpdateResource() function. Because this function is not implemented on Windows 95 and Windows 98, modification of strings is not allowed on these platforms.
Additional query words: kbDSupport SDK\Win32\User Interface
Keywords : kbfile kbsample kbNTOS400 kbResource kbSDKPlatform kbString kbGrpUser kbWinOS95 kbWinOS98
Version : WINNT:4.0
Platform : winnt
Issue type : kbhowto
Last Reviewed: December 7, 1998