昨日の続きです。昨日の記事がまったくデタラメだとさすがに気まずいので、Invoke が呼ばれてるよ、という事実ぐらいは確かめようと思いました。私はバイナリアンではないのですが、がんばってMSHTMLの中を追ってみることにします。 まず、C++からIDispatch::Invokeを呼んだ場合と、Javascriptから window.document を参照した場合の2つの処理が合流するところを探しました。 ↑ここです。 スタックの中を覗くと、引数が見えます。 window.document の dispid(呼び出したいメソッドのID)である0x47fが確認できます。 では、ここにブレークポイントを仕掛け、amachangのハックをしない状態で、以下のコードを実行してみます。 alert(document); するとブレークポイントがヒットします。 dispid は 0x47f なので、
![IEの気持ち(深入り編) - 最速チュパカブラ研究会](https://cdn-ak-scissors.b.st-hatena.com/image/square/97e3a79ca725651893a63e0c2f77fc49d70a8404/height=288;version=1;width=512/http%3A%2F%2Ff.hatena.ne.jp%2Fimages%2Ffotolife%2Fg%2Fgyuque%2F20071013%2F20071013232935.png)