Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Polymorphic interface DLLs

A polymorphic DLL contains an interface defined by a gate function and an abstract class with at least one virtual function.

The polymorphic DLL exports the gate function at ordinal 1, which typically constructs a concrete class derived from the abstract interface. The virtual function is then called, and the functions of the class are available.

Examples of polymorphic DLLs in Symbian OS include ECom plug-ins, device drivers, Front End Processors, and many more.

Each type of interface should specify its own UID, which is used as uid2 for the polymorphic DLL.

The function responsible for loading a polymorphic DLL should check that its uid2 corresponds with the expected interface type.

For polymorphic DLLs, the interpretation of uid3 depends on the interface type. uid3 may not be required by all interfaces.

The build process for a polymorphic DLL produces an import library, but it is not used.

mmp project specification

The project file for a polymorphic DLL must specify the correct target type and UIDs:

Example mmp file

An example of a project file (PolymorphicDLL1.mmp) for a polymorphic DLL is given below.

TARGET        PolymorphicDLL1.dll
TARGETTYPE    dll
UID           0x10004262 0x10004264
SOURCEPATH    .
SOURCE        PolymorphicDLL1.cpp
USERINCLUDE   .
USERINCLUDE   ..\UsingDLLs
SYSTEMINCLUDE \Epoc32\include
LIBRARY       euser.lib
EXPORTUNFROZEN