coCreateActivity 函式 (comsvcs.h)

建立活動來執行可以使用 COM+ 服務的同步或非同步 (Asynchronous) 批次工作,而不需建立 COM+ 元件。

語法

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

參數

[in] pIUnknown

從 CServiceConfig 類別建立之物件的 IUnknown 介面指標,其中包含 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+ 系統。 與活動相關聯的內容完全取決於透過 pIUnknown 參數傳遞的 CServiceConfig 物件。

CoCreateActivity 可讓應用程式在其批次工作中使用 COM+ 服務,而不需要建立元件來使用這些服務。 除了不需要建立元件來減少額外負荷之外,使用 CoCreateActivity 為更有效率的運行時間環境提供,因為它可讓環境支援全應用程式服務設定,而不需要存取儲存在 COM+ 註冊資料庫中的資訊, (RegDB) 。

透過 CoCreateActivity 提交的批次工作可以是同步或異步的,而且可以在單線程 Apartment (STA) 或多線程 Apartment (MTA) 中執行。 使用的線程模型是由透過 pIUnknown 參數傳遞之 CServiceConfig 物件的 IServiceThreadPoolConfig 介面所決定。

CoCreateActivity 會傳回呼叫 CoCreateActivity 所建立之物件的 IServiceActivity 介面指標。 藉由使用 IServiceActivity 的方法,您可以判斷批次工作是以同步或異步方式完成。 批次工作本身是透過 IServiceCall 介面實作。

規格需求

需求 值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 comsvcs.h
程式庫 ComSvcs.lib
Dll ComSvcs.dll

另請參閱

不含元件的 COM+ 服務

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

IServiceCall