2010-08-27 2 views
2

У меня есть указатель IUnknown на локальном (вне процесса) сервере COM в моем клиентском приложении Windows. Хотелось бы получить дескриптор оконного процесса, на котором запущен локальный COM-сервер.Как получить дескриптор процесса локального COM-сервера?

Любой способ сделать это через COM без добавления нового интерфейса к серверу для запроса дескриптора процесса? (Я не могу легко изменить сервер).

Почему я хочу это сделать? Потому что я пытаюсь удостовериться, что COM-сервер Out-of-proc отключился, если мое приложение выйдет из строя. Я хотел использовать для этого windows job objects.

+2

+1 для Ганса, COM не хочет, чтобы вы знали эти вещи. COM предоставляет интерфейсы только объектам, а не самим объектам. В процессе реализации «IUnknown», который вы запускаете в своем процессе, «IFoo», который вы получаете от него, может запускаться на вашем компьютере, но когда вы запрашиваете «IBar», вы можете подключиться к Гавайям. ----- пожалуйста, опишите фактическую проблему, которую вы пытаетесь решить. – peterchen

ответ

3

Я предполагаю, что вы имеете в виду сервер, не обслуживающий процесс. Нет, COM сильно инвестирован в предотвращение получения этой информации. Важно, чтобы он мог размещать COM-объект по своему усмотрению. Что позволяет такие вещи, как суррогаты, DCOM и COM +.

Вам понадобится метод интерфейса.

Смежные вопросы