Hi, I am trying to get the IWebBrowser2 object from the HWND of an open IE window.
I have seen this topic covered in many languages, and I am following the same steps, but in python, yet I am hitting a wall that I can't figure how to break... So, yes, I have been 'googling', browsing and testing many options, but without the desired result. So, here details about my python installation on WinXP: - python-2.5.2.msi - pywin32-210.win32-py2.5.exe - comtypes-0.4.2.win32.exe - ServProv.tlb --> used to generate the IServiceProvider wrappers Now, my scenario is IE7 already open on a webpage 'Page1', and a modal popup webpage 'Modal1', which is not a Messagebox/Alert. Once that is up, the following code is supposed to retrieve the IWebBrowser2 object of the 'Modal1' window. (assume all the imports are done correctly) # get the window, and then reach the 'Internet Explorer_Server' win1 = win32gui.FindWindow('Internet Explorer_TridentDlgFrame', 'Modal1') win1 = winGuiAuto.findControl(win1, None, 'Internet Explorer_Server', None) # get ready to get the IHTMLDocument2 from win1 # # oleacc = oledll.LoadLibrary ( 'oleacc.dll' ) WM_HTML_GETOBJECT = windll.user32.RegisterWindowMessageA ('WM_HTML_GETOBJECT' ) lResult = c_ulong ( ) pIHTMLDocument2 = POINTER ( IHTMLDocument2 ) ( ) ret = windll.user32.SendMessageTimeoutA ( c_int ( win1 ), c_int (WM_HTML_GETOBJECT),c_int ( 0 ), c_int ( 0 ), c_int ( SMTO_ABORTIFHUNG ), c_int ( 1000 ), byref (lResult ) ) oleacc.ObjectFromLresult ( lResult, byref ( IHTMLDocument2._iid_ ), 0,byref (pIHTMLDocument2 ) ) # at this point pIHTMLDocument2 is at the right window, as the 'title' property gives me what I expect # now followup to get the parent ... ihtmlwin = pIHTMLDocument2.parentWindow # ... the service provider ... pIServiceProvider = ihtmlwin.QueryInterface(IServiceProvider, IServiceProvider._iid_) # ... and the IWebBrowser2: ie = pIServiceProvider.QueryService(IWebBrowserApp._iid_, IWebBrowser2._iid_) # which - of course - fails. Error returned: Traceback (most recent call last): File "<interactive input>", line 1, in <module> COMError: (-2147467262, 'No such interface supported', (None, None, None, 0, None)) which would imply that I am in the wrong 'place'. But I can't see how. I must be doing something wrong, but can't figure what. Any help very much appreciated, and sorry for the long post. regards, .salvo ps. this a link to one of the places that describe the procedure i have followed: http://www.forum.it-berater.org/index.php?topic=574.msg1060#msg1060 _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32