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#if (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)
30#define SEE_MASK_ICON 0x00000010
32#define SEE_MASK_HOTKEY 0x00000020
33#define SEE_MASK_NOCLOSEPROCESS 0x00000040
34#define SEE_MASK_CONNECTNETDRV 0x00000080
35#define SEE_MASK_NOASYNC 0x00000100
36#define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
37#define SEE_MASK_DOENVSUBST 0x00000200
38#define SEE_MASK_FLAG_NO_UI 0x00000400
40#define SEE_MASK_UNICODE 0x00004000
41#define SEE_MASK_NO_CONSOLE 0x00008000
43#define SEE_MASK_ASYNCOK 0x00100000
44#if (NTDDI_VERSION >= NTDDI_WIN2K)
45#define SEE_MASK_HMONITOR 0x00200000
47#if (NTDDI_VERSION >= NTDDI_WINXPSP1)
48#define SEE_MASK_NOZONECHECKS 0x00800000
50#if (NTDDI_VERSION >= NTDDI_WIN2K)
51#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
52#define SEE_MASK_WAITFORINPUTIDLE 0x02000000
54#if (NTDDI_VERSION >= NTDDI_WINXP)
55#define SEE_MASK_FLAG_LOG_USAGE 0x04000000
57#if (NTDDI_VERSION >= NTDDI_VISTA)
58#define SEE_MASK_FLAG_HINST_IS_SITE 0x08000000
66#define ABM_GETTASKBARPOS 5
68#define ABM_GETAUTOHIDEBAR 7
69#define ABM_SETAUTOHIDEBAR 8
70#define ABM_WINDOWPOSCHANGED 9
71#define ABM_SETSTATE 10
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
158#define FOF_NO_UI (FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR)
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;
329#if (NTDDI_VERSION >= NTDDI_WIN2K)
352#if (NTDDI_VERSION >= NTDDI_WIN2K)
410#define SHERB_NOCONFIRMATION 0x1
411#define SHERB_NOPROGRESSUI 0x2
412#define SHERB_NOSOUND 0x4
601#define SHGNLI_PIDL 0x01
602#define SHGNLI_PREFIXNAME 0x02
603#define SHGNLI_NOUNIQUE 0x04
604#define SHGNLI_NOLNK 0x08
605#define SHGNLI_NOLOCNAME 0x10
606#define SHGNLI_USEURLEXT 0x20
674#if (_WIN32_IE >= 0x0601)
696 _In_ INT cchShellExecuteCommand);
705#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
706#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
707#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAW_V3_SIZE
715#define DragQueryFile DragQueryFileW
716#define ExtractAssociatedIcon ExtractAssociatedIconW
717#define ExtractIcon ExtractIconW
718#define ExtractIconEx ExtractIconExW
719#define FindExecutable FindExecutableW
720#define Shell_NotifyIcon Shell_NotifyIconW
721#define ShellAbout ShellAboutW
722#define ShellExecute ShellExecuteW
723#define ShellExecuteEx ShellExecuteExW
724#define ShellMessageBox ShellMessageBoxW
725#define SHFileOperation SHFileOperationW
726#define SHGetFileInfo SHGetFileInfoW
727#define SHQueryRecycleBin SHQueryRecycleBinW
728#define SHEmptyRecycleBin SHEmptyRecycleBinW
729#define SHGetNewLinkInfo SHGetNewLinkInfoW
730#define DoEnvironmentSubst DoEnvironmentSubstW
733#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
734#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
735#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAA_V3_SIZE
743#define DragQueryFile DragQueryFileA
744#define ExtractAssociatedIcon ExtractAssociatedIconA
745#define ExtractIcon ExtractIconA
746#define ExtractIconEx ExtractIconExA
747#define FindExecutable FindExecutableA
748#define Shell_NotifyIcon Shell_NotifyIconA
749#define ShellAbout ShellAboutA
750#define ShellExecute ShellExecuteA
751#define ShellExecuteEx ShellExecuteExA
752#define ShellMessageBox ShellMessageBoxA
753#define SHFileOperation SHFileOperationA
754#define SHGetFileInfo SHGetFileInfoA
755#define SHQueryRecycleBin SHQueryRecycleBinA
756#define SHEmptyRecycleBin SHEmptyRecycleBinA
757#define SHGetNewLinkInfo SHGetNewLinkInfoA
758#define DoEnvironmentSubst DoEnvironmentSubstA
761#if (NTDDI_VERSION >= NTDDI_VISTA)
771#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)
unsigned __int3264 UINT_PTR
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#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)
HRESULT WINAPI SHSetUnreadMailCountW(_In_ PCWSTR pszMailAddress, _In_ DWORD dwCount, _In_ PCWSTR pszShellExecuteCommand)
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)
HRESULT WINAPI SHEvaluateSystemCommandTemplate(_In_ PCWSTR pszCmdTemplate, _Outptr_ PWSTR *ppszApplication, _Outptr_opt_ PWSTR *ppszCommandLine, _Outptr_opt_ PWSTR *ppszParameters)
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
HRESULT WINAPI SHSetLocalizedName(_In_ PCWSTR pszPath, _In_ PCWSTR pszResModule, _In_ INT idsRes)
struct _SHQUERYRBINFO * LPSHQUERYRBINFO
struct _SHFILEINFOW SHFILEINFOW
SHFILEOPSTRUCTA SHFILEOPSTRUCT
HRESULT WINAPI SHQueryUserNotificationState(_Out_ QUERY_USER_NOTIFICATION_STATE *pquns)
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)
HRESULT WINAPI SHEnumerateUnreadMailAccountsW(_In_opt_ HKEY hKeyUser, _In_ DWORD dwIndex, _Out_writes_(cchMailAddress) PWSTR pszMailAddress, _In_ INT cchMailAddress)
_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)
UINT_PTR WINAPI SHAppBarMessage(_In_ DWORD dwMessage, _Inout_ PAPPBARDATA pData)
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)
QUERY_USER_NOTIFICATION_STATE
@ QUNS_RUNNING_D3D_FULL_SCREEN
@ QUNS_ACCEPTS_NOTIFICATIONS
DWORD WINAPI DoEnvironmentSubstW(_Inout_updates_(cchSrc) LPWSTR pszSrc, UINT cchSrc)
HRESULT WINAPI SHGetUnreadMailCountW(_In_opt_ HKEY hKeyUser, _In_opt_ PCWSTR pszMailAddress, _Out_opt_ PDWORD pdwCount, _Inout_opt_ PFILETIME pFileTime, _Out_writes_opt_(cchShellExecuteCommand) PWSTR pszShellExecuteCommand, _In_ INT cchShellExecuteCommand)
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::@3975 DUMMYUNIONNAME
_ANONYMOUS_UNION union _NOTIFYICONDATAW::@3976 DUMMYUNIONNAME
IN LPSTARTUPINFOW lpStartupInfo
OUT LPPROCESS_INFORMATION lpProcessInformation
IN LPSECURITY_ATTRIBUTES lpProcessAttributes
LPCWSTR pszCurrentDirectory
IN LPSECURITY_ATTRIBUTES lpThreadAttributes
_ANONYMOUS_UNION union _SHELLEXECUTEINFOA::@3977 DUMMYUNIONNAME
_ANONYMOUS_UNION union _SHELLEXECUTEINFOW::@3978 DUMMYUNIONNAME
CHAR szDisplayName[MAX_PATH]
WCHAR szDisplayName[MAX_PATH]
BOOL fAnyOperationsAborted
BOOL fAnyOperationsAborted
LPCWSTR lpszProgressTitle
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_In_ DWORD _In_ int cchSrc