다음을 통해 공유


CComClassFactory2 Class

이 클래스에서 구현 된 에서는 IClassFactory2 인터페이스.

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

매개 변수

  • 라이센스
    다음 정적 함수를 구현 하는 클래스.

    • 정적 BOOL VerifyLicenseKey (BSTRbstr**);**

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

    • 정적 BOOL IsLicenseValid ();

Members

Public 메서드

이름

설명

CComClassFactory2::CreateInstance

지정한 CLSID의 개체를 만듭니다.

CComClassFactory2::CreateInstanceLic

지정 된 라이센스 키를 지정 된 CLSID의 개체를 만듭니다.

CComClassFactory2::GetLicInfo

클래스 팩터리를 라이센스 기능을 설명 하는 정보를 검색 합니다.

CComClassFactory2::LockServer

메모리에서 클래스 팩터리를 잠급니다.

CComClassFactory2::RequestLicKey

만들고 라이센스 키를 반환 합니다.

설명

CComClassFactory2구현 된 에서는 IClassFactory2 은 인터페이스의 IClassFactory. 에서는 IClassFactory2 컨트롤 개체는 라이센스를 생성 합니다. 클래스 팩터리 사용이 허가 된 컴퓨터에서 실행 런타임 라이센스 키를 제공할 수 있습니다. 이 라이센스 키 전체 컴퓨터 라이센스 없을 때 개체를 인스턴스화할 수 있습니다.

ATL 개체 정상적으로 취득 팩터리 클래스에서 파생 하 여 CComCoClass. 이 클래스는 매크로 포함 DECLARE_CLASSFACTORY는 선언 CComClassFactory 기본 클래스 팩터리로. 사용할 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, 정적 함수를 구현 해야 VerifyLicenseKey, GetLicenseKey, 및 IsLicenseValid. 다음은 간단한 라이센스 클래스의 예제입니다.

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둘 다에서 파생 된 CComClassFactory2Base라이센스. CComClassFactory2Base, 따라서 파생 에서는 IClassFactory2CComObjectRootEx < CComGlobalsThreadModel >.

상속 계층 구조

CComObjectRootBase

license

CComObjectRootEx

IClassFactory2

CComClassFactory2

요구 사항

헤더: atlcom.h

참고 항목

참조

CComClassFactoryAutoThread Class

CComClassFactorySingleton Class

CComObjectRootEx Class

CComGlobalsThreadModel

기타 리소스

ATL Class Overview