Интерфейс Python с C# COM dll - com_record не работает как параметр [Out]
Я запускаю скрипт Python для взаимодействия с aC# dll, зарегистрированным как приложение com, и испытываю трудности с обработкой выходного параметра структуры. Я создаю запись COM и успешно передаю ее в вызов функции COM, но данные не меняются.
Моя функция C# объявлена как
void GetData(ref MyData data);
MyData является структурой, и запись в файле tlh генерируется как
virtual HRESULT __stdcall GetData (
/*[in,out]*/ struct MyData * data ) = 0;
В скрипте Python я объявляю
self.myData = win32com.client.Record("MyData", self.myComServerObj)
И вызвать функцию
self.myComServerObj.GetData(self.myData)
Но элементы данных в self.myData остаются неизменными после вызова функции.
Я могу отладить вызов функции на стороне сервера и подтвердить, что данные меняются, а также назначить тестовые значения на стороне клиента и подтвердить, что они принимаются сервером. То есть параметр struct работает нормально как параметр [In], но не как параметр [out].
Я также могу подтвердить, что эта функция хорошо работает с клиентской программой "C" COM. Кто-нибудь может помочь?
Благодарю.