Функция CoEnterServiceDomain (comsvcs.h)
Используется для ввода кода, который затем может использовать службы COM+.
Синтаксис
HRESULT CoEnterServiceDomain(
[in] IUnknown *pConfigObject
);
Параметры
[in] pConfigObject
Указатель на интерфейс IUnknown объекта, созданного из класса CServiceConfig , который содержит сведения о конфигурации служб, которые будут использоваться во вложенном коде.
Возвращаемое значение
Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_FAIL, а также следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Недопустимая конфигурация параллельной сборки объекта CServiceConfig . |
|
Недопустимая конфигурация пула потоков объекта CServiceConfig . Модель подразделения потоков нельзя перенастроить путем вызова CoEnterServiceDomain. |
|
Недопустимая конфигурация средства отслеживания объекта CServiceConfig . |
|
Вызывающий объект не имеет разрешений на доступ к секции COM+. |
Комментарии
Код, заключенный между вызовами CoEnterServiceDomain и CoLeaveServiceDomain , выполняется в собственном контексте и ведет себя так, как если бы это был метод, вызываемый для объекта, созданного в контексте. CoEnterServiceDomain не может переключиться на другую модель подразделения, поэтому вложенный код выполняется в квартире вызывающего объекта и в потоке вызывающего объекта. Попытка изменить модель подразделения с помощью объекта CServiceConfig при вызове CoEnterServiceDomain является ошибкой.
CoEnterServiceDomain сначала создает контекст, настроенный в соответствии с заданным объектом CServiceConfigConfig, который передается в качестве параметра pConfigObject . Политики на стороне клиента и сервера активируются так, как если бы произошел вызов метода. Затем новый контекст помещается в стек контекста и становится текущим контекстом.
Из-за их эффективной структуры и отсутствия маршалинга потоков использование CoEnterServiceDomain и CoLeaveServiceDomain значительно сокращает затраты по сравнению с эквивалентным вызовом метода.
CoEnterServiceDomain и CoLeaveServiceDomain особенно полезны в приложениях, которые могут использовать эти функции для доступа к службам COM+, не создавая для этого компонент.
Пары CoEnterServiceDomain и CoLeaveServiceDomain могут быть вложенными.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | comsvcs.h |
Библиотека | ComSvcs.lib |
DLL | ComSvcs.dll |