Приветствую!
У меня появилась проблема с запуском эксплорера как COM-объекта в отдельных процессах.
Я создаю в своей программе несколько потоков, в каждом из которых создается COM-объект IWebBrowser2 самым обычным способом:
CoInitialize(NULL);
CComPtr<IWebBrowser2> webBrowser;
CoGetClassObject(CLSID_InternetExplorer,
CLSCTX_LOCAL_SERVER,
NULL,
IID_IWebBrowser2,
(LPVOID*)&webBrowser);
...
CoUninitialize();
Но оказалось, что все окна эксплорера запускаются в одном процессе IEXPLORER.EXE, а мне нужно, чтобы каждый новый браузер запускался в отдельном процессе. Тем более, что, когда я запускаю несколько эксплореров вручную (жмакая мышкой на ярлыке), то все они работают в отдельных процессах.
Подскажите мне, пожалуйста, как можно добиться того же эффекта с помощью CoCreateInstance(), чтобы заполучить несколько интерфейсов IWebBrowser2 от браузеров, которые работают каждый в своем процессе?
Получается, что после создания нового экземпляра iexplore.exe, каждый последующий вызов CoCreateInstance() создает новое окно эксплорера в том же процессе (равносильно Файл->Новое окно), а мне нужно, чтобы при каждом вызове запускался новый экземпляр процесса iexplore.exe Как это сделать?