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

C++: COM, OLE, ActiveX

Войти
Регистрация
Восстановить пароль
 
Maksim3x
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 10
#1

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

03.11.2016, 13:58. Просмотров 570. Ответов 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
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2016, 13:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается вызвать событие onDocumentComplete в IE (C++ COM):

Принудительно вызвать событие, если произошло другое событие - C#
Сразу оговорюсь, это тема про события, а НЕ про Windows Forms, да бы ни кто не переносил тему. В Windows Forms у тех или иных...

Вызвать событие queryAfterScroll - C++ Builder БД
Добрый день! Подскажите как программно вызвать событие: void __fastcall TDMAdo::queryAfterScroll(TDataSet *DataSet) {} Пробовал...

вызвать событие у чекбокса - JavaScript
Доброго времени суток! Наверняка уже задавался такой вопрос, но я не знаю как найти :) В общем имеем <input type="checkbox"...

Вызвать событие другой формы - C# WPF
Доброе время суток. у меня есть 2 окна. мне нужно что бы при нажатии кнопки во второй окне, выполнялось событие из первого окна, например...

Вызвать событие в запущенной программе - Delphi WinAPI
Подскажите, как сделать, чтобы одна запущенная программа могла вызвать событие в другой. Такое происходит например в редакторах, когда...

Вызвать одно событие в другом - C#
Есть событие по закрытию окна this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15545 / 7053 / 1114
Регистрация: 02.05.2013
Сообщений: 11,466
Завершенные тесты: 1
03.11.2016, 14:52 #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;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2016, 14:52
Привет! Вот еще темы с ответами:

Как вызвать событие кнопки? - Visual Basic .NET
Вопрос наверное глупый, а ответ на него простой, но я недавно начал изучать vb.net, так что не ругайтесь) Как при нажатии на Button2...

Вызвать событие другого контролла - C#
Нужно в коде при else запускать действие, которое у меня уже есть на label при клике. Просто не хочу повторять код. Заранее спасибо.

Как правильно вызвать событие ? - C++ Builder
Добрый день. Использую контрол типа TCSpinEdit в связке с кнопкой TButton. После ввода или изменения числа в SpinEdit, по нажатию...

Как вызвать событие у тега <A>? - jQuery
когда мы кликаем по тегу &lt;A&gt; браузер начинает загружать страницу указанную в артрибуте href; хочу вызвать именно это событие.Это можно...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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