Sdílet prostřednictvím


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

CComClassFactory2::CreateInstance

Vytvoří objekt zadaný identifikátor CLSID.

CComClassFactory2::CreateInstanceLic

Dané licenční klíč vytvoří objekt zadaný identifikátor CLSID.

CComClassFactory2::GetLicInfo

Načte informace popisující licenční možnosti třídu factory.

CComClassFactory2::LockServer

Zamkne tříd v paměti.

CComClassFactory2::RequestLicKey

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

CComObjectRootEx

IClassFactory2

CComClassFactory2

Požadavky

Záhlaví: atlcom.h

Viz také

Referenční dokumentace

Třída CComClassFactoryAutoThread

Třída CComClassFactorySingleton

Třída CComObjectRootEx

CComGlobalsThreadModel

Další zdroje

Přehled třídy ATL