goo blog サービス終了のお知らせ 

ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

DocumentComplete捕捉成功!アパートのせいだった

2007-11-07 22:32:12 | PG(VC++)

IWebBrowser2のDocumentCompleteイベントが捕捉できなかったのは、どうもアパートメントのせいだったらしい。
イベントが発生するのは別スレッドなのかなーと思っていたので、CoInitializeEx()でマルチスレッドを指定できるというから試しにMTAを指定してみたら、見事にビンゴ!

しかし他の関数を実行してみたら、STAで動いていたのにMTAでエラーになるものを発見。手放しでMTAにすればいいってもんでもないようだ…。

つーわけでJava版にもMTAを指定できるようなメソッドを加えてはみたものの、イベントの捕捉は実装していないし、使い道は無いかなー。


ファイルダウンロード修正

2007-11-06 23:59:54 | PG(Java)

javaでWindowsのファイルダウンロードダイアログに値を書き込むユーティリティークラスの内部ロジックをちょっと修正。
ボタンだけでなく、ファイル名のエリアに値を送信する際にもダイアログにフォーカスが当たっていないといけないようだ。ちゃんと送信されたかどうか確認する方法は相変わらず分からず、とりあえずウェイトを入れてるけど。

あと、IDispatchに型情報を取得するメソッドを追加。
今は、用意してあるJavaクラスに該当しないCOMオブジェクトは全部IHTMLElementかIDispatchになってしまう。IHTMLElementだとタグ名の取得ができるから実際は何のオブジェクトだったのか分かるけど、他(Collectionとか)はIDispatchになってしまって何のオブジェクトなのか知る術が無かった。(本来のVC++やVBであればQueryInterface()とかで確認できるんだろうけど)
つーわけで、デバッグ用に型情報のオブジェクト名だけ取れるようにしてみたのだった。

でもこういうのを用意しても、実際には使わない事が多いんだよな(爆)