私は、複数のブラウザー ウィンドウを開くマルチスレッドの WTL ベースのアプリケーションに取り組んでいます。それぞれに、ブラウジング用の独自の埋め込み IWebBrowser2 インスタンスがあり、それぞれが個別の UI スレッドにあります。
NewWindow3 に応答して、新しいブラウザ ウィンドウを開き、新しいウィンドウIWebBrowser2->get_Application()
を返しますIDispatchPtr
。
ポップアップが目的のサイトを開いている間、このポップアップが開かれた元のウィンドウのセッションは期限切れになります。元のウィンドウでさらにナビゲーションを行うと、ログイン ページに戻ります。
誰かが私を助けるために重要かもしれないと私が思ったいくつかのポイント -
NewWindow3
これは、が空でないbstrUrlContext
(元の URL を含む 3 番目のパラメーター)で起動された場合にのみ発生します。- NewWindow3 処理の一部として、以下が行われます -
- 新しい IWebBrowser2 埋め込みウィンドウの作成
Create()
、パラメータzWindowName
の値に設定bstrUrlContext
- 返された
IDispatch
ポインタは、IWebBrowser2->get_Application()
- 新しい IWebBrowser2 埋め込みウィンドウの作成