結局、MFC:CHtmlView内に表示されるWEBページで、サブ画面を表示する事になってしまったようだ。
なんと恐ろしいことを・・・
挙動を確認してみると、早速不都合が発覚した。
このMFC:CHtmlViewを組みこんだApplicationは、親画面よりShellExecuteで呼び出される代物だが、この親画面は、自身のApplicationが落ちる時、そこから起動したアプリケーションも、SendMessageEX(WM_CLOSE)でもろとも落とす仕様になっている。
又、親画面から呼び出されるCHtmlViewを使ったApplicationは、CLOSEメッセージを受けてHTTPサーバーへのデータ受信要求を発行し、データをダウンロードして処理を終了する仕組みであり、その際にプログレスバー付きのダウンロードダイアログを表示する。
そして、今回の不都合は、WEBページがサブ画面を出したあと、SendMessageEX(WM_CLOSE)を実行すると、CHtmlViewを使ったApplicationが無限ループに陥ってしまうという、なんとも致命的なもの。
CHtmlViewで表示されるページが、JavaScriptでAssertダイアログを出そうが、動的にHTMLを生成しOpenDocument(そんな技があったとは知らなかった)しようが、Application上では関知しない。
ただ、後者のOpenDocumetを行った時だけが、今回の不都合を引き起こす原因となっているようだ。
HTMLの生成とOpenDocumetを行っている共通JaveScriptをみる限り、不信なところは見当たらない。
担当者からは調査の必要は無いといわれているけど、やはり少し気になるな。
水面下で継続調査ということで。
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment