diff -r 43e37759235e -r 51a74ef9ed63 Symbian3/SDK/Source/GUID-39186342-960A-46A4-BC35-851F53665FA8.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-39186342-960A-46A4-BC35-851F53665FA8.dita Wed Mar 31 11:11:55 2010 +0100 @@ -0,0 +1,112 @@ + + + + + +Writing +the Version 3 Registration Resource FileThe version 3 registration resource file is an evolution of the +version 2 . This version is evolved to accommodate extended interfaces. + +Set Info_format +to the type of info record that is, IMPLEMENTATION_INFO or BINARY_IMPLEMENTATION_INFO. + + +default_data: +The data identifier field used by the resolver to determine if the implementation +matches a client request. +

In IMPLEMENTATION_INFO structure, the data type +is changed to accommodate maximum 2 strings with 255 bytes each.

In BINARY_IMPLEMENTATION_INFO, +the data type is changed to accommodate a maximum 512 bytes.

+
+opaque_data: +A binary data field that can contain additional data. This additional data +can be used by the custom resolvers. +

In IMPLEMENTATION_INFO structure, the data type +is changed to accommodate maximum 2 strings with 255 bytes each.

In BINARY_IMPLEMENTATION_INFO structure, +the data type is changed to accommodate a maximum 512 bytes.

+
+extended_interfaces a +maximum 8 UID's extended interfaces for both IMPLEMENTATION_INFO structure +and BINARY_IMPLEMENTATION_INFO structure. + +FLAG_ROM_ONLY changed +from bool data type to bit flag. +

rom_only set to 1 indicates the ROM-only implementation +must be used.

rom_only set to 0 indicates the ROM-only +implementation can be overidden.

+
+In REGISTRY_INFO structure, +the resource_format_version must be RESOURCE_FORMAT_VERSION_3 . + + +In INTERFACE_INFOstructure, +the interface_uid is renamed to instantiation_interface_uid. + +In REGISTRY_INFO structure, +the resource_format_version must be RESOURCE_FORMAT_VERSION_3. + + +
+#define IMPLEMENTATION_INFO_RECORD_TYPE1 1 +STRUCT IMPLEMENTATION_INFO + { + BYTE info_format; // = IMPLEMENTATION_INFO_RECORD_TYPE1 + LONG implementation_uid; + BYTE version_no; + LTEXT display_name; + LEN BYTE LTEXT8 default_data[]; // maximum 2 strings with 255 bytes each + LEN BYTE LTEXT8 opaque_data[]; // maximum 2 strings with 255 bytes each + LONG extended_interfaces[]; // maximum 8 extended interfaces + BYTE flags; + } + +#define IMPLEMENTATION_INFO_RECORD_TYPE2 2 +STRUCT BINARY_IMPLEMENTATION_INFO + { + BYTE info_format; // = IMPLEMENTATION_INFO_RECORD_TYPE2 + LONG implementation_uid; + BYTE version_no; + LTEXT display_name; + BYTE default_data[]; // maximum 512 bytes + BYTE opaque_data[]; // maximum 512 bytes + LONG extended_interfaces[]; // maximum 8 extended interfaces + BYTE flags; + } + +STRUCT INTERFACE_INFO + { + LONG instantiation_interface_uid; + STRUCT implementations[]; // maximum 8 implementations for each interface + } + +STRUCT REGISTRY_INFO + { + LONG resource_format_version; // Use RESOURCE_FORMAT_VERSION_3 + LONG dll_uid; + STRUCT interfaces[]; // maximum 4 interfaces + } +

    +
  • Maximum of fourINTERFACE_INFO structures can be defined +in one resource file.

  • +
  • Maximum of eight IMPLEMENTATION_INFO or BINARY_IMPLEMENTATION_INFO structures +in each INTERFACE_INFO . Totally eight structures can be +defined.

  • +
  • Maximum eight extended interfaces in each IMPLEMENTATION_INFO record.

  • +
  • In a IMPLEMENTATION_INFO record a maximum of two strings +with 255 bytes each can be used for default_data oropaque_data definitions.

  • +
  • In a BINARY_IMPLEMENTATION_INFO record, a maximum +of 512 bytes each for default_data or opaque_data definitions. +

  • +

+
+Writing a +Standard Registration Resource File +Writing the +Version 2 Registration Resource File +
\ No newline at end of file