共用方式為


CComClassFactory2 類別

這個類別會實作介面 IClassFactory2

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

參數

  • 授權
    實作下列靜態函式的類別:

    • static BOOL VerifyLicenseKey( BSTR bstr);

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

    • static BOOL IsLicenseValid( );

Members

86sktbds.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

CComClassFactory2::CreateInstance

建立指定的 CLSID 的物件。

CComClassFactory2::CreateInstanceLic

將授權金鑰,建立指定的 CLSID 的物件。

CComClassFactory2::GetLicInfo

擷取描述 Class Factory 授權功能的相關資訊。

CComClassFactory2::LockServer

鎖定在記憶體的 Class Factory。

CComClassFactory2::RequestLicKey

授權金鑰建立和傳回。

備註

CComClassFactory2IClassFactory2 實作介面,則為 IClassFactory副檔名。IClassFactory2 控制項透過授權物件建立。執行授權的電腦的 Class Factory 可以提供執行階段授權識別碼。當完整授權的電腦能夠不存在時,這個授權識別碼可讓應用程式執行個體化物件。

ATL 物件以下列方式通常是安全的 Class Factory。 CComCoClass。這個類別包含巨集 DECLARE_CLASSFACTORY,宣告 CComClassFactory 做為預設的 Class Factory。若要使用 CComClassFactory2,請指定 DECLARE_ CLASSFACTORY2 巨集在物件的類別定義。例如:

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,對 CComClassFactory2的樣板參數時,必須實作靜態函式 VerifyLicenseKeyGetLicenseKeyIsLicenseValid。以下是簡單的授權的類別範例:

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

CComClassFactory2CComClassFactory2Base授權衍生。CComClassFactory2Base,接著,從 IClassFactory2 和 **CComObjectRootEx< CComGlobalsThreadModel >**衍生。

繼承階層架構

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

需求

Header: atlcom.h

請參閱

參考

CComClassFactoryAutoThread 類別

CComClassFactorySingleton 類別

CComObjectRootEx 類別

CComGlobalsThreadModel

其他資源

ATL 類別概觀