https://bugs.winehq.org/show_bug.cgi?id=23345
--- Comment #11 from Sven sven.wine@gmail.com --- This still happens with the most recent Acrobat Reader and Wine, so I took some time to figure out what's going on here.
The error happens in
0009:trace:mci:MCIWndProc MCIWNDM_SENDSTRINGW (null)
Reason for this is that before this
0009:trace:mci:MCIWndProc MCIWNDM_SETOWNER xxxxxx
is called with the same value (xxxxxx) as the pointer to the MCIWnd. So now MCIWnd is its own parent. Then MCIWNDM_OPENA is sent, which eventually calls MCIWND_notify_pos, which sends MCIWNDM_NOTIFYPOS to the owner. However, if we look at vfw.h we see that
#define MCIWNDM_NOTIFYPOS (WM_USER + 201) #define MCIWNDM_SENDSTRINGW (WM_USER + 201)
Since the MCIWnd is its own owner, it treats the message as MCIWNDM_SENDSTRINGW with a string pointer instead of MCIWNDM_NOTIFYPOS with position 0.
I am not sure how this actually works on Windows. Maybe the position is always 0 and MCIWNDM_SENDSTRINGW has null pointer handling or something? I wanted to add some tests for this, but there are no tests for MCIWnd yet, so I can't just add a null pointer test. I'll first have to figure out how MCIWnd actually works and then write some tests. I'll try to do that in the near future.