Is there a way to allow for a win32com object to be modified by a COM object method?

126 Views Asked by At

In native visual basic within Excel, the expected behavior is

Dim AvayaReport As Object
Dim AvayaServer As Object
...
...
Set ReportInfo = AvayaServer.Reports.Reports("<Report Name>")
AvayaServer.Reports.CreateReport ReportInfo, AvayaReport

After the last line, the CreateReport method mutates AvayaReport to be a report object in this library. However, when I replicate this code within Python, AvayaReport does not get mutated.

import win32com.client
...
AvayaReport = win32com.client.dispatch("ACSREP.cvsReport")
...

ReportInfo = AvayaServer.Reports.Reports(r'<Report Name>")
AvayaServer.Reports.CreateReport(ReportInfo, AvayaReport)

I have tried to compare the behavior between the two environments and with the exception of this issue, the surrounding code is working as intended. However, this COM object has this weird implementation where it requires an empty object to be passed into it's arguments and it changes that object to reflect the created report, but I cannot figure out a way to make this work within Python.

Within VBA, the CreateReport definition is as follows:

Function CreateReport(oRepInfo, oReport, [sTimeZone as String = "default"]) As Boolean

Member of ACSTLG.cvsCatalog

0

There are 0 best solutions below