Я в 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