Identifying Optional Features

This document details how to identify optional features for querying with the Feature Registry.

Feature UIDs

Each optional or managed feature on Symbian platform is given a 32-bit unique identifier and represented by a TUid. The names of Symbian platform features and their UID assignments are defined in the featureUIDs.h header file.

These names or UIDs are the argument values for the Feature Registry query functions. The granularity of features is generally quite coarse. Seldom will a feature correspond to a single API method or aspect of its behaviour. Other approaches (beyond what is provided by the Feature Registry) are generally required to detect these minor variations. Strong guarantees of backward compatibility mean that existing functionality associated with a feature or identifier may not change or be removed, though it may grow in later releases. Functionality is only removed when the entire feature is removed.

Feature UIDs example

This code is an example of UIDs assigned to features to be queried using the Feature Registry.

namespace NFeature
    {
    const TUid KFax = {0x10279806};         // Sample only! Refer to true
    const TUid KPrint = {0x10279807};       // featureUIDs.h header file for
    const TUid KBluetooth = {0x10279808};   // actual names and UIDs (plus
    const TUid KInfrared = {0x10279809};    // proper in-code documentation
    const TUid KMmc = {0x1027980a};         // about each feature).
    const TUid KUsb = {0x1027980b};
    // . . .
    }