다음을 통해 공유


IClassFactory2::CreateInstanceLic 메서드(ocidl.h)

지정된 라이선스 키에 대한 사용이 허가된 개체의 instance 만듭니다. 이 메서드는 사용 허가되지 않은 컴퓨터에서 개체를 만들 수 있는 유일한 방법입니다.

구문

HRESULT CreateInstanceLic(
  [in]  IUnknown *pUnkOuter,
  [in]  IUnknown *pUnkReserved,
  [in]  REFIID   riid,
  [in]  BSTR     bstrKey,
  [out] PVOID    *ppvObj
);

매개 변수

[in] pUnkOuter

이 개체가 집계의 일부로 만들어지는 경우 알 수 없는 외부의 제어 IUnknown 인터페이스에 대한 포인터입니다. 개체가 집계의 일부가 아닌 경우 이 매개 변수는 NULL이어야 합니다.

[in] pUnkReserved

이 매개 변수는 사용되지 않으며 NULL이어야 합니다.

[in] riid

새로 만든 개체와 통신하는 데 사용할 인터페이스의 식별자에 대한 참조입니다.

[in] bstrKey

개체를 만드는 데 필요한 IClassFactory2::RequestLicKey 에서 이전에 가져온 런타임 라이선스 키입니다.

[out] ppvObj

riid에서 요청된 인터페이스 포인터를 수신하는 포인터 변수의 주소입니다. 반환이 성공하면 *ppvObj 에 요청된 인터페이스 포인터가 포함됩니다. 오류가 발생하면 구현에서 *ppvObjNULL로 설정해야 합니다.

반환 값

이 메서드는 다음 값뿐만 아니라 E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.

반환 코드 Description
S_OK
라이선스가 성공적으로 만들어졌습니다.
E_NOTIMPL
IClassFactory::CreateInstance를 통해 완전히 라이선스가 부여된 컴퓨터에서만 개체를 만들 수 있으므로 이 메서드는 구현되지 않습니다.
E_POINTER
bstrKey 또는 ppvObj에 전달된 포인터가 잘못되었습니다. 예를 들어 NULL일 수 있습니다.
E_NOINTERFACE
개체가 riid로 지정된 인터페이스를 지원하지 않는다는 점을 제외하고 개체를 만들 수 있고 라이선스 키가 유효합니다.
CLASS_E_NOAGGREGATION
pUnkOuter 매개 변수는 NULL이 아니지만 이 개체 클래스는 집계를 지원하지 않습니다.
CLASS_E_NOTLICENSED
bstrKey에 제공된 키가 유효한 라이선스 키가 아닙니다.

설명

구현자에 대한 참고 사항

클래스 팩터리에서 라이선스 키(즉, IClassFactory2::RequestLicKey가 E_NOTIMPL 반환하고 LICINFOfRuntimeKeyAvail 멤버가 IClassFactory2::GetLicInfo에서 FALSE로 설정된 경우) 이 메서드는 E_NOTIMPL 반환할 수도 있습니다. 이러한 경우 클래스 팩터리는 단순히 IClassFactory2를 구현하여 LICINFOfLicVerified 멤버를 통해 머신의 라이선스를 전혀 부여할지 여부를 지정합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ocidl.h

추가 정보

IClassFactory2

LICINFO