2016-09-26 1 views
0

Я установил Windows SDK 7.1 на Windows 7, чтобы получить интерфейс IDOMCustomEvent, который предположительно присутствует в mshtml.h на «Windows Vista с пакетом обновления 1 (SP1), Windows 7». У меня есть grepped весь каталог SDK include, и его нет (но mshtml.h есть). Как получить этот интерфейс?
Мое требование - запускать CustomEvents в IE11 из C++. Любой способ добиться этого был бы приемлемым.Какие окна SDK содержат заголовки для IE IDOMCustomEvent

+0

Я нашел этот интерфейс в Windows SDK 8.1, но он должен, согласно Microsoft, присутствовать в Windows 7. –

ответ

0

Начиная с 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 Standards). Спецификация показывает, как пользовательское событие может быть выполнено с использованием JavaScript.

Я не уверен, насколько это полезно для ваших нужд. Существует older article on MSDN, в котором обсуждается реализация на C++, но она основана на более старой версии браузера и может быть неактуальной, особенно учитывая изменения в модели безопасности на протяжении многих лет. (Я также нашел slightly more recent article в CodeProject, но я не пробовал его.)

Не уверен, что это помогает, но, возможно, справочная информация поможет.

+0

Я в конце концов отказался от этой линии атаки, потому что очень старая база кода, над которой я работаю, t like SDK8.1 Кажется очень странным, что интерфейс находится в файлах IDL, а не в заголовках. В конце я использовал событие onmessage, потому что это в остальном не использовалось и носит произвольную полезную нагрузку на строку. Я буду отмечать ваш ответ как решение, поскольку он проливает свет на проблему. –

Смежные вопросы