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
傳回時,程式中符合 PartitionId、 ApplicationId 和 Flags 所指定之篩選準則的元件數目。
[out] Components
傳回時,為相符元件的 ComponentSummary 結構陣列。
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG和E_OUTOFMEMORY,以及下列值。
傳回碼 | 描述 |
---|---|
|
方法已順利完成,且結果位於 Components 參數中。 |
|
方法已順利完成,但沒有符合篩選準則的元件。 |
|
指定的進程不存在,或未裝載任何追蹤的 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 |