CoCreateActivity 函数 (comsvcs.h)
创建一个活动以同步或异步批处理工作,该工作可使用 COM+ 服务而无需创建 COM+ 组件。
语法
HRESULT CoCreateActivity(
[in] IUnknown *pIUnknown,
[in] REFIID riid,
[out] void **ppObj
);
参数
[in] pIUnknown
指向 对象的 IUnknown 接口的指针,该接口是从 CServiceConfig 类创建的,其中包含在 CoCreateActivity 创建的活动中要使用的服务的配置信息。
[in] riid
要通过 ppObj 参数返回的接口的 ID。 应始终IID_IServiceActivity此参数,以便返回指向 IServiceActivity 的指针。
[out] ppObj
指向活动对象的接口的指针。 活动对象通过调用 CoCreateActivity 自动创建。
返回值
此方法可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY和E_FAIL,以及以下值。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
|
CServiceConfig 对象的并行程序集配置无效。 |
|
CServiceConfig 对象的线程池配置无效。 |
|
CServiceConfig 对象的跟踪器配置无效。 |
|
调用方没有 COM+ 分区的访问权限。 |
注解
CoCreateActivity 创建一个活动对象,该对象用于将批处理工作提交到 COM+ 系统。 与活动关联的上下文完全由通过 pIUnknown 参数传递的 CServiceConfig 对象确定。
CoCreateActivity 使应用程序能够在批处理工作中使用 COM+ 服务,而无需创建组件即可使用这些服务。 除了通过不需要创建组件来减少开销外,使用 CoCreateActivity 还可以提供更高效的运行时环境,因为它允许环境支持应用程序范围的服务配置,而无需访问存储在 COM+ 注册数据库中的信息 (RegDB) 。
通过 CoCreateActivity 提交的批处理工作可以是同步的,也可以是异步的,可以在单线程单元 (STA) 或多线程单元 (MTA) 中运行。 使用的线程模型由通过 pIUnknown 参数传递的 CServiceConfig 对象的 IServiceThreadPoolConfig 接口确定。
CoCreateActivity 返回指向由调用 CoCreateActivity 创建的 对象的 IServiceActivity 接口的指针。 通过使用 IServiceActivity 的方法,可以确定批处理工作是同步完成还是异步完成。 批处理工作本身通过 IServiceCall 接口实现。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | comsvcs.h |
Library | ComSvcs.lib |
DLL | ComSvcs.dll |