[Bug 30420] New: pyjamas desktop (python26 + python-comtypes MSHTML.DLL from IE8) fails due to unsupported ReadTypeLib header

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Apr 12 08:27:36 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=30420

             Bug #: 30420
           Summary: pyjamas desktop (python26 + python-comtypes MSHTML.DLL
                    from IE8) fails due to unsupported ReadTypeLib header
           Product: Wine
           Version: 1.3.37
          Platform: x86
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: -unknown
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: lkcl at lkcl.net
    Classification: Unclassified


amazingly, IE8 works.  python26 works.  python-comtypes barfs for the sole
reason that (as can be seen below) LoadTypeLibEx fails.

what python-comtypes does is find the dll, extract its typelibrary and
auto-generates python code which caches all the COM functions.

an strace shows that atl.dll is correctly being located, but the fact
that the function fails makes it impossible to proceed.

however - and this is the absolutely amazing bit - if i comment out the line of
python code (line 39 below), GetModule('atl.dll'), then ALL OTHER GetModule
CALLS WORK!

this is just absolutely stunning.  pyjamas-desktop - a highly sophisticated
application that relies heavily on python COM bindings to MSHTML.DLL, actually
bloody well works.

the only other thing i spotted was that in the conversion process, one of the
GetModule calls threw these errors:

fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 3e8
fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 3e8
fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 10b30
fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 1142c
fixme:ole:ITypeInfo_fnGetRefTypeInfo Can't find pRefType for ref 3e8

other than that, this is a staggeringly-impressive result.


C:\pyjamas\examples\helloworld>python Hello.py
fixme:ole:TLB_ReadTypeLib Header type magic 0x00405a4d not supported.
err:ole:TLB_ReadTypeLib Loading of typelib L"atl.dll" failed with error 0
Traceback (most recent call last):
  File "Hello.py", line 1, in <module>
    import pyjd # this is dummy in pyjs.
  File "C:\Python26\lib\site-packages\pyjd\__init__.py", line 43, in <module>
    from mshtml import *
  File "C:\Python26\lib\site-packages\pyjd\mshtml.py", line 39, in <module>
    GetModule('atl.dll')
  File "C:\Python26\lib\site-packages\comtypes\client\_generate.py", line 97,
in GetModule
    tlib = comtypes.typeinfo.LoadTypeLibEx(tlib)
  File "C:\Python26\lib\site-packages\comtypes\typeinfo.py", line 480, in
LoadTypeLibEx
    _oleaut32.LoadTypeLibEx(c_wchar_p(szFile), regkind, byref(ptl))
  File "_ctypes/callproc.c", line 924, in GetResult
WindowsError: [Error -2147312566] Windows Error 0x80029C4A

C:\pyjamas\examples\helloworld>

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list