caa2000 писал(а):Запарился искать.
А зачем искать? Надо самому думать, а не искать чужое.
И кто вообще сказал, что так можно сделать? Официально так нельзя. Нет у интерфейса, который имеет создаваемый объект класса
{C08AFD90-F2A1-11D1-8455-00A0C91F3880} методов, для внедрения в чужую MDI-форму. Есть некий шанс, поизучав набор поддерживаемых интерфейсов этого объекта, обнаружить интерфейсы для OLE-встраивания, да и то это будут инструменты для встраивания в качестве контрола.
Есть грязный хак, состоящий в том, чтобы с помощью
SetParent перекинуть окно проводника внутрь MDI-контейнера. У дефолтного интерфейса объекта класса
{C08AFD90-F2A1-11D1-8455-00A0C91F3880} есть свойство hWnd. hWnd MDI-контейнера придётся искать у MDI-окна с помощью
FindWindow.
Но это дверь в ад, потому что в норме все окна, состоящие в иерархии родитель-ребёнок/контейнер-содержимое должны принадлежать одному и тому же потоку. Если украсть чужое окно и затолкать его ребёнком в своё окно, получится что родительское и дочернее окно принадлежат разным потокам разным разных процессов. Это разрешённый, но тяжелый случай, потому что возникает куча сложностей с правильной обработкой очередей ввода (input queue), а также с тем, что программа, окно которой украли, совершенно не в курсе, что его окна, которое по задумке должно быть top-level-окном, окажется child-окном внутри какого-то чужого top-level-окна.
Самым нейтральным и безопасным способом было бы создать форму, переключить её в режим MDIChild и в ней расположить контрол класса WebBrowser и в нём с помощью Navigate открыть интересующую папку.