| 
                   | 
               
                  
                   | 
            |
This document describes two methods of defining application
            registration information. In both cases, a minimal example registration file
            called HelloWorld_reg.rss is used. In the first method, the
            icon/caption information is defined in its own file. In the second, it is
            defined in the application's UI resource file. The registration file is largely
            the same in both cases.
         
A registration file is a resource file that is compiled by the resource compiler in the standard way, by including lines like the following in the application's mmp file:
START RESOURCE HelloWorld_reg.rss
TARGETPATH      \private\10003a3f\apps
END
This will cause HelloWorld_reg.rss to be compiled,
            creating HelloWorld_reg.rsc. On the emulator, all registration
            files should be located in \private\10003a3f\apps. This is also
            true on real hardware for registration files built into the ROM. For
            applications installed onto a phone using the standard software installation
            method, their registration files should be installed into
            \private\10003a3f\import\apps. In all cases, the registration file
            must be located on the same drive as the application.
         
A minimal registration file looks like this:
#include <appinfo.rh>
UID2 KUidAppRegistrationResourceFile
UID3 0x10004299 // application UID
RESOURCE APP_REGISTRATION_INFO
    {
    app_file = "HelloWorld";
    localisable_resource_file = "\\resource\\apps\\HelloWorld_loc";
 }
All registration files must define UID2, which is
            always KUidAppRegistrationResourceFile, and UID3,
            which is the application's UID, and an APP_REGISTRATION_INFO
            resource that minimally needs to provide the name of the application binary
            (using the app_file statement). All registration files need to
            #include
            appinfo.rh. 
         
If a localisable icon/caption definition file is provided, as in this example, its full path and filename must be specified, excluding the drive letter and file extension.
This file defines the application's captions and the name of the
            icon file. It is built to the \resource\apps\ directory on the
            same drive as the registration file; this applies both on the emulator and
            target phone. By convention it has the same filename as the application, but
            with a _loc suffix.
         
It is a standard localisable Symbian resource file, so it is compiled by the resource compiler by including lines like the following in the application's mmp file:
start resource HelloWorld_loc.rss
targetpath      \resource\apps
lang            01 02
end
These lines cause two versions of the file to be compiled, called
            HelloWorld_loc.r01 and HelloWorld_loc.r02.
            HelloWorld_loc.rss looks like this:
         
#include <appinfo.rh>
#ifdef LANGUAGE_01
#include "HelloWorld01.rls"
#elif defined LANGUAGE_02
#include "HelloWorld02.rls"
#endif
RESOURCE LOCALISABLE_APP_INFO
    {
    short_caption = STRING_r_short_caption;
    caption_and_icon =
        {
        CAPTION_AND_ICON_INFO
            {
            caption = STRING_r_caption;
            number_of_icons = 3; // each icon must be a bitmap/mask pair
            icon_file = STRING_r_icon_file;
            }
        };                          
    }
Unlike most resource files, because there is only one resource
            defined in the file, it does not need to include a four character
            NAME or an RSS_SIGNATURE resource, and the
            LOCALISABLE_APP_INFO resource does not need an ID.
         
The captions and the icon filename are referred to by symbolic
            identifiers rather than by the strings themselves. The strings are defined in
            .rls files (resource localisable string files), as shown below and
            conditional compilation statements are used to include the appropriate
            .rls file. For more information, on localising strings in resource
            files, see How to localise resources.
         
HelloWorld01.rls contains:
         
rls_string STRING_r_short_caption "Hello"
rls_string STRING_r_caption "Hello World"
rls_string STRING_r_icon_file "z:\\resource\\apps\\Hello.mbm"
HelloWorld02.rls contains:
         
rls_string STRING_r_short_caption "Bonjour"
rls_string STRING_r_caption "Bonjour tout le monde"
rls_string STRING_r_icon_file "z:\\resource\\apps\\Bonjour.mbm"
The mbm icon files are built by adding start bitmap statements to the mmp file, for instance:
START BITMAP   Hello.mbm
TARGETPATH      \Resource\Apps
SOURCE          c8,1 icon24.bmp icon24m.bmp icon32.bmp icon32m.bmp icon48.bmp icon48m.bmp
END
As an alternative to defining the icon/caption information in an
            icon/caption definition file, it can be defined in the application's existing
            UI resource definition file. In this case, the
            LOCALISABLE_APP_INFO resource must be given an ID, because it is
            no longer the only resource defined in the file. The registration file is as
            before, except that it must now specify the ID of the
            LOCALISABLE_APP_INFO resource as well as the name and location of
            the UI resource file. In other words, the line:
         
localisable_resource_file = "\\resource\\apps\\HelloWorld_loc";
needs to be changed to:
localisable_resource_file = "\\resource\\apps\\HelloWorld";
localisable_resource_id = R_LAI;
where R_LAI is the ID of the
            LOCALISABLE_APP_INFO resource. Because the registration file needs
            to give the resource ID, it must #include the application's
            generated resource header file, HelloWorld.rsg. Also, the UI
            resource file needs to #include
            AppInfo.rh for the
            LOCALISABLE_APP_INFO definition.