diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita --- a/Symbian3/SDK/Source/GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita Wed Mar 31 11:11:55 2010 +0100 +++ b/Symbian3/SDK/Source/GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita Fri Jun 11 12:39:03 2010 +0100 @@ -1,179 +1,179 @@ - - - - - -Writing -a MIME Recognizer

The Mime Recognizers provide the implementation for data type -(MIME Type) recognition using the MIME recognition framework.

Each -MIME recognizer specifies the MIME type it supports along with the priority -and confidence of recognition. A MIME recognizer reads a small piece of data -and identifies the data type. Once the data type is identified, it is passed -to the Application -Architecture (AppArc). AppArc launches the application -that best handles the identified data type.

-

Symbian OS v9.1 -and onwards, MIME recognizers are ECOM plug-ins. -They are located in \sys\bin\.

Each MIME recognizer is loaded -by the Application -Architecture (AppArc) during the startup sequence.

- - -Create a project file (.mmp) for the MIME recognizer -and ensure the following parameters are set. - - - - -

Variable Name

-

Value

-

Description

-
- -

TargetType

-

plugin

-

Specifies the type of binary.

-
- -

Resource

-

Use the block start resource ... end

-

The variable Resource is set to the registration -resource file (.rss))of the MIME recognizer.

-
- -

UID

-

0x10009D8D and the DLL UID

-

The variable UID requires two values. The first -value is 0x10009D8D and is constant for all MIME recognizers. The second value -is the UID of the DLL.

-
- -

Capability

-

Protserv

-

The AppArc server has protserv capability.The MIME -recognizers are loaded by the AppArc server on requirement. The MIME recognizers -must have protserv capability to be loaded by the AppArc -server.

-
- - -
-For more details, refer Creating -a Project File. -The code below shows a sample .mmp file with the -above parameters set. -target exampleRecognizer.dll - -capability Protserv -targettype plugin -uid 0x10009d8d 0x1d1f75ed -vendorid 0x70000001 - -sourcepath . -source exampleRecognizer.cpp -systeminclude \EPOC32\INCLUDE -systeminclude \EPOC32\INCLUDE\ECOM - -library EUSER.LIB APMIME.LIB - -start resource 1d1f75ed.rss -target exampleRecognizer.rsc -end -
- -Export the factory code function of the MIME recognizer as shown below. -This is required to create an instance of the MIME recognizer. -The class CExampleRecognizer is derived from CApaDataRecognizerType. -const TInt KImplementationUID = 0x101F7DA1; - -CApaDataRecognizerType* CExampleRecognizer::CreateRecognizerL() - { - return new (ELeave) CExampleRecognizer; - } - -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY(KImplementationUID,CExampleRecognizer::CreateRecognizerL); - } - -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - -For more details refer Exporting -Implementation Factories. - - -Implement CApaDataRecognizerType polymorphic interface. - - -The code below shows a sample constructor implementation. -const TUid KExampleUid = {0x1d1f75ed}; - -const TInt KNumDataTypes = 1; - -CExampleRecognizer::CExampleRecognizer() : CApaDataRecognizerType(KExampleUid,CApaDataRecognizerType::EHigh) - - { - iCountDataTypes = KNumDataTypes; - - } - - -Specify a UID (the DLL UID as specified in the plug-in -project definition file) and a priority in -the constructor. -The iCountDataTypes variable, represents the number -of data types supported by the recognizer can also be set in the constructor. -The value set for this variable should match the implementation of CApaDataRecognizerType::SupportedDataTypeL(). - - -Implement the pure virtual function CApaDataRecognizerType::SupportedDataTypeL(). -It returns the MIME types that the recognizer is capable of recognizing. -The code below shows a sample implementation of SupportedDataTypeL() for -supporting MIME type/ subtype "text/example". - -_LIT8(KExampleTextMimeType, "text/example"); - - -TDataType CExampleRecognizer::SupportedDataTypeL(TInt aIndex) const - - { - return TDataType(KExampleTextMimeType); - - } - - -Implement CApaDataRecognizerType::DoRecognizeL(). -This function executes data type recognition. -The code below shows a sample implementation of DoRecognizeL() for -recognizing the MIME type "/text/example" contained in files -with .example extension with maximum confidence. -void CExampleRecognizer::DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer) - { - _LIT8(KExampleData, "example"); - _LIT(KDotExample, ".Example"); - - TParse parse; - parse.Set(aName,NULL,NULL); - TPtrC ext=parse.Ext(); // extract the extension from the filename - - if (ext.CompareF(KDotExample)==0 && aBuffer.FindF(KExampleData)!=KErrNotFound) - { - iConfidence=ECertain; - iDataType=TDataType(KExampleTextMimeType); - } - } - - - -
+ + + + + +Writing +a MIME Recognizer

The Mime Recognizers provide the implementation for data type +(MIME Type) recognition using the MIME recognition framework.

Each +MIME recognizer specifies the MIME type it supports along with the priority +and confidence of recognition. A MIME recognizer reads a small piece of data +and identifies the data type. Once the data type is identified, it is passed +to the Application +Architecture (AppArc). AppArc launches the application +that best handles the identified data type.

+

Symbian OS v9.1 +and onwards, MIME recognizers are ECOM plug-ins. +They are located in \sys\bin\.

Each MIME recognizer is loaded +by the Application +Architecture (AppArc) during the startup sequence.

+ + +Create a project file (.mmp) for the MIME recognizer +and ensure the following parameters are set. + + + + +

Variable Name

+

Value

+

Description

+
+ +

TargetType

+

plugin

+

Specifies the type of binary.

+
+ +

Resource

+

Use the block start resource ... end

+

The variable Resource is set to the registration +resource file (.rss))of the MIME recognizer.

