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
第零个接口。
I1
第一个接口。
I2
第二个接口。
备注
利用 ClassFactory
提供用户定义的工厂实现。
以下编程模式演示了如何使用 Implements 结构在类工厂上指定三个以上的接口。
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
)();
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。
ClassFactory::ClassFactory
WRL_NOTHROW ClassFactory();
ClassFactory::LockServer
递增或递减当前 ClassFactory
对象跟踪的基础对象数量。
STDMETHOD(
LockServer
)(BOOL fLock);
参数
fLock
若要递增跟踪对象的数量,则为 true
。 若要递减跟踪对象的数量,则为 false
。
返回值
如果成功,则为 S_OK;否则为 E_FAIL。
备注
ClassFactory
跟踪 Module 类的底层实例中的对象。
ClassFactory::QueryInterface
检索指向由参数指定的接口的指针。
STDMETHOD(
QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);
参数
riid
接口 ID。
ppvObject
此操作完成后,指向参数 riid 指定的接口的指针。
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。
ClassFactory::Release
递减当前 ClassFactory
对象的引用计数。
STDMETHOD_(
ULONG,
Release
)();
返回值
如果成功,则为 S_OK;否则为描述失败的 HRESULT。