Здравствуйте, EM, Вы писали:
EM>ИМХО, COMAdminCatalog не поддерживает такую коллоекцию ("ApplicationInstances").
Цитата из MSDN.
The ApplicationInstances collection is a top-level collection that is used to retrieve information regarding running applications.
ms-help://MS.MSDNQTR.2002JUL.1033/cossdk/htm/comadmincollections_7qr2.htm
Если уж про нее пишут в MSDN, то как до этой коллекции достучаться?
EM>Задача вообще поставлена неверно. COM+ appliocation не может быть "запущен".
Под COM+ appliocation имелось в виду серверное приложение.
А запущен — значит имеется просесс dllhost.exe, запущеный следующим образом
dllhost.exe /ProcessID:{GUID серверного приложения}
Это происходит при инстанцировании одного или нескольких COM компонентов, инсталлированных в COM+ app.
EM>Может быть инстанцирован один или несколько COM компонентов, инсталлированных в COM+ app. А что такое "запущенное" COM+ app мне, честно говоря, непонятно...
Кроме того, "запустить COM+ app" можно еще из "Службы комопнентов", при этом ни один из COM компонентов не инстанцируется, а процесс dllhost.exe запускается. Плюс еще такой вариант:
COMAdmin::ICOMAdminCatalogPtr pCatalog(__uuidof(COMAdmin::COMAdminCatalog));
pCatalog->StartApplication("{4EA00F3A-20F3-4451-AF27-39E71824FE54}");
Теперь попытаюсь переформулировать вопрос.
Нужно узнать, существует ли процесс dllhost.exe, соответствующий серверному COM+ приложению с заданным именем или GUID.