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 ABM_SETSTATE 10
73#define ABN_STATECHANGE 0
74#define ABN_POSCHANGED 1
75#define ABN_FULLSCREENAPP 2
76#define ABN_WINDOWARRANGE 3
78#if (_WIN32_IE >= 0x0500)
79#define NIN_SELECT (WM_USER + 0)
81#define NIN_KEYSELECT (NIN_SELECT | NINF_KEY)
84#if (_WIN32_IE >= 0x0501)
85#define NIN_BALLOONSHOW (WM_USER + 2)
86#define NIN_BALLOONHIDE (WM_USER + 3)
87#define NIN_BALLOONTIMEOUT (WM_USER + 4)
88#define NIN_BALLOONUSERCLICK (WM_USER + 5)
90#if (NTDDI_VERSION >= NTDDI_VISTA)
91#define NIN_POPUPOPEN (WM_USER + 6)
92#define NIN_POPUPCLOSE (WM_USER + 7)
98#if _WIN32_IE >= 0x0500
100#define NIM_SETVERSION 4
101#define NOTIFYICON_VERSION 3
102#if (NTDDI_VERSION >= NTDDI_VISTA)
103#define NOTIFYICON_VERSION_4 4
109#if _WIN32_IE >= 0x0500
113#define NIS_SHAREDICON 2
116#define NIIF_WARNING 2
119#if _WIN32_IE >= 0x0600
121#define NIIF_ICON_MASK 0xf
122#define NIIF_NOSOUND 0x10
128#define SE_ERR_ACCESSDENIED 5
130#define SE_ERR_DLLNOTFOUND 32
131#define SE_ERR_SHARE 26
132#define SE_ERR_ASSOCINCOMPLETE 27
133#define SE_ERR_DDETIMEOUT 28
134#define SE_ERR_DDEFAIL 29
135#define SE_ERR_DDEBUSY 30
136#define SE_ERR_NOASSOC 31
142#define FOF_MULTIDESTFILES 0x0001
143#define FOF_CONFIRMMOUSE 0x0002
144#define FOF_SILENT 0x0004
145#define FOF_RENAMEONCOLLISION 0x0008
146#define FOF_NOCONFIRMATION 0x0010
147#define FOF_WANTMAPPINGHANDLE 0x0020
148#define FOF_ALLOWUNDO 0x0040
149#define FOF_FILESONLY 0x0080
150#define FOF_SIMPLEPROGRESS 0x0100
151#define FOF_NOCONFIRMMKDIR 0x0200
152#define FOF_NOERRORUI 0x0400
153#define FOF_NOCOPYSECURITYATTRIBS 0x0800
154#define FOF_NORECURSION 0x1000
155#define FOF_NO_CONNECTED_ELEMENTS 0x2000
156#define FOF_WANTNUKEWARNING 0x4000
158#define FOF_NORECURSEREPARSE 0x8000
162#define PO_PORTCHANGE 32
163#define PO_REN_PORT 52
164#define SHGFI_ADDOVERLAYS 32
165#define SHGFI_OVERLAYINDEX 64
166#define SHGFI_ICON 256
167#define SHGSI_ICON SHGFI_ICON
168#define SHGFI_DISPLAYNAME 512
169#define SHGFI_TYPENAME 1024
170#define SHGFI_ATTRIBUTES 2048
171#define SHGFI_ICONLOCATION 4096
172#define SHGFI_EXETYPE 8192
173#define SHGFI_SYSICONINDEX 16384
174#define SHGFI_LINKOVERLAY 32768
175#define SHGFI_SELECTED 65536
176#define SHGFI_ATTR_SPECIFIED 131072
177#define SHGFI_LARGEICON 0
178#define SHGFI_SMALLICON 1
179#define SHGSI_SMALLICON SHGFI_SMALLICON
180#define SHGFI_OPENICON 2
181#define SHGFI_SHELLICONSIZE 4
183#define SHGFI_USEFILEATTRIBUTES 16
185#if (NTDDI_VERSION >= NTDDI_WINXP)
186#define SHIL_LARGE 0x0
187#define SHIL_SMALL 0x1
188#define SHIL_EXTRALARGE 0x2
189#define SHIL_SYSSMALL 0x3
190#if (NTDDI_VERSION >= NTDDI_VISTA)
191#define SHIL_JUMBO 0x4
192#define SHIL_LAST SHIL_JUMBO
194#define SHIL_LAST SHIL_SYSSMALL
235#if (NTDDI_VERSION < NTDDI_WIN2K)
238#if (NTDDI_VERSION >= NTDDI_WIN2K)
250#if (NTDDI_VERSION >= NTDDI_WINXP)
253#if (NTDDI_VERSION >= NTDDI_VISTA)
265#if (NTDDI_VERSION < NTDDI_WIN2K)
268#if (NTDDI_VERSION >= NTDDI_WIN2K)
280#if (NTDDI_VERSION >= NTDDI_WINXP)
283#if (NTDDI_VERSION >= NTDDI_VISTA)
288#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
289#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
290#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
291#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
292#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon)
293#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon)
296typedef struct _DRAGINFOA {
302} DRAGINFOA,*LPDRAGINFOA;
303typedef struct _DRAGINFOW {
309} DRAGINFOW,*LPDRAGINFOW;
398#define SHERB_NOCONFIRMATION 0x1
399#define SHERB_NOPROGRESSUI 0x2
400#define SHERB_NOSOUND 0x4
406#define SHGNLI_PIDL 0x01
407#define SHGNLI_PREFIXNAME 0x02
408#define SHGNLI_NOUNIQUE 0x04
409#define SHGNLI_NOLNK 0x08
641#if (_WIN32_IE >= 0x0601)
650#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
651#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
652#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAW_V3_SIZE
660#define DragQueryFile DragQueryFileW
661#define ExtractAssociatedIcon ExtractAssociatedIconW
662#define ExtractIcon ExtractIconW
663#define ExtractIconEx ExtractIconExW
664#define FindExecutable FindExecutableW
665#define Shell_NotifyIcon Shell_NotifyIconW
666#define ShellAbout ShellAboutW
667#define ShellExecute ShellExecuteW
668#define ShellExecuteEx ShellExecuteExW
669#define ShellMessageBox ShellMessageBoxW
670#define SHFileOperation SHFileOperationW
671#define SHGetFileInfo SHGetFileInfoW
672#define SHQueryRecycleBin SHQueryRecycleBinW
673#define SHEmptyRecycleBin SHEmptyRecycleBinW
674#define SHGetNewLinkInfo SHGetNewLinkInfoW
675#define DoEnvironmentSubst DoEnvironmentSubstW
678#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
679#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
680#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAA_V3_SIZE
688#define DragQueryFile DragQueryFileA
689#define ExtractAssociatedIcon ExtractAssociatedIconA
690#define ExtractIcon ExtractIconA
691#define ExtractIconEx ExtractIconExA
692#define FindExecutable FindExecutableA
693#define Shell_NotifyIcon Shell_NotifyIconA
694#define ShellAbout ShellAboutA
695#define ShellExecute ShellExecuteA
696#define ShellExecuteEx ShellExecuteExA
697#define ShellMessageBox ShellMessageBoxA
698#define SHFileOperation SHFileOperationA
699#define SHGetFileInfo SHGetFileInfoA
700#define SHQueryRecycleBin SHQueryRecycleBinA
701#define SHEmptyRecycleBin SHEmptyRecycleBinA
702#define SHGetNewLinkInfo SHGetNewLinkInfoA
703#define DoEnvironmentSubst DoEnvironmentSubstA
706#if (NTDDI_VERSION >= NTDDI_VISTA)
716#define SHGSI_ICONLOCATION 0
static _In_ LPCWSTR _In_ DWORD _In_ int cchSrc
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)
unsigned __int3264 UINT_PTR
#define _Inout_updates_(s)
#define _Out_writes_opt_(s)
#define _Inout_updates_bytes_opt_(s)
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::@3228 DUMMYUNIONNAME
_ANONYMOUS_UNION union _NOTIFYICONDATAW::@3229 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