2002-02-05 リファクタリング [長年日記]

リファクタリング

何を隠そう、QMAILは今風に言うと、リファクタリング中なのです。平たく言うと、根本からガシガシと設計しなおしている、とも言います。QMAIL 2.1.xが全然バージョンアップしないのはそのせいなのです。

ちなみに、下に色々書いているHTML表示なんかも、リファクタリング後に入れています。なので、現行の2.1.xにすぐ入るわけではないのです。期待した方ごめんなさい。

で、何を一体そんなに根本から設計しなおしているかについては、これからぼちぼち書く予定です。

IHTMLWindow2

昨日の続きで、WebBrowserコントロールにフォーカスを与えるにはどうすればいいのか?

最初は、IWebBrowser2からIOleWindowをQueryInterfaceして、GetWindowして取得したウィンドウにフォーカスを与えればいいのかと思ったら、やっぱりそれはコントロールの親ウィンドウだった。

で、IWebBrowser2::get_documentした(それからQueryInterfaceした)IHTMLDocument2から、IHTMLDocument2::get_parentWindowを呼び出して、IHTMLWindow2を取得して、IHTMLWindow2::focusを呼び出して設定することにした。

スクリプトだと、

window.focus();

一行で済むところが、結構面倒^^;

予想通り

HPC2KのSDKには、以下のインターフェイスがありませんでした。

・IInternetProtocol

・IInternetProtocolSink

・IInternetSecurityManager

んー、IInternetProtocol(Sink)?は一時ファイルを使って読み出すようにすれば使わなくてもすむけど、IInternetSecurityManagerはないと困るよなぁ。なんでも実行し放題になっちゃうし。

Pocket PCのSDKでも同じみたい。Pocket PC 2002のSDKはまだインストールしていないので未確認。HPC Pro以前にはそもそもWebBrowserコントロールがない(代わりにPIEで使われているHTMLコントロールがある)。

さてさて。


トップ «前の日記(2002-02-04) 最新 次の日記(2002-02-06)»