<[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
...
> The problem is that msdn documentation says that in order to identify
> the element that was clicked - one has to query on IHTMLWindow2::event
> property on iHTMLWindow2 interface to get IEventOBj interface and then
> from there - use query interfce to get to the id of the element.
>
> How do I do this in python? ie. I have this code
> class Doc_Events(doc_mod.HTMLDocumentEvents):
>    def Ononclick(self):
>        print 'onClick fired '
> and I see onClick being trapped.
> Now I need to go and get a reference to the iHTMLWindow2 interface. For
> this I need to get a reference to doc_mod (as far as I can see). How do
> I get that in the OnonClick method above.

To get the IHTMLWindow2, you can just use self.parentWindow
inside the event hander, and then get the event from it.  And then
the event's srcElement should be what you need.

class Doc_Events(doc_mod.HTMLDocumentEvents):
    def Ononclick(self):
        print 'onclick'
        ev=self.parentWindow.event
        src=ev.srcElement
        print 'tagName:',src.tagName,'name:',src.getAttribute('name')

For clicking on google's input field, this yields
tagName: INPUT name: q

>
> b) You had mentioned PumpWaitingMessages in the previous posting. I
> first encountered this on newsgroup postings. None of the standard
> books (python on win32 / python developer) seem to explain this in
> detail although this seems to be commonly used. Though I understand
> this now - my problem is that there seems to be a lack of cohesive
> explanation on how python ties up with COM (despite a good chapter 12

PumpWaitingMessages is just a way to ensure that normal message processing
(window messages, events, dde, etc) happens while python code is running.
Normally you don't need it, but every once in a while you hit a situation 
where
blocking occurs.

For how exactly python interacts with COM, the source is your best bet.

        Roger





----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! >100,000 
Newsgroups
---= East/West-Coast Server Farms - Total Privacy via Encryption =---
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to