jscript.dllとか ― 2007年06月13日 22時30分19秒
jscript.dllって、タイプライブラリ公開してたんだ!
.wsfの謎で遭遇した不可解な現象が気になったのでいろいろと調べてるうちにわかった新事実。ってほどでもない。WSH界隈の人にとっては、たぶん当たり前。
オブジェクトブラウザで%SystemRoot%\system32\jscript.dllを参照させると「JSGlobal」ってライブラリが追加される。
これ、ちゃんとECMAScriptで定義されてる組み込みオブジェクトに一致するオブジェクトを公開してて、例えばStringだったら「StringObj」と「StringInstance」があり、プロパティもメソッドも確認できる。
ただし、これらのインターフェイスって外部から触れないみたいなので、リファレンス代わりくらいにしかならない。つか、コメントとかもないのでそれにもならんかも。
そんだけ。
ちなみに上のエントリでコメントしてくださったrykomatsさんて、Pythonの書籍なんか著してる方でした(不勉強ですいません)。ブログにはたくさん面白い情報をあげておられて、大変勉強になる。
リンク:Techlog
謎のスタック
上記調査で、アプリケーションエラーが起きたときにデバッガ(VS2003)にまわしてみたら、コールスタック上でvbscript.dllを経由してることがわかった。もっともネイティブコードをだらだらと見せられてもさっぱりわからんが。
単純に.js起動してるときにデバッガ引っ掛ける方法がわからんので試せないけど、Object.extendしたメソッド呼び出すと落っこちるのはこれのせい?
(後で試す)独自URLスキームの登録方法
先ほどのTechlogから、HTAと独自URLスキームを組み合わせる。
こういった動きをするのは、Windowsのレジストリにスキームとアプリが関連づけられているからです。ブラウザは、URLのスキームを見て、レジストリを検索し、関連付けられたアプリを起動しているのです。拡張子にアプリを関連づけるのと同じような方法ですね。ってのは知らんかった。ろくすっぽ調べてないけど、URLMonikerをごにょごにょ、とかそんなん想像してた。
が、はて。具体的にどこにどんなキーを登録するんだろか。
と思って調べたら、こんなのが見つかった。→hail2u.net - Weblog - Firefoxのソースの表示を任意のエディタで
こりゃ簡単だわ。ためしにregeditでHKCU\HTTPとか覗いたら確かにこんな感じ。
後で試そう。といっても、何を試すのだ?
(後で試す)moz-behaviors.xml
IT戦ブクマ経由でdean.edwards.name/というところを知った。
ここの「moz-behaviors.xml」に興味津々。IEオンリーな.htcによるDHTML BehaviorにXBLで互換性持たせてIEとFirefoxで同じ.htcを使えるようにしてる。こりゃ面白い。
サンプルは単純に振る舞いを追加しているだけだけど、ひょっとしてViewLinkも動作したら共通なUIコンポーネント作れるかも。俺の腕じゃ無理かも。orz
コメント
トラックバック
このエントリのトラックバックURL: http://dara-j.asablo.jp/blog/2007/06/13/1578307/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。