Сегодня, друг мой, мы познакомимся с такой технологией, как COM (Component Object Model). Адский высер товарищей из Microsoft, НО(!) от этого не менее полезный.
Вот конкретно мне это понадобилось, чтобы сделать Internet Explorer послушным, белым и пушистым. То есть, чтобы программно заставить IE делать то, что нужно нам, включая навигацию, доступ к DOM-дереву и тому подобные ништячки, ну ты понимаешь к чему я ![]()
Итак, моя задача стояла примерно так:
- У меня есть исходник некоей софты, написанной на Delphi 7. Соответственно, реализовывать мы это дело будем, используя именно эту IDE (да, я знаю, что это танцы на костях, но делать нечего, такой уж проект).
- Далее, ввиду садомазохистических надобностей, нельзя было реализовывать ЭТО внутри VCL-объекта TWebBrowser и хостить это внутри формы. Kill me, plz! . То есть, мне нужно создать окно Internet Explorer и перхватить управление.
- Далее, нужно сделать так, чтобы Internet Explorer не только программно управлялся и выполнял Navigate и Refresh, но и позволил мне просматривать его элементы и DOM-дерево. Kill me twice, then burn my corpse!
На самом-то деле, задач стояло больше, но, в рамках данной статьи, я рассмотрю именно эти. Что у меня получится, смотри под катом.