https://bugs.winehq.org/show_bug.cgi?id=49659
--- Comment #4 from Craig Schulstad craigaschulstad@gmail.com --- Alistair,
Attached is a log created as you requested (log.txt). Running that reminded me of an additional bit of information I forgot to include. I set up these games in a 32-bit wine bottle (WINEARCH=win32 WINEPREFIX=/home/craig/Wine/Oberon). So I actually ran the requested command as follows:
WINEPREFIX=/home/craig/Wine/Oberon WINEDEBUG=loaddll,msdmo wine Mahjong.exe >& log.txt
Also, over the last couple of days, I have experimented with the dmoreg.c program for both the 5.12 version and the 5.14 version of the code. I localized the function in which the program falls over and it occurs in function "IsMediaTypeEqual" when it invokes the "IsEqualCLSID" function. I tracked down the specifications for that function and found that it was just a macro for calling the "memcmp" function, which does not like receiving an argument value of zero. I backtracked from the call of the "IsMediaTypeEqual" function and focused on the "IEnumDMO_fnNext" function. That appears to be where the issue develops. Placing "WINE_FIXME" statements at many of the same spots as the "TRACE" statements, I noticed a difference in the data extracted from the registry. I don't know if that's a red herring, but I am attaching another text file where I contrast the detail that is produced within the function "IEnumDMO_fnNext" for version 5.12 and version 5.14 (msdmo.txt). Hopefully this will assist you in your investigation. Please let me know if you require any additional information.
Regards,
Craig