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


Использование служб COM+ через CoEnterServiceDomain и CoLeaveServiceDomain

CoEnterServiceDomain и CoLeaveServiceDomain используются вместе для окружении области кода, которая выполняется в собственном контексте и может использовать службы COM+ без необходимости использования компонентов COM+. Службы COM+, используемые в этом контексте, настраиваются с помощью объекта CServiceConfig, передаваемого в CoEnterServiceDomain. Код, окруженный CoEnterServiceDomain и CoLeaveServiceDomain, ведет себя так, как будто это был метод, вызываемый объектом, созданным в этом контексте.

Приложение сценариев может использовать эту пару функций, чтобы обеспечить поддержку служб COM+ во время выполнения без компонентов. Например, приложение сценариев можно разработать для предоставления тегов, позволяющих записи скриптов вводить и покидать домен службы в скрипте. Когда обработчик сценариев обрабатывает скрипт и встречает теги, он может вызывать CoEnterServiceDomain с предварительно настроенным объектом CServiceConfig, выполнить необходимый код, а затем вызвать CoLeaveServiceDomain.

Средство Администратор istrative Services

Не применяется.

Visual Basic

Не применяется.

C/C++

В следующем фрагменте кода показано, как использовать службы COM+ между вызовами CoEnterServiceDomain и CoLeaveServiceDomain. Обработка ошибок опущена для краткости. Этот фрагмент кода использует созданный и настроенный объект CServiceConfig в настройке служб COM+ с помощью CServiceConfig.

// A CServiceConfig object was created as follows:
// hr = CoCreateInstance(CLSID_CServiceConfig, NULL, CLSCTX_INPROC_SERVER, 
//   IID_IUnknown, (void**)&pUnknownCSC);

// Enter the Service Domain.
HRESULT hr = CoEnterServiceDomain(pUnknownCSC);
if (FAILED(hr)) throw(hr);

// Do the work that uses COM+ services here.
//DoMyWork();

// Leave the Service Domain.
CoLeaveServiceDomain(NULL);

CoEnterServiceDomain

CoLeaveServiceDomain

Настройка служб COM+ с помощью CServiceConfig

CServiceConfig

Использование служб COM+ с помощью CoCreateActivity