Hi,

 To develop a interface to a COM library under Boa Constructor and WxPython, 
Python 2.5, I had to use the makepy utility to generate the classes file.

 I show you a part of this file:

class _IPmacDeviceEvents:
 """_IPmacDeviceEvents Interface"""
 CLSID = CLSID_Sink = IID('{D1C5C7C8-5E0C-495E-9AAF-85B146DA5F13}')
 coclass_clsid = IID('{B544D2BD-354C-456E-9E88-20F71625E7DF}')
 _public_methods_ = [] # For COM Server support
 _dispid_to_func_ = {
          5 : "OnUnsolicited",
          3 : "OnError",
          4 : "OnInterrupt",
          2 : "OnProgress",
          1 : "OnMessage",
          6 : "OnDataReady",
  }

 def __init__(self, oobj = None):
  if oobj is None:
   self._olecp = None
  else:
   import win32com.server.util
   from win32com.server.policy import EventHandlerPolicy
   cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)
   cp=cpc.FindConnectionPoint(self.CLSID_Sink)
   cookie=cp.Advise(win32com.server.util.wrap(self, 
usePolicy=EventHandlerPolicy))
   self._olecp,self._olecp_cookie = cp,cookie
 def __del__(self):
  try:
   self.close()
  except pythoncom.com_error:
   pass
 def close(self):
  if self._olecp is not None:
   cp,cookie,self._olecp,self._olecp_cookie = 
self._olecp,self._olecp_cookie,None,None
   cp.Unadvise(cookie)
 def _query_interface_(self, iid):
  import win32com.server.util
  if iid==self.CLSID_Sink: return win32com.server.util.wrap(self)

 # Event Handlers
 # If you create handlers, they should have the following prototypes:
# def OnUnsolicited(self, Device=defaultNamedNotOptArg, 
Msg=defaultNamedNotOptArg):
#  """method Unsolicited"""
# def OnError(self, Device=defaultNamedNotOptArg, 
FileName=defaultNamedNotOptArg, ErrorID=defaultNamedNotOptArg, 
LineNum=defaultNamedNotOptArg
#   , Line=defaultNamedNotOptArg):
#  """method Error"""
# def OnInterrupt(self, Device=defaultNamedNotOptArg, 
lLevel=defaultNamedNotOptArg):
#  """method Interrupt"""
# def OnProgress(self, Device=defaultNamedNotOptArg, 
dwPercent=defaultNamedNotOptArg):
#  """method Progress"""
# def OnMessage(self, Device=defaultNamedNotOptArg, Msg=defaultNamedNotOptArg, 
bNewLine=defaultNamedNotOptArg):
#  """method Message"""
# def OnDataReady(self, Device=defaultNamedNotOptArg):
#  """method DataReady"""
;
;
;
from win32com.client import CoClassBaseClass
# This CoClass is known by the name 'PcommServer.PmacDevice.1'
class PmacDevice(CoClassBaseClass): # A CoClass
 # PmacDevice Class
 CLSID = IID('{B544D2BD-354C-456E-9E88-20F71625E7DF}')
 coclass_sources = [
  _IPmacDeviceEvents,
 ]
 default_source = _IPmacDeviceEvents
 coclass_interfaces = [
  IPmacDevice,
 ]
 default_interface = IPmacDevice

I can call PmacDevice() class without problem and everything works well to 
communicate with the card.
How to use the events managed in the library ?

 Do you have a example or tutorial ?

 Thanks a lot.

 Serge Gauthier


--
J'utilise la version gratuíte de SPAMfighter pour utilisateurs privés.
Ce programme a supprimé1939 d'e-mails spam à ce jour.
Les utilisateurs qui paient n'ont pas ce message dans leurse-mails.
Obtenez la version gratuite de SPAMfighter ici: http://www.spamfighter.com/lfr
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to