Поделиться через


Метод 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

Идентификатор процесса, определяющий процесс для выбора, или 0, если для выбора будет использоваться параметр ApplicationInstanceId .

[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, а также следующие значения.

Код возврата Описание
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 не имеют смысла и недопустимо использовать их. Компоненты из указанного приложения будут возвращены независимо от типа этого приложения.

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

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

IGetAppTrackerData