IClassFactory2
The IClassFactory2
interface enables a class factory object, in any sort of object server, to
control object creation through licensing. This interface is an extension to IClassFactory. This extension enables a
class factory executing on a licensed machine to provide a license key that can
be used later to create an object instance on an unlicensed machine. Such
considerations are important for objects like controls that are used to build
applications on a licensed machine. Subsequently, the application built must be
able to run on an unlicensed machine. The license key gives only that one
client application the right to instantiate objects through IClassFactory2
when a full machine license does not exist.
When to Implement
Implement
this interface on a class factory object if you need to control object creation
through a license. A class that supports licensing should be marked in an
object s type information with the [licensed] attribute on the object s coclass
entry.
The CreateInstance
method inherited from IClassFactory is allowed to return
CLASS_E_NOTLICENSED to indicate that object creation is controlled through
licensing. The caller can create an instance of this object only through IClassFactory2::CreateInstanceLic
if the caller has a license key obtained from IClassFactory2::RequestLicKey.
Otherwise, no object creation is allowed.
When to Use
Use this
interface to create licensed objects or to obtain a license key that can be
used in later creations.
Methods in Vtable Order
|
IUnknown
Methods |
Description |
|
QueryInterface |
Returns
pointers to supported interfaces. |
|
AddRef |
Increments
reference count. |
|
Release |
Decrements
reference count. |
|
IClassFactory
Methods |
Description |
|
CreateInstance |
Creates an
uninitialized object. |
|
LockServer |
Locks
object application open in memory. |
|
IClassFactory2
Methods |
Description |
|
GetLicInfo |
Fills a LICINFO
structure with information on the licensing capabilities of this class
factory. |
|
RequestLicKey |
Creates and
returns a license key that the caller can save and use later in calls to IClassFactory2::CreateInstanceLic. |
|
CreateInstanceLic |
Creates an
instance of the licensed object given a license key from IClassFactory2::RequestLicKey. |
See Also