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
Métodos públicos
Nome |
Descrição |
---|---|
Cria um objeto de CLSID especificado. |
|
Dado uma chave de licença, cria um objeto de CLSID especificado. |
|
Recupera informações que descrevem os recursos licenciando de fábrica da classe. |
|
Bloqueia o factory da classe na memória. |
|
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
IClassFactory2
CComClassFactory2
Requisitos
Cabeçalho: atlcom.h
Consulte também
Referência
Classe de CComClassFactoryAutoThread
Classe de CComClassFactorySingleton