I wanted to program the PickIconDlg function for WineHQ, so I developed a program under Windows that calls my own implementation of this function (I called it PickIconDlg2). I looked at the source code of Wine and got the impression that the ShellMessageBoxW function is already implemented correctly and saw that this function is also called internally by Wine under certain circumstances. I programmed PickIconDlg2 to also use ShellMessageBoxW and was optimistic that the program would run well under Wine. However, when I started the program with Wine, it only displayed a long error message. The reason for the program crash was that ShellMessageBoxW could not be called. So I tried to modify ShellMessageBoxW so that the program would also run with Wine. I compiled the program with mingw-w64 and it tried to call ShellMessageBoxW in shlwapi.dll.