Klasa CComClassFactory2
Ta klasa implementuje IClassFactory2 interfejsu.
template <
class license
>
class CComClassFactory2 : public IClassFactory2,
public CComObjectRootEx<CComGlobalsThreadModel>,
public license
Parametry
licencji
Klasy, która implementuje statycznej następujące funkcje:statyczne BOOL VerifyLicenseKey (BSTRbstr**);**
static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr );
statyczne BOOL IsLicenseValid ();
Członkowie
Metody publiczne
Nazwa |
Opis |
---|---|
Tworzy obiekt określony identyfikator CLSID. |
|
Biorąc pod uwagę klucz licencji tworzy obiekt określony identyfikator CLSID. |
|
Pobiera informacje opisujące licencją Fabryczna klasa. |
|
Blokuje fabryki klasy w pamięci. |
|
Tworzy i zwraca klucza licencji. |
Uwagi
CComClassFactory2implementuje IClassFactory2 interfejs, który jest rozszerzeniem z IClassFactory.IClassFactory2 kontroli obiektu tworzenia za pośrednictwem licencji.Klasy fabrycznej wykonywanie na komputerze licencjonowanych zapewnia, że klucz licencji run-time.Ten klucz licencji umożliwia aplikacji do tworzenia wystąpień obiektów, gdy licencji pełnego maszyny nie istnieje.
Zwykle obiekty ATL nabyć Fabryczna klasa przez wynikających z CComCoClass.Klasa ta obejmuje makro DECLARE_CLASSFACTORY, która deklaruje CComClassFactory jako fabryczna Klasa domyślna.Aby użyć CComClassFactory2, określ DECLARE_CLASSFACTORY2 makro w definicji klasy obiektu użytkownika.Na przykład:
class ATL_NO_VTABLE CMyClass2 :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyClass2, &CLSID_MyClass>,
public IDispatchImpl<IMyClass, &IID_IMyClass, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IDispatchImpl<IMyDualInterface, &__uuidof(IMyDualInterface), &LIBID_NVC_ATL_COMLib, /* wMajor = */ 1, /* wMinor = */ 0>
{
public:
DECLARE_CLASSFACTORY2(CMyLicense)
// Remainder of class declaration omitted
CMyLicense, parametr szablonu do CComClassFactory2, musi implementować funkcji statycznej VerifyLicenseKey, GetLicenseKey, i IsLicenseValid.Oto przykład klasy proste licencji:
class CMyLicense
{
protected:
static BOOL VerifyLicenseKey(BSTR bstr)
{
USES_CONVERSION;
return !lstrcmp(OLE2T(bstr), _T("My run-time license key"));
}
static BOOL GetLicenseKey(DWORD /*dwReserved*/, BSTR* pBstr)
{
USES_CONVERSION;
*pBstr = SysAllocString( T2OLE(_T("My run-time license key")));
return TRUE;
}
static BOOL IsLicenseValid() { return TRUE; }
};
CComClassFactory2pochodzi z obu CComClassFactory2Base i licencji.CComClassFactory2Base, z kolei pochodzi od IClassFactory2 i CComObjectRootEx < CComGlobalsThreadModel >.
Hierarchii dziedziczenia
CComObjectRootBase
license
IClassFactory2
CComClassFactory2
Wymagania
Nagłówek: atlcom.h
Zobacz też
Informacje
Klasa CComClassFactoryAutoThread
Klasa CComClassFactorySingleton