Rémi Bernon (@rbernon) commented about dlls/shell32/systray.c:
/* FIXME: if statement only needed because we don't support interprocess * icon handles */ if (nid->uFlags & NIF_ICON) - { - ICONINFO iconinfo; - BITMAP bmMask; - BITMAP bmColour; - LONG cbMaskBits; - LONG cbColourBits = 0; - char *buffer; + GetIconInfo(nid->hIcon, &iconinfo);
- if (!GetIconInfo(nid->hIcon, &iconinfo)) - goto noicon; + if ((nid->uFlags & NIF_INFO) && (nid->dwInfoFlags & NIIF_USER))
Shouldn't this be `(nid->dwInfoFlags & NIIF_ICONMASK) == NIIF_USER` instead to match the condition in explorer? I'm just guessing, I don't know what these flags exactly are. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2875#note_82494