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 성공하면 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가 발생합니다.