This group has been very helpful as I've worked on an IE automation class (yes I know about Pamie). I recently encountered a design issue concerning how to allow users to 'hook' event routines in the IE automation class. After a bit of thought and scratching around I decided to look into a user derived event class and ran the following experiment:
>>> import win32com.client >>> class IEEvents1: ... def OnVisible(self, visible): ... print 'Visible changed:', visible ... >>> ie = win32com.client.DispatchWithEvents( 'InternetExplorer.Application', IEEvents1) >>> ie.Visible = 1 Visible changed: True >>> ie.Navigate('www.google.com') >>> Then I subclassed the event routine and played some more: >>> class IEEvents2(IEEvents1): ... def OnDocumentComplete(self, pDisp, url): ... print 'Top %s pDisp %s url %s'% \ ... (pDisp==self,pDisp,url) ... >>> ie2 = win32com.client.DispatchWithEvents( 'InternetExplorer.Application', IEEvents2) >>> ie2.Visible = 1 Visible changed: True >>> ie2.Navigate('www.citizensbank.com') >>> Top False pDisp url http://www.citizensbank.com/scripts/tc/logging.html Top False pDisp url http://www.citizensbank.com/olblogin/olblogin.aspx?f=p7X03No2hg Top True pDisp url http://www.citizensbank.com/home/ I see both the Visible event from IEEvents1 AND the DocumentComplete event from IEEvents2. So subclassing apparently works and the issue of user hooks into the event interface is resolved rather neatly via classes. That's cool but ... Who/what ran the message pump during the experiment or do I not really understand the message pump? Anyone have any insight? Regards, Richard _______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32