質問

私は自分自身のウィンドウで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オブジェクトを解放している二重のチェックです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top