Путаница с именами метода/свойства
От: Cirroz СССР  
Дата: 11.09.08 10:07
Оценка:
Я в COM не очень разбираюсь, если где неправильно пишу — поправьте, пожалуйста.

Есть COM-объект 1С:Предприятие 8.1
Разработчик на языке 1С пишет код и передаёт созданные объекты во Внешнюю Компоненту (ВК), написанную на Delphi.
Очень реальна ситуация, когда переданный объект будет иметь свойство и метод с одинаковыми именами.
Эта ситуцация приводит к тому, что GetIDsOfNames всегда возвращает первый найденный ID, который всегда является ID метода.
Т.е. если я вообще не могу прочитать значение свойства с тем же именем, что и имя метода, т.к. указать, что мне нужно: DISPATCH_METHOD или DISPATCH_PROPERTYGET я могу только у Invoke и то, чтобы он не вернул ошибку.

Пробовал добраться до vtbl через IDispatch, но GetTypeInfoCount() возвращает мне 0, т.е. я так понимаю, что dual interface у объекта или нет или интерфейс скрыт. Более того я не знаю GUID'ы всем типам объектов, что создаёт 1С:Предприятие.

Подскажите, пожалуйста, что ещё можно сделать для определения ID свойства.
Можно ли получить этот ID вообще?

ЗЫ Провёл эксперимент, в версии 1С:Предприятие 8.0 в такой же ситуации всегда возвращается ID свойства, т.е. наоборот.

22.09.08 16:29: Перенесено модератором из 'Работа — предложения работы от прямых работодателей' — Valery A. Boronin
предприятие com idispatch getidsofnames invoke
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.