Dev ›
Создать дочерний класс COM объекта ›
#1
21.07.22 21:16
Есть COM объект содержащий главный родительский класс и несколько дочерних. У родительского класса есть метод, который принимает в качестве параметра тип одного из дочерних классов.
То есть при создании нового COM объекта, создается объект класса Class1. У класса Class1 есть дочерний класс Class2. Так же у класса Class1 есть метод Method, который принимает параметр с типом Class2. Передается туда ссылка, которая внутри метода и заполняется: Class1.Method(Class2param). После выполнения метода в переменной Class2param будут данные.
Проблема в том, что я не могу создать СОМ объект класса Class2, а параметр другого типа метод не принимает и ругается на несоответствие типов. Может быть у СОМ объектов есть какие-то стандартные функции, с помощью которых можно получить другие классы, которые реализует ком объект?
У меня есть исходник с примером работы с этим СОМ объектом на VB. Там СОМ объект подключается просто в свойствах проекта. После этого сама IDE видит все интерфейсы, классы и методы этого СОМ объекта. То есть сама IDE VB дает возможность инициализировать переменную типа Class2, и через точку я сразу буду видеть ее свойства и методы. И соответственно вызвать Class1.Method и передать туда параметр типа Class2.
Как можно решить эту задачу на платформе?
Пробовал подключить данный СОМ объект в Питоне:
import win32com.client
Class1 = win32com.client.Dispatch("COM.Class1")
Но так же не могу вызвать Method(), т.к. ругается на несоответствие типов и как создать Class2 я не смог найти.
То есть, я подозреваю, что тут вопрос не платформе, а конкретно в работе с СОМ объектами. Возможно есть какие-то стандартные методы, как можно обратиться к СОМ объекту и получить доступные классы.
Однако, все же непонятно, каким образом VB видит сразу все внутренности СОМ объекта.