Хук - это извращение.
таки тебе надо умудриться скомпилить тот код с использованием IDocHostUIHandler
- это самый правильный путь.
С помощью хука WH_MOUSE можно.⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
Хмм. А почему бы не начать плясать от печки, то есть от IWebBrowser2 ? Там в дереве интерфейсов есть IHTMLDocument2, через который можно спионерить событие mousedown со всеми вытекающими отсюда последствиями. ИМХО это попроще.Хук - это извращение.
таки тебе надо умудриться скомпилить тот код с использованием IDocHostUIHandler
- это самый правильный путь.
Хмм. А почему бы не начать плясать от печки, то есть от IWebBrowser2 ? Там в дереве интерфейсов есть IHTMLDocument2, через который можно спионерить событие mousedown со всеми вытекающими отсюда последствиями. ИМХО это попроще.
Еще как совсем убогий вариант можно внедрить в любой загруженный документ жабаскрипт (тупо дописать в конец), который заблочит правую мышу.
Хмм. А почему бы не начать плясать от печки, то есть от IWebBrowser2 ? Там в дереве интерфейсов есть IHTMLDocument2, через который можно спионерить событие mousedown со всеми вытекающими отсюда последствиями. ИМХО это попроще.
Работает!!!!!
Вотисходник, единственно там небольшая ошибочка, забыли объявить dochandler⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
Мне б ещё рамочку убрать, и вообще супер буит
Это сложный способ, я боюсь у него ничего не получится. Там надо сначала дождаться когда документ загрузится. Во-вторых это не отрубит никаких кастом меню которые разработчик сайта задумал прицепить на клик правой кнопкой.
Лентяй. Почитать про GetHostInfo впадлу?
virtual HRESULT STDMETHODCALLTYPE GetHostInfo(
/* [out][in] */ DOCHOSTUIINFO __RPC_FAR *pInfo) {
pInfo->dwFlags |= DOCHOSTUIFLAG_NO3DBORDER;
//pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
//pInfo->cbSize = sizeof(pInfo);
return S_OK;
}
Ну может и сложный - я просто много юзал эту модель еще во времена зеленых деревьев и маленького интернета и мне там простоЭто сложный способ, я боюсь у него ничего не получится. Там надо сначала дождаться когда документ загрузится. Во-вторых это не отрубит никаких кастом меню которые разработчик сайта задумал прицепить на клик правой кнопкой.
Ну может и сложный - я просто много юзал эту модель еще во времена зеленых деревьев и маленького интернета и мне там просто
А насчет кастомменюшек - это каким боком? После того как я спионерю событие - я его ессесно дальше уже не пропущу и разработчик о клике мышкой ничего не узнает
То есть как это "я не первый"?А кто сказал что ты первый кто на него подписался? там как бы может быть много подписчиков.
То есть как это "я не первый"?Это же МОЙ компонент в МОЕМ приложении
Ну разве что в сторонних БХО кто-то захочет поиграться - кстати тут интересный вопрос, кто первым получит ивент ДокументКомплит - приложение или БХО. Надо будет потестить надосуге.
Это врядли - там однозначно один поток, уж я то с БХО в свое время наигралсяЯ думаю что ты очень удивишься когда не увидишь никакой закономерности
Это врядли - там однозначно один поток, уж я то с БХО в свое время наигралсяБХО точно получит ивент до окончательного рендеринга страницы, причем для нескольких БХО порядок получения сохраняется - в конечном итоге энум записей о регистрации в реестре возвращает их в одном и том же порядке и смысла браузеру тасовать их нет. И пока БХО не вернет управление из обработчика - браузер висит. А вот что будет первичным - БХО или собсно приложение...
Хмм. А как насчет установить cancelBubble в Тру?
Та прав - то я ступил, поправил пост - но ты как "самая быстрая мышь на западном побережье"Если мне не изменяет память, бубл отрубает все последующие ивенты в иерархии, а никак не сам ивент. Или я не прав?