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。