Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.
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.
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.