Differences From Artifact [165235cd7bb780a4]:
- File
src/win32/shellapi.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [dbc32f4888561832]:
- File
src/win32/shellapi.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
> 1 /***********************************************************************\
> 2 * shellapi.d *
> 3 * *
> 4 * Windows API header module *
> 5 * *
> 6 * Translated from MinGW Windows headers *
> 7 * by Stewart Gordon *
> 8 * *
> 9 * Placed into public domain *
> 10 \***********************************************************************/
1 module win32.shellapi; 11 module win32.shellapi;
> 12 pragma(lib, "shell32.lib");
2 | 13
3 // Translated from Microsoft Platform SDK August 2001 Edition <
4 // by Y.Tomino | 14 private import win32.w32api, win32.windef, win32.basetyps;
> 15
> 16 enum : UINT {
> 17 ABE_LEFT,
> 18 ABE_TOP,
> 19 ABE_RIGHT,
> 20 ABE_BOTTOM // = 3
> 21 }
> 22
> 23 enum : UINT {
> 24 ABS_AUTOHIDE = 1,
> 25 ABS_ALWAYSONTOP
> 26 }
> 27
> 28 const ULONG
> 29 SEE_MASK_CLASSNAME = 1,
> 30 SEE_MASK_CLASSKEY = 3,
> 31 SEE_MASK_IDLIST = 4,
> 32 SEE_MASK_INVOKEIDLIST = 12,
> 33 SEE_MASK_ICON = 0x000010,
> 34 SEE_MASK_HOTKEY = 0x000020,
> 35 SEE_MASK_NOCLOSEPROCESS = 0x000040,
> 36 SEE_MASK_CONNECTNETDRV = 0x000080,
> 37 SEE_MASK_FLAG_DDEWAIT = 0x000100,
> 38 SEE_MASK_DOENVSUBST = 0x000200,
> 39 SEE_MASK_FLAG_NO_UI = 0x000400,
> 40 SEE_MASK_NO_CONSOLE = 0x008000,
> 41 SEE_MASK_UNICODE = 0x010000,
> 42 SEE_MASK_ASYNCOK = 0x100000,
> 43 SEE_MASK_HMONITOR = 0x200000;
> 44
> 45 enum : DWORD {
> 46 ABM_NEW,
> 47 ABM_REMOVE,
> 48 ABM_QUERYPOS,
> 49 ABM_SETPOS,
> 50 ABM_GETSTATE,
> 51 ABM_GETTASKBARPOS,
> 52 ABM_ACTIVATE,
> 53 ABM_GETAUTOHIDEBAR,
> 54 ABM_SETAUTOHIDEBAR,
> 55 ABM_WINDOWPOSCHANGED // = 9
> 56 }
> 57
> 58 static if (WINVER >= 0x501) {
> 59 const DWORD ABM_SETSTATE = 10;
> 60 }
> 61
> 62 enum : UINT {
> 63 ABN_STATECHANGE,
> 64 ABN_POSCHANGED,
> 65 ABN_FULLSCREENAPP,
> 66 ABN_WINDOWARRANGE
> 67 }
> 68
> 69 enum : DWORD {
> 70 NIM_ADD,
> 71 NIM_MODIFY,
> 72 NIM_DELETE
> 73 }
> 74
> 75 static if (_WIN32_IE >= 0x500) {
> 76 const NOTIFYICON_VERSION = 3;
> 77
> 78 enum : DWORD {
> 79 NIM_SETFOCUS = 3,
> 80 NIM_SETVERSION
> 81 }
> 82 }
> 83
> 84 const UINT
> 85 NIF_MESSAGE = 1,
> 86 NIF_ICON = 2,
> 87 NIF_TIP = 4,
> 88 NIF_STATE = 8;
> 89
> 90 static if (_WIN32_IE >= 0x500) {
> 91 const UINT NIF_INFO = 0x00000010;
> 92 }
> 93
> 94 static if (_WIN32_IE >= 0x600) {
> 95 const UINT NIF_GUID = 0x00000020;
> 96 }
> 97
> 98 static if (_WIN32_IE >= 0x500) {
> 99 enum : DWORD {
> 100 NIIF_NONE,
> 101 NIIF_INFO,
> 102 NIIF_WARNING,
> 103 NIIF_ERROR
> 104 }
> 105 }
> 106
> 107 static if (_WIN32_IE >= 0x600) {
> 108 enum : DWORD {
> 109 NIIF_ICON_MASK = 15,
> 110 NIIF_NOSOUND
> 111 }
> 112 }
> 113
> 114 const DWORD
> 115 NIS_HIDDEN = 1,
> 116 NIS_SHAREDICON = 2;
> 117
> 118 const HINSTANCE
> 119 SE_ERR_FNF = cast(HANDLE) 2,
> 120 SE_ERR_PNF = cast(HANDLE) 3,
> 121 SE_ERR_ACCESSDENIED = cast(HANDLE) 5,
> 122 SE_ERR_OOM = cast(HANDLE) 8,
> 123 SE_ERR_DLLNOTFOUND = cast(HANDLE) 32,
> 124 SE_ERR_SHARE = cast(HANDLE) 26,
> 125 SE_ERR_ASSOCINCOMPLETE = cast(HANDLE) 27,
> 126 SE_ERR_DDETIMEOUT = cast(HANDLE) 28,
> 127 SE_ERR_DDEFAIL = cast(HANDLE) 29,
> 128 SE_ERR_DDEBUSY = cast(HANDLE) 30,
> 129 SE_ERR_NOASSOC = cast(HANDLE) 31;
> 130
> 131 enum : UINT {
> 132 FO_MOVE = 1,
> 133 FO_COPY,
> 134 FO_DELETE,
> 135 FO_RENAME
> 136 }
> 137
> 138 const FILEOP_FLAGS
> 139 FOF_MULTIDESTFILES = 0x0001,
> 140 FOF_CONFIRMMOUSE = 0x0002,
> 141 FOF_SILENT = 0x0004,
> 142 FOF_RENAMEONCOLLISION = 0x0008,
> 143 FOF_NOCONFIRMATION = 0x0010,
> 144 FOF_WANTMAPPINGHANDLE = 0x0020,
> 145 FOF_ALLOWUNDO = 0x0040,
> 146 FOF_FILESONLY = 0x0080,
> 147 FOF_SIMPLEPROGRESS = 0x0100,
> 148 FOF_NOCONFIRMMKDIR = 0x0200,
> 149 FOF_NOERRORUI = 0x0400,
> 150 FOF_NOCOPYSECURITYATTRIBS = 0x0800;
> 151
> 152 // these are not documented on the MSDN site
> 153 enum {
> 154 PO_DELETE = 19,
> 155 PO_RENAME = 20,
> 156 PO_PORTCHANGE = 32,
> 157 PO_REN_PORT = 52
> 158 }
> 159
> 160 const UINT
> 161 SHGFI_LARGEICON = 0x000000,
> 162 SHGFI_SMALLICON = 0x000001,
> 163 SHGFI_OPENICON = 0x000002,
> 164 SHGFI_SHELLICONSIZE = 0x000004,
> 165 SHGFI_PIDL = 0x000008,
> 166 SHGFI_USEFILEATTRIBUTES = 0x000010,
> 167 SHGFI_ICON = 0x000100,
> 168 SHGFI_DISPLAYNAME = 0x000200,
> 169 SHGFI_TYPENAME = 0x000400,
> 170 SHGFI_ATTRIBUTES = 0x000800,
> 171 SHGFI_ICONLOCATION = 0x001000,
> 172 SHGFI_EXETYPE = 0x002000,
> 173 SHGFI_SYSICONINDEX = 0x004000,
> 174 SHGFI_LINKOVERLAY = 0x008000,
> 175 SHGFI_SELECTED = 0x010000,
> 176 SHGFI_ATTR_SPECIFIED = 0x020000;
> 177
> 178 const SHERB_NOCONFIRMATION = 1;
> 179 const SHERB_NOPROGRESSUI = 2;
> 180 const SHERB_NOSOUND = 4;
> 181
> 182 alias WORD FILEOP_FLAGS, PRINTEROP_FLAGS;
> 183 alias HANDLE HDROP;
> 184
> 185 align(2):
> 186
> 187 struct APPBARDATA {
> 188 DWORD cbSize = APPBARDATA.sizeof;
> 189 HWND hWnd;
> 190 UINT uCallbackMessage;
> 191 UINT uEdge;
> 192 RECT rc;
> 193 LPARAM lParam;
> 194 }
> 195 alias APPBARDATA* PAPPBARDATA;
5 196
6 import win32.windef; | 197 struct NOTIFYICONDATAA {
7 import win32.winbase; | 198 DWORD cbSize = NOTIFYICONDATAA.sizeof;
8 import win32.winuser; | 199 HWND hWnd;
> 200 UINT uID;
> 201 UINT uFlags;
> 202 UINT uCallbackMessage;
> 203 HICON hIcon;
> 204 static if (_WIN32_IE >= 0x500) {
> 205 CHAR[128] szTip;
> 206 DWORD dwState;
> 207 DWORD dwStateMask;
> 208 CHAR[256] szInfo;
> 209 union {
> 210 UINT uTimeout;
> 211 UINT uVersion;
> 212 }
> 213 CHAR[64] szInfoTitle;
> 214 DWORD dwInfoFlags;
> 215 } else {
> 216 CHAR[64] szTip;
> 217 }
> 218 static if (_WIN32_IE >= 0x600) {
> 219 GUID guidItem;
> 220 }
> 221 }
> 222 alias NOTIFYICONDATAA* PNOTIFYICONDATAA;
9 223
10 // #ifndef _INC_SHELLAPI | 224 struct NOTIFYICONDATAW {
11 // #define _INC_SHELLAPI | 225 DWORD cbSize = NOTIFYICONDATAW.sizeof;
> 226 HWND hWnd;
> 227 UINT uID;
> 228 UINT uFlags;
> 229 UINT uCallbackMessage;
> 230 HICON hIcon;
> 231 static if (_WIN32_IE >= 0x500) {
> 232 WCHAR[128] szTip;
> 233 DWORD dwState;
> 234 DWORD dwStateMask;
> 235 WCHAR[256] szInfo;
> 236 union {
> 237 UINT uTimeout;
> 238 UINT uVersion;
> 239 }
> 240 WCHAR[64] szInfoTitle;
> 241 DWORD dwInfoFlags;
> 242 } else {
> 243 WCHAR[64] szTip;
> 244 }
> 245 static if (_WIN32_IE >= 0x600) {
> 246 GUID guidItem;
> 247 }
> 248 }
> 249 alias NOTIFYICONDATAW* PNOTIFYICONDATAW;
12 250
13 // #ifndef WINSHELLAPI | 251 struct SHELLEXECUTEINFOA {
14 // #if !defined(_SHELL32_) | 252 DWORD cbSize = SHELLEXECUTEINFOA.sizeof;
15 // #define WINSHELLAPI DECLSPEC_IMPORT | 253 ULONG fMask;
16 // #else | 254 HWND hwnd;
17 // #... | 255 LPCSTR lpVerb;
18 // #endif | 256 LPCSTR lpFile;
19 // #endif // WINSHELLAPI | 257 LPCSTR lpParameters;
> 258 LPCSTR lpDirectory;
> 259 int nShow;
> 260 HINSTANCE hInstApp;
> 261 PVOID lpIDList;
> 262 LPCSTR lpClass;
> 263 HKEY hkeyClass;
> 264 DWORD dwHotKey;
> 265 HANDLE hIcon;
> 266 HANDLE hProcess;
> 267 }
> 268 alias SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA;
20 269
21 // #ifndef SHSTDAPI | 270 struct SHELLEXECUTEINFOW {
22 // #if !defined(_SHELL32_) | 271 DWORD cbSize = SHELLEXECUTEINFOW.sizeof;
23 // #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE | 272 ULONG fMask;
24 // #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE | 273 HWND hwnd;
25 // #else | 274 LPCWSTR lpVerb;
26 // #... | 275 LPCWSTR lpFile;
27 // #... | 276 LPCWSTR lpParameters;
28 // #endif | 277 LPCWSTR lpDirectory;
29 // #endif // SHSTDAPI | 278 int nShow;
> 279 HINSTANCE hInstApp;
> 280 PVOID lpIDList;
> 281 LPCWSTR lpClass;
> 282 HKEY hkeyClass;
> 283 DWORD dwHotKey;
> 284 HANDLE hIcon;
> 285 HANDLE hProcess;
> 286 }
> 287 alias SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW;
30 288
31 // #ifndef SHDOCAPI | 289 struct SHFILEOPSTRUCTA {
32 // #if !defined(_SHDOCVW_) | 290 HWND hwnd;
33 // #define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE | 291 UINT wFunc;
34 // #define SHDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE | 292 LPCSTR pFrom;
35 // #else | 293 LPCSTR pTo;
36 // #... | 294 FILEOP_FLAGS fFlags;
37 // #... | 295 BOOL fAnyOperationsAborted;
38 // #endif | 296 PVOID hNameMappings;
39 // #endif // SHDOCAPI | 297 LPCSTR lpszProgressTitle;
> 298 }
> 299 alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA;
40 300
41 // #if !defined(_WIN64) | 301 struct SHFILEOPSTRUCTW {
42 align(1): | 302 HWND hwnd;
43 // #endif | 303 UINT wFunc;
44 <
> 304 LPCWSTR pFrom;
45 // #ifdef __cplusplus | 305 LPCWSTR pTo;
46 // extern "C" { /* Assume C declarations for C++ */ | 306 FILEOP_FLAGS fFlags;
47 // #endif /* __cplusplus */ | 307 BOOL fAnyOperationsAborted;
48 <
> 308 PVOID hNameMappings;
49 alias void* HDROP; | 309 LPCWSTR lpszProgressTitle;
50 | 310 }
51 extern(Windows) export UINT DragQueryFileA(HDROP,UINT,LPSTR,UINT); | 311 alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW;
52 extern(Windows) export UINT DragQueryFileW(HDROP,UINT,LPWSTR,UINT); <
53 // #ifdef UNICODE <
54 alias DragQueryFileW DragQueryFile; <
55 // #else <
56 // #... <
57 // #endif // !UNICODE <
58 extern(Windows) export BOOL DragQueryPoint(HDROP,LPPOINT); <
59 extern(Windows) export void DragFinish(HDROP); <
60 extern(Windows) export void DragAcceptFiles(HWND,BOOL); <
61 <
62 extern(Windows) export HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LP <
63 extern(Windows) export HINSTANCE ShellExecuteW(HWND hwnd, LPCWSTR lpOperation, L <
64 // #ifdef UNICODE <
65 alias ShellExecuteW ShellExecute; <
66 // #else <
67 // #... <
68 // #endif // !UNICODE <
69 extern(Windows) export HINSTANCE FindExecutableA(LPCSTR lpFile, LPCSTR lpDirecto <
70 extern(Windows) export HINSTANCE FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirec <
71 // #ifdef UNICODE <
72 alias FindExecutableW FindExecutable; <
73 // #else <
74 // #... <
75 // #endif // !UNICODE <
76 extern(Windows) export LPWSTR * CommandLineToArgvW(LPCWSTR lpCmdLine, int*pNumAr <
77 312
78 extern(Windows) export INT ShellAboutA(HWND hWnd, LPCSTR szApp, LPCSTR szOtherSt | 313 struct SHFILEINFOA {
79 extern(Windows) export INT ShellAboutW(HWND hWnd, LPCWSTR szApp, LPCWSTR szOther | 314 HICON hIcon;
80 // #ifdef UNICODE | 315 int iIcon;
81 alias ShellAboutW ShellAbout; | 316 DWORD dwAttributes;
82 // #else | 317 CHAR[MAX_PATH] szDisplayName;
83 // #... | 318 CHAR[80] szTypeName;
84 // #endif // !UNICODE <
85 extern(Windows) export HICON DuplicateIcon(HINSTANCE hInst, HICON hIcon); <
86 extern(Windows) export HICON ExtractAssociatedIconA(HINSTANCE hInst, LPSTR lpIco <
87 extern(Windows) export HICON ExtractAssociatedIconW(HINSTANCE hInst, LPWSTR lpIc <
88 // #ifdef UNICODE <
89 alias ExtractAssociatedIconW ExtractAssociatedIcon; <
90 // #else <
91 // #... <
92 // #endif // !UNICODE <
93 extern(Windows) export HICON ExtractIconA(HINSTANCE hInst, LPCSTR lpszExeFileNam <
94 extern(Windows) export HICON ExtractIconW(HINSTANCE hInst, LPCWSTR lpszExeFileNa <
95 // #ifdef UNICODE <
96 alias ExtractIconW ExtractIcon; <
97 // #else <
98 // #... <
99 // #endif // !UNICODE <
100 <
101 // #if(WINVER >= 0x0400) <
102 struct _DRAGINFOA { <
103 UINT uSize; <
104 POINT pt; <
105 BOOL fNC; <
106 LPSTR lpFileList; <
107 DWORD grfKeyState; <
108 } 319 }
109 alias _DRAGINFOA DRAGINFOA; <
110 alias _DRAGINFOA* LPDRAGINFOA; <
111 <
112 struct _DRAGINFOW { <
113 UINT uSize; <
114 POINT pt; <
115 BOOL fNC; <
116 LPWSTR lpFileList; <
117 DWORD grfKeyState; <
118 } <
119 alias _DRAGINFOW DRAGINFOW; <
120 alias _DRAGINFOW* LPDRAGINFOW; <
121 <
122 // #ifdef UNICODE <
123 alias DRAGINFOW DRAGINFO; <
124 alias LPDRAGINFOW LPDRAGINFO; <
125 // #else <
126 // ... <
127 // #endif // UNICODE <
128 320
129 enum : uint { ABM_NEW = 0x00000000 } | 321 struct SHFILEINFOW {
130 enum : uint { ABM_REMOVE = 0x00000001 } | 322 HICON hIcon;
131 enum : uint { ABM_QUERYPOS = 0x00000002 } | 323 int iIcon;
132 enum : uint { ABM_SETPOS = 0x00000003 } | 324 DWORD dwAttributes;
133 enum : uint { ABM_GETSTATE = 0x00000004 } | 325 WCHAR[MAX_PATH] szDisplayName;
134 enum : uint { ABM_GETTASKBARPOS = 0x00000005 } | 326 WCHAR[80] szTypeName;
135 enum : uint { ABM_ACTIVATE = 0x00000006 } <
136 enum : uint { ABM_GETAUTOHIDEBAR = 0x00000007 } <
137 enum : uint { ABM_SETAUTOHIDEBAR = 0x00000008 } <
138 <
139 enum : uint { ABM_WINDOWPOSCHANGED = 0x0000009 } <
140 enum : uint { ABM_SETSTATE = 0x0000000a } <
141 <
142 enum : uint { ABN_STATECHANGE = 0x0000000 } <
143 enum : uint { ABN_POSCHANGED = 0x0000001 } <
144 enum : uint { ABN_FULLSCREENAPP = 0x0000002 } <
145 enum : uint { ABN_WINDOWARRANGE = 0x0000003 } <
146 <
147 enum : uint { ABS_AUTOHIDE = 0x0000001 } <
148 enum : uint { ABS_ALWAYSONTOP = 0x0000002 } <
149 <
150 enum : uint { ABE_LEFT = 0 } <
151 enum : uint { ABE_TOP = 1 } <
152 enum : uint { ABE_RIGHT = 2 } <
153 enum : uint { ABE_BOTTOM = 3 } <
154 <
155 struct _AppBarData { <
156 DWORD cbSize; <
157 HWND hWnd; <
158 UINT uCallbackMessage; <
159 UINT uEdge; <
160 RECT rc; <
161 LPARAM lParam; <
162 } 327 }
163 alias _AppBarData APPBARDATA; <
164 alias _AppBarData* PAPPBARDATA; <
165 328
166 extern(Windows) export UINT_PTR SHAppBarMessage(DWORD dwMessage, PAPPBARDATA pDa | 329 struct SHQUERYRBINFO {
167 <
> 330 DWORD cbSize = SHQUERYRBINFO.sizeof;
168 extern(Windows) export DWORD DoEnvironmentSubstA(LPSTR szString, UINT cchString) | 331 long i64Size;
169 extern(Windows) export DWORD DoEnvironmentSubstW(LPWSTR szString, UINT cchString | 332 long i64NumItems;
170 // #ifdef UNICODE <
171 alias DoEnvironmentSubstW DoEnvironmentSubst; <
172 // #else <
173 // #... <
174 // #endif // !UNICODE <
175 <
176 // #define EIRESID(x) (-1 * (int)(x)) <
177 extern(Windows) export UINT ExtractIconExA(LPCSTR lpszFile, int nIconIndex, HICO <
178 extern(Windows) export UINT ExtractIconExW(LPCWSTR lpszFile, int nIconIndex, HIC <
179 // #ifdef UNICODE <
180 alias ExtractIconExW ExtractIconEx; <
181 // #else <
182 // #... <
183 // #endif // !UNICODE <
184 <
185 // #ifndef FO_MOVE //these need to be kept in sync with the ones in shlobj.h <
186 <
187 enum : uint { FO_MOVE = 0x0001 } <
188 enum : uint { FO_COPY = 0x0002 } <
189 enum : uint { FO_DELETE = 0x0003 } <
190 enum : uint { FO_RENAME = 0x0004 } <
191 <
192 enum : uint { FOF_MULTIDESTFILES = 0x0001 } <
193 enum : uint { FOF_CONFIRMMOUSE = 0x0002 } <
194 enum : uint { FOF_SILENT = 0x0004 } <
195 enum : uint { FOF_RENAMEONCOLLISION = 0x0008 } <
196 enum : uint { FOF_NOCONFIRMATION = 0x0010 } <
197 enum : uint { FOF_WANTMAPPINGHANDLE = 0x0020 } <
198 <
199 enum : uint { FOF_ALLOWUNDO = 0x0040 } <
200 enum : uint { FOF_FILESONLY = 0x0080 } <
201 enum : uint { FOF_SIMPLEPROGRESS = 0x0100 } <
202 enum : uint { FOF_NOCONFIRMMKDIR = 0x0200 } <
203 enum : uint { FOF_NOERRORUI = 0x0400 } <
204 enum : uint { FOF_NOCOPYSECURITYATTRIBS = 0x0800 } <
205 enum : uint { FOF_NORECURSION = 0x1000 } <
206 // #if (_WIN32_IE >= 0x0500) <
207 enum : uint { FOF_NO_CONNECTED_ELEMENTS = 0x2000 } <
208 enum : uint { FOF_WANTNUKEWARNING = 0x4000 } <
209 // #endif // (_WIN32_IE >= 0x500) <
210 // #if (_WIN32_WINNT >= 0x0501) <
211 enum : uint { FOF_NORECURSEREPARSE = 0x8000 } <
212 // #endif // (_WIN32_WINNT >= 0x501) <
213 <
214 alias WORD FILEOP_FLAGS; <
215 <
216 enum : uint { PO_DELETE = 0x0013 } <
217 enum : uint { PO_RENAME = 0x0014 } <
218 enum : uint { PO_PORTCHANGE = 0x0020 } <
219 <
220 enum : uint { PO_REN_PORT = 0x0034 } <
221 <
222 alias WORD PRINTEROP_FLAGS; <
223 <
224 // #endif // FO_MOVE <
225 <
226 struct _SHFILEOPSTRUCTA { <
227 HWND hwnd; <
228 UINT wFunc; <
229 LPCSTR pFrom; <
230 LPCSTR pTo; <
231 FILEOP_FLAGS fFlags; <
232 BOOL fAnyOperationsAborted; <
233 LPVOID hNameMappings; <
234 LPCSTR lpszProgressTitle; <
235 } <
236 alias _SHFILEOPSTRUCTA SHFILEOPSTRUCTA; <
237 alias _SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA; <
238 <
239 struct _SHFILEOPSTRUCTW { <
240 HWND hwnd; <
241 UINT wFunc; <
242 LPCWSTR pFrom; <
243 LPCWSTR pTo; <
244 FILEOP_FLAGS fFlags; <
245 BOOL fAnyOperationsAborted; <
246 LPVOID hNameMappings; <
247 LPCWSTR lpszProgressTitle; <
248 } 333 }
249 alias _SHFILEOPSTRUCTW SHFILEOPSTRUCTW; | 334 alias SHQUERYRBINFO* LPSHQUERYRBINFO;
250 alias _SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW; <
251 <
252 // #ifdef UNICODE <
253 alias SHFILEOPSTRUCTW SHFILEOPSTRUCT; <
254 alias LPSHFILEOPSTRUCTW LPSHFILEOPSTRUCT; <
255 // #else <
256 // ... <
257 // #endif // UNICODE <
258 335
> 336 extern (Windows) {
> 337 LPWSTR* CommandLineToArgvW(LPCWSTR, int*);
> 338 void DragAcceptFiles(HWND, BOOL);
> 339 void DragFinish(HDROP);
> 340 UINT DragQueryFileA(HDROP, UINT, LPSTR, UINT);
> 341 UINT DragQueryFileW(HDROP, UINT, LPWSTR, UINT);
> 342 BOOL DragQueryPoint(HDROP, LPPOINT);
> 343 HICON DuplicateIcon(HINSTANCE, HICON);
> 344 HICON ExtractAssociatedIconA(HINSTANCE, LPCSTR, PWORD);
> 345 HICON ExtractAssociatedIconW(HINSTANCE, LPCWSTR, PWORD);
> 346 HICON ExtractIconA(HINSTANCE, LPCSTR, UINT);
> 347 HICON ExtractIconW(HINSTANCE, LPCWSTR, UINT);
> 348 UINT ExtractIconExA(LPCSTR, int, HICON*, HICON*, UINT);
> 349 UINT ExtractIconExW(LPCWSTR, int, HICON*, HICON*, UINT);
> 350 HINSTANCE FindExecutableA(LPCSTR, LPCSTR, LPSTR);
> 351 HINSTANCE FindExecutableW(LPCWSTR, LPCWSTR, LPWSTR);
> 352 UINT SHAppBarMessage(DWORD, PAPPBARDATA);
> 353 BOOL Shell_NotifyIconA(DWORD, PNOTIFYICONDATAA);
> 354 BOOL Shell_NotifyIconW(DWORD, PNOTIFYICONDATAW);
> 355 int ShellAboutA(HWND, LPCSTR, LPCSTR, HICON);
> 356 int ShellAboutW(HWND, LPCWSTR, LPCWSTR, HICON);
> 357 HINSTANCE ShellExecuteA(HWND, LPCSTR, LPCSTR, LPCSTR, LPCSTR, INT);
> 358 HINSTANCE ShellExecuteW(HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, INT);
> 359 BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA);
> 360 BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW);
259 extern(Windows) export int SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp); | 361 int SHFileOperationA(LPSHFILEOPSTRUCTA);
260 extern(Windows) export int SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp); | 362 int SHFileOperationW(LPSHFILEOPSTRUCTW);
261 // #ifdef UNICODE <
262 alias SHFileOperationW SHFileOperation; <
263 // #else <
264 // #... <
265 // #endif // !UNICODE <
266 extern(Windows) export void SHFreeNameMappings(HANDLE hNameMappings); | 363 void SHFreeNameMappings(HANDLE);
267 <
268 struct _SHNAMEMAPPINGA { <
269 LPSTR pszOldPath; <
270 LPSTR pszNewPath; <
271 int cchOldPath; <
272 int cchNewPath; <
273 } <
274 alias _SHNAMEMAPPINGA SHNAMEMAPPINGA; <
275 alias _SHNAMEMAPPINGA* LPSHNAMEMAPPINGA; <
276 <
277 struct _SHNAMEMAPPINGW { <
278 LPWSTR pszOldPath; <
279 LPWSTR pszNewPath; <
280 int cchOldPath; <
281 int cchNewPath; <
282 } <
283 alias _SHNAMEMAPPINGW SHNAMEMAPPINGW; <
284 alias _SHNAMEMAPPINGW* LPSHNAMEMAPPINGW; <
285 <
286 // #ifdef UNICODE <
287 alias SHNAMEMAPPINGW SHNAMEMAPPING; | 364 DWORD SHGetFileInfoA(LPCSTR, DWORD, SHFILEINFOA*, UINT, UINT);
288 alias LPSHNAMEMAPPINGW LPSHNAMEMAPPING; | 365 DWORD SHGetFileInfoW(LPCWSTR, DWORD, SHFILEINFOW*, UINT, UINT);
289 // #else | 366 HRESULT SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
290 // ... | 367 HRESULT SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
291 // #endif // UNICODE | 368 HRESULT SHEmptyRecycleBinA(HWND, LPCSTR, DWORD);
292 <
293 enum : uint { SE_ERR_FNF = 2 } <
294 enum : uint { SE_ERR_PNF = 3 } <
295 enum : uint { SE_ERR_ACCESSDENIED = 5 } <
296 enum : uint { SE_ERR_OOM = 8 } <
297 enum : uint { SE_ERR_DLLNOTFOUND = 32 } <
298 <
299 // #endif /* WINVER >= 0x0400 */ <
300 <
301 enum : uint { SE_ERR_SHARE = 26 } <
302 enum : uint { SE_ERR_ASSOCINCOMPLETE = 27 } <
303 enum : uint { SE_ERR_DDETIMEOUT = 28 } <
304 enum : uint { SE_ERR_DDEFAIL = 29 } <
305 enum : uint { SE_ERR_DDEBUSY = 30 } <
306 enum : uint { SE_ERR_NOASSOC = 31 } <
307 <
308 // #if(WINVER >= 0x0400) <
309 <
310 enum : uint { SEE_MASK_CLASSNAME = 0x00000001 } <
311 enum : uint { SEE_MASK_CLASSKEY = 0x00000003 } <
312 <
313 enum : uint { SEE_MASK_IDLIST = 0x00000004 } <
314 enum : uint { SEE_MASK_INVOKEIDLIST = 0x0000000c } <
315 enum : uint { SEE_MASK_ICON = 0x00000010 } <
316 enum : uint { SEE_MASK_HOTKEY = 0x00000020 } <
317 enum : uint { SEE_MASK_NOCLOSEPROCESS = 0x00000040 } <
318 enum : uint { SEE_MASK_CONNECTNETDRV = 0x00000080 } <
319 enum : uint { SEE_MASK_FLAG_DDEWAIT = 0x00000100 } <
320 enum : uint { SEE_MASK_DOENVSUBST = 0x00000200 } <
321 enum : uint { SEE_MASK_FLAG_NO_UI = 0x00000400 } <
322 enum : uint { SEE_MASK_UNICODE = 0x00004000 } <
323 enum : uint { SEE_MASK_NO_CONSOLE = 0x00008000 } <
324 enum : uint { SEE_MASK_ASYNCOK = 0x00100000 } <
325 enum : uint { SEE_MASK_HMONITOR = 0x00200000 } <
326 // #if (_WIN32_IE >= 0x0500) <
327 enum : uint { SEE_MASK_NOQUERYCLASSSTORE = 0x01000000 } <
328 enum : uint { SEE_MASK_WAITFORINPUTIDLE = 0x02000000 } <
329 // #endif // (_WIN32_IE >= 0x500) <
330 // #if (_WIN32_IE >= 0x0560) <
331 enum : uint { SEE_MASK_FLAG_LOG_USAGE = 0x04000000 } <
332 // #endif // (_WIN32_IE >= 0x560) <
333 <
334 // #ifndef DUMMYUNIONNAME <
335 // #ifdef NONAMELESSUNION <
336 // #... <
337 // #... <
338 // #... <
339 // #... <
340 // #... <
341 // #else <
342 // #define DUMMYUNIONNAME <
343 // #define DUMMYUNIONNAME2 <
344 // #define DUMMYUNIONNAME3 <
345 // #define DUMMYUNIONNAME4 <
346 // #define DUMMYUNIONNAME5 <
347 // #endif <
348 // #endif // DUMMYUNIONNAME <
349 <
350 struct _SHELLEXECUTEINFOA { <
351 DWORD cbSize; <
352 ULONG fMask; <
353 HWND hwnd; <
354 LPCSTR lpVerb; <
355 LPCSTR lpFile; <
356 LPCSTR lpParameters; <
357 LPCSTR lpDirectory; <
358 int nShow; <
359 HINSTANCE hInstApp; <
360 <
361 LPVOID lpIDList; <
362 LPCSTR lpClass; <
363 HKEY hkeyClass; <
364 DWORD dwHotKey; <
365 union { <
366 HANDLE hIcon; <
367 HANDLE hMonitor; <
> 369 HRESULT SHEmptyRecycleBinW(HWND, LPCWSTR, DWORD);
368 } 370 }
369 371
370 HANDLE hProcess; | 372 version (Unicode) {
371 } <
> 373 alias NOTIFYICONDATAW NOTIFYICONDATA;
372 alias _SHELLEXECUTEINFOA SHELLEXECUTEINFOA; | 374 alias SHELLEXECUTEINFOW SHELLEXECUTEINFO;
373 alias _SHELLEXECUTEINFOA* LPSHELLEXECUTEINFOA; | 375 alias SHFILEOPSTRUCTW SHFILEOPSTRUCT;
374 <
> 376 alias SHFILEINFOW SHFILEINFO;
375 struct _SHELLEXECUTEINFOW { | 377 alias DragQueryFileW DragQueryFile;
376 DWORD cbSize; | 378 alias ExtractAssociatedIconW ExtractAssociatedIcon;
377 ULONG fMask; | 379 alias ExtractIconW ExtractIcon;
378 HWND hwnd; | 380 alias ExtractIconExW ExtractIconEx;
379 LPCWSTR lpVerb; | 381 alias FindExecutableW FindExecutable;
380 LPCWSTR lpFile; | 382 alias Shell_NotifyIconW Shell_NotifyIcon;
381 LPCWSTR lpParameters; | 383 alias ShellAboutW ShellAbout;
382 LPCWSTR lpDirectory; | 384 alias ShellExecuteW ShellExecute;
383 int nShow; | 385 alias ShellExecuteExW ShellExecuteEx;
384 HINSTANCE hInstApp; | 386 alias SHFileOperationW SHFileOperation;
385 <
> 387 alias SHGetFileInfoW SHGetFileInfo;
386 LPVOID lpIDList; | 388 alias SHQueryRecycleBinW SHQueryRecycleBin;
387 LPCWSTR lpClass; | 389 alias SHEmptyRecycleBinW SHEmptyRecycleBin;
388 HKEY hkeyClass; | 390 } else {
389 DWORD dwHotKey; | 391 alias NOTIFYICONDATAA NOTIFYICONDATA;
390 union { | 392 alias SHELLEXECUTEINFOA SHELLEXECUTEINFO;
391 HANDLE hIcon; | 393 alias SHFILEOPSTRUCTA SHFILEOPSTRUCT;
392 HANDLE hMonitor; | 394 alias SHFILEINFOA SHFILEINFO;
> 395 alias DragQueryFileA DragQueryFile;
> 396 alias ExtractAssociatedIconA ExtractAssociatedIcon;
> 397 alias ExtractIconA ExtractIcon;
> 398 alias ExtractIconExA ExtractIconEx;
> 399 alias FindExecutableA FindExecutable;
> 400 alias Shell_NotifyIconA Shell_NotifyIcon;
> 401 alias ShellAboutA ShellAbout;
> 402 alias ShellExecuteA ShellExecute;
> 403 alias ShellExecuteExA ShellExecuteEx;
> 404 alias SHFileOperationA SHFileOperation;
> 405 alias SHGetFileInfoA SHGetFileInfo;
> 406 alias SHQueryRecycleBinA SHQueryRecycleBin;
> 407 alias SHEmptyRecycleBinA SHEmptyRecycleBin;
393 } 408 }
394 409
395 HANDLE hProcess; | 410 alias NOTIFYICONDATA* PNOTIFYICONDATA;
396 } <
397 alias _SHELLEXECUTEINFOW SHELLEXECUTEINFOW; <
398 alias _SHELLEXECUTEINFOW* LPSHELLEXECUTEINFOW; <
399 <
400 // #ifdef UNICODE <
401 alias SHELLEXECUTEINFOW SHELLEXECUTEINFO; | 411 alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO;
402 alias LPSHELLEXECUTEINFOW LPSHELLEXECUTEINFO; <
403 // #else <
404 // ... <
405 // #endif // UNICODE <
406 <
407 extern(Windows) export BOOL ShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo); <
408 extern(Windows) export BOOL ShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo); <
409 // #ifdef UNICODE <
410 alias ShellExecuteExW ShellExecuteEx; <
411 // #else <
412 // #... <
413 // #endif // !UNICODE <
414 extern(Windows) export void WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFile <
415 extern(Windows) export void WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFil <
416 // #ifdef UNICODE <
417 alias WinExecErrorW WinExecError; <
418 // #else <
419 // #... <
420 // #endif // !UNICODE <
421 <
422 struct _SHCREATEPROCESSINFOW { <
423 DWORD cbSize; <
424 ULONG fMask; <
425 HWND hwnd; <
426 LPCWSTR pszFile; <
427 LPCWSTR pszParameters; <
428 LPCWSTR pszCurrentDirectory; <
429 HANDLE hUserToken; <
430 LPSECURITY_ATTRIBUTES lpProcessAttributes; <
431 LPSECURITY_ATTRIBUTES lpThreadAttributes; <
432 BOOL bInheritHandles; <
433 DWORD dwCreationFlags; <
434 LPSTARTUPINFOW lpStartupInfo; <
435 LPPROCESS_INFORMATION lpProcessInformation; <
436 } <
437 alias _SHCREATEPROCESSINFOW SHCREATEPROCESSINFOW; <
438 alias _SHCREATEPROCESSINFOW* PSHCREATEPROCESSINFOW; <
439 <
440 extern(Windows) export BOOL SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW pscpi); <
441 <
442 struct _SHQUERYRBINFO { <
443 DWORD cbSize; <
444 // #if !defined(_MAC) || defined(_MAC_INT_64) <
445 __int64 i64Size; <
446 __int64 i64NumItems; <
447 // #else <
448 // ... <
449 // #endif <
450 } <
451 alias _SHQUERYRBINFO SHQUERYRBINFO; <
452 alias _SHQUERYRBINFO* LPSHQUERYRBINFO; <
453 <
454 enum : uint { SHERB_NOCONFIRMATION = 0x00000001 } <
455 enum : uint { SHERB_NOPROGRESSUI = 0x00000002 } <
456 enum : uint { SHERB_NOSOUND = 0x00000004 } <
457 <
458 extern(Windows) export HRESULT SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYR <
459 extern(Windows) export HRESULT SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERY <
460 // #ifdef UNICODE <
461 alias SHQueryRecycleBinW SHQueryRecycleBin; <
462 // #else <
463 // #... <
464 // #endif // !UNICODE <
465 extern(Windows) export HRESULT SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, <
466 extern(Windows) export HRESULT SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath <
467 // #ifdef UNICODE <
468 alias SHEmptyRecycleBinW SHEmptyRecycleBin; <
469 // #else <
470 // #... <
471 // #endif // !UNICODE <
472 <
473 struct _NOTIFYICONDATAA { <
474 DWORD cbSize; <
475 HWND hWnd; <
476 UINT uID; <
477 UINT uFlags; <
478 UINT uCallbackMessage; <
479 HICON hIcon; <
480 // #if (_WIN32_IE < 0x0500) <
481 // ... <
482 // #else <
483 CHAR szTip[128]; <
484 // #endif <
485 // #if (_WIN32_IE >= 0x0500) <
486 DWORD dwState; <
487 DWORD dwStateMask; <
488 CHAR szInfo[256]; <
489 union { <
490 UINT uTimeout; <
491 UINT uVersion; <
492 } <
493 <
494 CHAR szInfoTitle[64]; <
495 DWORD dwInfoFlags; <
496 // #endif <
497 // #if (_WIN32_IE >= 0x600) <
498 GUID guidItem; <
499 // #endif <
500 } <
501 alias _NOTIFYICONDATAA NOTIFYICONDATAA; <
502 alias _NOTIFYICONDATAA* PNOTIFYICONDATAA; <
503 <
504 struct _NOTIFYICONDATAW { <
505 DWORD cbSize; <
506 HWND hWnd; <
507 UINT uID; <
508 UINT uFlags; <
509 UINT uCallbackMessage; <
510 HICON hIcon; <
511 // #if (_WIN32_IE < 0x0500) <
512 // ... <
513 // #else <
514 WCHAR szTip[128]; <
515 // #endif <
516 // #if (_WIN32_IE >= 0x0500) <
517 DWORD dwState; <
518 DWORD dwStateMask; <
519 WCHAR szInfo[256]; <
520 union { <
521 UINT uTimeout; <
522 UINT uVersion; <
523 } <
524 <
525 WCHAR szInfoTitle[64]; <
526 DWORD dwInfoFlags; <
527 // #endif <
528 // #if (_WIN32_IE >= 0x600) <
529 GUID guidItem; <
530 // #endif <
531 } <
532 alias _NOTIFYICONDATAW NOTIFYICONDATAW; <
533 alias _NOTIFYICONDATAW* PNOTIFYICONDATAW; <
534 <
535 // #ifdef UNICODE <
536 alias NOTIFYICONDATAW NOTIFYICONDATA; <
537 alias PNOTIFYICONDATAW PNOTIFYICONDATA; <
538 // #else <
539 // ... <
540 // #endif // UNICODE <
541 <
542 // #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64]) <
543 // #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64]) <
544 // #ifdef UNICODE <
545 // #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE <
546 // #else <
547 // #... <
548 // #endif <
549 <
550 // #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem) <
551 // #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem) <
552 // #ifdef UNICODE <
553 // #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE <
554 // #else <
555 // #... <
556 // #endif <
557 <
558 // #if (_WIN32_IE >= 0x0500) <
559 const uint NIN_SELECT = WM_USER + 0; <
560 enum : uint { NINF_KEY = 0x1 } <
561 const uint NIN_KEYSELECT = NIN_SELECT | NINF_KEY; <
562 // #endif <
563 <
564 // #if (_WIN32_IE >= 0x0501) <
565 const uint NIN_BALLOONSHOW = WM_USER + 2; <
566 const uint NIN_BALLOONHIDE = WM_USER + 3; <
567 const uint NIN_BALLOONTIMEOUT = WM_USER + 4; <
568 const uint NIN_BALLOONUSERCLICK = WM_USER + 5; <
569 // #endif <
570 <
571 enum : uint { NIM_ADD = 0x00000000 } <
572 enum : uint { NIM_MODIFY = 0x00000001 } <
573 enum : uint { NIM_DELETE = 0x00000002 } <
574 // #if (_WIN32_IE >= 0x0500) <
575 enum : uint { NIM_SETFOCUS = 0x00000003 } <
576 enum : uint { NIM_SETVERSION = 0x00000004 } <
577 enum : uint { NOTIFYICON_VERSION = 3 } <
578 // #endif <
579 <
580 enum : uint { NIF_MESSAGE = 0x00000001 } <
581 enum : uint { NIF_ICON = 0x00000002 } <
582 enum : uint { NIF_TIP = 0x00000004 } <
583 // #if (_WIN32_IE >= 0x0500) <
584 enum : uint { NIF_STATE = 0x00000008 } <
585 enum : uint { NIF_INFO = 0x00000010 } <
586 // #endif <
587 // #if (_WIN32_IE >= 0x600) <
588 enum : uint { NIF_GUID = 0x00000020 } <
589 // #endif <
590 <
591 // #if (_WIN32_IE >= 0x0500) <
592 enum : uint { NIS_HIDDEN = 0x00000001 } <
593 enum : uint { NIS_SHAREDICON = 0x00000002 } <
594 <
595 enum : uint { NIIF_NONE = 0x00000000 } <
596 <
597 enum : uint { NIIF_INFO = 0x00000001 } <
598 enum : uint { NIIF_WARNING = 0x00000002 } <
599 enum : uint { NIIF_ERROR = 0x00000003 } <
600 enum : uint { NIIF_ICON_MASK = 0x0000000F } <
601 // #if (_WIN32_IE >= 0x0501) <
602 enum : uint { NIIF_NOSOUND = 0x00000010 } <
603 // #endif <
604 // #endif <
605 <
606 extern(Windows) export BOOL Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA <
607 extern(Windows) export BOOL Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW <
608 // #ifdef UNICODE <
609 alias Shell_NotifyIconW Shell_NotifyIcon; <
610 // #else <
611 // #... <
612 // #endif // !UNICODE <
613 <
614 // #ifndef SHFILEINFO_DEFINED <
615 // #define SHFILEINFO_DEFINED <
616 <
617 struct _SHFILEINFOA { <
618 HICON hIcon; <
619 int iIcon; <
620 DWORD dwAttributes; <
621 CHAR szDisplayName[MAX_PATH]; <
622 CHAR szTypeName[80]; <
623 } <
624 alias _SHFILEINFOA SHFILEINFOA; <
625 <
626 struct _SHFILEINFOW { <
627 HICON hIcon; <
628 int iIcon; <
629 DWORD dwAttributes; <
630 WCHAR szDisplayName[MAX_PATH]; <
631 WCHAR szTypeName[80]; <
632 } <
633 alias _SHFILEINFOW SHFILEINFOW; <
634 <
635 // #ifdef UNICODE <
636 alias SHFILEINFOW SHFILEINFO; | 412 alias SHFILEOPSTRUCT* LPSHFILEOPSTRUCT;
637 // #else <
638 // ... <
639 // #endif // UNICODE <
640 <
641 // #endif // !SHFILEINFO_DEFINED <
642 <
643 enum : uint { SHGFI_ICON = 0x000000100 } <
644 enum : uint { SHGFI_DISPLAYNAME = 0x000000200 } <
645 enum : uint { SHGFI_TYPENAME = 0x000000400 } <
646 enum : uint { SHGFI_ATTRIBUTES = 0x000000800 } <
647 enum : uint { SHGFI_ICONLOCATION = 0x000001000 } <
648 enum : uint { SHGFI_EXETYPE = 0x000002000 } <
649 enum : uint { SHGFI_SYSICONINDEX = 0x000004000 } <
650 enum : uint { SHGFI_LINKOVERLAY = 0x000008000 } <
651 enum : uint { SHGFI_SELECTED = 0x000010000 } <
652 enum : uint { SHGFI_ATTR_SPECIFIED = 0x000020000 } <
653 enum : uint { SHGFI_LARGEICON = 0x000000000 } <
654 enum : uint { SHGFI_SMALLICON = 0x000000001 } <
655 enum : uint { SHGFI_OPENICON = 0x000000002 } <
656 enum : uint { SHGFI_SHELLICONSIZE = 0x000000004 } <
657 enum : uint { SHGFI_PIDL = 0x000000008 } <
658 enum : uint { SHGFI_USEFILEATTRIBUTES = 0x000000010 } <
659 <
660 // #if (_WIN32_IE >= 0x0500) <
661 enum : uint { SHGFI_ADDOVERLAYS = 0x000000020 } <
662 enum : uint { SHGFI_OVERLAYINDEX = 0x000000040 } <
663 <
664 // #endif <
665 <
666 extern(Windows) export DWORD_PTR SHGetFileInfoA(LPCSTR pszPath, DWORD dwFileAttr <
667 extern(Windows) export DWORD_PTR SHGetFileInfoW(LPCWSTR pszPath, DWORD dwFileAtt <
668 // #ifdef UNICODE <
669 alias SHGetFileInfoW SHGetFileInfo; <
670 // #else <
671 // #... <
672 // #endif // !UNICODE <
673 <
674 alias SHGetDiskFreeSpaceEx SHGetDiskFreeSpace; <
675 <
676 extern(Windows) export BOOL SHGetDiskFreeSpaceExA(LPCSTR pszDirectoryName, ULARG <
677 extern(Windows) export BOOL SHGetDiskFreeSpaceExW(LPCWSTR pszDirectoryName, ULAR <
678 // #ifdef UNICODE <
679 alias SHGetDiskFreeSpaceExW SHGetDiskFreeSpaceEx; <
680 // #else <
681 // #... <
682 // #endif // !UNICODE <
683 extern(Windows) export BOOL SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, L <
684 extern(Windows) export BOOL SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, <
685 // #ifdef UNICODE <
686 alias SHGetNewLinkInfoW SHGetNewLinkInfo; <
687 // #else <
688 // #... <
689 // #endif // !UNICODE <
690 <
691 enum : uint { SHGNLI_PIDL = 0x000000001 } <
692 enum : uint { SHGNLI_PREFIXNAME = 0x000000002 } <
693 enum : uint { SHGNLI_NOUNIQUE = 0x000000004 } <
694 // #if (_WIN32_IE >= 0x0501) <
695 enum : uint { SHGNLI_NOLNK = 0x000000008 } <
696 // #endif // _WIN2_IE >= 0x0501 <
697 <
698 enum : uint { PRINTACTION_OPEN = 0 } <
699 enum : uint { PRINTACTION_PROPERTIES = 1 } <
700 enum : uint { PRINTACTION_NETINSTALL = 2 } <
701 enum : uint { PRINTACTION_NETINSTALLLINK = 3 } <
702 enum : uint { PRINTACTION_TESTPAGE = 4 } <
703 enum : uint { PRINTACTION_OPENNETPRN = 5 } <
704 // #ifdef WINNT <
705 // #... <
706 // #... <
707 // #endif <
708 <
709 extern(Windows) export BOOL SHInvokePrinterCommandA(HWND hwnd, UINT uAction, LPC <
710 extern(Windows) export BOOL SHInvokePrinterCommandW(HWND hwnd, UINT uAction, LPC <
711 // #ifdef UNICODE <
712 alias SHInvokePrinterCommandW SHInvokePrinterCommand; <
713 // #else <
714 // #... <
715 // #endif // !UNICODE <
716 <
717 // #endif /* WINVER >= 0x0400 */ <
718 <
719 // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0500) <
720 <
721 extern(Windows) export HRESULT SHLoadNonloadedIconOverlayIdentifiers(); <
722 <
723 extern(Windows) export HRESULT SHIsFileAvailableOffline(LPCWSTR pwszPath, LPDWOR <
724 <
725 enum : uint { OFFLINE_STATUS_LOCAL = 0x0001 } <
726 enum : uint { OFFLINE_STATUS_REMOTE = 0x0002 } <
727 enum : uint { OFFLINE_STATUS_INCOMPLETE = 0x0004 } <
728 <
729 // #endif <
730 <
731 extern(Windows) export HRESULT SHSetLocalizedName(LPWSTR pszPath, LPCWSTR pszRes <
732 <
733 // #if _WIN32_IE >= 0x0600 <
734 <
735 extern(Windows) export HRESULT SHEnumerateUnreadMailAccountsA(HKEY hKeyUser, DWO <
736 extern(Windows) export HRESULT SHEnumerateUnreadMailAccountsW(HKEY hKeyUser, DWO <
737 // #ifdef UNICODE <
738 alias SHEnumerateUnreadMailAccountsW SHEnumerateUnreadMailAccounts; <
739 // #else <
740 // #... <
741 // #endif // !UNICODE <
742 extern(Windows) export HRESULT SHGetUnreadMailCountA(HKEY hKeyUser, LPCSTR pszMa <
743 extern(Windows) export HRESULT SHGetUnreadMailCountW(HKEY hKeyUser, LPCWSTR pszM <
744 // #ifdef UNICODE <
745 alias SHGetUnreadMailCountW SHGetUnreadMailCount; <
746 // #else <
747 // #... <
748 // #endif // !UNICODE <
749 extern(Windows) export HRESULT SHSetUnreadMailCountA(LPCSTR pszMailAddress, DWOR <
750 extern(Windows) export HRESULT SHSetUnreadMailCountW(LPCWSTR pszMailAddress, DWO <
751 // #ifdef UNICODE <
752 alias SHSetUnreadMailCountW SHSetUnreadMailCount; <
753 // #else <
754 // #... <
755 // #endif // !UNICODE <
756 <
757 // #endif /* _WIN32_IE >= 0x0600 */ <
758 <
759 // #if _WIN32_IE >= 0x0600 <
760 <
761 extern(Windows) export HRESULT SHGetImageList(int iImageList, REFIID riid, void <
762 <
763 enum : uint { SHIL_LARGE = 0 } <
764 enum : uint { SHIL_SMALL = 1 } <
765 enum : uint { SHIL_EXTRALARGE = 2 } <
766 enum : uint { SHIL_SYSSMALL = 3 } <
767 <
768 alias SHIL_SYSSMALL SHIL_LAST; <
769 <
770 extern(Windows) alias HRESULT function( LPCWSTR pszPath) PFNCANSHAREFOLDERW; <
771 extern(Windows) alias HRESULT function( HWND hwndParent, LPCWSTR pszPath) PFNSH <
772 <
773 // #endif /* _WIN32_IE >= 0x0600 */ <
774 <
775 // #ifdef __cplusplus <
776 // } <
777 // #endif /* __cplusplus */ <
778 <
779 // #if !defined(_WIN64) <
780 align: <
781 // #endif <
782 <
783 // #endif /* _INC_SHELLAPI */ <
784 <