Passando argumentos adicionais para o objeto de retorno de chamada python (win32com.client.dispatchWithEvents)
Estou lutando com objetos de retorno de chamada, sou um novato, seja gentil:
Estou usando o pacote win32com para interagir com um aplicativo do Windows (o aplicativo não é importante).
Em resumo, o que estou tentando obter é uma assinatura de uma tabela que é atualizada.
Eu implementei com êxito um retorno de chamada que recebe os dados retornados em uma atualização da tabela, mas o que eu preciso agora é agir com base nos dados recebidos.
Esse problema seria muito fácil de resolver se eu pudesse instanciar o objeto de retorno de chamada com argumentos adicionais (consulte o código abaixo). Mas não sei como fazer isso.
Classe CallBack:class callBackEvents(object):
""" Callback Object for win32com
"""
def OnNewData(self, XMLData):
logging.info("Subscription returned information")
print "HERE : {}".format(XMLData))
# Would like to use some argument to access logic
# For how to use the new data
def OnActionResult(self, job, msg):
return True
def OnServerDisconnect(self):
logging.debug("Server Disconnected")
def OnServerConnect(self):
logging.debug("Trader Connected To Server")
Instanciar o objeto de retorno de chamada:# Instantiate API com object
self.app = win32com.client.DispatchWithEvents("WindowsApplication" callBackEvents)
# I would like to give the callback object extra arguments e.g. callBackEvents(params)
EDITAR
Instanciar os objetos de retorno de chamada:# Instatiate two com objects
self.com1 = win32com.client.DispatchWithEvents("WindowsApplication" callBackEvents)
self.com2 = win32com.client.DispatchWithEvents("WindowsApplication" callBackEvents)
# Create multiple subscriptions (Note these are asynchronous)
# Pushing the subscribed info is not a problem and done elsewhere
self.com1.Subscribe(<subscription info>)
self.com2.Subscribe(<subscription info>)
Agora, quando as informações da assinatura atingem o objeto de retorno de chamada, não tenho idéia de qual objeto com configurou a assinatura (eu poderia adivinhar com base nas informações retornadas, mas isso causará problemas quando configurações idênticas)