Поделиться через


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 для предоставления пользовательской реализации фабрики.

В следующем шаблоне программирования показано, как использовать структуру "Реализация" для указания более трех интерфейсов в фабрике классов.

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);

Параметры

стадо
true для увеличения числа отслеживаемых объектов. false для уменьшения количества отслеживаемых объектов.

Возвращаемое значение

Значение S_OK, если операция завершилась успешно; в противном случае — значение E_FAIL.

Замечания

ClassFactory отслеживает объекты в базовом экземпляре класса Module .

ClassFactory::QueryInterface

Извлекает указатель на интерфейс, указанный параметром.

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

Параметры

riid
Идентификатор интерфейса.

ppvObject
После завершения этой операции указатель на интерфейс, указанный параметром riid.

Возвращаемое значение

Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, описывающее тип сбоя.

ClassFactory::Release

Уменьшает число ссылок для текущего ClassFactory объекта.

STDMETHOD_(
   ULONG,
   Release
)();

Возвращаемое значение

Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, описывающее тип сбоя.