Mark Hammond wrote:

>Try leaving the events class as an "old style" class (ie, don't derive from
>object)
>  
>
Hmm..  I did that, and got pretty much the same output - does this stack 
trace help at all?  The code listed at the bottom is my complete code 
for my test.  I don't need anything else to do this do I?

############ Stack trace [start]
AttributeError: '<win32com.client.COMEventClass instance at 0x12535288>' 
object has no attribute '_typelib_guid_'

Traceback (innermost last):

File "c:\Documents and Settings\Me\My 
Documents\Work\eXpressPayAdvantage\XPayAdv\directest2.py", line 1, in ?
  from win32com.client import DispatchWithEvents
File "c:\Documents and Settings\Me\My 
Documents\Work\eXpressPayAdvantage\XPayAdv\directest2.py", line 16, in ?
  swiper = DispatchWithEvents('ctlUSBHID.USBHID', SwiperEvents)
File "C:\Python24\Lib\site-packages\win32com\client\__init__.py", line 
266, in DispatchWithEvents
  events_class.__init__(instance, instance)
File 
"C:\Python24\Lib\site-packages\win32com\gen_py\158336E7-3FF3-456E-912C-5985E9BBED24x0x1x1.py",
 
line 104, in __init__
  cookie=cp.Advise(win32com.server.util.wrap(self, 
usePolicy=EventHandlerPolicy))
File "C:\Python24\Lib\site-packages\win32com\server\util.py", line 23, 
in wrap
  ob = usePolicy(ob)
File "C:\Python24\Lib\site-packages\win32com\server\policy.py", line 
189, in __init__
  self._wrap_(object)
File "C:\Python24\Lib\site-packages\win32com\server\policy.py", line 
463, in _wrap_
  tlb_guid = getattr(ob, '_typelib_guid_', None)
File "C:\Python24\Lib\site-packages\win32com\client\__init__.py", line 
454, in __getattr__
  raise AttributeError, "'%s' object has no attribute '%s'" % 
(repr(self), attr)
############ Stack trace [end]


############ Code (current) [start]
from win32com.client import DispatchWithEvents
import pythoncom

class SwiperEvents:
    def OnCardDataChanged(self,
                          Source=pythoncom.Missing,
                          CursorType=pythoncom.Missing,
                          LockType=pythoncom.Missing,
                          Options=pythoncom.Missing,
                          adStatus=pythoncom.Missing,
                          pCommand=pythoncom.Missing,
                          pRecordset=pythoncom.Missing,
                          pConnection=pythoncom.Missing):
        print "Handler called!"

swiper = DispatchWithEvents('ctlUSBHID.USBHID', SwiperEvents)

print swiper.PortOpen
swiper.PortOpen = True
swiper.ClearBuffer()
print swiper.PortOpen
############ Code (current) [end]


_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to