epoc32/include/appinfo.rh
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #if !defined __APPINFO_RH__
    17 #define __APPINFO_RH__
    18 
    19 //
    20 // contains definitions for the Application Information resource files
    21 
    22 /**
    23 @publishedAll
    24 @released
    25 */
    26 #define KMaxFileNameLength 256
    27 
    28 //
    29 // DEFINITIONS FOR THE NON-LOCALISABLE REGISTRATION RESOURCE FILE
    30 //
    31 
    32 /**
    33 @publishedAll
    34 @released
    35 */
    36 #define KUidAppRegistrationResourceFile 0x101f8021
    37 
    38 /**
    39 @publishedAll
    40 @released
    41 */
    42 // constants for capability.hidden
    43 #define KAppNotHidden	0
    44 #define KAppIsHidden	1
    45 
    46 /**
    47 @publishedAll
    48 @released
    49 */
    50 // constants for capability.newfile
    51 #define KAppDoesNotSupportNewFile	0
    52 #define KAppSupportsNewFile			1
    53 
    54 /**
    55 @publishedAll
    56 @released
    57 */
    58 // constants for capability.embeddability
    59 #define KAppNotEmbeddable				0
    60 #define KAppEmbeddable					1
    61 #define KAppEmbeddableOnly				2
    62 #define KAppEmbeddableUiOrStandAlone	5
    63 #define KAppEmbeddableUiNotStandAlone	6
    64 
    65 /**
    66 @publishedAll
    67 @released
    68 */
    69 // constants for capability.launch
    70 #define KAppLaunchInForeground	0
    71 #define KAppLaunchInBackground	1
    72 
    73 /**
    74 @publishedAll
    75 @released
    76 */
    77 // bit flags for capability.attributes
    78 #define KAppBuiltAsDll				0x00000001
    79 #define KAppIsControlPanelItem		0x00000002
    80 #define KAppNonNative				0x00000004
    81 
    82 /**
    83 @publishedAll
    84 @released
    85 */
    86 // application group name
    87 #define KAppMaxGroupName 16
    88 
    89 
    90 /**
    91 @publishedAll
    92 @released
    93 */
    94 STRUCT APP_REGISTRATION_INFO
    95 	{
    96 	LONG reserved_long = 0; // reserved for future use, do not use
    97 	LLINK reserved_llink = 0; // reserved for future use, do not use
    98 	//
    99 	LTEXT app_file(KMaxFileNameLength) = ""; // name of application binary file (not including extension) - mandatory
   100 	LONG attributes = 0;
   101 	//
   102 	LTEXT localisable_resource_file(KMaxFileNameLength) = ""; // path (not including drive) and name of localisable resource file
   103 	LONG localisable_resource_id = 1;
   104 	//
   105 	BYTE hidden = KAppNotHidden;
   106 	BYTE embeddability = KAppNotEmbeddable;
   107 	BYTE newfile = KAppDoesNotSupportNewFile;
   108 	BYTE launch = KAppLaunchInForeground;
   109 	LTEXT group_name(KAppMaxGroupName) = "";
   110 	//
   111 	BYTE default_screen_number = 0;
   112 	//
   113 	LEN WORD STRUCT datatype_list[]; // DATATYPE
   114 	//
   115 	LEN WORD STRUCT file_ownership_list[]; // FILE_OWNERSHIP_INFO
   116 	//
   117 	LEN WORD STRUCT service_list[]; // SERVICE_INFO
   118 	//
   119 	LLINK opaque_data = 0;	// use for opaque data to send to non-native application launchers i.e. MIDlet id
   120 	}
   121 
   122 
   123 /**
   124 @publishedAll
   125 @released
   126 */
   127 #define KMaxDataTypeLength 256
   128 
   129 /**
   130 @publishedAll
   131 @released
   132 */
   133 
   134 /* This enum is used to specify the priority at which an application can handle a particular MIME type.
   135    The application with the highest priority will be considered as the default application 
   136    for that particular MIME type.
   137    Default association of MIME types with applications can be overridden by user settings,
   138    except for applications handling data types with EDataTypePrioritySystem.
   139 */
   140 enum
   141 	{
   142 	
   143 	EDataTypePrioritySystem = 0xFFF9, 		// This is a special priority that overrides any user settings. 
   144 						    		// Applications must have EWriteDeviceData capability to use this priority. 
   145 						 		// If not they will be downgraded to EDataTypePriorityNormal
   146 	
   147 
   148 	EDataTypePriorityTrustedHigh = 0xC000, 	// Trusted applications may use this priority value to ensure that their MIME type
   149 								// associations cannot be overridden by self signed (untrusted) applications 
   150 
   151 
   152 	EDataTypePriorityHigh = 10000,		// An application at EDataTypePriorityHigh will be given higher preference for a  
   153 								// particular data type, than applications with EDataTypePriorityNormal
   154 
   155 
   156 	EDataTypePriorityNormal = 0,			// An application at EDataTypePriorityNormal will be given higher preference for a  
   157 								// particular data type, than applications with EDataTypePriorityLow.
   158 	
   159 	
   160 	EDataTypePriorityLow = -10000,		// This priority means that the data type is a secondary type for that application. 
   161 								// For example, "text/plain" files for a web browser	
   162 
   163 
   164 	EDataTypePriorityLastResort = -20000	// This priority means that the data type is a last resort for that application
   165 								 
   166 	};
   167 
   168 /**
   169 @publishedAll
   170 @released
   171 */
   172 STRUCT DATATYPE
   173 	{
   174 	LONG priority;
   175 	LTEXT8 type(KMaxDataTypeLength);
   176 	}
   177 
   178 /**
   179 @publishedAll
   180 @released
   181 */
   182 STRUCT FILE_OWNERSHIP_INFO
   183 	{
   184 	LTEXT file_name(KMaxFileNameLength);
   185 	}
   186 
   187 /**
   188 @publishedAll
   189 @released
   190 */
   191 STRUCT SERVICE_INFO
   192 	{
   193 	LONG uid = 0;
   194 	LEN WORD STRUCT datatype_list[];
   195 	LLINK opaque_data = 0;
   196 	}
   197 
   198 
   199 //
   200 // DEFINITIONS FOR THE LOCALISABLE RESOURCE FILE
   201 //
   202 
   203 /**
   204 @publishedAll
   205 @released
   206 */
   207 #define KMaxCaption 256
   208 
   209 /**
   210 @publishedAll
   211 @released
   212 */
   213 STRUCT LOCALISABLE_APP_INFO
   214 	{
   215 	LONG reserved_long = 0; // reserved for future use, do not use
   216 	LLINK reserved_llink = 0; // reserved for future use, do not use
   217 	//
   218 	LTEXT short_caption(KMaxCaption) = "";
   219 	STRUCT caption_and_icon; // CAPTION_AND_ICON_INFO
   220 	//
   221 	LEN WORD STRUCT view_list[]; // VIEW_DATA
   222 	//
   223 	LTEXT group_name(KAppMaxGroupName) = "";
   224 	}
   225 
   226 /**
   227 @publishedAll
   228 @released
   229 */
   230 STRUCT CAPTION_AND_ICON_INFO
   231 	{
   232 	LONG reserved_long = 0; // reserved for future use, do not use
   233 	LLINK reserved_llink = 0; // reserved for future use, do not use
   234 	//
   235 	LTEXT caption(KMaxCaption) = "";
   236 	//
   237 	WORD number_of_icons = 0; // each icon must be a bitmap/mask pair
   238 	LTEXT icon_file(KMaxFileNameLength) = "";
   239 	}
   240 
   241 /**
   242 @publishedAll
   243 @released
   244 */
   245 STRUCT VIEW_DATA
   246 	{
   247 	LONG reserved_long = 0; // reserved for future use, do not use
   248 	LLINK reserved_llink = 0; // reserved for future use, do not use
   249 	//
   250 	LONG uid = 0;
   251 	//
   252 	LONG screen_mode = 0;
   253 	//
   254 	STRUCT caption_and_icon; // CAPTION_AND_ICON_INFO
   255 	}
   256 
   257 #endif
   258