Здравствуйте, TGrey, Вы писали:
TG>При создании компонента с помощью мастера, компонент имеет один интерфейс (не считая обязательных). Как можно добавить ещё один или несколько интерфейсов не внося изменений в исходный код руками. Например к компоненту можно добавить новый метод вызвав контекстное меню над названием класса компонента, а затем в меню выбрать "Add Member Function". Можно ли добавить ещё один интерфейс подобными незатейливыми манипуляциями?
Правый клик мыши на классе, имплементирующем COM-объект, потом Implement Interface. Интерфейс к тому времени должен быть определен в библиотеке классов проекта. Проще всего сделать еще один проект, сдизайнить там idl (через визард) и скопировать интерфейс в idl первого проекта.
При создании компонента с помощью мастера, компонент имеет один интерфейс (не считая обязательных). Как можно добавить ещё один или несколько интерфейсов не внося изменений в исходный код руками. Например к компоненту можно добавить новый метод вызвав контекстное меню над названием класса компонента, а затем в меню выбрать "Add Member Function". Можно ли добавить ещё один интерфейс подобными незатейливыми манипуляциями?
Здравствуйте, George Seryakov, Вы писали:
GS>Правый клик мыши на классе, имплементирующем COM-объект, потом Implement Interface. Интерфейс к тому времени должен быть определен в библиотеке классов проекта. Проще всего сделать еще один проект, сдизайнить там idl (через визард) и скопировать интерфейс в idl первого проекта.
Это крайне нерационально — сделать еще проект и тд.
Можно просто сокопировать интерефейс любой, удалить методы, переименовать, заменить GUID ( guidgen.exe ).
Далее — самое главное — чтобы появился в списке интерфейсов.
Нужно занести этот интерфейс в какой нибудь coclass.
Последний штрих — откомпилировать проект, можно не весь, достаточно только tlb.
После этого его можно мышью добавлять во все мыслимые места.