通过 CoEnterServiceDomain 和 CoLeaveServiceDomain 使用 COM+ 服务

CoEnterServiceDomainCoLeaveServiceDomain 一起使用,以环绕在其自己的上下文中运行的代码区域,并且无需 COM+ 组件即可使用 COM+ 服务。 在此上下文中使用的 COM+ 服务可通过传入 CoEnterServiceDomainCServiceConfig 对象配置。 由 CoEnterServiceDomainCoLeaveServiceDomain 环绕的代码的行为就像它是在此上下文中创建的对象上调用的方法一样。

脚本应用程序可以使用这对函数提供 COM+ 服务的运行时支持,而无需组件。 例如,可以开发脚本应用程序,以提供允许脚本编写器在脚本中输入和离开服务域的标记。 当脚本引擎处理脚本并遇到标记时,它可以使用预配置的 CServiceConfig 对象调用 CoEnterServiceDomain,运行必要的代码,然后调用 CoLeaveServiceDomain

组件服务管理工具

不应用。

Visual Basic

不应用。

C/C++

以下代码片段说明了如何在调用 CoEnterServiceDomainCoLeaveServiceDomain 之间使用 COM+ 服务。 为简洁起见,省略了错误处理。 此代码片段使用在使用 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

使用 CServiceConfig 配置 COM+ 服务

CServiceConfig

通过 CoCreateActivity 使用 COM+ 服务