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

Reply via email to