この方法は、E_FAIL結果で失敗のIWebBrowser2を終了します
-
18-09-2019 - |
質問
私は自分自身のウィンドウでWebブラウザコントロールをホストしています。ここでは適切な手順は次のとおりです。
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();
時間の戻り値は上記の最後の文でE_FAIL
です。私のコードでは、この失敗の最終結果は、資源の束の漏れています。私は間違って何をしているのですか?
解決
ここでそれををdocumenation読みます状態のWebBrowserオブジェクト(すなわちCLSID_WebBrowser)それは文脈で意味がありませんので、Quitメソッドからエラーを返します。終了方法はまた、通信するために同じインタフェースを使用してIEの処理バージョンのうちに終了します。
私が提案することができます。唯一のことは、あなたがブラウザに関連するすべてのCOMオブジェクトを解放している二重のチェックです。
所属していません StackOverflow