• Alexandros Frantzis's avatar
    msvfw32: Use window name to determine if window is created using MCIWndCreate. · 97e018f9
    Alexandros Frantzis authored
    The current version of the code incorrectly assumes that the lpszClass
    member of CREATESTRUCT passed with WM_CREATE will point to the same
    memory used for the CreateWindowEx class name parameter. MCIWND_Create
    uses this assumption to perform a pointer comparison on the class name
    to determine whether the MCI window is being created using
    MCIWndCreateA/W and should therefore expect a unicode path parameter.
    
    As a side effect of commit e41c255b
    "win32u: Use send_message_timeout for WM_CREATE and WM_NCCREATE" the
    CREATESTRUCT lpszClass member started pointing to different memory,
    breaking the current implementation of MCIWND_Create().
    
    This commit fixes the problem by changing MCIWndCreateA/W to use an
    internal window name, unlikely to be used by normal applications, which
    can then be checked in MCIWND_Create to determine if the MCI window is
    being created using MCIWndCreateA/W.
    
    Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53578
    97e018f9
mciwnd.c 44.6 KB