ClassFactory 클래스
IClassFactory
인터페이스의 기본 기능을 구현합니다.
구문
template <
typename I0 = Details::Nil,
typename I1 = Details::Nil,
typename I2 = Details::Nil
>
class ClassFactory :
public Details::RuntimeClass<
typename Details::InterfaceListHelper<
IClassFactory,
I0,
I1,
I2,
Details::Nil
>::TypeT,
RuntimeClassFlags<ClassicCom | InhibitWeakReference>,
false
>;
매개 변수
I0
0번째 인터페이스입니다.
I1
첫 번째 인터페이스입니다.
I2
두 번째 인터페이스입니다.
설명
ClassFactory
사용자 정의 팩터리 구현을 제공하는 데 활용합니다.
다음 프로그래밍 패턴에서는 Implements 구조를 사용하여 클래스 팩터리에 3개 이상의 인터페이스를 지정하는 방법을 보여 줍니다.
struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>
멤버
공용 생성자
속성 | 설명 |
---|---|
ClassFactory::ClassFactory |
공용 메서드
이름 | 설명 |
---|---|
ClassFactory::AddRef | 현재 ClassFactory 개체에 대한 참조 수를 증분합니다. |
ClassFactory::LockServer | 현재 ClassFactory 개체에서 추적하는 기본 개체의 수를 증분하거나 줄입니다. |
ClassFactory::QueryInterface | 매개 변수로 지정된 인터페이스에 대한 포인터를 검색합니다. |
ClassFactory::Release | 현재 ClassFactory 개체에 대한 참조 수를 줄입니다. |
상속 계층 구조
I0
ChainInterfaces
I0
RuntimeClassBase
ImplementsHelper
DontUseNewUseMake
RuntimeClassFlags
RuntimeClassBaseT
RuntimeClass
ClassFactory
요구 사항
헤더: module.h
네임스페이스: Microsoft::WRL
ClassFactory::AddRef
현재 ClassFactory
개체에 대한 참조 수를 증분합니다.
STDMETHOD_(
ULONG,
AddRef
)();
Return Value
성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.
ClassFactory::ClassFactory
WRL_NOTHROW ClassFactory();
ClassFactory::LockServer
현재 ClassFactory
개체에서 추적하는 기본 개체의 수를 증분하거나 줄입니다.
STDMETHOD(
LockServer
)(BOOL fLock);
매개 변수
fLock
true
추적된 개체의 수를 증분합니다. false
추적된 개체의 수를 줄입니다.
Return Value
성공하면 S_OK이고, 그렇지 않으면 E_FAIL입니다.
설명
ClassFactory
는 Module 클래스의 기본 인스턴스에서 개체를 추적합니다.
ClassFactory::QueryInterface
매개 변수로 지정된 인터페이스에 대한 포인터를 검색합니다.
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
매개 변수
riid
인터페이스 ID입니다.
ppvObject
이 작업이 완료되면 매개 변수 riid로 지정된 인터페이스에 대한 포인터입니다.
Return Value
성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.
ClassFactory::Release
현재 ClassFactory
개체에 대한 참조 수를 줄입니다.
STDMETHOD_(
ULONG,
Release
)();
Return Value
성공하면 S_OK이고, 그렇지 않으면 실패를 설명하는 HRESULT가 발생합니다.