Compartilhar via


Classe CComClassFactory2

Essa classe implementa a interface de IClassFactory2 .

template <
   class license
>
class CComClassFactory2 : public IClassFactory2,
   public CComObjectRootEx<CComGlobalsThreadModel>,
   public license

Parâmetros

  • licença
    Uma classe que implementa as seguintes funções estáticas:

    • static BOOL VerifyLicenseKey( BSTR bstr );

    • static BOOL GetLicenseKey( DWORD dwReserved**, BSTR*** pBstr );

    • static BOOL IsLicenseValid (;)

Membros

86sktbds.collapse_all(pt-br,VS.110).gifMétodos públicos

Nome

Descrição

CComClassFactory2::CreateInstance

Cria um objeto de CLSID especificado.

CComClassFactory2::CreateInstanceLic

Dado uma chave de licença, cria um objeto de CLSID especificado.

CComClassFactory2::GetLicInfo

Recupera informações que descrevem os recursos licenciando de fábrica da classe.

CComClassFactory2::LockServer

Bloqueia o factory da classe na memória.

CComClassFactory2::RequestLicKey

Cria e retorna uma chave de licença.

Comentários

CComClassFactory2 implementa a interface de IClassFactory2 , que é uma extensão de IClassFactory.Os controles deIClassFactory2 trata a criação através de uma licença.Uma fábrica da classe que é executado em um computador licenciado pode fornecer uma chave de licença de tempo de execução.Essa chave de licença permite que um aplicativo instanciar objetos quando uma licença completa do computador não existe.

Os objetos de ATL geralmente adquirem uma fábrica da classe derivando de CComCoClass.Essa classe inclui DECLARE_CLASSFACTORYmacros, que declara CComClassFactory como o factory de classe padrão.Para usar CComClassFactory2, especifique a macro de DECLARE_CLASSFACTORY2 em sua definição de classe de objeto.Por exemplo:

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, o parâmetro de modelo a CComClassFactory2, deve implementar as funções VerifyLicenseKey, GetLicenseKey, e IsLicenseValidestático.O exemplo a seguir é um exemplo de uma classe simples de licença:

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; }
};

CComClassFactory2 deriva de ambos CComClassFactory2Base e licença.CComClassFactory2Base, por sua vez, deriva de e IClassFactory2 de CComObjectRootEx< CComGlobalsThreadModel >.

Hierarquia de herança

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

Requisitos

Cabeçalho: atlcom.h

Consulte também

Referência

Classe de CComClassFactoryAutoThread

Classe de CComClassFactorySingleton

Classe de CComObjectRootEx

CComGlobalsThreadModel

Outros recursos

Visão geral da classe de ATL