Application UIDs

A UID is a globally unique identifier consisting of a 32-bit number used to uniquely identify, for example, an object or file type. In Symbian development, objects are identified by compound identifiers that are constructed from three UIDs, namely UID1, UID2, and UID3.

UID1

UID1 specifies the category of an object. In Symbian application projects, UID1 is automatically specified by the build tools based on the TARGETTYPE keyword of the project mmp file. For more information about the mmp file, see the Build Configuration Files topic.

Note: You don't have to specify UID1 yourself.

UID2

UID2 specifies a sub-category of an object. You need to specify an appropriate UID2 value (according to the project type) for the UID keyword in the project mmp file. UID values for some commonly used project types are as follows:
  • GUI-based applications: 0x100039CE

  • Static dlls: 0x1000008d

  • Polymorphic dlls: value depends on the dll type (general engine, plugin, device driver, etc.) which all have their own unique value

UID3

Unlike UID1 and UID2 that specify the category of an object, UID3 identifies a particular object, e.g. a particular exe file or a particular dll file.

UID3 is used among others in the following places in your application:

Choosing the UID3 value

You have to get the UID3 from Symbian Signed , which is part of the Symbian Foundation and manages the allocation of UIDs.

There are three ranges that can be used for UID3 values as follows:
  • For testing purposes, you can use any UID from the 0xE0000000 to 0xEFFFFFFF range without applying for it from Symbian Signed.

  • If you want to distribute a Symbian application which doesn't need to be Symbian Signed (for example freeware), you should request a UID from the 0xA0000000 to 0xAFFFFFFF range of unprotected UIDs. For more information, see UID of self-signed applications in the Forum Nokia technical library

  • If you want to use some restricted features of a mobile device, you need to request your application to be Symbian Signed which means that you request a UID3 from the 0x20000000 to 0x2FFFFFFF range

For more information, see How to use UIDs and Building.

Note:
If you use a UID3 that is in the test range during development and need to replace it with a UID assigned by Symbian Signed so that you can get the application Symbian Signed you need to replace all occurrences of the UID3 in your source code. To do this you can do a text-based search and replace (with e.g. Carbide++) in the project files. The UID3 value is used at least in the following places:
  • the mmp project file

  • the declaration of the CAknApplication derived class

  • the registration resource file. See the Creating registration resource files section from the Managing resource files topic.

Platform UID

Platform UIDs are used to uniquely identify versions of the Symbian platform. To set the platform UID, specify the target platform version for your application in your project pkg file. For more information, see UIDs.