Module - класс
Представляет коллекцию связанных объектов.
Синтаксис
template<ModuleType moduleType>
class Module;
template<>
class Module<InProc> : public Details::ModuleBase;
template<>
class Module<OutOfProc> : public Module<InProc>;
Параметры
moduleType
Сочетание одного или нескольких значений перечисления ModuleType .
Участники
Защищенные классы
Имя | Описание |
---|---|
Module::GenericReleaseNotifier | Вызывает обработчик событий при освобождении последнего объекта в текущем модуле. Обработчик событий задается лямбда-выражением, функтором или указателем на функцию. |
Module::MethodReleaseNotifier | Вызывает обработчик событий при освобождении последнего объекта в текущем модуле. Обработчик событий указывается объектом и его элементом указателя на метод. |
Module::ReleaseNotifier | Вызывает обработчик событий при освобождении последнего объекта в модуле. |
Открытые конструкторы
Имя | Описание |
---|---|
Модуль::~Module | Деинициализирует текущий Module экземпляр класса. |
Защищенные конструкторы
Имя | Описание |
---|---|
Module::Module | Инициализирует новый экземпляр класса Module . |
Открытые методы
Имя | Описание |
---|---|
Module::Create | Создает экземпляр модуля. |
Module::D ecrementObjectCount | Уменьшает количество объектов, отслеживаемых модулем. |
Module::GetActivationFactory | Получает фабрику активации для модуля. |
Module::GetClassObject | Извлекает кэш фабрик классов. |
Модуль::GetModule | Создает экземпляр модуля. |
Module::GetObjectCount | Извлекает количество объектов, управляемых этим модулем. |
Module::IncrementObjectCount | Увеличивает количество объектов, отслеживаемых модулем. |
Module::RegisterCOMObject | Регистрирует один или несколько объектов модели COM, чтобы другие приложения могли к ним подключиться. |
Module::RegisterObjects | Регистрирует объекты COM или среда выполнения Windows, чтобы другие приложения могли подключаться к ним. |
Module::RegisterWinRTObject | Регистрирует один или несколько объектов среда выполнения Windows, чтобы другие приложения могли подключаться к ним. |
Module::Terminate | Приводит к завершению работы всех экземпляров фабрик, созданных модулем. |
Module::UnregisterCOMObject | Отменяет регистрацию одного или нескольких объектов модели COM, что предотвращает подключение к ним других приложений. |
Module::UnregisterObjects | Отменяет регистрацию объектов в указанном модуле. Таким образом другие приложения не смогут подключиться к ним. |
Module::UnregisterWinRTObject | Отменяет регистрацию одного или нескольких объектов среда выполнения Windows, чтобы другие приложения не могут подключаться к ним. |
Защищенные методы
Имя | Описание |
---|---|
Module::Create | Создает экземпляр модуля. |
Защищенные члены данных
Имя | Описание |
---|---|
Модуль::objectCount_ | Отслеживает, сколько классов было создано с помощью функции Make . |
Модуль::releaseNotifier_ | Содержит указатель на ReleaseNotifier объект. |
Макросы
Имя | Описание |
---|---|
АктивироватьableClass | Заполняет внутренний кэш, содержащий фабрику, которая может создать экземпляр указанного класса. Этот макрос задает параметры фабрики и группы по умолчанию. |
АктивацияClassWithFactory | Заполняет внутренний кэш, содержащий фабрику, которая может создать экземпляр указанного класса. Этот макрос позволяет указать определенный параметр фабрики. |
АктивацияClassWithFactoryEx | Заполняет внутренний кэш, содержащий фабрику, которая может создать экземпляр указанного класса. Этот макрос позволяет указать определенные параметры фабрики и идентификатора группы. |
Иерархия наследования
ModuleBase
Module
Module
Требования
Заголовок: module.h
Пространство имен: Microsoft::WRL
Модуль::~Module
Деинициализирует текущий Module
экземпляр класса.
virtual ~Module();
Module::Create
Создает экземпляр модуля.
WRL_NOTHROW static Module& Create();
template<typename T>
WRL_NOTHROW static Module& Create(
T callback
);
template<typename T>
WRL_NOTHROW static Module& Create(
_In_ T* object,
_In_ void (T::* method)()
);
Параметры
T
Тип модуля.
обратный вызов
Вызывается при выпуске последнего объекта экземпляра модуля.
object
Параметры объекта и метода используются в сочетании. Указывает на последний объект экземпляра при выпуске последнего объекта экземпляра в модуле.
method
Параметры объекта и метода используются в сочетании. Указывает на метод последнего объекта экземпляра при выпуске последнего объекта экземпляра в модуле.
Возвращаемое значение
Ссылка на модуль.
Module::D ecrementObjectCount
Уменьшает количество объектов, отслеживаемых модулем.
virtual long DecrementObjectCount();
Возвращаемое значение
Счетчик перед операцией уменьшения.
Module::GetActivationFactory
Получает фабрику активации для модуля.
WRL_NOTHROW HRESULT GetActivationFactory(
_In_ HSTRING pActivatibleClassId,
_Deref_out_ IActivationFactory **ppIFactory,
wchar_t* serverName = nullptr
);
Параметры
pActivatibleClassId
Представляет IID класса среды выполнения.
ppIFactory
Представляет интерфейс IActivationFactory указанного класса среды выполнения.
serverName
Имя подмножества фабрик класса в текущем модуле. Укажите имя сервера, используемое в макросе ActivatableClassWithFactoryEx , или укажите nullptr
, чтобы получить имя сервера по умолчанию.
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, возвращаемое GetActivationFactory.
Module::GetClassObject
Извлекает кэш фабрик классов.
HRESULT GetClassObject(
REFCLSID clsid,
REFIID riid,
_Deref_out_ void **ppv,
wchar_t* serverName = nullptr
);
Параметры
clsid
Идентификатор класса.
riid
Запрошенный идентификатор интерфейса.
ppv
Указатель на возвращаемый объект.
serverName
Имя сервера, указанное в макросе ActivatableClassWithFactory
, ActivatableClassWithFactoryEx
или ActivatableClass
; в противном случае — значение nullptr
для получения имени сервера по умолчанию.
Возвращаемое значение
Замечания
Используйте этот метод только для COM, а не для среда выполнения Windows. Этот метод предоставляет только IClassFactory
методы.
Модуль::GetModule
Создает экземпляр модуля.
static Module& GetModule();
WRL_NOTHROW static Module& GetModule();
Возвращаемое значение
Ссылка на модуль.
Module::GetObjectCount
Извлекает количество объектов, управляемых этим модулем.
virtual long GetObjectCount() const;
Возвращаемое значение
Текущее количество объектов, управляемых этим модулем.
Module::IncrementObjectCount
Увеличивает количество объектов, отслеживаемых модулем.
virtual long IncrementObjectCount();
Возвращаемое значение
Число перед операцией добавочного увеличения.
Module::Module
Инициализирует новый экземпляр класса Module
.
Module();
Замечания
Этот конструктор является защищенным и не может быть вызван ключевым словом new
. Вместо этого вызовите модуль::GetModule или Module::Create.
Модуль::objectCount_
Отслеживает, сколько классов было создано с помощью функции Make .
volatile long objectCount_;
Module::RegisterCOMObject
Регистрирует один или несколько объектов модели COM, чтобы другие приложения могли к ним подключиться.
WRL_NOTHROW virtual HRESULT RegisterCOMObject(
const wchar_t* serverName,
IID* clsids,
IClassFactory** factories,
DWORD* cookies,
unsigned int count);
Параметры
serverName
Полное имя сервера.
clsids
Массив регистрируемых идентификаторов CLSID.
Заводов
Массив интерфейсов IUnknown объектов класса, чья доступность публикуется.
Файлы cookie
После завершения операции представляет массив указателей на значения, которые определяют зарегистрированные объекты класса. Эти значения в дальнейшем используются для отмены регистрации.
count
Количество идентификаторов CLSID, которые необходимо зарегистрировать.
Возвращаемое значение
S_OK в случае успешного выполнения; в противном случае HRESULT, например CO_E_OBJISREG, указывающий причину сбоя операции.
Замечания
COM-объекты зарегистрированы с помощью перечислителя CLSCTX_LOCAL_SERVER перечисления CLSCTX.
Тип подключения к зарегистрированным объектам определяется сочетанием текущего параметра шаблона comflag и перечислителя REGCLS_SUSPENDED перечисления REGCLS.
Module::RegisterObjects
Регистрирует объекты COM или среда выполнения Windows, чтобы другие приложения могли подключаться к ним.
HRESULT RegisterObjects(
ModuleBase* module,
const wchar_t* serverName);
Параметры
module
Массив объектов COM или среда выполнения Windows.
serverName
Имя сервера, который создал объекты.
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, указывающее причину неудачного завершения операции.
Module::RegisterWinRTObject
Регистрирует один или несколько объектов среда выполнения Windows, чтобы другие приложения могли подключаться к ним.
HRESULT RegisterWinRTObject(const wchar_t* serverName,
wchar_t** activatableClassIds,
WINRT_REGISTRATION_COOKIE* cookie,
unsigned int count)
Параметры
serverName
Имя, которое определяет подмножество объектов, затронутых этой операцией.
активироватьableClassIds
Массив активируемых идентификаторов CLSID для регистрации.
печенье
Значение, которое идентифицирует зарегистрированные объекты класса. Это значение в дальнейшем используется для отмены регистрации.
count
Количество объектов, которое необходимо зарегистрировать.
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT (например, CO_E_OBJISREG), указывающее причину неудачного завершения операции.
Модуль::releaseNotifier_
Содержит указатель на ReleaseNotifier
объект.
ReleaseNotifier *releaseNotifier_;
Module::Terminate
Приводит к завершению работы всех экземпляров фабрик, созданных модулем.
void Terminate();
Замечания
Освобождает фабрики в кэше.
Module::UnregisterCOMObject
Отменяет регистрацию одного или нескольких объектов модели COM, что предотвращает подключение к ним других приложений.
virtual HRESULT UnregisterCOMObject(
const wchar_t* serverName,
DWORD* cookies,
unsigned int count
Параметры
serverName
(Не используется)
Файлы cookie
Массив указателей на значения, которые идентифицируют объекты класса для отмены регистрации. Массив был создан методом RegisterCOMObject .
count
Количество классов для отмены регистрации.
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, указывающее причину неудачного завершения операции.
Module::UnregisterObjects
Отменяет регистрацию объектов в указанном модуле. Таким образом другие приложения не смогут подключиться к ним.
HRESULT UnregisterObjects(
ModuleBase* module,
const wchar_t* serverName);
Параметры
module
Указатель на модуль.
serverName
Представляет имя, которое определяет подмножество объектов, затронутых этой операцией.
Возвращаемое значение
Значение S_OK, если операция завершилась успешно; в противном случае — значение HRESULT, указывающее причину неудачного завершения операции.
Module::UnregisterWinRTObject
Отменяет регистрацию одного или нескольких объектов среда выполнения Windows, чтобы другие приложения не могут подключаться к ним.
virtual HRESULT UnregisterWinRTObject(
unsigned int,
_Inout_ WINRT_REGISTRATION_COOKIE* cookie
);
Параметры
печенье
Указатель на значение, определяющее объект класса, регистрация которого должна быть отменена.