通常の Visual Studio の手順([Class View]の中でソース インターフェイス名を右クリックし、 次に[メソッドの追加(Add Method)]を選択)を使用して、2 つのメソッドを加えます。
ソース インターフェースは、ATLで自動生成した場合 _IhogeEvents インターフェースとなっている。
IDLファイルで確認したい場合は、 Dr. GUIとCOMイベント:第1部 の「ソースを使え、ルーク」のところを参照すると、coclass によって指定していることが分かる。
こうやって理解してから改めて 223139 - HOWTO: Add Support for Hosting VBScript to an ATL Application を読むと、 ちゃんとイベントが実装されているのが判明。 ただ Dr.GUI のサンプルではイベントに引数が付いているのだが、引数付イベントをシンク(クライアント)側で定義する方法がいまいち不明。 引数無しなら楽勝。
とりあえずプロパティ経由で値を渡せるから関数としては引数なしでいいか。プロパティ経由のが抽象化の意味でも正しそうだし。
プログラムを理解するついでにCComPtr等のラッパークラスを使って、 deleteやらRelease()でリソースの解放をしないで済むようなプログラムに改造していた。 IUnknownとオブジェクトはリソース管理上は一心同体なんだなあと思ってみたり。
そろそろActiveScriptRubyのソースを読むのも面白いかもしれない。
超高負荷環境のWindows2000ServerでもActiveScriptRubyが動かせるという確証が得られれば幸せだもの。
Rubyを256倍使うための本 邪道編 の91ページを読んだら今回やったようなことが書いてあったよ。
ScriptingHostにデバッグ用インターフェースをつける話。難しそう…
とりあえずC++からスクリプトを呼ぶサンプルとしてはここのがベストだったかも。ATLもMFCも使っていない。なかなかスゴイ。
なかなか楽しい。VisualStudio .Netについてくる ATL7.1 はかなり拡張されていてイイ感じ。
そろそろアナウンスか。
非常用にGENERICカーネルを /boot/kernel.GENERIC にインストールするには以下のようにする。
cd /usr/src/sys/i386/conf; config GENERIC cd ../compile/GENERIC; make depend; make sudo make KODIR=/boot/kernel.GENERIC install
KODIRを設定するのがミソ。 ちゃんとバックアップも kernel.GENERIC.old に作ってくれる。
あと過去の遺物 /bin/rmail は消すべし。UUCPでもしてない限り要らないはず。
Centrino(CPUがPentiumM)で最大2GBメモリ、標準でIEEE1394なDVD/CDRWというあたりが萌え。 1.5kg以下ノートの中では個人的に本命だにゃ。TabletPCだけどー。(キーボード付)
面白いと思う話題に限って日記巡回の一周遅れで掲載されるあたりが終わっている…
みたいなモデルで、モデレータごとに「ポイント入れたコメント ポータルページ」みたいなのを作るはどうか。
wakatono氏がフェードアウト気味なのもマイナスポイントなのかも。
なんとかアクティビティを戻せるようにがんばりますー (_ _)