
|   |  | |
An implementation collection's project file has statements as shown below.
There are slight differences depending on the version of Symbian OS you are using. The differences reflect the introduction of platform security into Symbian OS v9.0 and later versions.
                  TARGET is a standard DLL name 
                  
               
                  TARGETTYPE is ECOMIIC
                  
               
                  the first number in the UID statement is the ECom DLL
                  recognition UID, 0x10009D8D, followed by the unique UID for this DLL. That is
                  the same UID that is specified in the dll_uid member in the
                  registration resource file 
                  
               
                  RESOURCE must specify the implementation's
                  registration resource file 
                  
               
                  SYSTEMINCLUDE must specify
                  \epoc32\include\ecom
                  
               
                  LIBRARY must specify ecom.lib
                  
               
// 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
            Implementation collections are built into the
            \system\libs\plugins\ directory. 
            
         
                  TARGET is a standard DLL name 
                  
               
                  The plug-in DLL file is stored with the other binaries on the drive
                  in the common \Sys\Bin directory. ECom will not discover plug-ins
                  installed in the pre v9.1 location \System\Libs\Plugins. 
                  
               
                  TARGETTYPE is PLUGIN
                  
               
                  The first number in the UID statement is the ECom DLL
                  recognition UID, 0x10009D8D, followed by the unique UID for this DLL. That is
                  the same UID that is specified in the dll_uid member in the
                  registration resource file. 
                  
               
                  The plug-in should be given appropriate platform security
                  capabilities with a CAPABILITY statement. If the plug-in is given
                  no capabilities, it will only be usuable by client processes also with no
                  capabilities. For more information, see ECom and the Platform Security Architecture.
                  
               
                  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 ECom uses the names of the registration
                  resource file to find the plug-in DLLs. 
                  
               
                  A simple START RESOURCE statement of the form: 
                  
               
START RESOURCE foo.rss
END
                  will build a file foo.rsc. Registration resource files
                  are always built into the target directory \Resource\Plugins. The
                  build tools set this directory correctly without you needing to set it in the
                  project file. 
                  
               
                  Before v9.1, the registration resource file did not have the same
                  name as the DLL, but was required to be named after the UID3 of the DLL. Where
                  the registration resource source file is still named after the UID3, 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 correctly
                  into \Resource\Plugins\foo.rsc. 
                  
               
                  SYSTEMINCLUDE must specify
                  \epoc32\include\ecom
                  
               
                  LIBRARY must specify ecom.lib
                  
               
// 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