9#pragma warning(disable:4201)
16#define WINSHELLAPI DECLSPEC_IMPORT
22#define ABS_ALWAYSONTOP 2
24#define SEE_MASK_DEFAULT 0x00000000
25#define SEE_MASK_CLASSNAME 0x00000001
26#define SEE_MASK_CLASSKEY 0x00000003
27#define SEE_MASK_IDLIST 0x00000004
28#define SEE_MASK_INVOKEIDLIST 0x0000000C
29#define SEE_MASK_ICON 0x00000010
30#define SEE_MASK_HOTKEY 0x00000020
31#define SEE_MASK_NOCLOSEPROCESS 0x00000040
32#define SEE_MASK_CONNECTNETDRV 0x00000080
33#define SEE_MASK_NOASYNC 0x00000100
34#define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
35#define SEE_MASK_DOENVSUBST 0x00000200
36#define SEE_MASK_FLAG_NO_UI 0x00000400
37#define SEE_MASK_UNICODE 0x00004000
38#define SEE_MASK_NO_CONSOLE 0x00008000
48#define SEE_MASK_HASLINKNAME 0x00010000
49#define SEE_MASK_HASTITLE 0x00020000
50#define SEE_MASK_FLAG_SEPVDM 0x00040000
52#define SEE_MASK_ASYNCOK 0x00100000
53#define SEE_MASK_HMONITOR 0x00200000
54#define SEE_MASK_NOZONECHECKS 0x00800000
55#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
56#define SEE_MASK_WAITFORINPUTIDLE 0x02000000
57#define SEE_MASK_FLAG_LOG_USAGE 0x04000000
64#define ABM_GETTASKBARPOS 5
66#define ABM_GETAUTOHIDEBAR 7
67#define ABM_SETAUTOHIDEBAR 8
68#define ABM_WINDOWPOSCHANGED 9
69#define ABN_STATECHANGE 0
70#define ABN_POSCHANGED 1
71#define ABN_FULLSCREENAPP 2
72#define ABN_WINDOWARRANGE 3
74#if (_WIN32_IE >= 0x0500)
75#define NIN_SELECT (WM_USER + 0)
77#define NIN_KEYSELECT (NIN_SELECT | NINF_KEY)
80#if (_WIN32_IE >= 0x0501)
81#define NIN_BALLOONSHOW (WM_USER + 2)
82#define NIN_BALLOONHIDE (WM_USER + 3)
83#define NIN_BALLOONTIMEOUT (WM_USER + 4)
84#define NIN_BALLOONUSERCLICK (WM_USER + 5)
86#if (NTDDI_VERSION >= NTDDI_VISTA)
87#define NIN_POPUPOPEN (WM_USER + 6)
88#define NIN_POPUPCLOSE (WM_USER + 7)
94#if _WIN32_IE >= 0x0500
96#define NIM_SETVERSION 4
97#define NOTIFYICON_VERSION 3
98#if (NTDDI_VERSION >= NTDDI_VISTA)
99#define NOTIFYICON_VERSION_4 4
105#if _WIN32_IE >= 0x0500
109#define NIS_SHAREDICON 2
112#define NIIF_WARNING 2
115#if _WIN32_IE >= 0x0600
117#define NIIF_ICON_MASK 0xf
118#define NIIF_NOSOUND 0x10
124#define SE_ERR_ACCESSDENIED 5
126#define SE_ERR_DLLNOTFOUND 32
127#define SE_ERR_SHARE 26
128#define SE_ERR_ASSOCINCOMPLETE 27
129#define SE_ERR_DDETIMEOUT 28
130#define SE_ERR_DDEFAIL 29
131#define SE_ERR_DDEBUSY 30
132#define SE_ERR_NOASSOC 31
138#define FOF_MULTIDESTFILES 0x0001
139#define FOF_CONFIRMMOUSE 0x0002
140#define FOF_SILENT 0x0004
141#define FOF_RENAMEONCOLLISION 0x0008
142#define FOF_NOCONFIRMATION 0x0010
143#define FOF_WANTMAPPINGHANDLE 0x0020
144#define FOF_ALLOWUNDO 0x0040
145#define FOF_FILESONLY 0x0080
146#define FOF_SIMPLEPROGRESS 0x0100
147#define FOF_NOCONFIRMMKDIR 0x0200
148#define FOF_NOERRORUI 0x0400
149#define FOF_NOCOPYSECURITYATTRIBS 0x0800
150#define FOF_NORECURSION 0x1000
151#define FOF_NO_CONNECTED_ELEMENTS 0x2000
152#define FOF_WANTNUKEWARNING 0x4000
154#define FOF_NORECURSEREPARSE 0x8000
158#define PO_PORTCHANGE 32
159#define PO_REN_PORT 52
160#define SHGFI_ADDOVERLAYS 32
161#define SHGFI_OVERLAYINDEX 64
162#define SHGFI_ICON 256
163#define SHGSI_ICON SHGFI_ICON
164#define SHGFI_DISPLAYNAME 512
165#define SHGFI_TYPENAME 1024
166#define SHGFI_ATTRIBUTES 2048
167#define SHGFI_ICONLOCATION 4096
168#define SHGFI_EXETYPE 8192
169#define SHGFI_SYSICONINDEX 16384
170#define SHGFI_LINKOVERLAY 32768
171#define SHGFI_SELECTED 65536
172#define SHGFI_ATTR_SPECIFIED 131072
173#define SHGFI_LARGEICON 0
174#define SHGFI_SMALLICON 1
175#define SHGSI_SMALLICON SHGFI_SMALLICON
176#define SHGFI_OPENICON 2
177#define SHGFI_SHELLICONSIZE 4
179#define SHGFI_USEFILEATTRIBUTES 16
181#if (NTDDI_VERSION >= NTDDI_WINXP)
182#define SHIL_LARGE 0x0
183#define SHIL_SMALL 0x1
184#define SHIL_EXTRALARGE 0x2
185#define SHIL_SYSSMALL 0x3
186#if (NTDDI_VERSION >= NTDDI_VISTA)
187#define SHIL_JUMBO 0x4
188#define SHIL_LAST SHIL_JUMBO
190#define SHIL_LAST SHIL_SYSSMALL
231#if (NTDDI_VERSION < NTDDI_WIN2K)
234#if (NTDDI_VERSION >= NTDDI_WIN2K)
246#if (NTDDI_VERSION >= NTDDI_WINXP)
249#if (NTDDI_VERSION >= NTDDI_VISTA)
261#if (NTDDI_VERSION < NTDDI_WIN2K)
264#if (NTDDI_VERSION >= NTDDI_WIN2K)
276#if (NTDDI_VERSION >= NTDDI_WINXP)
279#if (NTDDI_VERSION >= NTDDI_VISTA)
284#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
285#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
286#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
287#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
288#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon)
289#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon)
292typedef struct _DRAGINFOA {
298} DRAGINFOA,*LPDRAGINFOA;
299typedef struct _DRAGINFOW {
305} DRAGINFOW,*LPDRAGINFOW;
394#define SHERB_NOCONFIRMATION 0x1
395#define SHERB_NOPROGRESSUI 0x2
396#define SHERB_NOSOUND 0x4
402#define SHGNLI_PIDL 0x01
403#define SHGNLI_PREFIXNAME 0x02
404#define SHGNLI_NOUNIQUE 0x04
405#define SHGNLI_NOLNK 0x08
637#if (_WIN32_IE >= 0x0601)
646#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
647#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
648#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAW_V3_SIZE
656#define DragQueryFile DragQueryFileW
657#define ExtractAssociatedIcon ExtractAssociatedIconW
658#define ExtractIcon ExtractIconW
659#define ExtractIconEx ExtractIconExW
660#define FindExecutable FindExecutableW
661#define Shell_NotifyIcon Shell_NotifyIconW
662#define ShellAbout ShellAboutW
663#define ShellExecute ShellExecuteW
664#define ShellExecuteEx ShellExecuteExW
665#define ShellMessageBox ShellMessageBoxW
666#define SHFileOperation SHFileOperationW
667#define SHGetFileInfo SHGetFileInfoW
668#define SHQueryRecycleBin SHQueryRecycleBinW
669#define SHEmptyRecycleBin SHEmptyRecycleBinW
670#define SHGetNewLinkInfo SHGetNewLinkInfoW
671#define DoEnvironmentSubst DoEnvironmentSubstW
674#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
675#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
676#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAA_V3_SIZE
684#define DragQueryFile DragQueryFileA
685#define ExtractAssociatedIcon ExtractAssociatedIconA
686#define ExtractIcon ExtractIconA
687#define ExtractIconEx ExtractIconExA
688#define FindExecutable FindExecutableA
689#define Shell_NotifyIcon Shell_NotifyIconA
690#define ShellAbout ShellAboutA
691#define ShellExecute ShellExecuteA
692#define ShellExecuteEx ShellExecuteExA
693#define ShellMessageBox ShellMessageBoxA
694#define SHFileOperation SHFileOperationA
695#define SHGetFileInfo SHGetFileInfoA
696#define SHQueryRecycleBin SHQueryRecycleBinA
697#define SHEmptyRecycleBin SHEmptyRecycleBinA
698#define SHGetNewLinkInfo SHGetNewLinkInfoA
699#define DoEnvironmentSubst DoEnvironmentSubstA
702#if (NTDDI_VERSION >= NTDDI_VISTA)
712#define SHGSI_ICONLOCATION 0
SIZE_T LPPROCESS_INFORMATION
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
UINT WINAPI DragQueryFileA(HDROP hDrop, UINT lFile, LPSTR lpszFile, UINT lLength)
#define DECLARE_HANDLE(name)
#define _Inout_updates_(size)
#define _Inout_updates_bytes_opt_(size)
#define _Out_writes_(size)
#define _Out_writes_opt_(size)
unsigned __int3264 UINT_PTR
struct _NOTIFYICONDATAW * PNOTIFYICONDATAW
LPWSTR *WINAPI CommandLineToArgvW(_In_ LPCWSTR, _Out_ int *)
struct _SHCREATEPROCESSINFOW * PSHCREATEPROCESSINFOW
struct _SHSTOCKICONINFO SHSTOCKICONINFO
HICON WINAPI ExtractIconW(_Reserved_ HINSTANCE hInst, _In_ LPCWSTR pszExeFileName, UINT nIconIndex)
UINT WINAPI ExtractIconExA(_In_ LPCSTR lpszFile, _In_ int nIconIndex, _Out_writes_opt_(nIcons) HICON *phiconLarge, _Out_writes_opt_(nIcons) HICON *phiconSmall, _In_ UINT nIcons)
struct _SHFILEOPSTRUCTA SHFILEOPSTRUCTA
struct _SHNAMEMAPPINGA * LPSHNAMEMAPPINGA
void WINAPI SHFreeNameMappings(_In_opt_ HANDLE)
struct _NOTIFYICONDATAA NOTIFYICONDATAA
struct _SHELLEXECUTEINFOA * LPSHELLEXECUTEINFOA
NOTIFYICONDATAA * PNOTIFYICONDATA
LPSHNAMEMAPPINGA LPSHNAMEMAPPING
int WINAPI ShellAboutW(_In_opt_ HWND hWnd, _In_ LPCWSTR szApp, _In_opt_ LPCWSTR szOtherStuff, _In_opt_ HICON hIcon)
struct _SHELLEXECUTEINFOW * LPSHELLEXECUTEINFOW
int WINAPI SHFileOperationW(_Inout_ LPSHFILEOPSTRUCTW)
HRESULT WINAPI SHEmptyRecycleBinA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR pszRootPath, DWORD dwFlags)
struct _SHNAMEMAPPINGW SHNAMEMAPPINGW
UINT WINAPI ExtractIconExW(_In_ LPCWSTR lpszFile, _In_ int nIconIndex, _Out_writes_opt_(nIcons) HICON *phiconLarge, _Out_writes_opt_(nIcons) HICON *phiconSmall, _In_ UINT nIcons)
struct _AppBarData APPBARDATA
HRESULT WINAPI SHQueryRecycleBinA(_In_opt_ LPCSTR pszRootPath, _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo)
DWORD_PTR WINAPI SHGetFileInfoW(_In_ LPCWSTR pszPath, DWORD dwFileAttributes, _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags)
HICON WINAPI ExtractAssociatedIconW(_Reserved_ HINSTANCE hInst, _Inout_updates_(128) LPWSTR pszIconPath, _Inout_ WORD *piIcon)
struct _AppBarData * PAPPBARDATA
struct _SHELLEXECUTEINFOW SHELLEXECUTEINFOW
SHELLEXECUTEINFOA SHELLEXECUTEINFO
_In_ LPCSTR _Out_ BOOL _In_ UINT uFlags
struct _SHCREATEPROCESSINFOW SHCREATEPROCESSINFOW
struct _NOTIFYICONDATAW NOTIFYICONDATAW
BOOL WINAPI Shell_NotifyIconW(_In_ DWORD, _In_ PNOTIFYICONDATAW)
struct _SHELLEXECUTEINFOA SHELLEXECUTEINFOA
struct _SHQUERYRBINFO * LPSHQUERYRBINFO
struct _SHFILEINFOW SHFILEINFOW
SHFILEOPSTRUCTA SHFILEOPSTRUCT
struct _SHQUERYRBINFO SHQUERYRBINFO
BOOL WINAPI SHCreateProcessAsUserW(_Inout_ PSHCREATEPROCESSINFOW)
HINSTANCE WINAPI ShellExecuteW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_ INT nShowCmd)
struct _SHNAMEMAPPINGA SHNAMEMAPPINGA
struct _SHFILEOPSTRUCTA * LPSHFILEOPSTRUCTA
struct _SHFILEOPSTRUCTW * LPSHFILEOPSTRUCTW
struct _SHFILEOPSTRUCTW SHFILEOPSTRUCTW
NOTIFYICONDATAA NOTIFYICONDATA
HICON WINAPI ExtractIconA(_Reserved_ HINSTANCE hInst, _In_ LPCSTR pszExeFileName, UINT nIconIndex)
struct _SHNAMEMAPPINGW * LPSHNAMEMAPPINGW
int WINAPI SHFileOperationA(_Inout_ LPSHFILEOPSTRUCTA)
SHELLEXECUTEINFOA * LPSHELLEXECUTEINFO
HICON WINAPI ExtractAssociatedIconA(_Reserved_ HINSTANCE hInst, _Inout_updates_(128) LPSTR pszIconPath, _Inout_ WORD *piIcon)
_In_opt_ LPCSTR lpDirectory
int WINAPI ShellAboutA(_In_opt_ HWND hWnd, _In_ LPCSTR szApp, _In_opt_ LPCSTR szOtherStuff, _In_opt_ HICON hIcon)
BOOL WINAPI ShellExecuteExW(_Inout_ LPSHELLEXECUTEINFOW)
void WINAPI DragAcceptFiles(_In_ HWND, _In_ BOOL)
BOOL WINAPI Shell_NotifyIconA(_In_ DWORD, _In_ PNOTIFYICONDATAA)
HRESULT WINAPI SHEmptyRecycleBinW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR pszRootPath, DWORD dwFlags)
HINSTANCE WINAPI ShellExecuteA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters, _In_opt_ LPCSTR lpDirectory, _In_ INT nShowCmd)
BOOL WINAPI DragQueryPoint(_In_ HDROP, _Out_ LPPOINT)
struct _SHFILEINFOA SHFILEINFOA
int WINAPIV ShellMessageBoxA(_In_opt_ HINSTANCE hAppInst, _In_opt_ HWND hWnd, _In_ LPCSTR lpcText, _In_opt_ LPCSTR lpcTitle, _In_ UINT fuStyle,...)
_In_ LPCSTR _Out_ BOOL * pfMustCopy
SHNAMEMAPPINGA SHNAMEMAPPING
DWORD_PTR WINAPI SHGetFileInfoA(_In_ LPCSTR pszPath, DWORD dwFileAttributes, _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags)
DWORD WINAPI DoEnvironmentSubstW(_Inout_updates_(cchSrc) LPWSTR pszSrc, UINT cchSrc)
UINT_PTR WINAPI SHAppBarMessage(_In_ DWORD, _Inout_ PAPPBARDATA)
BOOL WINAPI ShellExecuteExA(_Inout_ LPSHELLEXECUTEINFOA)
struct _NOTIFYICONDATAA * PNOTIFYICONDATAA
DWORD WINAPI DoEnvironmentSubstA(_Inout_updates_(cchSrc) LPSTR pszSrc, UINT cchSrc)
SHFILEOPSTRUCTA * LPSHFILEOPSTRUCT
HRESULT WINAPI SHQueryRecycleBinW(_In_opt_ LPCWSTR pszRootPath, _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo)
void WINAPI DragFinish(_In_ HDROP)
EXTERN_C BOOL WINAPI SHTestTokenMembership(HANDLE TokenHandle, ULONG ulRID)
BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
BOOL WINAPI SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, UINT uFlags)
HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult)
HINSTANCE WINAPI FindExecutableA(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult)
_ANONYMOUS_UNION union _NOTIFYICONDATAA::@3208 DUMMYUNIONNAME
_ANONYMOUS_UNION union _NOTIFYICONDATAW::@3209 DUMMYUNIONNAME
IN LPSTARTUPINFOW lpStartupInfo
OUT LPPROCESS_INFORMATION lpProcessInformation
IN LPSECURITY_ATTRIBUTES lpProcessAttributes
LPCWSTR pszCurrentDirectory
IN LPSECURITY_ATTRIBUTES lpThreadAttributes
CHAR szDisplayName[MAX_PATH]
WCHAR szDisplayName[MAX_PATH]
BOOL fAnyOperationsAborted
BOOL fAnyOperationsAborted
LPCWSTR lpszProgressTitle
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags