home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / shellapi.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  9KB  |  343 lines

  1. #ifndef _SHELLAPI_H
  2. #define _SHELLAPI_H
  3. #if __GNUC__ >= 3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. #define WINSHELLAPI DECLSPEC_IMPORT
  11. #define ABE_LEFT    0
  12. #define ABE_TOP    1
  13. #define ABE_RIGHT    2
  14. #define ABE_BOTTOM    3
  15. #define ABS_AUTOHIDE    1
  16. #define ABS_ALWAYSONTOP    2
  17. #define SEE_MASK_CLASSNAME    1
  18. #define SEE_MASK_CLASSKEY    3
  19. #define SEE_MASK_IDLIST    4
  20. #define SEE_MASK_INVOKEIDLIST   12
  21. #define SEE_MASK_ICON    0x10
  22. #define SEE_MASK_HOTKEY    0x20
  23. #define SEE_MASK_NOCLOSEPROCESS    0x40
  24. #define SEE_MASK_CONNECTNETDRV    0x80
  25. #define SEE_MASK_FLAG_DDEWAIT    0x100
  26. #define SEE_MASK_DOENVSUBST    0x200
  27. #define SEE_MASK_FLAG_NO_UI    0x400
  28. #define SEE_MASK_NO_CONSOLE    0x8000
  29. #define SEE_MASK_UNICODE    0x10000
  30. #define SEE_MASK_ASYNCOK    0x100000
  31. #define SEE_MASK_HMONITOR    0x200000
  32. #define ABM_NEW    0
  33. #define ABM_REMOVE    1
  34. #define ABM_QUERYPOS    2
  35. #define ABM_SETPOS    3
  36. #define ABM_GETSTATE    4
  37. #define ABM_GETTASKBARPOS    5
  38. #define ABM_ACTIVATE    6
  39. #define ABM_GETAUTOHIDEBAR    7
  40. #define ABM_SETAUTOHIDEBAR    8
  41. #define ABM_WINDOWPOSCHANGED    9
  42. #define ABN_STATECHANGE        0
  43. #define ABN_POSCHANGED        1
  44. #define ABN_FULLSCREENAPP    2
  45. #define ABN_WINDOWARRANGE    3
  46. #define NIM_ADD    0
  47. #define NIM_MODIFY    1
  48. #define NIM_DELETE    2
  49. #if _WIN32_IE >= 0x0500
  50. #define NOTIFYICON_VERSION 3
  51. #define NIM_SETFOCUS    3
  52. #define NIM_SETVERSION    4
  53. #endif
  54. #define NIF_MESSAGE    0x00000001
  55. #define NIF_ICON    0x00000002
  56. #define NIF_TIP        0x00000004
  57. #define NIF_STATE    0x00000008
  58. #if (_WIN32_IE >= 0x0500)
  59. #define NIF_INFO    0x00000010
  60. #endif
  61. #if (_WIN32_IE >= 0x0600)
  62. #define NIF_GUID    0x00000020
  63. #endif
  64. #if (_WIN32_IE >= 0x0500)
  65. #define NIIF_NONE    0x00000000
  66. #define NIIF_INFO    0x00000001
  67. #define NIIF_WARNING    0x00000002
  68. #define NIIF_ERROR    0x00000003
  69. #endif
  70. #if (_WIN32_IE >= 0x0600)
  71. #define NIIF_ICON_MASK    0x0000000F
  72. #define NIIF_NOSOUND    0x00000010
  73. #endif
  74. #define NIS_HIDDEN    1
  75. #define NIS_SHAREDICON    2
  76. #define SE_ERR_FNF    2
  77. #define SE_ERR_PNF    3
  78. #define SE_ERR_ACCESSDENIED    5
  79. #define SE_ERR_OOM    8
  80. #define SE_ERR_DLLNOTFOUND    32
  81. #define SE_ERR_SHARE    26
  82. #define SE_ERR_ASSOCINCOMPLETE    27
  83. #define SE_ERR_DDETIMEOUT    28
  84. #define SE_ERR_DDEFAIL    29
  85. #define SE_ERR_DDEBUSY    30
  86. #define SE_ERR_NOASSOC    31
  87. #define FO_MOVE    1
  88. #define FO_COPY    2
  89. #define FO_DELETE    3
  90. #define FO_RENAME    4
  91. #define FOF_MULTIDESTFILES    1
  92. #define FOF_CONFIRMMOUSE    2
  93. #define FOF_SILENT    4
  94. #define FOF_RENAMEONCOLLISION    8
  95. #define FOF_NOCONFIRMATION    16
  96. #define FOF_WANTMAPPINGHANDLE    32
  97. #define FOF_ALLOWUNDO    64
  98. #define FOF_FILESONLY    128
  99. #define FOF_SIMPLEPROGRESS    256
  100. #define FOF_NOCONFIRMMKDIR    512
  101. #define FOF_NOERRORUI    1024
  102. #define FOF_NOCOPYSECURITYATTRIBS    2048
  103. #define PO_DELETE 19
  104. #define PO_RENAME 20
  105. #define PO_PORTCHANGE 32
  106. #define PO_REN_PORT 52
  107. #define SHGFI_ICON    256
  108. #define SHGFI_DISPLAYNAME    512
  109. #define SHGFI_TYPENAME    1024
  110. #define SHGFI_ATTRIBUTES    2048
  111. #define SHGFI_ICONLOCATION    4096
  112. #define SHGFI_EXETYPE 8192
  113. #define SHGFI_SYSICONINDEX 16384
  114. #define SHGFI_LINKOVERLAY 32768
  115. #define SHGFI_SELECTED 65536
  116. #define SHGFI_ATTR_SPECIFIED 131072
  117. #define SHGFI_LARGEICON    0
  118. #define SHGFI_SMALLICON    1
  119. #define SHGFI_OPENICON    2
  120. #define SHGFI_SHELLICONSIZE    4
  121. #define SHGFI_PIDL    8
  122. #define SHGFI_USEFILEATTRIBUTES    16
  123. #define SHERB_NOCONFIRMATION 1
  124. #define SHERB_NOPROGRESSUI 2
  125. #define SHERB_NOSOUND 4
  126.  
  127. typedef WORD FILEOP_FLAGS;
  128. typedef WORD PRINTEROP_FLAGS;
  129. #include <pshpack2.h>
  130. typedef struct _AppBarData {
  131.     DWORD    cbSize;
  132.     HWND    hWnd;
  133.     UINT    uCallbackMessage;
  134.     UINT    uEdge;
  135.     RECT    rc;
  136.     LPARAM lParam;
  137. } APPBARDATA,*PAPPBARDATA;
  138. DECLARE_HANDLE(HDROP);
  139.  
  140. typedef struct _NOTIFYICONDATAA {
  141.     DWORD cbSize;
  142.     HWND hWnd;
  143.     UINT uID;
  144.     UINT uFlags;
  145.     UINT uCallbackMessage;
  146.     HICON hIcon;
  147. #if _WIN32_IE >= 0x0500
  148.     CHAR szTip[128];
  149.     DWORD dwState;
  150.     DWORD dwStateMask;
  151.     CHAR szInfo[256];
  152.     _ANONYMOUS_UNION union {
  153.         UINT uTimeout;
  154.         UINT uVersion;
  155.     } DUMMYUNIONNAME;
  156.     CHAR szInfoTitle[64];
  157.     DWORD dwInfoFlags;
  158. #else
  159.     CHAR szTip[64];
  160. #endif
  161. #if _WIN32_IE >= 0x600
  162.     GUID guidItem;
  163. #endif
  164. } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
  165.  
  166. typedef struct _NOTIFYICONDATAW {
  167.     DWORD cbSize;
  168.     HWND hWnd;
  169.     UINT uID;
  170.     UINT uFlags;
  171.     UINT uCallbackMessage;
  172.     HICON hIcon;
  173. #if _WIN32_IE >= 0x0500
  174.     WCHAR szTip[128];
  175.     DWORD dwState;
  176.     DWORD dwStateMask;
  177.     WCHAR szInfo[256];
  178.     _ANONYMOUS_UNION union {
  179.         UINT uTimeout;
  180.         UINT uVersion;
  181.     } DUMMYUNIONNAME;
  182.     WCHAR szInfoTitle[64];
  183.     DWORD dwInfoFlags;
  184. #else
  185.     WCHAR szTip[64];
  186. #endif
  187. #if _WIN32_IE >= 0x600
  188.     GUID guidItem;
  189. #endif
  190. } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
  191.  
  192. typedef struct _SHELLEXECUTEINFOA {
  193.     DWORD cbSize;
  194.     ULONG fMask;
  195.     HWND hwnd;
  196.     LPCSTR lpVerb;
  197.     LPCSTR lpFile;
  198.     LPCSTR lpParameters;
  199.     LPCSTR lpDirectory;
  200.     int nShow;
  201.     HINSTANCE hInstApp;
  202.     PVOID lpIDList;
  203.     LPCSTR lpClass;
  204.     HKEY hkeyClass;
  205.     DWORD dwHotKey;
  206.     HANDLE hIcon;
  207.     HANDLE hProcess;
  208. } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
  209. typedef struct _SHELLEXECUTEINFOW {
  210.     DWORD cbSize;
  211.     ULONG fMask;
  212.     HWND hwnd;
  213.     LPCWSTR lpVerb;
  214.     LPCWSTR lpFile;
  215.     LPCWSTR lpParameters;
  216.     LPCWSTR lpDirectory;
  217.     int nShow;
  218.     HINSTANCE hInstApp;
  219.     PVOID lpIDList;
  220.     LPCWSTR lpClass;
  221.     HKEY hkeyClass;
  222.     DWORD dwHotKey;
  223.     HANDLE hIcon;
  224.     HANDLE hProcess;
  225. } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
  226. typedef struct _SHFILEOPSTRUCTA {
  227.     HWND hwnd;
  228.     UINT wFunc;
  229.     LPCSTR pFrom;
  230.     LPCSTR pTo;
  231.     FILEOP_FLAGS fFlags;
  232.     BOOL fAnyOperationsAborted;
  233.     PVOID hNameMappings;
  234.     LPCSTR lpszProgressTitle;
  235. } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
  236. typedef struct _SHFILEOPSTRUCTW {
  237.     HWND hwnd;
  238.     UINT wFunc;
  239.     LPCWSTR pFrom;
  240.     LPCWSTR pTo;
  241.     FILEOP_FLAGS fFlags;
  242.     BOOL fAnyOperationsAborted;
  243.     PVOID hNameMappings;
  244.     LPCWSTR lpszProgressTitle;
  245. } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
  246. typedef struct _SHFILEINFOA {
  247.     HICON hIcon;
  248.     int iIcon;
  249.     DWORD dwAttributes;
  250.     CHAR szDisplayName[MAX_PATH];
  251.     CHAR szTypeName[80];
  252. } SHFILEINFOA;
  253. typedef struct _SHFILEINFOW {
  254.     HICON hIcon;
  255.     int iIcon;
  256.     DWORD dwAttributes;
  257.     WCHAR szDisplayName[MAX_PATH];
  258.     WCHAR szTypeName[80];
  259. } SHFILEINFOW;
  260. typedef struct _SHQUERYRBINFO {
  261.     DWORD   cbSize;
  262.     __int64 i64Size;
  263.     __int64 i64NumItems;
  264. } SHQUERYRBINFO, *LPSHQUERYRBINFO;
  265. #include <poppack.h>
  266.  
  267. LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
  268. void WINAPI DragAcceptFiles(HWND,BOOL);
  269. void WINAPI DragFinish(HDROP);
  270. UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
  271. UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
  272. BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
  273. HICON WINAPI DuplicateIcon(HINSTANCE,HICON);
  274. HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
  275. HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
  276. HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
  277. HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
  278. UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
  279. UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
  280. HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
  281. HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
  282. UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
  283. BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
  284. BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
  285. int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
  286. int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
  287. HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
  288. HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
  289. BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
  290. BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
  291. int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
  292. int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
  293. void WINAPI SHFreeNameMappings(HANDLE);
  294. DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
  295. DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
  296. HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
  297. HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
  298. HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
  299. HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
  300.  
  301. #ifdef UNICODE
  302. typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
  303. typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
  304. typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
  305. typedef SHFILEINFOW SHFILEINFO;
  306. #define DragQueryFile DragQueryFileW
  307. #define ExtractAssociatedIcon ExtractAssociatedIconW
  308. #define ExtractIcon ExtractIconW
  309. #define ExtractIconEx ExtractIconExW
  310. #define FindExecutable FindExecutableW
  311. #define Shell_NotifyIcon Shell_NotifyIconW
  312. #define ShellAbout ShellAboutW
  313. #define ShellExecute ShellExecuteW
  314. #define ShellExecuteEx ShellExecuteExW
  315. #define SHFileOperation SHFileOperationW
  316. #define SHGetFileInfo SHGetFileInfoW
  317. #define SHQueryRecycleBin SHQueryRecycleBinW
  318. #define SHEmptyRecycleBin SHEmptyRecycleBinW
  319.  
  320. #else
  321. typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
  322. typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
  323. typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
  324. typedef SHFILEINFOA SHFILEINFO;
  325. #define DragQueryFile DragQueryFileA
  326. #define ExtractAssociatedIcon ExtractAssociatedIconA
  327. #define ExtractIcon ExtractIconA
  328. #define ExtractIconEx ExtractIconExA
  329. #define FindExecutable FindExecutableA
  330. #define Shell_NotifyIcon Shell_NotifyIconA
  331. #define ShellAbout ShellAboutA
  332. #define ShellExecute ShellExecuteA
  333. #define ShellExecuteEx ShellExecuteExA
  334. #define SHFileOperation SHFileOperationA
  335. #define SHGetFileInfo SHGetFileInfoA
  336. #define SHQueryRecycleBin SHQueryRecycleBinA
  337. #define SHEmptyRecycleBin SHEmptyRecycleBinA
  338. #endif
  339. #ifdef __cplusplus
  340. }
  341. #endif
  342. #endif
  343.