#include <scf.h>
Inheritance diagram for iFactory:
Public Methods | |
virtual void* | CreateInstance ()=0 |
Create a insance of class this factory represents. | |
virtual void | TryUnload ()=0 |
Try to unload class module (i.e. shared module). | |
virtual const char* | QueryDescription ()=0 |
Query class description string. | |
virtual const char* | QueryDependencies ()=0 |
Query class dependency strings. | |
virtual const char* | QueryClassID ()=0 |
Query class ID. |
Any object supports the iFactory interface; a QueryInterface about iFactory will return a valid pointer to the factory that was used to create that object. Thus you can clone objects without even knowing their types.
NOTE: Currently you cannot add factories to the class factory list internally maintained by SCF. That is, you can use an existing factory but cannot create objects that implements this interface (well, you can but its pointless since you won't be able to add it to the factory list). Instead, you should register new class factories using scfRegisterClass ().