Форум программистов, компьютерный форум CyberForum.ru

Не получается вызвать событие onDocumentComplete в IE - C++ COM

Восстановить пароль Регистрация
 
Maksim3x
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 10
03.11.2016, 13:58     Не получается вызвать событие onDocumentComplete в IE #1
Пишу дополнение для IE. Есть необходимость после полной загрузки страницы выполнять действия. У меня не получается зарегистрировать событие. Так как не получает интерфейс браузера.

Проект создавал по этой инструкции https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Но вот в функции SetSite вот эта строчка
C++
1
HRESULT hr = pUnkSite->QueryInterface(IID_IWebBrowser2, (void **)&m_spWebBrowser);
вернула ошибку, и после чего не получается регистрировать событие. подскажите что делать? что не так?

ссылка на мой проект (https://cloud.mail.ru/public/Gy6p/xWDxMGWU7) если кому то будет проще так отследить ошибку.

В реестре регистрировал приложение в ручную, кто хочет автоматически, можете дописать инструкцию в файл .rgs
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2016, 13:58     Не получается вызвать событие onDocumentComplete в IE
Посмотрите здесь:

C++ Builder БД Вызвать событие queryAfterScroll
jQuery Как вызвать событие у тега <A>?
C# WPF Вызвать событие другой формы
C++ COM Переслать событие в контрол
C++ COM Не получается открыть dbf файл
Вызвать событие другого контролла C#
Как вызвать событие кнопки? Visual Basic .NET
JavaScript Вызвать событие для селекта
вызвать событие у чекбокса JavaScript
C# Принудительно вызвать событие, если произошло другое событие
C++ Builder Как правильно вызвать событие ?
Delphi WinAPI Вызвать событие в запущенной программе

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14438 / 6422 / 1015
Регистрация: 02.05.2013
Сообщений: 10,664
Завершенные тесты: 1
03.11.2016, 14:52     Не получается вызвать событие onDocumentComplete в IE #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Когда я разрабатывал BHO для Internet Explorer, то получал интерфейс IWebBrowser2
по-другому: у IUnknown, который передается в метод IObjectWithSite::SetSite, надо сначала
запросить через QueryInterface интерфейс IServiceProvider, а затем уже у этого провайдера
запрашивать IWebBrowser2 через метод QueryService.

Вот пример из одного реального проекта:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <ShlGuid.h> // Определения нужных CLSID, IID и т.д.
 
// ...
 
IWebBrowser2 * GetWebBrowser2(IUnknown * pUnkSite)
{
    CComQIPtr<IServiceProvider> SrvProv(pUnkSite);
 
    if (SrvProv)
    {
        IWebBrowser2 *pWebBrowser2;
 
        if (S_OK == SrvProv->QueryService(
            SID_SWebBrowserApp,
            IID_IWebBrowser2,
            (void **)&pWebBrowser2))
        {
            return pWebBrowser2;
        }
    }
 
    return NULL;
}
Yandex
Объявления
03.11.2016, 14:52     Не получается вызвать событие onDocumentComplete в IE
Ответ Создать тему
Опции темы

Текущее время: 02:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru