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

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

Синтаксис

HRESULT CoCreateActivity(
  [in]  IUnknown *pIUnknown,
  [in]  REFIID   riid,
  [out] void     **ppObj
);

Параметры

[in] pIUnknown

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

[in] riid

Идентификатор интерфейса, возвращаемого с помощью параметра ppObj . Этот параметр всегда должен быть IID_IServiceActivity, чтобы возвращался указатель на IServiceActivity .

[out] ppObj

Указатель на интерфейс объекта действия. Объект действия автоматически создается при вызове CoCreateActivity.

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

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

Код возврата Описание
S_OK
Метод завершился успешно.
CO_E_SXS_CONFIG
Недопустимая конфигурация параллельной сборки объекта CServiceConfig .
CO_E_THREADPOOL_CONFIG
Недопустимая конфигурация пула потоков объекта CServiceConfig .
CO_E_TRACKER_CONFIG
Недопустимая конфигурация средства отслеживания объекта CServiceConfig .
COMADMIN_E_PARTITION_ACCESSDENIED
Вызывающий объект не имеет разрешений на доступ к разделу COM+.

Комментарии

CoCreateActivity создает объект действия, который используется для отправки пакетной работы в систему COM+. Контекст, связанный с действием, полностью определяется объектом CServiceConfig , передаваемым через параметр pIUnknown .

CoCreateActivity позволяет приложениям использовать службы COM+ в пакетной работе без необходимости создавать компонент для использования этих служб. Помимо снижения затрат, не требуя создания компонента, использование CoCreateActivity обеспечивает более эффективную среду выполнения, так как позволяет среде поддерживать конфигурацию службы на уровне приложения без доступа к информации, хранящейся в базе данных регистрации COM+ (RegDB).

Пакетная работа, отправленная через CoCreateActivity , может быть синхронной или асинхронной и выполняться в однопотоковом объекте (STA) или многопоточном (MTA). Используемая потоковая модель определяется интерфейсом IServiceThreadPoolConfig объекта CServiceConfig , который передается через параметр pIUnknown .

CoCreateActivity возвращает указатель на интерфейс IServiceActivity объекта, созданного при вызове CoCreateActivity. С помощью методов IServiceActivity вы определяете, выполняется ли пакетная работа синхронно или асинхронно. Сама пакетная работа реализуется через интерфейс IServiceCall .

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header comsvcs.h
Библиотека ComSvcs.lib
DLL ComSvcs.dll

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

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

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

IServiceCall