CComClassFactory2 클래스

이 클래스에서 구현 된 에서는 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

86sktbds.collapse_all(ko-kr,VS.110).gifPublic 메서드

이름

설명

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 클래스

CComClassFactorySingleton 클래스

CComObjectRootEx 클래스

CComGlobalsThreadModel

기타 리소스

ATL 클래스 개요