diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-641A276D-F618-50CE-BA5A-658DCC26BAB5.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-641A276D-F618-50CE-BA5A-658DCC26BAB5.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,197 @@ + + + + + +Creating +an Implementation Project File An implementation project file is a .mmp file, which specifies the +essential elements of the implementation. The project files are used for project +development. The implementation project file contains information (source +file, build file) about the implementation that is being built.The +format of implementation project file is dependent on the version of Symbian +platform used. The differences basically reflect the introduction of platform +security into Symbian OS v9.0 and later versions. + +For creating a plug-in project file for Symbian OS v9.1 and later: + + +Set TARGET to the standard DLL name. TARGET contains +the final binary name of the project generated. +The plug-in DLL file is stored along other binaries in the\Sys\Bin directory. +The plug-in framework does not discover plug-ins installed in the pre v9.1 +location, \System\Libs\Plugins. + + +Set TARGETTYPE to PLUGIN. TARGETTYPE specifies +the type of binary. +Set TARGETTYPE to PLUGIN3 for DLLs supporting the extension +interfaces. PLUGIN3 DLLs are given the UID2 value of 0x10009D93. + + +Set UID to plug-in framework DLL recognition UID followed +by the unique UID of the plug-in. +UID of the plug-in must be the same as the one specified in the dll_uid member +in the registration +resource file. + + +Set VENDORID to the vendor creating the plug-ins. + + +Set CAPABILITY to the capabilities of the plug-in in +the variable. +If the plug-in is assigned no capabilities, only client processes with +no capabilities can use them. +For more information, see ECom +and the Platform Security Architecture. + + +Set SOURCEPATH to the path where the source files exist. +The path set in this variable must be relative to the path of the project +file. + + +Set SOURCE to the name of the source file. + + +Set USERINCLUDE to the path where the user provided +header files are available. +The path set in this variable must be relative to the path of the project +file. + + +Set SYSTEMINCLUDE to\epoc32\include\ecom. SYSTEMINCLUDE specifies +the path to OS provided header files. + + +Set RESOURCE to the registration resource file of the +implementation. +From v9.1, the name of the registration resource file must be the same +as that of the executable. +For example, if the plug-in is foo.dll, then its +registration resource file must be called foo.rsc. This +is because plug-in framework uses the names of the registration resource file +to find the plug-in DLLs. +A simple START RESOURCE statement is of the following +form: +START RESOURCE foo.rss +END +This builds a file named foo.rsc. Registration +resource files are always built into the target directory \Resource\Plugins. +There is no need to explicitly set the target directory for the .rsc file +in the project file, the build tools take care of it. +Where the registration resource source file is still named after the +UID of the DLL, the built resource file can be renamed to be the same as the +DLL, using the TARGET keyword. For example: +START RESOURCE 10009DB0.rss +TARGET foo.rsc +END +This builds the 10009DB0.rss source file into \Resource\Plugins\foo.rsc. + + +Set the variable LIBRARY to ecom.lib. +The binary links against the specified .lib file. + + + + +

For creating a plug-in project file for Symbian OS v9.0 and earlier:

+ + +Set TARGET to the standard DLL name. TARGET contains +the final binary name of the project generated. + + +Set TARGETTYPE as ECOMIIC. TARGETTYPE specifies +the type of binary. + + +Set UID to the plug-in framework DLL recognition UID +followed by the unique UID of the plug-in. +Unique UID of the plug-in must be the same as the one specified in the dll_uid member +in the registration +resource file. + + +Set SOURCEPATH to the path where the source files exist. +The path set for this variable must be relative to the path of the project +file. + + +Set SOURCE to the name of the source file. + + +Set USERINCLUDE to the path where the user provided +header files are available. +The path set in this variable must be relative to the path of the project +file. + + +Set SYSTEMINCLUDE to\epoc32\include\ecom. +SYSTEMINCLUDE specifies the path to OS provided header files. + + +Set RESOURCE to the registration resource file of the +implementation. +The registration resource file .rss need not have the same name as the +DLL. It is required to be named after the UID of the DLL. + + +Set LIBRARY to ecom.lib. The binary +links to the .lib file. + + +
+
+Creating an +implementation project file example

For Symbian OS v9.1 and +later

// ExampleInterfaceImplementation.mmp +// +TARGET ExampleInterfaceImplementation.dll +TARGETTYPE PLUGIN + +// ECom Dll recognition UID followed by the unique dll UID +UID 0x10009D8D 0x10009DB0 + +VENDORID 0x70000001 + +CAPABILITY All -TCB + +SOURCEPATH \ExampleInterfaceImplementation +SOURCE ExampleInterfaceImplementation.cpp + +USERINCLUDE \ExampleInterfaceImplementation \inc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE \epoc32\include\ecom + +START RESOURCE 10009DB0.rss +TARGET ExampleInterfaceImplementation.rsc +END + +LIBRARY euser.lib +LIBRARY ecom.lib

For Symbian OS v9.0 and earlier

// ExampleInterfaceImplementation.mmp +// +TARGET ExampleInterfaceImplementation.dll +TARGETTYPE ECOMIIC + +// ECom Dll recognition UID followed by the unique dll UID +UID 0x10009D8D 0x10009DB0 + +SOURCEPATH \ExampleInterfaceImplementation +SOURCE ExampleInterfaceImplementation.cpp + +USERINCLUDE \ExampleInterfaceImplementation \inc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE \epoc32\include\ecom + +RESOURCE 10009DB0.rss + +LIBRARY euser.lib +LIBRARY ecom.lib
+
\ No newline at end of file