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, описывающее тип сбоя.