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_UNKNOWN_0x1000 0x00001000
49#define SEE_MASK_HASLINKNAME 0x00010000
50#define SEE_MASK_FLAG_SEPVDM 0x00020000
51#define SEE_MASK_USE_RESERVED 0x00040000
52#define SEE_MASK_HASTITLE 0x00080000
54#define SEE_MASK_ASYNCOK 0x00100000
55#define SEE_MASK_HMONITOR 0x00200000
56#define SEE_MASK_NOZONECHECKS 0x00800000
57#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
58#define SEE_MASK_WAITFORINPUTIDLE 0x02000000
59#define SEE_MASK_FLAG_LOG_USAGE 0x04000000
60#define SEE_MASK_FLAG_HINST_IS_SITE 0x08000000
67#define ABM_GETTASKBARPOS 5
69#define ABM_GETAUTOHIDEBAR 7
70#define ABM_SETAUTOHIDEBAR 8
71#define ABM_WINDOWPOSCHANGED 9
72#define ABN_STATECHANGE 0
73#define ABN_POSCHANGED 1
74#define ABN_FULLSCREENAPP 2
75#define ABN_WINDOWARRANGE 3
77#if (_WIN32_IE >= 0x0500)
78#define NIN_SELECT (WM_USER + 0)
80#define NIN_KEYSELECT (NIN_SELECT | NINF_KEY)
83#if (_WIN32_IE >= 0x0501)
84#define NIN_BALLOONSHOW (WM_USER + 2)
85#define NIN_BALLOONHIDE (WM_USER + 3)
86#define NIN_BALLOONTIMEOUT (WM_USER + 4)
87#define NIN_BALLOONUSERCLICK (WM_USER + 5)
89#if (NTDDI_VERSION >= NTDDI_VISTA)
90#define NIN_POPUPOPEN (WM_USER + 6)
91#define NIN_POPUPCLOSE (WM_USER + 7)
97#if _WIN32_IE >= 0x0500
99#define NIM_SETVERSION 4
100#define NOTIFYICON_VERSION 3
101#if (NTDDI_VERSION >= NTDDI_VISTA)
102#define NOTIFYICON_VERSION_4 4
108#if _WIN32_IE >= 0x0500
112#define NIS_SHAREDICON 2
115#define NIIF_WARNING 2
118#if _WIN32_IE >= 0x0600
120#define NIIF_ICON_MASK 0xf
121#define NIIF_NOSOUND 0x10
127#define SE_ERR_ACCESSDENIED 5
129#define SE_ERR_DLLNOTFOUND 32
130#define SE_ERR_SHARE 26
131#define SE_ERR_ASSOCINCOMPLETE 27
132#define SE_ERR_DDETIMEOUT 28
133#define SE_ERR_DDEFAIL 29
134#define SE_ERR_DDEBUSY 30
135#define SE_ERR_NOASSOC 31
141#define FOF_MULTIDESTFILES 0x0001
142#define FOF_CONFIRMMOUSE 0x0002
143#define FOF_SILENT 0x0004
144#define FOF_RENAMEONCOLLISION 0x0008
145#define FOF_NOCONFIRMATION 0x0010
146#define FOF_WANTMAPPINGHANDLE 0x0020
147#define FOF_ALLOWUNDO 0x0040
148#define FOF_FILESONLY 0x0080
149#define FOF_SIMPLEPROGRESS 0x0100
150#define FOF_NOCONFIRMMKDIR 0x0200
151#define FOF_NOERRORUI 0x0400
152#define FOF_NOCOPYSECURITYATTRIBS 0x0800
153#define FOF_NORECURSION 0x1000
154#define FOF_NO_CONNECTED_ELEMENTS 0x2000
155#define FOF_WANTNUKEWARNING 0x4000
157#define FOF_NORECURSEREPARSE 0x8000
161#define PO_PORTCHANGE 32
162#define PO_REN_PORT 52
163#define SHGFI_ADDOVERLAYS 32
164#define SHGFI_OVERLAYINDEX 64
165#define SHGFI_ICON 256
166#define SHGSI_ICON SHGFI_ICON
167#define SHGFI_DISPLAYNAME 512
168#define SHGFI_TYPENAME 1024
169#define SHGFI_ATTRIBUTES 2048
170#define SHGFI_ICONLOCATION 4096
171#define SHGFI_EXETYPE 8192
172#define SHGFI_SYSICONINDEX 16384
173#define SHGFI_LINKOVERLAY 32768
174#define SHGFI_SELECTED 65536
175#define SHGFI_ATTR_SPECIFIED 131072
176#define SHGFI_LARGEICON 0
177#define SHGFI_SMALLICON 1
178#define SHGSI_SMALLICON SHGFI_SMALLICON
179#define SHGFI_OPENICON 2
180#define SHGFI_SHELLICONSIZE 4
182#define SHGFI_USEFILEATTRIBUTES 16
184#if (NTDDI_VERSION >= NTDDI_WINXP)
185#define SHIL_LARGE 0x0
186#define SHIL_SMALL 0x1
187#define SHIL_EXTRALARGE 0x2
188#define SHIL_SYSSMALL 0x3
189#if (NTDDI_VERSION >= NTDDI_VISTA)
190#define SHIL_JUMBO 0x4
191#define SHIL_LAST SHIL_JUMBO
193#define SHIL_LAST SHIL_SYSSMALL
234#if (NTDDI_VERSION < NTDDI_WIN2K)
237#if (NTDDI_VERSION >= NTDDI_WIN2K)
249#if (NTDDI_VERSION >= NTDDI_WINXP)
252#if (NTDDI_VERSION >= NTDDI_VISTA)
264#if (NTDDI_VERSION < NTDDI_WIN2K)
267#if (NTDDI_VERSION >= NTDDI_WIN2K)
279#if (NTDDI_VERSION >= NTDDI_WINXP)
282#if (NTDDI_VERSION >= NTDDI_VISTA)
287#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
288#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
289#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
290#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
291#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon)
292#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon)
295typedef struct _DRAGINFOA {
301} DRAGINFOA,*LPDRAGINFOA;
302typedef struct _DRAGINFOW {
308} DRAGINFOW,*LPDRAGINFOW;
397#define SHERB_NOCONFIRMATION 0x1
398#define SHERB_NOPROGRESSUI 0x2
399#define SHERB_NOSOUND 0x4
405#define SHGNLI_PIDL 0x01
406#define SHGNLI_PREFIXNAME 0x02
407#define SHGNLI_NOUNIQUE 0x04
408#define SHGNLI_NOLNK 0x08
640#if (_WIN32_IE >= 0x0601)
649#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
650#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
651#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAW_V3_SIZE
659#define DragQueryFile DragQueryFileW
660#define ExtractAssociatedIcon ExtractAssociatedIconW
661#define ExtractIcon ExtractIconW
662#define ExtractIconEx ExtractIconExW
663#define FindExecutable FindExecutableW
664#define Shell_NotifyIcon Shell_NotifyIconW
665#define ShellAbout ShellAboutW
666#define ShellExecute ShellExecuteW
667#define ShellExecuteEx ShellExecuteExW
668#define ShellMessageBox ShellMessageBoxW
669#define SHFileOperation SHFileOperationW
670#define SHGetFileInfo SHGetFileInfoW
671#define SHQueryRecycleBin SHQueryRecycleBinW
672#define SHEmptyRecycleBin SHEmptyRecycleBinW
673#define SHGetNewLinkInfo SHGetNewLinkInfoW
674#define DoEnvironmentSubst DoEnvironmentSubstW
677#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
678#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
679#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAA_V3_SIZE
687#define DragQueryFile DragQueryFileA
688#define ExtractAssociatedIcon ExtractAssociatedIconA
689#define ExtractIcon ExtractIconA
690#define ExtractIconEx ExtractIconExA
691#define FindExecutable FindExecutableA
692#define Shell_NotifyIcon Shell_NotifyIconA
693#define ShellAbout ShellAboutA
694#define ShellExecute ShellExecuteA
695#define ShellExecuteEx ShellExecuteExA
696#define ShellMessageBox ShellMessageBoxA
697#define SHFileOperation SHFileOperationA
698#define SHGetFileInfo SHGetFileInfoA
699#define SHQueryRecycleBin SHQueryRecycleBinA
700#define SHEmptyRecycleBin SHEmptyRecycleBinA
701#define SHGetNewLinkInfo SHGetNewLinkInfoA
702#define DoEnvironmentSubst DoEnvironmentSubstA
705#if (NTDDI_VERSION >= NTDDI_VISTA)
715#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::@3221 DUMMYUNIONNAME
_ANONYMOUS_UNION union _NOTIFYICONDATAW::@3222 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