According to https://testbot.winehq.org/JobDetails.pl?Key=122456
it looks like: - MCIWndCreateA maps the lParam parameters from ANSI to Unicode and calls MCIWndCreateW (that what we currently do) - (*) MCIWndCreate(A|W) generate a MCIWNDM_OPENW message (in WM_CREATE handling (*)) - both CreateWindowEx(A|W) succeed with an ANSI string as lParam (and fail with Unicode string - that's not included in the testbot, but generate a MCIWNDM_OPENA message (*)) - so there's a trigger to pickup the unicode version + it's likely not linked to heuristics on lParam (as it would succeed above) + checked for all windows creation parameters => didn't find meaningful differences in styles/ext styles between MCIWndCreate and CreateWindowEx
so no clue yet on what the trigger is. could be global variables (but need more checks for thread safeness and reentrancy (creating a second mci window while creating a first one)
(*) from an extended version of the test (not pushed on testbot) that subclasses the wnd proc