[SHELL32] Rewrite the wrapping code for shell taskbar notifications.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 4 Feb 2018 17:02:41 +0000 (18:02 +0100)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 4 Feb 2018 17:11:50 +0000 (18:11 +0100)
commit131678a025601690d655e35ad4b968c1b98297c7
tree0b2ffda4364494c2335b7f17b78089b8cd1d953c
parent4207397963f4adaa3c19104e075646a9c3b956e2
[SHELL32] Rewrite the wrapping code for shell taskbar notifications.

- Introduce the TRAYNOTIFYDATAW structure, as documented by Geoff
  Chappell in "WM_COPYDATA for Taskbar Interface", at
  http://www.geoffchappell.com/studies/windows/shell/shell32/api/shlnot/copydata.htm
  that is the data structure passed between shell32 and explorer for
  communicating shell notify icon information.

- In Shell_NotifyIcon(), correctly capture the (ANSI and) UNICODE
  structures provided by the caller, properly taking into account for
  the different NOTIFYICONDATA structure sizes existing out there.
  The different strings are now properly null-terminated (especially
  szTip if it needs to be truncated out), and the flags validated.

- Remove the now unneeded "SHELL_NotifyIcon()" helper function.

[EXPLORER] Use TRAYNOTIFYDATAW and adjust the callers.
base/shell/explorer/syspager.cpp
dll/win32/shell32/precomp.h
dll/win32/shell32/systray.cpp
sdk/include/reactos/undocshell.h