Функция CoEnterServiceDomain (comsvcs.h)

Используется для ввода кода, который затем может использовать службы COM+.

Синтаксис

HRESULT CoEnterServiceDomain(
  [in] IUnknown *pConfigObject
);

Параметры

[in] pConfigObject

Указатель на интерфейс IUnknown объекта, созданного из класса CServiceConfig , который содержит сведения о конфигурации служб, которые будут использоваться во вложенном коде.

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

Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_FAIL, а также следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
CO_E_SXS_CONFIG
Недопустимая конфигурация параллельной сборки объекта CServiceConfig .
CO_E_THREADPOOL_CONFIG
Недопустимая конфигурация пула потоков объекта CServiceConfig . Модель подразделения потоков нельзя перенастроить путем вызова CoEnterServiceDomain.
CO_E_TRACKER_CONFIG
Недопустимая конфигурация средства отслеживания объекта CServiceConfig .
COMADMIN_E_PARTITION_ACCESSDENIED
Вызывающий объект не имеет разрешений на доступ к секции 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

См. также раздел

Службы COM+ без компонентов

CServiceConfig

CoCreateActivity

CoLeaveServiceDomain