Следующая ситуация: Необходимо создать IE Plugin. Обязательное условие: Visual Studio 6. Долго рассказывать, почему. Все обыденно: Создаем ATL Com проект, добавляем ИЕ объект. Так как для плагина непременно нужен интерфейс IOleCommandTarget, добавляем его к классу в idl файле, компилируем — все прекрасно. С помощью меню добавляем в класс реализацию интерфейса, и тут приплыли: компилятор выдает ошибку С2259, радостно сообщая, что не может инициировать класс с чисто виртуальным функциями. И в предупреждениях сообщает, что функции QueryStatus и Exec интерфейса IOleCommandTarget не определены в классе-потомке. Смотрю в описание класса — обе функции на месте. Самое замечательное, что до этого момента мной не наколочено ни единой строчки кода, среда все сделала сама. Обругала себя тоже сама . Может, кто сталкивался с подобным?
Здравствуйте, Аноним, Вы писали:
А>Следующая ситуация: Необходимо создать IE Plugin. Обязательное условие: Visual Studio 6. Долго рассказывать, почему. Все обыденно: Создаем ATL Com проект, добавляем ИЕ объект. Так как для плагина непременно нужен интерфейс IOleCommandTarget, добавляем его к классу в idl файле, компилируем — все прекрасно.
Зачем добовлять в idl IOleCommandTarget?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, Аноним, Вы писали:
А>>Следующая ситуация: Необходимо создать IE Plugin. Обязательное условие: Visual Studio 6. Долго рассказывать, почему. Все обыденно: Создаем ATL Com проект, добавляем ИЕ объект. Так как для плагина непременно нужен интерфейс IOleCommandTarget, добавляем его к классу в idl файле, компилируем — все прекрасно.
AJD>Зачем добовлять в idl IOleCommandTarget?
А как по другому, если класс должен наследовать несколько интерфейсов?
Здравствуйте, Diletant, Вы писали:
AJD>>Зачем добовлять в idl IOleCommandTarget?
D>А как по другому, если класс должен наследовать несколько интерфейсов?
В idl описывается новые интерфейсы, а не существующие
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, Diletant, Вы писали:
AJD>>>Зачем добовлять в idl IOleCommandTarget?
D>>А как по другому, если класс должен наследовать несколько интерфейсов?
AJD>В idl описывается новые интерфейсы, а не существующие
Хотя это чистой воды флейм по отношению к данному вопросу, но что делать если новый интерфейс наследует от IWebBrowser2 и IOleCommandTarget. ИМХО добавляется интерфейс IOleCommandTarget в секцию coclass класса и все прекрасно работает.