Использование элемента управления ActiveX из другого элемента управления ActiveX на веб-странице - PullRequest
0 голосов
/ 21 июля 2009

У меня проблемы с вызовом не IDispatch метода в элементе управления ActiveX, который я написал.

У меня есть веб-страница с двумя отдельными объектами Active X, которые я написал. Я начинаю с вызова метода первого объекта, который возвращает указатель интерфейса на новый COM-объект, который нельзя создавать совместно. Затем я вызываю метод для этого нового объекта, передавая второй объект ActiveX в качестве аргумента. Внутри этого метода я вызываю QueryInterface для получения указателя на частный / внутренний интерфейс моего второго объекта ActiveX. Проблема в том, что возвращенный указатель из QueryInterface не является допустимым указателем на мой объект, и любая попытка его использования завершается сбоем.

Как я могу получить интерфейс для моего реального объекта, который я могу использовать? Мой частный интерфейс использует структуры, поэтому он не совместим с IDispatch, и, поскольку я являюсь внутренним интерфейсом, я вообще не хочу показывать его в библиотеке типов.

1 Ответ

1 голос
/ 05 ноября 2009

Сложно сказать с помощью только описания, но я предполагаю, что метод первого объекта возвращает указатель IDispatch на объект, который он создает? Среда JScript сможет справиться только с этим.

Кроме того, допустима ли ваша реализация QueryInterface? Это работает для вас в не скриптовом контексте?

Мне все еще немного непонятно, какие объекты имеют какие интерфейсы, но если у вас есть объект с интерфейсом, не поддерживающим IDispatch, возможно, вы можете создать простой объект-оболочку для его хранения, где объект-оболочка имеет надлежащий интерфейс IDispatch

Прошу прощения, если я далеко от цели ... Я не боролся с ActiveX в течение нескольких месяцев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...