Использование служб 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);
См. также