[Bug 20641] New: Problems loading dispatch and dual types in SLTG TypeLibs
http://bugs.winehq.org/show_bug.cgi?id=20641 Summary: Problems loading dispatch and dual types in SLTG TypeLibs Product: Wine Version: 1.1.32 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: oleaut32 AssignedTo: wine-bugs(a)winehq.org ReportedBy: sunilmohan(a)fsf.org.in Created an attachment (id=24631) --> (http://bugs.winehq.org/attachment.cgi?id=24631) MS Oleviewer showing the typelib on Wine and Windows When I tried to run a Visual Basic 6.0 application that uses Crystal Reports 8.5 ActiveX control, multiple problems popped up. The end result was that invoking a method turns into an error that the method requested for could not be found. The attached screenshots best describe the problem. First screenshot shows oleviewer displaying information about the typelib for the mentioned ocx control on Wine and on Windows. The dispatch interface "CrystalReportEvents" is not shown as being derived from IDispatch. And the dual types "IRowCursor" and "CrystalCtl" as shown simply as interfaces. The second screenshot shows a simple test application on Wine and on Windows. We can see that TypeInfo members returned by Wine differ at many places compared to the TypeInfo returned by Windows. Of interest is the type kind for descriptions #0 and #7. Also the no. of interfaces implemented by description #8. I have patches that fix these two problems. With the patches all TypeInfo members appear similar to the Windows output (except lcid). I am posting the patches on wine-patches list. Patch 1: Type descriptions of type kind DISPATCH can actually inherit from one interface instead of specifying methods and properties according to MSDN. The SLTG parser does not seem to handle this. I added code to read information about inherited interfaces in DISPATCH types when available. Patch 2: The documentation says that dual interfaces which implement both INTERFACE and DISPATCH have to be returned first as DISPATCH types and then INTERFACE type will be returned when calls to GetRefTypeOfImplType and GetRefTypeInfo are made with -1 index. Clients are supposed to check for DUAL flag and read the second type info accordingly. However, in SLTG typelib above, the two dual types have type kind INTERFACE set on them. We must be returning DISPATCH type first and then later the INTERFACE. So, I added code to return a DUAL interface as DISPATCH type first in the SLTG parser. This fixes other problems such as removing the AUTOMATION flag in the returned description and proper function count. Patch 3: I removed a check for DISPATCHABLE flag when GetRefTypeOfImplType is called with -1 index for the following reasons. DUAL which is already being checked for implies DISPATCHABLE. The SLTG type library being dealt with has dual types without this flag set. The flag is a computed one and not present in the IDL. Patch 4: Updated a comment about a newly seen value in SLTG typelib that was thought of to be constant. After the fixes, our test case using the above activex seems to run fine. I ran the tests but they don't seem to contain any SLTG library parsing tests. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=20641 --- Comment #1 from Sunil Mohan Adapa <sunilmohan(a)fsf.org.in> 2009-11-09 22:32:17 --- Created an attachment (id=24632) --> (http://bugs.winehq.org/attachment.cgi?id=24632) A test application showing type infos on Wine and Windows -- 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.
http://bugs.winehq.org/show_bug.cgi?id=20641 Sunil Mohan Adapa <sunilmohan(a)fsf.org.in> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch -- 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.
http://bugs.winehq.org/show_bug.cgi?id=20641 Juan Lang <juan_lang(a)yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #2 from Juan Lang <juan_lang(a)yahoo.com> 2009-11-10 12:22:26 --- Patches were committed. Thanks for the report and the fixes! -- 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.
http://bugs.winehq.org/show_bug.cgi?id=20641 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #3 from Alexandre Julliard <julliard(a)winehq.org> 2009-11-13 12:44:51 --- Closing bugs fixed in 1.1.33. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=20641 Saulius K. <saulius2(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |saulius2(a)gmail.com -- 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.
participants (1)
-
wine-bugs@winehq.org