This commit is contained in:
Alex Ionescu 2018-02-04 09:34:27 -08:00
commit 1683934cd8
14 changed files with 1073 additions and 473 deletions

View file

@ -81,8 +81,8 @@ extern "C" {
#define NIF_MESSAGE 1
#define NIF_ICON 2
#define NIF_TIP 4
#define NIF_STATE 8
#if _WIN32_IE >= 0x0500
#define NIF_STATE 8
#define NIF_INFO 16
#define NIS_HIDDEN 1
#define NIS_SHAREDICON 2
@ -92,6 +92,7 @@ extern "C" {
#define NIIF_ERROR 3
#define NIIF_USER 4
#if _WIN32_IE >= 0x0600
#define NIF_GUID 32
#define NIIF_ICON_MASK 0xf
#define NIIF_NOSOUND 0x10
#endif /* _WIN32_IE >= 0x0600 */
@ -217,8 +218,6 @@ typedef struct _NOTIFYICONDATAA {
} DUMMYUNIONNAME;
CHAR szInfoTitle[64];
DWORD dwInfoFlags;
#else
CHAR szTip[64];
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
GUID guidItem;
@ -236,7 +235,7 @@ typedef struct _NOTIFYICONDATAW {
UINT uCallbackMessage;
HICON hIcon;
#if (NTDDI_VERSION < NTDDI_WIN2K)
CHAR szTip[64];
WCHAR szTip[64];
#endif
#if (NTDDI_VERSION >= NTDDI_WIN2K)
WCHAR szTip[128];
@ -249,14 +248,12 @@ typedef struct _NOTIFYICONDATAW {
} DUMMYUNIONNAME;
WCHAR szInfoTitle[64];
DWORD dwInfoFlags;
#else
WCHAR szTip[64];
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
GUID guidItem;
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
HICON hBalloonIcon;
HICON hBalloonIcon;
#endif
} NOTIFYICONDATAW,*PNOTIFYICONDATAW;
@ -264,6 +261,8 @@ typedef struct _NOTIFYICONDATAW {
#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon)
#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon)
#if WINVER >= 0x400
typedef struct _DRAGINFOA {
@ -612,6 +611,7 @@ DoEnvironmentSubstW(
#ifdef UNICODE
#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAW_V3_SIZE
typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
typedef DRAGINFOW DRAGINFO,*LPDRAGINFO;
typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
@ -639,6 +639,7 @@ typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING;
#else
#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAA_V3_SIZE
typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
typedef DRAGINFOA DRAGINFO,*LPDRAGINFO;
typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;

View file

@ -30,10 +30,29 @@ extern "C" {
#define DBIMF_NOMARGINS 0x2000
#endif // NTDDI_LONGHORN
#if defined (_SHELLAPI_H) || defined (_INC_SHELLAPI)
/****************************************************************************
* Taskbar interface WM_COPYDATA structures
* See http://www.geoffchappell.com/studies/windows/shell/shell32/api/shlnot/copydata.htm
*/
/* Data structure for Shell_NotifyIcon messages */
typedef struct _TRAYNOTIFYDATAW
{
DWORD dwSignature;
DWORD dwMessage;
NOTIFYICONDATAW nid; // Always use the latest NOTIFYICONDATAW structure version.
} TRAYNOTIFYDATAW, *PTRAYNOTIFYDATAW;
// Note: One could also introduce TRAYNOTIFYDATAA
#define NI_NOTIFY_SIG 0x34753423 /* TRAYNOTIFYDATA */
#endif /* defined (_SHELLAPI_H) || defined (_INC_SHELLAPI) */
/****************************************************************************
* Taskbar WM_COMMAND identifiers
*/
#define TWM_DOEXITWINDOWS (WM_USER + 342)
#define TWM_CYCLEFOCUS (WM_USER + 348)
@ -79,8 +98,8 @@ BOOL WINAPI StrRetToStrNW(LPWSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
/****************************************************************************
* SHChangeNotifyRegister API
*/
* SHChangeNotifyRegister API
*/
#define SHCNRF_InterruptLevel 0x0001
#define SHCNRF_ShellLevel 0x0002
#define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */
@ -580,7 +599,7 @@ BOOL WINAPI GUIDFromStringW(
_In_ PCWSTR psz,
_Out_ LPGUID pguid
);
static inline ULONG
Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
{
@ -838,7 +857,7 @@ typedef struct tagSHELL_LINK_INFOW
/*****************************************************************************
* SHELL_LINK_INFO_VOLUME_IDA/W
* If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
* If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
* SHELL_LINK_INFO_VOLUME_IDA
* If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
*/
@ -958,7 +977,7 @@ typedef struct tagEXP_VISTA_ID_LIST
{
/* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
DATABLOCK_HEADER dbh;
/* Specifies an alternate IDList that can be used instead
/* Specifies an alternate IDList that can be used instead
of the "normal" IDList (SLDF_HAS_ID_LIST) */
/* LPITEMIDLIST pIDList; (variable) */
} EXP_VISTA_ID_LIST, *LPEXP_VISTA_ID_LIST;