Resource file structure

Resource files may consist of comments, C++ pre-processor statements, and structure statements indicated by predefined keywords.

For a commented example of a resource file, see Resource management example: HelloWorldBasic.

A resource file has the following structure:

Comments

You can use either C (/* */) or C++ (//) style comments.

NAME statements

The first non-comment statement in a resource must be the NAME statement. The syntax is as follows:

NAME name

where name is a 4 letter ID that is unique in the application. This ID is used to differentiate and access resource files when an application uses multiple resource files.

C++ pre-processor statements

The resource compiler supports a set of pre-processor statements, including:

  • #define

  • #include

  • #ifdef

  • #ifndef

  • #if

  • #else

  • #endif

Typically, resource files contain #includes statements for the following files:

  • appinfo.rh

  • avkon.rh

  • avkon.rsg

  • eikon.rh

These files are located under the /Epoc32/include folder. They contain the structure declarations for commonly used data structures in the Symbian platform.

RESOURCE statements syntax

The RESOURCE keyword is used to declare a resource in a resource file. The syntax is as follows:

RESOURCE <STRUCT_NAME> | <resource_name> |
{
<resource-initialiser-list>
}

where:

  • <STRUCT_NAME> is the name of a declared data structure in an included resource header file.

    <STRUCT_NAME> must be in upper case.

  • resource_name identifies the resource .

    resource_name must be in lower case.

  • resource-initialiser-list contains the values the members of the structure should be initialized with when the default values should not be used.

RESOURCE statements may include resources defined within other resource statements in the resource file. For example:

RESOURCE EIK_APP_INFO
    {
    menubar = r_name;
    }

uses a resource declared in a later statement to define its menu bar.

Resource statements may also included nested resource structures. For example:

RESOURCE MENU_PANE r_name2
    {
    items =
        {
         MENU_TITLE 
             {
	             menu_pane = r_name3;
	             }
         };
    }

For more information on the MENU_PANE resource see, Menu bar resource statements.

For more on resource statements, see: