Пишу нехитрое приложение для управления IE. После перехода на заданный адрес получаю интерфейсы:
IDispatch* pDisp= NULL;
HRESULT hr1;
hr1 = pBrowser2->get_Document(&pDisp);
hr = pDisp->QueryInterface( IID_IHTMLDocument2, (void**)&pHTMLDocument2 );
hr = pDisp->QueryInterface( IID_IHTMLDocument3, (void**)&pHTMLDocument3 );
hr = pHTMLDocument2->get_parentWindow(&pHTMLWindow2);
В случае если COM инициализирован как single-thread apartment (OleInitialize(NULL)) то всё работает нормально, если же использую CoInitializeEx(NULL, COINIT_MULTITHREADED)то последнее выражение возвращает E_NOINTERFACE и pHTMLWindow2 равен NULL. Подскажите, что упустил?