Prev Next

StringTable info  Overview  Group

The StringTable structure depicts the organization of data in a file-version resource. This structure is not a true C-language structure because it contains variable-length members. This structure was created solely to depict the organization of data in a version resource and does not appear in any of the header files shipped with the Microsoft Platform Software Development Kit (SDK).

The StringTable structure contains language and code page formatting information for the strings specified by the Children member. A code page is an ordered character set.

StringTable { 

    WORD   wLength; 

    WORD   wValueLength; 

    WORD   wType; 

    WCHAR  szKey[]; 

    WORD   Padding[]; 

    String Children[]; 

}; 

 

Members

wLength
Specifies the length, in bytes, of this StringTable structure, including all structures indicated by the Children member.
wValueLength
This member is always equal to zero.
wType
Specifies the type of data in the version resource. This member is 1 if the version resource contains text data and 0 if the version resource contains binary data.
szKey
Specifies an 8-digit hexadecimal number stored as a Unicode string. The four most significant digits represent the language identifier. The four least significant digits represent the code page for which the data is formatted.

Each Microsoft Standard Language identifier contains two parts: the low-order 10 bits specify the major language, and the high-order 6 bits specify the sublanguage. For a table of valid identifiers see Language Identifiers.

Padding
Contains as many zero words as necessary to align the Children member on a 32-bit boundary.
Children
Specifies an array of one or more String structures.

Remarks

The Children member of the StringFileInfo structure contains at least one StringTable structure.

Set the code page portion of the szKey member to the hexadecimal value 0x04b0 to indicate the Unicode code page, or to the hexadecimal value of the code page that is appropriate for the language component. After you choose the value for the code page you should continue to use the same value in later revisions to the file.

An executable file or dynamic-link library (DLL) that supports multiple languages should have a version resource for each language, rather than a single version resource that contains strings in several languages. However, if you use the Var structure to list the languages that your application supports, the number of StringTable structures in the version resource is directly related to the number of language/code page identifier pairs in the Value member of the Var structure.

See Also

String, StringFileInfo, Var, VarFileInfo, VS_VERSION_INFO