CComClassFactory2 sınıfı
Bu sınıf uygulayan IClassFactory2 arabirimi.
template <
class license
>
class CComClassFactory2 : public IClassFactory2,
public CComObjectRootEx<CComGlobalsThreadModel>,
public license
Parametreler
Lisans
Sınıf statik aşağıdaki işlevleri gerçekleştirir:static bool VerifyLicenseKey (bstrbstr**);**
static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr );
static bool IsLicenseValid ();
Üyeler
Public yöntemler
Ad |
Description |
---|---|
Belirtilen CLSID bir nesne oluşturur. |
|
Belirli bir lisans anahtarı, belirtilen CLSID bir nesne oluşturur. |
|
Sınıf üreticisi lisans yeteneklerini tanımlayan bilgileri alır. |
|
Sınıf üreteci bellekte kilitler. |
|
Oluşturur ve bir lisans anahtarı döndürür. |
Notlar
CComClassFactory2uygulayan IClassFactory2 bir uzantısıdır arabirimi, IClassFactory.IClassFactory2 denetimleri nesne oluşturma lisans aracılığıyla.Bir sınıf fabrikası lisanslı bir makinede çalıştırma çalışma zamanı lisans anahtarı sağlar.Bu lisans anahtarı tam makine lisans yoksa nesne örneğini oluşturmak bir uygulama sağlar.
atl nesneleri normal Sunucusu'ndan bir sınıf fabrikası türetmek tarafından CComCoClass.Bu sınıf içeren makro declare_classfactory, hangi bildirir CComClassFactory varsayılan sınıf üreteci olarak.Kullanmak için CComClassFactory2, belirtmek DECLARE_CLASSFACTORY2 , nesnenin sınıf tanımının makro.Örne?in:
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, şablon parametresi CComClassFactory2, statik işlevleri uygulamalıdır VerifyLicenseKey, GetLicenseKey, ve IsLicenseValid.Basit lisans sınıfının bir örneği aşağıdadır:
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; }
};
CComClassFactory2Her iki klasörden de türeyen CComClassFactory2Base ve Lisans.CComClassFactory2Base, sırasıyla türetildiği IClassFactory2 ve CComObjectRootEx < CComGlobalsThreadModel >.
Devralma hiyerarşisi
CComObjectRootBase
license
IClassFactory2
CComClassFactory2
Gereksinimler
Başlık: atlcom.h
Ayrıca bkz.
Başvuru
CComClassFactoryAutoThread sınıfı
CComClassFactorySingleton sınıfı