Hello,
I'm new to IronPython and COM so please bear with me.
I have a COM interface provided to me. I need to implement this
interface and pass it to a method as a way of implementing
'callbacks'.
However it appears that the methods of my interface object are never
called.
As a alternative, I implemented the interface in C# and then extended
the C# class in IronPython. However, on running the code, methods of
my C# class rather than the IronPython class are being called.
Can anyone advise? Is this possible in IronPython?
The code is listed below.
Regards,
Divya
---------------------------
import time
import clr
clr.AddReferenc e('Interop.MBTC OMLib.dll')
clr.AddReferenc e('Interop.MBTO RDERSLib.dll')
clr.AddReferenc e('Interop.MBTQ UOTELib.dll')
import MBTCOMLib
import MBTORDERSLib
import MBTQUOTELib
demo_user='user '
demo_pass='pass '
demo_host=9
class MBEvents(MBTQUO TELib.IMbtQuote sNotify):
def __init__(self):
MBTQUOTELib.IMb tQuotesNotify._ _init__(self)
def OnLevel2Data(da ta):
print 'OnLevel2Data'
def OnOptionsData(s elf, data):
print 'OnOptionsData'
def OnQuoteData(sel f, data):
print 'OnQuoteData'
def OnTSData(self, data):
print 'OnTSData'
class MB:
def __init__(self):
self.conn = MBTCOMLib.MbtCo mMgrClass()
#self.conn.Enab leSplash(False)
self.orders = self.conn.Order Client
self.quotes = self.conn.Quote s
self.events = MBEvents()
def login(self, host=demo_host, user=demo_user, passwd=demo_pas s):
self.conn.DoLog in(host, user, passwd, '')
print self.quotes.Rem oteAddress, self.quotes.Rem otePort
self.quotes.Adv iseSymbol(self. events, 'EUR/USD', 1|2|3|4)
I'm new to IronPython and COM so please bear with me.
I have a COM interface provided to me. I need to implement this
interface and pass it to a method as a way of implementing
'callbacks'.
However it appears that the methods of my interface object are never
called.
As a alternative, I implemented the interface in C# and then extended
the C# class in IronPython. However, on running the code, methods of
my C# class rather than the IronPython class are being called.
Can anyone advise? Is this possible in IronPython?
The code is listed below.
Regards,
Divya
---------------------------
import time
import clr
clr.AddReferenc e('Interop.MBTC OMLib.dll')
clr.AddReferenc e('Interop.MBTO RDERSLib.dll')
clr.AddReferenc e('Interop.MBTQ UOTELib.dll')
import MBTCOMLib
import MBTORDERSLib
import MBTQUOTELib
demo_user='user '
demo_pass='pass '
demo_host=9
class MBEvents(MBTQUO TELib.IMbtQuote sNotify):
def __init__(self):
MBTQUOTELib.IMb tQuotesNotify._ _init__(self)
def OnLevel2Data(da ta):
print 'OnLevel2Data'
def OnOptionsData(s elf, data):
print 'OnOptionsData'
def OnQuoteData(sel f, data):
print 'OnQuoteData'
def OnTSData(self, data):
print 'OnTSData'
class MB:
def __init__(self):
self.conn = MBTCOMLib.MbtCo mMgrClass()
#self.conn.Enab leSplash(False)
self.orders = self.conn.Order Client
self.quotes = self.conn.Quote s
self.events = MBEvents()
def login(self, host=demo_host, user=demo_user, passwd=demo_pas s):
self.conn.DoLog in(host, user, passwd, '')
print self.quotes.Rem oteAddress, self.quotes.Rem otePort
self.quotes.Adv iseSymbol(self. events, 'EUR/USD', 1|2|3|4)
Comment