有没有办法找到从IHTMLEventObj从IE onload事件通过了HTMLDocument的?

问题描述 投票:0回答:1

我工作在C#中的浏览器辅助对象(是的,我知道性能不会很大)。

我附上一个处理程序,以我的窗口HTMLWindowEvents2_Event.onload事件。该事件被正确升高(例如,当一个刷新发生)。我看到我的处理程序被调用,类型是正确显示为“加载”事件。

事件处理程序,支持IHTMLEventObj的参数。我不能工作了如何从这个对象抛出onload事件的窗口或文件得到。这甚至可能在这个界面?传递到对象看起来具有空srcElement属性(据推测,因为它是由窗口,文档中没有某些元件引发的事件)。

我需要投进去另一个类或接口此获得的文件?

我会很乐意在C#或C ++的任何帮助。

c# internet-explorer visual-c++ bho
1个回答
1
投票

目前该事件没有源信息。

其假设是,因为你附事件到窗口对象的连接点,你知道哪个窗口是事件源。当您挂钩事件需要保存的参考情况下,你需要的事件源的窗口。

Class HTMLWindowEvents2Sink
{
    public HTMLWindowEvents2Sink(IHTMLWindow2 eventSource)
    {
        this.eventSource=eventSource;
    }
    IHTMLWindow2 eventSource;
    void AdviseEvent()
    {
        eventSource.load += this.HTMLWindow_onload; 
    }
    ....
}

你也有性能损失和潜在的bug农场在这里,通过使用delegate event handling model

© www.soinside.com 2019 - 2024. All rights reserved.