diff -r ebc84c812384 -r 46218c8b8afa Symbian3/PDK/Source/GUID-188F9462-F805-522A-84FF-770EAB045504.dita --- a/Symbian3/PDK/Source/GUID-188F9462-F805-522A-84FF-770EAB045504.dita Thu Mar 11 15:24:26 2010 +0000 +++ b/Symbian3/PDK/Source/GUID-188F9462-F805-522A-84FF-770EAB045504.dita Thu Mar 11 18:02:22 2010 +0000 @@ -1,111 +1,111 @@ - - - - - -An -example registration file and icon/caption file -
Introduction

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.

-
Registration file with an icon/caption definition file

The -registration file

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 Symbian -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.

The localisable icon/caption definition -file

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 Symbian -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
-
Registration file without an icon/caption definition file

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.

+ + + + + +An +example registration file and icon/caption file +
Introduction

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.

+
Registration file with an icon/caption definition file

The +registration file

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 Symbian +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.

The localisable icon/caption definition +file

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 Symbian +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
+
Registration file without an icon/caption definition file

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.

\ No newline at end of file