IGetAppTrackerData::GetComponentsInProcess 方法 (comsvcs.h)

擷取單一進程中裝載之所有 COM+ 元件的摘要資訊,或擷取這些元件的指定子集的摘要資訊。

語法

HRESULT GetComponentsInProcess(
  [in]  REFGUID          ApplicationInstanceId,
  [in]  DWORD            ProcessId,
  [in]  REFGUID          PartitionId,
  [in]  REFGUID          ApplicationId,
  [in]  DWORD            Flags,
  [out] ULONG            *NumComponentsInProcess,
  [out] ComponentSummary **Components
);

參數

[in] ApplicationInstanceId

應用程式實例 GUID,可唯一識別要選取的追蹤進程,或GUID_NULL 是否將 ProcessId 參數用於選取。

[in] ProcessId

識別要選取之進程的進程標識碼,如果 ApplicationInstanceId 參數將改為用於選取,則為 0。

[in] PartitionId

篩選結果的數據分割標識碼,或針對所有分割區GUID_NULL。

[in] ApplicationId

篩選結果的應用程式識別碼,或針對所有應用程式GUID_NULL。

[in] Flags

GetAppTrackerDataFlags 列舉中的旗標組合,以篩選結果並選取傳回的數據。 支援下列旗標:GATD_INCLUDE_LIBRARY_APPS、GATD_INCLUDE_SWC、GATD_INCLUDE_CLASS_NAME GATD_INCLUDE_APPLICATION_NAME。 如需詳細資訊,請參閱下面的。

[out] NumComponentsInProcess

傳回時,程式中符合 PartitionIdApplicationIdFlags 所指定之篩選準則的元件數目。

[out] Components

傳回時,為相符元件的 ComponentSummary 結構陣列。

傳回值

這個方法可以傳回標準傳回值E_INVALIDARG和E_OUTOFMEMORY,以及下列值。

傳回碼 描述
S_OK
方法已順利完成,且結果位於 Components 參數中。
S_FALSE
方法已順利完成,但沒有符合篩選準則的元件。
COMADMIN_E_APP_NOT_RUNNING
指定的進程不存在,或未裝載任何追蹤的 COM+ 應用程式。

備註

進程可由其應用程式實例標識碼或其進程標識碼來選取,但不能同時選取兩者。 依應用程式實例識別碼選取通常是慣用的,因為進程標識碼可能會在進程終止之後重複使用。 不過,如果您從其他來源取得進程標識符,例如程式的命令行自變數,則依進程標識碼選取可能會很有用。

如果旗標中未設定GATD_INCLUDE_LIBRARY_APPS或 GATD_INCLUDE_SWC,則結果只會包含來自 COM+ 伺服器應用程式的元件。 如果已設定GATD_INCLUDE_LIBRARY_APPS,也會包含進程中 COM+ 連結庫應用程式中的元件。 如果已設定GATD_INCLUDE_SWC,結果也會包含沒有元件之服務內容的專案。

如果使用 ApplicationId 來指定應用程式 (它未設定為 GUID_NULL) ,則GATD_INCLUDE_LIBRARY_APPS和GATD_INCLUDE_SWC旗標沒有意義,而且使用它們無效。 不論該應用程式的類型為何,都會傳回來自指定應用程式的元件。

規格需求

需求
最低支援的用戶端 具有 SP2 的 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 SP1 [僅限傳統型應用程式]
目標平台 Windows
標頭 comsvcs.h

另請參閱

IGetAppTrackerData