0

Shell.ExplorerはAutoHotkeyのWebブラウザコントロールを意味すると思いました。

ただし、NavigateErrorイベントのパラメーターの出力を表示すると、MSDNページで説明されているものとは少し異なります。

MSDNで2つの異なるページを見つけましたNavigateError

2番目のパラメーターは以下のコードのURLを示しているため、AutoHotkeyはDwebBrowserEvents2インターフェイスを使用していると思いますが、MSDNページには、AutoHotkeyが6つのパラメーターを受け取るのに対し、メソッドは5つのパラメーターを受け入れると記載されています。

new WBConttrol("file:///" A_ScriptDir "/nofile")
class WBConttrol {
    NavigateError(oParams*) {
        msgbox, 64, % Parameters, % "the number of passed parameters: " oParams.MaxIndex() "`n"
            . "1: " (IsObject(oParams.1) ? "object" : oParams.1) "`n"
            . "2: " (IsObject(oParams.2) ? "object" : oParams.2) "`n"       ; url
            . "3: " (IsObject(oParams.3) ? "object" : oParams.3) "`n"
            . "4: " (IsObject(oParams.4) ? "object" : oParams.4) "`n"
            . "5: " (IsObject(oParams.5) ? "object" : oParams.5) "`n"
            . "6: " (IsObject(oParams.6) ? "object" : oParams.6) "`n"
    }       
    __New(strURL="") {
        static WB
        Gui, New, Resize MaximizeBox
        Gui, Add, ActiveX, vWB w300 h200, Shell.Explorer  
        Gui, show, w300 h200
        ComObjConnect(WB, this)
        WB.Navigate(strURL)
    }   
}
4

1 に答える 1

0

Shell.Explorer実際、 WebBrowserコントロールを意味します。

追加の (6 番目の) パラメータは、ComObjConnect()のドキュメントで定義されています。

PrefixEventName([Params..., ComObject ])
...
ComObjectはオプションであり、正しい数の Params が定義されている場合にのみ使用できます。ComObjConnect に渡された元のラッパー オブジェクトへの参照が含まれています。

この余分なパラメーターの理由は、一部の COM イベント メソッドはパラメーターをまったく定義せず、イベントが発生する COM オブジェクトへの参照を提供しないためです。

于 2013-03-02T09:45:40.120 に答える