[Bug 22146] New: 64bit compatibility issue with Wine's MCI string command parser

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Mar 24 00:57:52 CDT 2010


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

           Summary: 64bit compatibility issue with Wine's MCI string
                    command parser
           Product: Wine
           Version: 1.0.0
          Platform: x86-64
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: winmm&mci
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: hoehle at users.sourceforge.net


Created an attachment (id=27005)
 --> (http://bugs.winehq.org/attachment.cgi?id=27005)
work in progress MCI parser that knows about 64bit structures

Hi,

Wine's MCI string command parser is one reason why test.winehq.org shows
failures with 64bit machines.  I've created this issue so everybody can discuss
and contribute patches until evolution leads to a correct one.

The attached patch fixes part of what's currently in git, but it is still
incomplete.  Therefore I don't plan to submit it.

I've run tests on WTB's 64bit machines that proove that MCI_STATUS_PARMS and
MCI_GETDEVCAPS indeeed process differently sized dwReturn types on x64:
DWORD_PTR and DWORD.  That's what's missing from my patch.

A solution that sounds ideal is to define something like MCI_INTEGER64 and
change the resource files mciavi_res.rc and winmm_res.rc.  Given that new type,
the MCI string parser would compute the correct offset.
I'd be very pleased if somebody could conform that MS does it this way and tell
us the value of this constant.

Another solution path is to special-case MCI_STATUS_PARMS in the parser, as it
uses the only 64bit construct I knew until 5 minutes ago (beside dwCallback of
course) that's not a LP(W)STR.  HWND seems to be 32bit.

5 minutes later: What about HDC in MCI_DGV_UPDATE_PARMS?  Wait, wtypes.h says
void*!  The MCI string command parser needs to handle this type as well:
MCI_INTEGER as currently used in mciav_res.rc is not adequate on 64bit. 
In the meantime, I'll submit a patch that adds MCI_HDC and a few other missing
defines I know to the includes.

Regards,
    Jörg Höhle

-- 
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