Re[3]: Потому что DWebBrowserEvent2 - это диспинтерфейс
От: Vi2 Удмуртия http://www.adem.ru
Дата: 02.06.03 14:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>При подключении к событиям я исп. в IConnectionPointContainer GUID_IID интерфейса DWebBrowserEvent2, соответственно и ITypeInfo беру с тем же GUID_IID

DWebBrowserEvent2 — это чистый диспинтерфейс. Он не имеет таблицы функций (как другие интерфейсы — не-диспинтерфейсы), а также не имеет данных, доступных через указатель.

Каким же образом ITypeInfo-объект поможет тебе в обработке запроса?

Только вызвав p->IDispatch::Invoke(...), передав туда все свои параметры, чтобы этот твой Invoke вызвал соответствующую функцию. Но, как правило, DispInvoke вызывается в обработчике IDispatch::Invoke, то, и это разумно, на чистых диспинтерфейсах он возвращает ошибку. Иначе будет бесконечный цикл, не так ли?

Что делать? Реализовывать обработчик по-другому, не через DispInvoke. По-моему, есть какие-то Wizard-ы Студии по реализации таких интерфейсов.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.