【问题标题】:Which windows SDK includes the headers for IE IDOMCustomEvent哪个 windows SDK 包含 IE IDOMCustomEvent 的标头
【发布时间】:2016-09-26 08:42:58
【问题描述】:

我已经在 Windows 7 上安装了 Windows SDK 7.1 以获得 IDOMCustomEvent 接口,该接口应该存在于“Windows Vista with SP1,Windows 7”的 mshtml.h 中。 我已经 grepped 了整个 SDK 包含目录,但它不存在(但 mshtml.h 存在)。这个界面怎么获取?
我的要求是从 C++ 将 CustomEvents 触发到 IE11 中。任何实现这一点的方法都是可以接受的。

【问题讨论】:

  • 我在 Windows SDK 8.1 中找到了这个接口,但根据微软的说法,它应该存在于 Windows 7 中。

标签: windows internet-explorer sdk custom-event


【解决方案1】:

从 IE9 开始,IDOMCustomEvent 的声明出现在 MSHTML.IDL 中。

interface IDOMCustomEvent : IDispatch
{
  [propget, id(DISPID_IDOMCUSTOMEVENT_DETAIL)] HRESULT detail([retval, out] VARIANT * p);
  [id(DISPID_IDOMCUSTOMEVENT_INITCUSTOMEVENT)] HRESULT initCustomEvent([in] BSTR eventType,[in] VARIANT_BOOL canBubble,[in] VARIANT_BOOL cancelable,[in] VARIANT* detail);
};

如果没有记忆,此接口负责支持 DOM 自定义事件,如 DOM L3 Events 规范所定义(首先在 IE9 标准模式中支持)。该规范展示了如何使用 JavaScript 制作自定义事件。

我不确定这对您的需求有多大用处。有一个older article on MSDN 讨论了 C++ 实现,但它基于旧版本的浏览器并且可能不相关,尤其是考虑到多年来安全模型的变化。 (我在CodeProject上也找到了slightly more recent article,不过没试过。)

不确定这是否有帮助,但也许背景信息会有所帮助。

【讨论】:

  • 我最终放弃了这行攻击,因为我正在处理的非常旧的代码库真的不喜欢 SDK8.1 接口在 IDL 文件中而不是在 IDL 文件中似乎很奇怪在标题中。最后我使用了 onmessage 事件,因为它没有被使用,并且带有任意字符串有效负载。我会将您的答案标记为解决方案,因为它确实阐明了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多