| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: ActiveX/СОМ/CORBA > проблемы с IHTMLDocument2 в потоке |
| Автор: hawkins 15.11.2011, 13:59 |
| Не могу давно решить проблему при использовании движка IE в потоке. Обычно для парсинга в отдельном потоке создаю интерфейс IHTMLDocument2 так: var XDoc: IHTMLDocument2; begin CoInitialize(nil); xdoc:=CoHTMLDocument.Create as IHTMLDocument2; ... так все нормально, но вот если в главном окне переключить раскладку клавиатуры с английской на русскую, окно проги виснет, контролы перестают реагировать. После завершения потока окно просыпается. Зависает только если язык переключать на русский, если с русского на инглиш то не виснет. Зависает самый элементарный код. Прикрепляю тестовый проект на несколько строк, в главном окне две кнопки для запуска и остановки потока, в потоке создается IHTMLDocument2. После запуска потока и переключения клавы (с инглиш на рус) зависает окно. |
| Автор: MetalFan 15.11.2011, 16:21 |
| Да вроде особого криминала в приведенных огрызках кода не вижу. Разве что попробовать заменить CoInitialize на CoInitializeEx( nil, COINIT_MULTITHREADED ) |
| Автор: hawkins 15.11.2011, 22:33 |
| MetalFan, ты прав, теперь работает, спасибо. Теперь буду спать спокойно |
| Автор: MetalFan 16.11.2011, 08:06 |
| Ну тогда отмечаем вопрос, как решенный. Да, и название темы не совсем соответствовало содержанию.. при чем тут webbrowser, если работа идет с IHTMLDocument? |