Třída CComClassFactory2
Tato třída implementuje IClassFactory2 rozhraní.
template <
class license
>
class CComClassFactory2 : public IClassFactory2,
public CComObjectRootEx<CComGlobalsThreadModel>,
public license
Parametry
licence
Třída, která implementuje statické následující funkce:statické BOOL VerifyLicenseKey (BSTR bstr );
static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr );
statické (BOOL IsLicenseValid);
Členy
Veřejné metody
Název |
Description |
---|---|
Vytvoří objekt zadaný identifikátor CLSID. |
|
Dané licenční klíč vytvoří objekt zadaný identifikátor CLSID. |
|
Načte informace popisující licenční možnosti třídu factory. |
|
Zamkne tříd v paměti. |
|
Vytvoří a vrátí licenční klíč. |
Poznámky
CComClassFactory2implementuje IClassFactory2 rozhraní, které je rozšíření z IClassFactory.IClassFactory2 objekt řídí vytváření prostřednictvím licence.Spuštění výroby třídy licencované počítače může poskytnout běhu licenční klíč.Tento licenční klíč umožňuje aplikaci k vytvoření objektů při licenční úplné počítače neexistuje.
Objekty ATL obvykle získat třídu factory po vyplývající z CComCoClass.Tato třída zahrnuje makro DECLARE_CLASSFACTORY, které prohlašuje CComClassFactory jako třída výchozí.Použití CComClassFactory2 , zadejte DECLARE_CLASSFACTORY2 makro v definici třídy daného objektu.Příklad:
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 šablony na CComClassFactory2 , musí implementovat statické funkce VerifyLicenseKey , GetLicenseKey , a IsLicenseValid .Následuje příklad jednoduchého licenci třídy:
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; }
};
CComClassFactory2pochází z obou CComClassFactory2Base a licence.CComClassFactory2Base, naopak je odvozen z IClassFactory2 a CComObjectRootEx < CComGlobalsThreadModel >.
Hierarchii dědičnosti
CComObjectRootBase
license
IClassFactory2
CComClassFactory2
Požadavky
Záhlaví: atlcom.h
Viz také
Referenční dokumentace
Třída CComClassFactoryAutoThread
Třída CComClassFactorySingleton