User-Defined Resource
nameID typeID [load-mem] filename
The filename specifies the name of a file containing the binary data of the resource. The contents of the file are included as the resource. RC does not interpret the binary data in any way. It is the programmer's responsibility to ensure that the data is properly aligned for the target machine architecture.
A user-defined resource can also be defined completely in the resource script using the syntax:
nameID typeID [load-mem]
BEGIN
raw-data
END
A user-defined resource statement specifies a resource that contains application-specific data. The data can have any format and can be defined either as the content of a given file (if the filename parameter is given) or as a series of numbers and strings (if the raw-data block is given).
Parameters
nameID
Specifies either a unique name or a 16-bit unsigned integer that identifies the resource.
typeID
Specifies either a unique name or a 16-bit unsigned integer that identifies the resource type. If a number is given, it must be greater than 255. The numbers 1 through 255 are reserved for existing and future redefined resource types.
load-mem
Specifies loading and memory attributes for the resource. For more information, see "Common Resource Attributes".
filename
Specifies the name of the file that contains the resource data. The parameter must be a valid filename; it must be a full path if the file is not in the current working directory.
raw-data
Specifies raw data consisting of one or more integers or strings of characters. Integers can be specified in decimal, octal, or hexadecimal format. RC does not automatically append a terminating null character to a string. The string is a sequence of the specified ANSI (byte) characters unless explicitly qualified as a wide-character string with the L prefix. Strings in all resources other than RCDATA and user-defined resources are Unicode strings.
The block of data begins on a DWORD boundary and RC performs no padding or alignment of data within the raw-data block. It is the programmer's responsibility to ensure the proper alignment of data within the block.
Example
The following example shows several user-defined statements:
array MYRES data.res
14 300 custom.res
18 MYRES2
BEGIN
"Here is a data string\0", /* A string. Note: explicitly
null-terminated */
1024, /* int */
0x029a, /* hex int */
0o733, /* octal int */
"\07" /* octal byte */
END