다음을 통해 공유


ActivationFactory 클래스

Windows 런타임으로 활성화할 클래스를 하나 이상 사용합니다.

구문

template <
    typename I0 = Details::Nil,
    typename I1 = Details::Nil,
    typename I2 = Details::Nil
>
class ActivationFactory :
    public Details::RuntimeClass<
        typename Details::InterfaceListHelper<
            IActivationFactory,
            I0,
            I1,
            I2,
            Details::Nil
        >::TypeT,
        RuntimeClassFlags<WinRt | InhibitWeakReference>,
        false
    >;

매개 변수

I0
0번째 인터페이스입니다.

I1
첫 번째 인터페이스입니다.

I2
두 번째 인터페이스입니다.

설명

ActivationFactory 는 인터페이스에 대한 IActivationFactory 등록 메서드 및 기본 기능을 제공합니다. ActivationFactory 또한 사용자 지정 팩터리 구현을 제공할 수 있습니다.

다음 코드 조각은 ActivationFactory를 사용하는 방법을 상징적으로 보여 줍니다.

struct MyClassFactory : public ActivationFactory<IMyAddtionalInterfaceOnFactory>
{
    STDMETHOD(ActivateInstance) (_Outptr_result_nullonfailure_ IInspectable** ppvObject)
    {
        // my custom implementation

        return S_OK;
    }
};

ActivatableClassWithFactory(MyClass, MyClassFactory);
// or if a default factory is used:
//ActivatableClassWithFactory(MyClass, SimpleActivationFactory);

다음 코드 조각에서는 Implements 구조를 사용하여 3개 이상의 인터페이스 ID를 지정하는 방법을 보여 줍니다.

struct MyFactory : ActivationFactory<Implements<I1, I2, I3>, I4, I5>;

멤버

공용 생성자

속성 설명
ActivationFactory::ActivationFactory ActivationFactory 클래스를 초기화합니다.

공용 메서드

이름 설명
ActivationFactory::AddRef 현재 ActivationFactory 개체의 참조 수를 증분합니다.
ActivationFactory::GetIids 구현된 인터페이스 ID의 배열을 가져옵니다.
ActivationFactory::GetRuntimeClassName 현재 ActivationFactory 인스턴스화하는 개체의 런타임 클래스 이름을 가져옵니다.
ActivationFactory::GetTrustLevel 현재 ActivationFactory 인스턴스화하는 개체의 신뢰 수준을 가져옵니다.
ActivationFactory::QueryInterface 지정된 인터페이스에 대한 포인터를 검색합니다.
ActivationFactory::Release 현재 ActivationFactory 개체의 참조 수를 줄입니다.

상속 계층 구조

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ActivationFactory

요구 사항

헤더: module.h

네임스페이스: Microsoft::WRL

ActivationFactory::ActivationFactory

ActivationFactory 클래스를 초기화합니다.

ActivationFactory();

ActivationFactory::AddRef

현재 ActivationFactory 개체의 참조 수를 증분합니다.

STDMETHOD_(
   ULONG,
   AddRef
)();

Return Value

성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.

ActivationFactory::GetIids

구현된 인터페이스 ID의 배열을 가져옵니다.

STDMETHOD(
   GetIids
)(_Out_ ULONG *iidCount, _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

매개 변수

iidCount
이 작업이 완료되면 iids 배열의 인터페이스 ID 수입니다 .

iids
이 작업이 완료될 대 구현된 인터페이스 ID의 배열입니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다. E_OUTOFMEMORY는 가능한 실패 HRESULT입니다.

ActivationFactory::GetRuntimeClassName

현재 ActivationFactory 인스턴스화하는 개체의 런타임 클래스 이름을 가져옵니다.

STDMETHOD(
   GetRuntimeClassName
)(_Out_ HSTRING* runtimeName);

매개 변수

runtimeName
이 작업이 완료되면 현재 ActivationFactory 인스턴스화하는 개체의 런타임 클래스 이름을 포함하는 문자열에 대한 핸들입니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.

ActivationFactory::GetTrustLevel

현재 ActivationFactory 인스턴스화하는 개체의 신뢰 수준을 가져옵니다.

STDMETHOD(
   GetTrustLevel
)(_Out_ TrustLevel* trustLvl);

매개 변수

trustLvl
이 작업이 완료되면 인스턴스화하는 런타임 클래스 ActivationFactory 의 신뢰 수준입니다.

Return Value

S_OK 성공하면 trustLvl 이 .로 FullTrust설정됩니다.

ActivationFactory::QueryInterface

지정된 인터페이스에 대한 포인터를 검색합니다.

STDMETHOD(
   QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);

매개 변수

riid
인터페이스 ID입니다.

ppvObject
이 작업이 완료되면 매개 변수 riid로 지정된 인터페이스에 대한 포인터입니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.

ActivationFactory::Release

현재 ActivationFactory 개체의 참조 수를 줄입니다.

STDMETHOD_(
   ULONG,
   Release
)();

Return Value

성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.