Re[3]: Вывод окна приложения на передний план.
ШП> СОМ-сервер нужен для связи прог + некие дополнительные фишки. Общий
ШП> случай, когда обе проги запущены и СОМ-сервер знает Хэндлы окон
ШП> приложений. В каждой проге есть кнопка "Перейти в соседнню прогу",
ШП> которае реализует метод СОМ-сервера. Сервер в свою очередь проверяет
ШП> наличие соседнего окна, и если есть, то должен просто вывести его на
ШП> передний план.
Ну... более-менее ясно.
ВШ>> Я два варианта вижу: 1) Какое-либо другое окно преобретает стиль
ВШ>> StayOnTop
ШП> Обычные приложения. StayOnTop не балуются. Проверено на
ШП> приложениях-заглушках.
И никакие другие сторонние приложения в таком стиле не запускается,
так7 Тогда этот пункт отпадает.
ВШ>> и 2) У вас хэндл окна проги2 вычисляется задолго до вызова
ВШ>> SetForegroundWindow.
ШП> Верно. Как только прога запустилась, она соединяется с СОМ-сервером и
ШП> отдает ему свой Хэндл.
ВШ>> Ведь возможна такая модель: прога2 могла закрыть и открыть свое
ВШ>> окно.
ШП> См. выше.
Скажите, а Вы пишете саму серверную часть? Или знаете, как оно там
варится? Извините, если я этого не понял из предыдущих писем - у
самого тут запарка. Я к чему это говорю - такое поведение сервера
довольно странно. Ведь тот, кто выводит чужое окно, должен сам
определить хендл этого окна и без промедлений вывести это окно вперед
- пока нужное окно имеет этот хэндл. В Вашем случае было бы намного
лучше, если бы серверу передавали имя_класса и/или титульную строку
окна, а сервер сам находил хэндл этого окна, проверял бы его на
неравность нулю и тут же выводил это окно вперед.