忙しい。といっても、忙しいといえるくらいの忙しさ。取り敢えず、人は手配した
けど絶対量が多くて焼石に水。まぁ、頑張ってくれい。
で、自分の仕事もしなければいけないので、
Developers Summit 2005は途中で
帰ってくる。
んが、土日は会社に行かずに済みそうなので(!=休める)、逃避活動として おうちのルータ交換。しばらく使っていなかった AR320 に戻してみる。 まぁIPv6の設定はおうちサーバの OpenBSDでボチボチやっていけばいいや。
風邪ひいたかも。
お仕事ネタで、ActiveXコンポーネントをJava(のswt)に埋め込むということを 試行錯誤しているのだが、なかなか思うように行かず。取り敢えず埋め込めたのだが、 表示系がおかしい。うむ。ActiveX側がかなりアレなので、切り分けがめんどいのだ。 が、きっとActiveX側をもっと手を入れないとうまくいかないだろう。とはいえ、 ActiveX側をdebuggerに載せたいのに、eclipse 上でしかうごかないテストプログラムというのはなかなか辛いぞ。サンプルプログラム だとそこそこ動いているように見えるだけに、やっかいだ。
熱があるけど打ち合わせ。んが、やっぱり辛いので、終わると同時に家に帰る。
風邪ひいて1回休み。
今日もお休み。つうか、深夜に目が覚めて、朝までそのままという。例え熱が 下がっていても、仕事にはなりませんな。
今日もお休み。結局、今週は1回も会社に行かなかった。まぁ、みんなそれなりの 役職を与えられているわけだから、それなりに仕事はこなしていることでしょう。 仕事関係のメールも読まずにひたすら静養。熱は治まってきた気がするけど、喉鼻が ボロボロ。お腹は素通しモード。肉体的にだけではなく、精神的にも休養が必要と いうことで。
夕方からは多少は動けるようになったので、v6 tunnelの問題を調査。ルータのNAT (いわゆるサーバ公開機能)で、プロトコル番号41をv6 tunnel張るマシンにforwardする ようにして解決。
だいぶ復活。まだ咳が怪しかったり、お腹がアレだったりするので、無理すると 一発でぶり返すだろうけど。納期が来週だったりするので、少しずつ始めないと 間に合わない。描画系がおかしいという、1つずつコツコツ確認していかなければ ならない問題が残っているので、結構しんどい。Java側のコードの書き方によっては 大きな問題にならないんだけどね。とか言ってみる。
Windows/VC++でのプログラミング。描画がおかしい時、例えばWindowをリサイズ
すると正しく描画されるようになる、上に他のWindowが乗っかっても再描画されない、
などの時は、正しく描画されないWindow(DialogなりViewなり)を作るときの、親の
Windowの設定指定を確認すべし。
動作検証をするためにWindowsXPにSP2を当てようとしたら、時間がかかって 帰れない。前もって準備しておけばよかった…。
はまりモード。ActiveXというか、OLEというか、MFCというか、VC++というか、 とにかく、まだまだ修行が足りんなぁと。ActiveXをはっつけて、そのActiveX上で ダイアログが表示されるようなことをすると、ダイアログが閉じたときに、ActiveXが 表示されなくなってしまう。ActiveXのサイズが0になってしまっているのが原因の ような気がするのだが。IE上だとうまくいっているのに。かなーり困った。
ActiveXのコンテナとしてみると、eclipse とIEではかなり異なる?ActiveXの画面まわりの動きが結構変わるので辛い。というか、 このままでは仕事になりません。
そんなわけで、ターゲットのActiveXを直接貼り付けるのではなく、
IEコンポーネントを貼り付けることにする。そこでターゲットのActiveXを
貼り付けてあるWebPageを読み込むようにする。ActiveXで提供しているメソッドは、
WebPageで全部JavaScriptでWrapしてあげる。IEコンポーネントをごにょごにょすると、
表示しているWebPageに存在しているJavaScriptを呼び出せるようになるので、
IEコンポーネント→WebPage→JavaScript→ActiveXのメソッド
という順番で目的を果たせるようになる。
参考になるのはCodeGuruの
JavaScript Calls from C++
あたり。IEコンポーネントにあるDocumentプロパティを呼び出すと、IHTMLDocument2の
インタフェースが得られる(という理解でいいのか?)。そいつのScriptプロパティを
呼び出して得られるインタフェースからは、表示しているページに存在している
JavaScriptの関数がメソッドとして存在しているように見えるので、引数や戻り値を
しっかり揃えて呼び出す。揃っていないとJava側でエラーになるので注意。
話が戻るが、IEコンポーネントにWebPageを読ませるNavigateメソッドも、実際に
WebPageを読み終わる前に戻ってくる。必ず読み終わってからDocumentプロパティを
呼び出さないと、期待した結果にならないので注意。
終了処理は、一度他のページに移動してからIEコンポーネントを閉じるようにする。
あちこちぐるぐるした中から、未だに開いているページをメモ。
開発マシンとして使用するWindowsマシンを外に晒すこともあるので、メモ。 ネットワーク保護に IPsec を使用 : 第 2 回 (全 2 回)-- TechNet コラム - セキュリティ管理 - 2005 年 1 月
メモ。lwIP - A Lightweight TCP/IP Stack
昨日の補足。終了時の移動は <body>タグでOnUnload()を指定して実現。
うげ。サーバ側のソフトとクライアント側のソフトを同じマシンで動かすと エラーか。なかなか終わらないな。