IWebBrowser2 Метод Quit завершается неудачно с результатом E_FAIL - PullRequest
3 голосов
/ 04 января 2010

Я управляю веб-браузером в своем собственном окне.Вот соответствующие шаги:

CoGetClassObject(CLSID_WebBrowser, 
                 CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, 
                 NULL, IID_IClassFactory, (void **)&pClassFactory);

pClassFactory->CreateInstance(0, IID_IOleObject, (void **)&pObject);

pClassFactory->Release(); 

pObject->SetClientSite((IOleClientSite *)impl)
OleSetContainedObject((struct IUnknown *)pObject, true)
pObject->DoVerb(OLEIVERB_SHOW, NULL, (IOleClientSite *)impl, 0, hHpsWnd, &rect);

pWB->put_Visible(VARIANT_FALSE);

hr=pWB->Quit();

В последнем утверждении выше возвращаемое значение hr равно E_FAIL.Конечный результат этого сбоя в моем коде - утечка множества ресурсов.Что я делаю неправильно?

1 Ответ

1 голос
/ 04 января 2010

Читая документацию здесь он заявляет, что объект WebBrowser (то есть CLSID_WebBrowser) возвращает ошибку из метода Quit, потому что это не имеет смысла в контексте. Метод Quit завершит выход из версии IE, которая также использует тот же интерфейс для связи.

Единственное, что я могу предложить, это дважды проверить, что вы освобождаете все COM-объекты, относящиеся к браузеру.

...