Classe CComClassFactory2
Essa classe implementa a IClassFactory2 interface.
template <
class license
>
class CComClassFactory2 : public IClassFactory2,
public CComObjectRootEx<CComGlobalsThreadModel>,
public license
Parâmetros
licença
Uma classe que implementa os seguintes estático funções:VerifyLicenseKey (BSTR BOOL estático bstr );
estático BOOL GetLicenseKey (DWORD dwReserved**, BSTR*** pBstr );
estático () BOOL IsLicenseValid;
Comentários
CComClassFactory2 implementa o IClassFactory2 interface, que é uma extensão de IClassFactory.IClassFactory2 controles objeto criação por meio de uma licença.Uma classe fábrica executem em uma computador licenciada pode fornecer uma chave de licença de time de execução.Essa chave de licença permite que um aplicativo instanciar objetos quando uma licença completa de computador não existe.
Objetos ATL normalmente adquirir uma fábrica de classes, derivando de CComCoClass.Essa classe inclui a macro DECLARE_CLASSFACTORY, que declara CComClassFactory sistema autônomo a fábrica de classes padrão.Para usar CComClassFactory2, especifique a DECLARE_CLASSFACTORY2 macro na definição de classe do seu 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 do modelo para CComClassFactory2, deve implementar funções estáticas VerifyLicenseKey, GetLicenseKey, e IsLicenseValid. Este é um exemplo de uma classe simples 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 and licença.CComClassFactory2Base, por sua vez, deriva de IClassFactory2 and CComObjectRootEx < CComGlobalsThreadModel >.
Requisitos
Cabeçalho: atlcom.h
Consulte também
Referência
Classe CComClassFactoryAutoThread
Classe CComClassFactorySingleton