struct ICryFactory { };
ICryFactory.h
virtual ~ICryFactory();
prevent explicit destruction from client side (delete, shared_ptr, etc)
virtual bool ClassSupports(const CryInterfaceID& iid) const = 0;
virtual void ClassSupports(const CryInterfaceID*& pIIDs, size_t& numIIDs) const = 0;
virtual ICryUnknownPtr CreateClassInstance() const = 0;
virtual const CryClassID& GetClassID() const = 0;
virtual const char* GetClassName() const = 0;