diff -r 48780e181b38 -r 578be2adaf3e Symbian3/PDK/Source/GUID-5BD60B1B-CEB7-557A-A9DC-1BB64575F3E2.dita --- a/Symbian3/PDK/Source/GUID-5BD60B1B-CEB7-557A-A9DC-1BB64575F3E2.dita Tue Jul 20 12:00:49 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-5BD60B1B-CEB7-557A-A9DC-1BB64575F3E2.dita Fri Aug 13 16:47:46 2010 +0100 @@ -1,45 +1,45 @@ - - - - - -Content Access Agent ECom Resource File

CAF defines an ECom plug-in interface for third-party CAF agents. The interface allows new agents to be integrated dynamically, if required. In order to use CAF content, applications use the resource files.

default_data

The default_data section of an CA agent or CA agent proxy's resource file is used to specify three pieces of information:

  • The buffer size required by this agent to recognize a file when ContentAccess::CAgentManager::RecognizeFileL() is called.

  • A list of supplier MIME types supported by this agent.

  • A list of consumer MIME types supported by this agent.

The buffer size section is separated from the supplier MIME types by a '|' character and the supplier MIME types are separated from the consumer MIME types by a ':' character.

The following example explains the default_data section for an OMA DRM agent:

default_data="100|application/vnd.oma.drm.message,application/vnd.oma.drm.rights+xml:application/vnd.oma.drm.content";

  • It requires at least the first 100 bytes of a file in order to do recognition.

  • It supports a supplier MIME types of application/vnd.oma.drm.message and application/vnd.oma.drm.rights+xml.

  • It supports a consumer MIME type of application/vnd.oma.drm.content.

opaque_data

The opaque_data section is used to specify the agent's private directory under c:\private\. This is the SID (SecureId) of the server which owns the directory, for example:

opaque_data="12345678";

If the agent does not have a corresponding private directory or does not wish to provide access to that directory, it must just leave the opaque_data section as an empty string.

An example agent resource file // 101FE8F1.rss -// UIDs quick-ref -// -// ECom DLL UID: 0x101FE8F1 -// CA agent interface UID: 0x10204740 -// Test CAA Implementation: 0x101FE8F2 - -#include "RegistryInfo.rh" - -RESOURCE REGISTRY_INFO theInfo -{ - - dll_uid = 0x101FE8F1; - - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x10204740; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x101FE8F2; - version_no = 1; - display_name = "Test Agent"; - default_data = "255|application/vnd.oma.drm.message,application/vnd.oma.drm.content:application/vnd.oma.drm.content"; - // Sample CAF types - opaque_data = "12345678"; - } - }; - } - }; + + + + + +Content Access Agent ECom Resource File

CAF defines an ECom plug-in interface for third-party CAF agents. The interface allows new agents to be integrated dynamically, if required. In order to use CAF content, applications use the resource files.

default_data

The default_data section of an CA agent or CA agent proxy's resource file is used to specify three pieces of information:

  • The buffer size required by this agent to recognize a file when ContentAccess::CAgentManager::RecognizeFileL() is called.

  • A list of supplier MIME types supported by this agent.

  • A list of consumer MIME types supported by this agent.

The buffer size section is separated from the supplier MIME types by a '|' character and the supplier MIME types are separated from the consumer MIME types by a ':' character.

The following example explains the default_data section for an OMA DRM agent:

default_data="100|application/vnd.oma.drm.message,application/vnd.oma.drm.rights+xml:application/vnd.oma.drm.content";

  • It requires at least the first 100 bytes of a file in order to do recognition.

  • It supports a supplier MIME types of application/vnd.oma.drm.message and application/vnd.oma.drm.rights+xml.

  • It supports a consumer MIME type of application/vnd.oma.drm.content.

opaque_data

The opaque_data section is used to specify the agent's private directory under c:\private\. This is the SID (SecureId) of the server which owns the directory, for example:

opaque_data="12345678";

If the agent does not have a corresponding private directory or does not wish to provide access to that directory, it must just leave the opaque_data section as an empty string.

An example agent resource file // 101FE8F1.rss +// UIDs quick-ref +// +// ECom DLL UID: 0x101FE8F1 +// CA agent interface UID: 0x10204740 +// Test CAA Implementation: 0x101FE8F2 + +#include "RegistryInfo.rh" + +RESOURCE REGISTRY_INFO theInfo +{ + + dll_uid = 0x101FE8F1; + + interfaces = + { + INTERFACE_INFO + { + interface_uid = 0x10204740; + implementations = + { + IMPLEMENTATION_INFO + { + implementation_uid = 0x101FE8F2; + version_no = 1; + display_name = "Test Agent"; + default_data = "255|application/vnd.oma.drm.message,application/vnd.oma.drm.content:application/vnd.oma.drm.content"; + // Sample CAF types + opaque_data = "12345678"; + } + }; + } + }; }
Important UIDs for CA agents
  • 0x10009D8D — the ECom DLL UID. Identifies a DLL as an ECom plug-in.

  • 0x101FC2CE — the Content Access Agent v1.0 interface. An implementation of ContentAccess::CAgentFactory::NewL().

  • 0x10204740 — the Content Access Agent v2.0 interface. An implementation of ContentAccess::CAgentFactory::NewL().

Note: When writing a new CA agent, all other UIDs used in the above examples must be replaced by new UIDs from the Symbian UID generator.

\ No newline at end of file