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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://dara-j.asablo.jp/blog/2007/06/13/1578307/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。