+
+ +

UID

+

0x10009D8D and the DLL UID

+

The variable UID requires two values. The first +value is 0x10009D8D and is constant for all MIME recognizers. The second value +is the UID of the DLL.

+
+ +

Capability

+

Protserv

+

The AppArc server has protserv capability.The MIME +recognizers are loaded by the AppArc server on requirement. The MIME recognizers +must have protserv capability to be loaded by the AppArc +server.

+
+ + +
+For more details, refer Creating +a Project File. +The code below shows a sample .mmp file with the +above parameters set. +target exampleRecognizer.dll + +capability Protserv +targettype plugin +uid 0x10009d8d 0x1d1f75ed +vendorid 0x70000001 + +sourcepath . +source exampleRecognizer.cpp +systeminclude \EPOC32\INCLUDE +systeminclude \EPOC32\INCLUDE\ECOM + +library EUSER.LIB APMIME.LIB + +start resource 1d1f75ed.rss +target exampleRecognizer.rsc +end +
+ +Export the factory code function of the MIME recognizer as shown below. +This is required to create an instance of the MIME recognizer. +The class CExampleRecognizer is derived from CApaDataRecognizerType. +const TInt KImplementationUID = 0x101F7DA1; + +CApaDataRecognizerType* CExampleRecognizer::CreateRecognizerL() + { + return new (ELeave) CExampleRecognizer; + } + +const TImplementationProxy ImplementationTable[] = + { + IMPLEMENTATION_PROXY_ENTRY(KImplementationUID,CExampleRecognizer::CreateRecognizerL); + } + +EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) + { + aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); + return ImplementationTable; + } + +For more details refer Exporting +Implementation Factories. + + +Implement CApaDataRecognizerType polymorphic interface. + + +The code below shows a sample constructor implementation. +const TUid KExampleUid = {0x1d1f75ed}; + +const TInt KNumDataTypes = 1; + +CExampleRecognizer::CExampleRecognizer() : CApaDataRecognizerType(KExampleUid,CApaDataRecognizerType::EHigh) + + { + iCountDataTypes = KNumDataTypes; + + } + + +Specify a UID (the DLL UID as specified in the plug-in +project definition file) and a priority in +the constructor. +The iCountDataTypes variable, represents the number +of data types supported by the recognizer can also be set in the constructor. +The value set for this variable should match the implementation of CApaDataRecognizerType::SupportedDataTypeL(). + + +Implement the pure virtual function CApaDataRecognizerType::SupportedDataTypeL(). +It returns the MIME types that the recognizer is capable of recognizing. +The code below shows a sample implementation of SupportedDataTypeL() for +supporting MIME type/ subtype "text/example". + +_LIT8(KExampleTextMimeType, "text/example"); + + +TDataType CExampleRecognizer::SupportedDataTypeL(TInt aIndex) const + + { + return TDataType(KExampleTextMimeType); + + } + + +Implement CApaDataRecognizerType::DoRecognizeL(). +This function executes data type recognition. +The code below shows a sample implementation of DoRecognizeL() for +recognizing the MIME type "/text/example" contained in files +with .example extension with maximum confidence. +void CExampleRecognizer::DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer) + { + _LIT8(KExampleData, "example"); + _LIT(KDotExample, ".Example"); + + TParse parse; + parse.Set(aName,NULL,NULL); + TPtrC ext=parse.Ext(); // extract the extension from the filename + + if (ext.CompareF(KDotExample)==0 && aBuffer.FindF(KExampleData)!=KErrNotFound) + { + iConfidence=ECertain; + iDataType=TDataType(KExampleTextMimeType); + } + } + + + +
\ No newline at end of file