http://bugs.winehq.org/show_bug.cgi?id=30422
Bug #: 30422 Summary: IWebBrowser2 ServiceProvider SID_SShellBrowser not supported Product: Wine Version: 1.3.37 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: mshtml AssignedTo: wine-bugs@winehq.org ReportedBy: lkcl@lkcl.net Classification: Unclassified
this is for running pyjamas-desktop using wine's native (gecko) MSHTML.DLL
the relevant code is here: http://pyjs.org/pygit/#file=pyjd/mshtml.py&id=0d4b6787d01c3d90f2c8801c5c...
but the convenient sections which fail (ending with the line that fails) are replicated here:
SID_SShellBrowser = GUID("{000214E2-0000-0000-C000-000000000046}")
# http://msdn.microsoft.com/en-us/library/aa752126%28VS.85%29.aspx wba = self.pBrowser.QueryInterface(IServiceProvider) wn = wrap(wba.QueryService(SID_SShellBrowser, IOleWindow))
# http://www.mail-archive.com/comtypes-users@lists.sourceforge.net/msg00439.ht... class IServiceProvider(IUnknown): _iid_ = GUID('{6D5140C1-7436-11CE-8034-00AA006009FA}')
# Overridden QueryService to make it nicer to use (passing it an # interface and it returns a pointer to that interface) def QueryService(self, serviceIID, interface): p = POINTER(interface)() self._QueryService(byref(serviceIID), byref(interface._iid_), byref(p))
the line that fails is the _QueryService, looking up the IOleWindow interface on SID_SShellBrowser, as can be seen below by "fixme:ieframe:WebBrowser_QueryInterface".
fixme:atl:OleInPlaceFrame_SetStatusText (0x133280, L"Downloading about:blank") - stub fixme:iphlpapi:NotifyAddrChange (Handle 0x61ce8fc, overlapped 0x61ce8e0): stub err:ole:CoGetClassObject class {591209c7-767b-42b2-9fba-44ee4615f2c7} not registered err:ole:CoGetClassObject class {591209c7-767b-42b2-9fba-44ee4615f2c7} not registered err:ole:CoGetClassObject no class object {591209c7-767b-42b2-9fba-44ee4615f2c7} could be created for context 0x3 fixme:ieframe:ClOleCommandTarget_QueryStatus (0x132ff4)->((null) 1 0x42a220 (nil)) fixme:ieframe:ClOleCommandTarget_QueryStatus command_0: 27, 0x0 fixme:ieframe:ClOleCommandTarget_Exec Unimplemented cmdid 25 fixme:ieframe:ClOleCommandTarget_Exec Unimplemented cmdid 26 fixme:ieframe:ClOleCommandTarget_Exec Unimplemented group {000214d1-0000-0000-c000-000000000046} fixme:ntdll:NtLockFile I/O completion on lock not implemented yet fixme:ieframe:ClientSite_GetContainer (0x132ff4)->(0x42a230) fixme:ieframe:ClOleCommandTarget_Exec Unimplemented group {000214d1-0000-0000-c000-000000000046} fixme:atl:OleInPlaceFrame_SetStatusText (0x133280, L"") - stub fixme:atl:OleInPlaceFrame_EnableModeless (0x133280, 1) - stub fixme:ieframe:ClientSite_GetContainer (0x132ff4)->(0x42d070) fixme:imm:ImmReleaseContext (0x1006e, 0x515df48): stub fixme:ieframe:ClOleCommandTarget_Exec Unimplemented cmdid 25 fixme:ieframe:ClOleCommandTarget_Exec Unimplemented cmdid 26 fixme:ieframe:ProvideClassInfo_GetClassInfo (0x132f40)->(0x30a7af8) fixme:ieframe:WebBrowser_QueryInterface (0x132f40)->({df0b3d60-548f-101b-8e65-08002b2bd119} 0x42f2fc) interface not supported fixme:ieframe:WebBrowser_put_RegisterAsBrowser (0x132f40)->(ffffffff) fixme:win:EnumDisplayDevicesW ((null),0,0x42e410,0x00000000), stub! fixme:ieframe:WBServiceProvider_QueryService (0x132f40)->({000214e2-0000-0000-c000-000000000046}, {00000114-0000-0000-c000-000000000046} 0x30db0f8) fixme:ieframe:WebBrowser_QueryInterface (0x132f40)->({df0b3d60-548f-101b-8e65-08002b2bd119} 0x42f60c) interface not supported Traceback (most recent call last): File "Hello.py", line 15, in <module> pyjd.setup("public/Hello.html?fred=foo#me") File "C:\python26\lib\site-packages\pyjd__init__.py", line 76, in setup _setup(*args, **kwargs) File "C:\python26\lib\site-packages\pyjd\mshtml.py", line 472, in setup wv.load_app() File "C:\python26\lib\site-packages\pyjd\mshtml.py", line 293, in load_app wn = wrap(wba.QueryService(SID_SShellBrowser, IOleWindow)) File "C:\python26\lib\site-packages\pyjd\mshtml.py", line 113, in QueryService self._QueryService(byref(serviceIID), byref(interface._iid_), byref(p)) _ctypes.COMError: (-2147467262, None, (None, None, None, 0, None))