Hex Artifact Content

Not logged in

Artifact 7a873e3005c133e6b6bafde832625972e3f54a90:


0000: 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e 61 6e 73  module win32.ans
0010: 69 2e 73 68 65 6c 6c 61 70 69 3b 0d 0a 0d 0a 2f  i.shellapi;..../
0020: 2f 20 54 72 61 6e 73 6c 61 74 65 64 20 66 72 6f  / Translated fro
0030: 6d 20 4d 69 63 72 6f 73 6f 66 74 20 50 6c 61 74  m Microsoft Plat
0040: 66 6f 72 6d 20 53 44 4b 20 41 75 67 75 73 74 20  form SDK August 
0050: 32 30 30 31 20 45 64 69 74 69 6f 6e 0d 0a 2f 2f  2001 Edition..//
0060: 20 62 79 20 59 2e 54 6f 6d 69 6e 6f 20 28 64 65   by Y.Tomino (de
0070: 6d 6f 6f 6e 6c 69 74 40 69 6e 74 65 72 37 2e 6a  moonlit@inter7.j
0080: 70 29 0d 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 6e  p)....import win
0090: 33 32 2e 61 6e 73 69 2e 77 69 6e 75 73 65 72 3b  32.ansi.winuser;
00a0: 0d 0a 0d 0a 2f 2f 20 23 69 66 6e 64 65 66 20 5f  ....// #ifndef _
00b0: 49 4e 43 5f 53 48 45 4c 4c 41 50 49 0d 0a 2f 2f  INC_SHELLAPI..//
00c0: 20 23 64 65 66 69 6e 65 20 5f 49 4e 43 5f 53 48   #define _INC_SH
00d0: 45 4c 4c 41 50 49 0d 0a 0d 0a 2f 2f 20 23 69 66  ELLAPI....// #if
00e0: 6e 64 65 66 20 57 49 4e 53 48 45 4c 4c 41 50 49  ndef WINSHELLAPI
00f0: 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66 69 6e 65  ..// #if !define
0100: 64 28 5f 53 48 45 4c 4c 33 32 5f 29 0d 0a 2f 2f  d(_SHELL32_)..//
0110: 20 23 64 65 66 69 6e 65 20 57 49 4e 53 48 45 4c   #define WINSHEL
0120: 4c 41 50 49 20 44 45 43 4c 53 50 45 43 5f 49 4d  LAPI DECLSPEC_IM
0130: 50 4f 52 54 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  PORT..// #else..
0140: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
0150: 69 66 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  if..// #endif //
0160: 20 57 49 4e 53 48 45 4c 4c 41 50 49 0d 0a 0d 0a   WINSHELLAPI....
0170: 2f 2f 20 23 69 66 6e 64 65 66 20 53 48 53 54 44  // #ifndef SHSTD
0180: 41 50 49 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66  API..// #if !def
0190: 69 6e 65 64 28 5f 53 48 45 4c 4c 33 32 5f 29 0d  ined(_SHELL32_).
01a0: 0a 2f 2f 20 23 64 65 66 69 6e 65 20 53 48 53 54  .// #define SHST
01b0: 44 41 50 49 20 45 58 54 45 52 4e 5f 43 20 44 45  DAPI EXTERN_C DE
01c0: 43 4c 53 50 45 43 5f 49 4d 50 4f 52 54 20 48 52  CLSPEC_IMPORT HR
01d0: 45 53 55 4c 54 20 53 54 44 41 50 49 43 41 4c 4c  ESULT STDAPICALL
01e0: 54 59 50 45 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  TYPE..// #define
01f0: 20 53 48 53 54 44 41 50 49 5f 28 74 79 70 65 29   SHSTDAPI_(type)
0200: 20 45 58 54 45 52 4e 5f 43 20 44 45 43 4c 53 50   EXTERN_C DECLSP
0210: 45 43 5f 49 4d 50 4f 52 54 20 74 79 70 65 20 53  EC_IMPORT type S
0220: 54 44 41 50 49 43 41 4c 4c 54 59 50 45 0d 0a 2f  TDAPICALLTYPE../
0230: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
0240: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
0250: 6e 64 69 66 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  ndif..// #endif 
0260: 2f 2f 20 53 48 53 54 44 41 50 49 0d 0a 0d 0a 2f  // SHSTDAPI..../
0270: 2f 20 23 69 66 6e 64 65 66 20 53 48 44 4f 43 41  / #ifndef SHDOCA
0280: 50 49 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66 69  PI..// #if !defi
0290: 6e 65 64 28 5f 53 48 44 4f 43 56 57 5f 29 0d 0a  ned(_SHDOCVW_)..
02a0: 2f 2f 20 23 64 65 66 69 6e 65 20 53 48 44 4f 43  // #define SHDOC
02b0: 41 50 49 20 45 58 54 45 52 4e 5f 43 20 44 45 43  API EXTERN_C DEC
02c0: 4c 53 50 45 43 5f 49 4d 50 4f 52 54 20 48 52 45  LSPEC_IMPORT HRE
02d0: 53 55 4c 54 20 53 54 44 41 50 49 43 41 4c 4c 54  SULT STDAPICALLT
02e0: 59 50 45 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20  YPE..// #define 
02f0: 53 48 44 4f 43 41 50 49 5f 28 74 79 70 65 29 20  SHDOCAPI_(type) 
0300: 45 58 54 45 52 4e 5f 43 20 44 45 43 4c 53 50 45  EXTERN_C DECLSPE
0310: 43 5f 49 4d 50 4f 52 54 20 74 79 70 65 20 53 54  C_IMPORT type ST
0320: 44 41 50 49 43 41 4c 4c 54 59 50 45 0d 0a 2f 2f  DAPICALLTYPE..//
0330: 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
0340: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
0350: 64 69 66 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  dif..// #endif /
0360: 2f 20 53 48 44 4f 43 41 50 49 0d 0a 0d 0a 2f 2f  / SHDOCAPI....//
0370: 20 23 69 66 20 21 64 65 66 69 6e 65 64 28 5f 57   #if !defined(_W
0380: 49 4e 36 34 29 0d 0a 61 6c 69 67 6e 28 31 29 3a  IN64)..align(1):
0390: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f  ..// #endif..../
03a0: 2f 20 23 69 66 64 65 66 20 5f 5f 63 70 6c 75 73  / #ifdef __cplus
03b0: 70 6c 75 73 0d 0a 2f 2f 20 65 78 74 65 72 6e 20  plus..// extern 
03c0: 22 43 22 20 7b 20 20 20 20 20 20 20 20 20 20 20  "C" {           
03d0: 20 2f 2a 20 41 73 73 75 6d 65 20 43 20 64 65 63   /* Assume C dec
03e0: 6c 61 72 61 74 69 6f 6e 73 20 66 6f 72 20 43 2b  larations for C+
03f0: 2b 20 2a 2f 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  + */..// #endif 
0400: 20 2f 2a 20 5f 5f 63 70 6c 75 73 70 6c 75 73 20   /* __cplusplus 
0410: 2a 2f 0d 0a 0d 0a 61 6c 69 61 73 20 76 6f 69 64  */....alias void
0420: 2a 20 48 44 52 4f 50 3b 0d 0a 0d 0a 65 78 74 65  * HDROP;....exte
0430: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
0440: 72 74 20 55 49 4e 54 20 44 72 61 67 51 75 65 72  rt UINT DragQuer
0450: 79 46 69 6c 65 41 28 48 44 52 4f 50 2c 55 49 4e  yFileA(HDROP,UIN
0460: 54 2c 4c 50 53 54 52 2c 55 49 4e 54 29 3b 0d 0a  T,LPSTR,UINT);..
0470: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
0480: 65 78 70 6f 72 74 20 55 49 4e 54 20 44 72 61 67  export UINT Drag
0490: 51 75 65 72 79 46 69 6c 65 57 28 48 44 52 4f 50  QueryFileW(HDROP
04a0: 2c 55 49 4e 54 2c 4c 50 57 53 54 52 2c 55 49 4e  ,UINT,LPWSTR,UIN
04b0: 54 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  T);..// #ifdef U
04c0: 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d  NICODE..// #....
04d0: 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73  .// #else..alias
04e0: 20 44 72 61 67 51 75 65 72 79 46 69 6c 65 41 20   DragQueryFileA 
04f0: 44 72 61 67 51 75 65 72 79 46 69 6c 65 3b 0d 0a  DragQueryFile;..
0500: 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
0510: 49 43 4f 44 45 0d 0a 65 78 74 65 72 6e 28 57 69  ICODE..extern(Wi
0520: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
0530: 4f 4c 20 44 72 61 67 51 75 65 72 79 50 6f 69 6e  OL DragQueryPoin
0540: 74 28 48 44 52 4f 50 2c 4c 50 50 4f 49 4e 54 29  t(HDROP,LPPOINT)
0550: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
0560: 73 29 20 65 78 70 6f 72 74 20 76 6f 69 64 20 44  s) export void D
0570: 72 61 67 46 69 6e 69 73 68 28 48 44 52 4f 50 29  ragFinish(HDROP)
0580: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
0590: 73 29 20 65 78 70 6f 72 74 20 76 6f 69 64 20 44  s) export void D
05a0: 72 61 67 41 63 63 65 70 74 46 69 6c 65 73 28 48  ragAcceptFiles(H
05b0: 57 4e 44 2c 42 4f 4f 4c 29 3b 0d 0a 0d 0a 65 78  WND,BOOL);....ex
05c0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
05d0: 70 6f 72 74 20 48 49 4e 53 54 41 4e 43 45 20 53  port HINSTANCE S
05e0: 68 65 6c 6c 45 78 65 63 75 74 65 41 28 48 57 4e  hellExecuteA(HWN
05f0: 44 20 68 77 6e 64 2c 20 4c 50 43 53 54 52 20 6c  D hwnd, LPCSTR l
0600: 70 4f 70 65 72 61 74 69 6f 6e 2c 20 4c 50 43 53  pOperation, LPCS
0610: 54 52 20 6c 70 46 69 6c 65 2c 20 4c 50 43 53 54  TR lpFile, LPCST
0620: 52 20 6c 70 50 61 72 61 6d 65 74 65 72 73 2c 20  R lpParameters, 
0630: 4c 50 43 53 54 52 20 6c 70 44 69 72 65 63 74 6f  LPCSTR lpDirecto
0640: 72 79 2c 20 49 4e 54 20 6e 53 68 6f 77 43 6d 64  ry, INT nShowCmd
0650: 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
0660: 77 73 29 20 65 78 70 6f 72 74 20 48 49 4e 53 54  ws) export HINST
0670: 41 4e 43 45 20 53 68 65 6c 6c 45 78 65 63 75 74  ANCE ShellExecut
0680: 65 57 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50  eW(HWND hwnd, LP
0690: 43 57 53 54 52 20 6c 70 4f 70 65 72 61 74 69 6f  CWSTR lpOperatio
06a0: 6e 2c 20 4c 50 43 57 53 54 52 20 6c 70 46 69 6c  n, LPCWSTR lpFil
06b0: 65 2c 20 4c 50 43 57 53 54 52 20 6c 70 50 61 72  e, LPCWSTR lpPar
06c0: 61 6d 65 74 65 72 73 2c 20 4c 50 43 57 53 54 52  ameters, LPCWSTR
06d0: 20 6c 70 44 69 72 65 63 74 6f 72 79 2c 20 49 4e   lpDirectory, IN
06e0: 54 20 6e 53 68 6f 77 43 6d 64 29 3b 0d 0a 2f 2f  T nShowCmd);..//
06f0: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
0700: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  .// #.....// #el
0710: 73 65 0d 0a 61 6c 69 61 73 20 53 68 65 6c 6c 45  se..alias ShellE
0720: 78 65 63 75 74 65 41 20 53 68 65 6c 6c 45 78 65  xecuteA ShellExe
0730: 63 75 74 65 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66  cute;..// #endif
0740: 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 65 78   // !UNICODE..ex
0750: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
0760: 70 6f 72 74 20 48 49 4e 53 54 41 4e 43 45 20 46  port HINSTANCE F
0770: 69 6e 64 45 78 65 63 75 74 61 62 6c 65 41 28 4c  indExecutableA(L
0780: 50 43 53 54 52 20 6c 70 46 69 6c 65 2c 20 4c 50  PCSTR lpFile, LP
0790: 43 53 54 52 20 6c 70 44 69 72 65 63 74 6f 72 79  CSTR lpDirectory
07a0: 2c 20 4c 50 53 54 52 20 6c 70 52 65 73 75 6c 74  , LPSTR lpResult
07b0: 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
07c0: 77 73 29 20 65 78 70 6f 72 74 20 48 49 4e 53 54  ws) export HINST
07d0: 41 4e 43 45 20 46 69 6e 64 45 78 65 63 75 74 61  ANCE FindExecuta
07e0: 62 6c 65 57 28 4c 50 43 57 53 54 52 20 6c 70 46  bleW(LPCWSTR lpF
07f0: 69 6c 65 2c 20 4c 50 43 57 53 54 52 20 6c 70 44  ile, LPCWSTR lpD
0800: 69 72 65 63 74 6f 72 79 2c 20 4c 50 57 53 54 52  irectory, LPWSTR
0810: 20 6c 70 52 65 73 75 6c 74 29 3b 0d 0a 2f 2f 20   lpResult);..// 
0820: 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
0830: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73  // #.....// #els
0840: 65 0d 0a 61 6c 69 61 73 20 46 69 6e 64 45 78 65  e..alias FindExe
0850: 63 75 74 61 62 6c 65 41 20 46 69 6e 64 45 78 65  cutableA FindExe
0860: 63 75 74 61 62 6c 65 3b 0d 0a 2f 2f 20 23 65 6e  cutable;..// #en
0870: 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
0880: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
0890: 20 65 78 70 6f 72 74 20 4c 50 57 53 54 52 20 2a   export LPWSTR *
08a0: 20 43 6f 6d 6d 61 6e 64 4c 69 6e 65 54 6f 41 72   CommandLineToAr
08b0: 67 76 57 28 4c 50 43 57 53 54 52 20 6c 70 43 6d  gvW(LPCWSTR lpCm
08c0: 64 4c 69 6e 65 2c 20 69 6e 74 2a 70 4e 75 6d 41  dLine, int*pNumA
08d0: 72 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  rgs);....extern(
08e0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
08f0: 49 4e 54 20 53 68 65 6c 6c 41 62 6f 75 74 41 28  INT ShellAboutA(
0900: 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 43 53 54  HWND hWnd, LPCST
0910: 52 20 73 7a 41 70 70 2c 20 4c 50 43 53 54 52 20  R szApp, LPCSTR 
0920: 73 7a 4f 74 68 65 72 53 74 75 66 66 2c 20 48 49  szOtherStuff, HI
0930: 43 4f 4e 20 68 49 63 6f 6e 29 3b 0d 0a 65 78 74  CON hIcon);..ext
0940: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
0950: 6f 72 74 20 49 4e 54 20 53 68 65 6c 6c 41 62 6f  ort INT ShellAbo
0960: 75 74 57 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c  utW(HWND hWnd, L
0970: 50 43 57 53 54 52 20 73 7a 41 70 70 2c 20 4c 50  PCWSTR szApp, LP
0980: 43 57 53 54 52 20 73 7a 4f 74 68 65 72 53 74 75  CWSTR szOtherStu
0990: 66 66 2c 20 48 49 43 4f 4e 20 68 49 63 6f 6e 29  ff, HICON hIcon)
09a0: 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
09b0: 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  CODE..// #...../
09c0: 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 53  / #else..alias S
09d0: 68 65 6c 6c 41 62 6f 75 74 41 20 53 68 65 6c 6c  hellAboutA Shell
09e0: 41 62 6f 75 74 3b 0d 0a 2f 2f 20 23 65 6e 64 69  About;..// #endi
09f0: 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 65  f // !UNICODE..e
0a00: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
0a10: 78 70 6f 72 74 20 48 49 43 4f 4e 20 44 75 70 6c  xport HICON Dupl
0a20: 69 63 61 74 65 49 63 6f 6e 28 48 49 4e 53 54 41  icateIcon(HINSTA
0a30: 4e 43 45 20 68 49 6e 73 74 2c 20 48 49 43 4f 4e  NCE hInst, HICON
0a40: 20 68 49 63 6f 6e 29 3b 0d 0a 65 78 74 65 72 6e   hIcon);..extern
0a50: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
0a60: 20 48 49 43 4f 4e 20 45 78 74 72 61 63 74 41 73   HICON ExtractAs
0a70: 73 6f 63 69 61 74 65 64 49 63 6f 6e 41 28 48 49  sociatedIconA(HI
0a80: 4e 53 54 41 4e 43 45 20 68 49 6e 73 74 2c 20 4c  NSTANCE hInst, L
0a90: 50 53 54 52 20 6c 70 49 63 6f 6e 50 61 74 68 2c  PSTR lpIconPath,
0aa0: 20 4c 50 57 4f 52 44 20 6c 70 69 49 63 6f 6e 29   LPWORD lpiIcon)
0ab0: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
0ac0: 73 29 20 65 78 70 6f 72 74 20 48 49 43 4f 4e 20  s) export HICON 
0ad0: 45 78 74 72 61 63 74 41 73 73 6f 63 69 61 74 65  ExtractAssociate
0ae0: 64 49 63 6f 6e 57 28 48 49 4e 53 54 41 4e 43 45  dIconW(HINSTANCE
0af0: 20 68 49 6e 73 74 2c 20 4c 50 57 53 54 52 20 6c   hInst, LPWSTR l
0b00: 70 49 63 6f 6e 50 61 74 68 2c 20 4c 50 57 4f 52  pIconPath, LPWOR
0b10: 44 20 6c 70 69 49 63 6f 6e 29 3b 0d 0a 2f 2f 20  D lpiIcon);..// 
0b20: 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
0b30: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73  // #.....// #els
0b40: 65 0d 0a 61 6c 69 61 73 20 45 78 74 72 61 63 74  e..alias Extract
0b50: 41 73 73 6f 63 69 61 74 65 64 49 63 6f 6e 41 20  AssociatedIconA 
0b60: 45 78 74 72 61 63 74 41 73 73 6f 63 69 61 74 65  ExtractAssociate
0b70: 64 49 63 6f 6e 3b 0d 0a 2f 2f 20 23 65 6e 64 69  dIcon;..// #endi
0b80: 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 65  f // !UNICODE..e
0b90: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
0ba0: 78 70 6f 72 74 20 48 49 43 4f 4e 20 45 78 74 72  xport HICON Extr
0bb0: 61 63 74 49 63 6f 6e 41 28 48 49 4e 53 54 41 4e  actIconA(HINSTAN
0bc0: 43 45 20 68 49 6e 73 74 2c 20 4c 50 43 53 54 52  CE hInst, LPCSTR
0bd0: 20 6c 70 73 7a 45 78 65 46 69 6c 65 4e 61 6d 65   lpszExeFileName
0be0: 2c 20 55 49 4e 54 20 6e 49 63 6f 6e 49 6e 64 65  , UINT nIconInde
0bf0: 78 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  x);..extern(Wind
0c00: 6f 77 73 29 20 65 78 70 6f 72 74 20 48 49 43 4f  ows) export HICO
0c10: 4e 20 45 78 74 72 61 63 74 49 63 6f 6e 57 28 48  N ExtractIconW(H
0c20: 49 4e 53 54 41 4e 43 45 20 68 49 6e 73 74 2c 20  INSTANCE hInst, 
0c30: 4c 50 43 57 53 54 52 20 6c 70 73 7a 45 78 65 46  LPCWSTR lpszExeF
0c40: 69 6c 65 4e 61 6d 65 2c 20 55 49 4e 54 20 6e 49  ileName, UINT nI
0c50: 63 6f 6e 49 6e 64 65 78 29 3b 0d 0a 2f 2f 20 23  conIndex);..// #
0c60: 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f  ifdef UNICODE../
0c70: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65  / #.....// #else
0c80: 0d 0a 61 6c 69 61 73 20 45 78 74 72 61 63 74 49  ..alias ExtractI
0c90: 63 6f 6e 41 20 45 78 74 72 61 63 74 49 63 6f 6e  conA ExtractIcon
0ca0: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ;..// #endif // 
0cb0: 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23  !UNICODE....// #
0cc0: 69 66 28 57 49 4e 56 45 52 20 3e 3d 20 30 78 30  if(WINVER >= 0x0
0cd0: 34 30 30 29 0d 0a 73 74 72 75 63 74 20 5f 44 52  400)..struct _DR
0ce0: 41 47 49 4e 46 4f 41 20 7b 0d 0a 20 20 55 49 4e  AGINFOA {..  UIN
0cf0: 54 20 75 53 69 7a 65 3b 0d 0a 20 20 50 4f 49 4e  T uSize;..  POIN
0d00: 54 20 70 74 3b 0d 0a 20 20 42 4f 4f 4c 20 66 4e  T pt;..  BOOL fN
0d10: 43 3b 0d 0a 20 20 4c 50 53 54 52 20 6c 70 46 69  C;..  LPSTR lpFi
0d20: 6c 65 4c 69 73 74 3b 0d 0a 20 20 44 57 4f 52 44  leList;..  DWORD
0d30: 20 67 72 66 4b 65 79 53 74 61 74 65 3b 0d 0a 7d   grfKeyState;..}
0d40: 0d 0a 61 6c 69 61 73 20 5f 44 52 41 47 49 4e 46  ..alias _DRAGINF
0d50: 4f 41 20 44 52 41 47 49 4e 46 4f 41 3b 0d 0a 61  OA DRAGINFOA;..a
0d60: 6c 69 61 73 20 5f 44 52 41 47 49 4e 46 4f 41 2a  lias _DRAGINFOA*
0d70: 20 4c 50 44 52 41 47 49 4e 46 4f 41 3b 0d 0a 0d   LPDRAGINFOA;...
0d80: 0a 73 74 72 75 63 74 20 5f 44 52 41 47 49 4e 46  .struct _DRAGINF
0d90: 4f 57 20 7b 0d 0a 20 20 55 49 4e 54 20 75 53 69  OW {..  UINT uSi
0da0: 7a 65 3b 0d 0a 20 20 50 4f 49 4e 54 20 70 74 3b  ze;..  POINT pt;
0db0: 0d 0a 20 20 42 4f 4f 4c 20 66 4e 43 3b 0d 0a 20  ..  BOOL fNC;.. 
0dc0: 20 4c 50 57 53 54 52 20 6c 70 46 69 6c 65 4c 69   LPWSTR lpFileLi
0dd0: 73 74 3b 0d 0a 20 20 44 57 4f 52 44 20 67 72 66  st;..  DWORD grf
0de0: 4b 65 79 53 74 61 74 65 3b 0d 0a 7d 0d 0a 61 6c  KeyState;..}..al
0df0: 69 61 73 20 5f 44 52 41 47 49 4e 46 4f 57 20 44  ias _DRAGINFOW D
0e00: 52 41 47 49 4e 46 4f 57 3b 0d 0a 61 6c 69 61 73  RAGINFOW;..alias
0e10: 20 5f 44 52 41 47 49 4e 46 4f 57 2a 20 4c 50 44   _DRAGINFOW* LPD
0e20: 52 41 47 49 4e 46 4f 57 3b 0d 0a 0d 0a 2f 2f 20  RAGINFOW;....// 
0e30: 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
0e40: 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65  // .....// #else
0e50: 0d 0a 61 6c 69 61 73 20 44 52 41 47 49 4e 46 4f  ..alias DRAGINFO
0e60: 41 20 44 52 41 47 49 4e 46 4f 3b 0d 0a 61 6c 69  A DRAGINFO;..ali
0e70: 61 73 20 4c 50 44 52 41 47 49 4e 46 4f 41 20 4c  as LPDRAGINFOA L
0e80: 50 44 52 41 47 49 4e 46 4f 3b 0d 0a 2f 2f 20 23  PDRAGINFO;..// #
0e90: 65 6e 64 69 66 20 2f 2f 20 55 4e 49 43 4f 44 45  endif // UNICODE
0ea0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
0eb0: 7b 20 41 42 4d 5f 4e 45 57 20 3d 20 30 78 30 30  { ABM_NEW = 0x00
0ec0: 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000000 }..enum :
0ed0: 20 75 69 6e 74 20 7b 20 41 42 4d 5f 52 45 4d 4f   uint { ABM_REMO
0ee0: 56 45 20 3d 20 30 78 30 30 30 30 30 30 30 31 20  VE = 0x00000001 
0ef0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
0f00: 20 41 42 4d 5f 51 55 45 52 59 50 4f 53 20 3d 20   ABM_QUERYPOS = 
0f10: 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e  0x00000002 }..en
0f20: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42 4d 5f  um : uint { ABM_
0f30: 53 45 54 50 4f 53 20 3d 20 30 78 30 30 30 30 30  SETPOS = 0x00000
0f40: 30 30 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  003 }..enum : ui
0f50: 6e 74 20 7b 20 41 42 4d 5f 47 45 54 53 54 41 54  nt { ABM_GETSTAT
0f60: 45 20 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d  E = 0x00000004 }
0f70: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
0f80: 41 42 4d 5f 47 45 54 54 41 53 4b 42 41 52 50 4f  ABM_GETTASKBARPO
0f90: 53 20 3d 20 30 78 30 30 30 30 30 30 30 35 20 7d  S = 0x00000005 }
0fa0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
0fb0: 41 42 4d 5f 41 43 54 49 56 41 54 45 20 3d 20 30  ABM_ACTIVATE = 0
0fc0: 78 30 30 30 30 30 30 30 36 20 7d 0d 0a 65 6e 75  x00000006 }..enu
0fd0: 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42 4d 5f 47  m : uint { ABM_G
0fe0: 45 54 41 55 54 4f 48 49 44 45 42 41 52 20 3d 20  ETAUTOHIDEBAR = 
0ff0: 30 78 30 30 30 30 30 30 30 37 20 7d 0d 0a 65 6e  0x00000007 }..en
1000: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42 4d 5f  um : uint { ABM_
1010: 53 45 54 41 55 54 4f 48 49 44 45 42 41 52 20 3d  SETAUTOHIDEBAR =
1020: 20 30 78 30 30 30 30 30 30 30 38 20 7d 0d 0a 0d   0x00000008 }...
1030: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41  .enum : uint { A
1040: 42 4d 5f 57 49 4e 44 4f 57 50 4f 53 43 48 41 4e  BM_WINDOWPOSCHAN
1050: 47 45 44 20 3d 20 30 78 30 30 30 30 30 30 39 20  GED = 0x0000009 
1060: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1070: 20 41 42 4d 5f 53 45 54 53 54 41 54 45 20 3d 20   ABM_SETSTATE = 
1080: 30 78 30 30 30 30 30 30 30 61 20 7d 0d 0a 0d 0a  0x0000000a }....
1090: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42  enum : uint { AB
10a0: 4e 5f 53 54 41 54 45 43 48 41 4e 47 45 20 3d 20  N_STATECHANGE = 
10b0: 30 78 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  0x0000000 }..enu
10c0: 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42 4e 5f 50  m : uint { ABN_P
10d0: 4f 53 43 48 41 4e 47 45 44 20 3d 20 30 78 30 30  OSCHANGED = 0x00
10e0: 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00001 }..enum : 
10f0: 75 69 6e 74 20 7b 20 41 42 4e 5f 46 55 4c 4c 53  uint { ABN_FULLS
1100: 43 52 45 45 4e 41 50 50 20 3d 20 30 78 30 30 30  CREENAPP = 0x000
1110: 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0002 }..enum : u
1120: 69 6e 74 20 7b 20 41 42 4e 5f 57 49 4e 44 4f 57  int { ABN_WINDOW
1130: 41 52 52 41 4e 47 45 20 3d 20 30 78 30 30 30 30  ARRANGE = 0x0000
1140: 30 30 33 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  003 }....enum : 
1150: 75 69 6e 74 20 7b 20 41 42 53 5f 41 55 54 4f 48  uint { ABS_AUTOH
1160: 49 44 45 20 3d 20 30 78 30 30 30 30 30 30 31 20  IDE = 0x0000001 
1170: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1180: 20 41 42 53 5f 41 4c 57 41 59 53 4f 4e 54 4f 50   ABS_ALWAYSONTOP
1190: 20 3d 20 30 78 30 30 30 30 30 30 32 20 7d 0d 0a   = 0x0000002 }..
11a0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
11b0: 41 42 45 5f 4c 45 46 54 20 3d 20 30 20 7d 0d 0a  ABE_LEFT = 0 }..
11c0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42  enum : uint { AB
11d0: 45 5f 54 4f 50 20 3d 20 31 20 7d 0d 0a 65 6e 75  E_TOP = 1 }..enu
11e0: 6d 20 3a 20 75 69 6e 74 20 7b 20 41 42 45 5f 52  m : uint { ABE_R
11f0: 49 47 48 54 20 3d 20 32 20 7d 0d 0a 65 6e 75 6d  IGHT = 2 }..enum
1200: 20 3a 20 75 69 6e 74 20 7b 20 41 42 45 5f 42 4f   : uint { ABE_BO
1210: 54 54 4f 4d 20 3d 20 33 20 7d 0d 0a 0d 0a 73 74  TTOM = 3 }....st
1220: 72 75 63 74 20 5f 41 70 70 42 61 72 44 61 74 61  ruct _AppBarData
1230: 20 7b 0d 0a 20 20 44 57 4f 52 44 20 63 62 53 69   {..  DWORD cbSi
1240: 7a 65 3b 0d 0a 20 20 48 57 4e 44 20 68 57 6e 64  ze;..  HWND hWnd
1250: 3b 0d 0a 20 20 55 49 4e 54 20 75 43 61 6c 6c 62  ;..  UINT uCallb
1260: 61 63 6b 4d 65 73 73 61 67 65 3b 0d 0a 20 20 55  ackMessage;..  U
1270: 49 4e 54 20 75 45 64 67 65 3b 0d 0a 20 20 52 45  INT uEdge;..  RE
1280: 43 54 20 72 63 3b 0d 0a 20 20 4c 50 41 52 41 4d  CT rc;..  LPARAM
1290: 20 6c 50 61 72 61 6d 3b 0d 0a 7d 0d 0a 61 6c 69   lParam;..}..ali
12a0: 61 73 20 5f 41 70 70 42 61 72 44 61 74 61 20 41  as _AppBarData A
12b0: 50 50 42 41 52 44 41 54 41 3b 0d 0a 61 6c 69 61  PPBARDATA;..alia
12c0: 73 20 5f 41 70 70 42 61 72 44 61 74 61 2a 20 50  s _AppBarData* P
12d0: 41 50 50 42 41 52 44 41 54 41 3b 0d 0a 0d 0a 65  APPBARDATA;....e
12e0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
12f0: 78 70 6f 72 74 20 55 49 4e 54 5f 50 54 52 20 53  xport UINT_PTR S
1300: 48 41 70 70 42 61 72 4d 65 73 73 61 67 65 28 44  HAppBarMessage(D
1310: 57 4f 52 44 20 64 77 4d 65 73 73 61 67 65 2c 20  WORD dwMessage, 
1320: 50 41 50 50 42 41 52 44 41 54 41 20 70 44 61 74  PAPPBARDATA pDat
1330: 61 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  a);....extern(Wi
1340: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57  ndows) export DW
1350: 4f 52 44 20 44 6f 45 6e 76 69 72 6f 6e 6d 65 6e  ORD DoEnvironmen
1360: 74 53 75 62 73 74 41 28 4c 50 53 54 52 20 73 7a  tSubstA(LPSTR sz
1370: 53 74 72 69 6e 67 2c 20 55 49 4e 54 20 63 63 68  String, UINT cch
1380: 53 74 72 69 6e 67 29 3b 0d 0a 65 78 74 65 72 6e  String);..extern
1390: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
13a0: 20 44 57 4f 52 44 20 44 6f 45 6e 76 69 72 6f 6e   DWORD DoEnviron
13b0: 6d 65 6e 74 53 75 62 73 74 57 28 4c 50 57 53 54  mentSubstW(LPWST
13c0: 52 20 73 7a 53 74 72 69 6e 67 2c 20 55 49 4e 54  R szString, UINT
13d0: 20 63 63 68 53 74 72 69 6e 67 29 3b 0d 0a 2f 2f   cchString);..//
13e0: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
13f0: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  .// #.....// #el
1400: 73 65 0d 0a 61 6c 69 61 73 20 44 6f 45 6e 76 69  se..alias DoEnvi
1410: 72 6f 6e 6d 65 6e 74 53 75 62 73 74 41 20 44 6f  ronmentSubstA Do
1420: 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 75 62 73 74  EnvironmentSubst
1430: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ;..// #endif // 
1440: 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23  !UNICODE....// #
1450: 64 65 66 69 6e 65 20 45 49 52 45 53 49 44 28 78  define EIRESID(x
1460: 29 20 28 2d 31 20 2a 20 28 69 6e 74 29 28 78 29  ) (-1 * (int)(x)
1470: 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  )..extern(Window
1480: 73 29 20 65 78 70 6f 72 74 20 55 49 4e 54 20 45  s) export UINT E
1490: 78 74 72 61 63 74 49 63 6f 6e 45 78 41 28 4c 50  xtractIconExA(LP
14a0: 43 53 54 52 20 6c 70 73 7a 46 69 6c 65 2c 20 69  CSTR lpszFile, i
14b0: 6e 74 20 6e 49 63 6f 6e 49 6e 64 65 78 2c 20 48  nt nIconIndex, H
14c0: 49 43 4f 4e 20 2a 70 68 69 63 6f 6e 4c 61 72 67  ICON *phiconLarg
14d0: 65 2c 20 48 49 43 4f 4e 20 2a 70 68 69 63 6f 6e  e, HICON *phicon
14e0: 53 6d 61 6c 6c 2c 20 55 49 4e 54 20 6e 49 63 6f  Small, UINT nIco
14f0: 6e 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  ns);..extern(Win
1500: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49 4e  dows) export UIN
1510: 54 20 45 78 74 72 61 63 74 49 63 6f 6e 45 78 57  T ExtractIconExW
1520: 28 4c 50 43 57 53 54 52 20 6c 70 73 7a 46 69 6c  (LPCWSTR lpszFil
1530: 65 2c 20 69 6e 74 20 6e 49 63 6f 6e 49 6e 64 65  e, int nIconInde
1540: 78 2c 20 48 49 43 4f 4e 20 2a 70 68 69 63 6f 6e  x, HICON *phicon
1550: 4c 61 72 67 65 2c 20 48 49 43 4f 4e 20 2a 70 68  Large, HICON *ph
1560: 69 63 6f 6e 53 6d 61 6c 6c 2c 20 55 49 4e 54 20  iconSmall, UINT 
1570: 6e 49 63 6f 6e 73 29 3b 0d 0a 2f 2f 20 23 69 66  nIcons);..// #if
1580: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20  def UNICODE..// 
1590: 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  #.....// #else..
15a0: 61 6c 69 61 73 20 45 78 74 72 61 63 74 49 63 6f  alias ExtractIco
15b0: 6e 45 78 41 20 45 78 74 72 61 63 74 49 63 6f 6e  nExA ExtractIcon
15c0: 45 78 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  Ex;..// #endif /
15d0: 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f  / !UNICODE....//
15e0: 20 23 69 66 6e 64 65 66 20 46 4f 5f 4d 4f 56 45   #ifndef FO_MOVE
15f0: 20 2f 2f 74 68 65 73 65 20 6e 65 65 64 20 74 6f   //these need to
1600: 20 62 65 20 6b 65 70 74 20 69 6e 20 73 79 6e 63   be kept in sync
1610: 20 77 69 74 68 20 74 68 65 20 6f 6e 65 73 20 69   with the ones i
1620: 6e 20 73 68 6c 6f 62 6a 2e 68 0d 0a 0d 0a 65 6e  n shlobj.h....en
1630: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4f 5f 4d  um : uint { FO_M
1640: 4f 56 45 20 3d 20 30 78 30 30 30 31 20 7d 0d 0a  OVE = 0x0001 }..
1650: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4f  enum : uint { FO
1660: 5f 43 4f 50 59 20 3d 20 30 78 30 30 30 32 20 7d  _COPY = 0x0002 }
1670: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
1680: 46 4f 5f 44 45 4c 45 54 45 20 3d 20 30 78 30 30  FO_DELETE = 0x00
1690: 30 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  03 }..enum : uin
16a0: 74 20 7b 20 46 4f 5f 52 45 4e 41 4d 45 20 3d 20  t { FO_RENAME = 
16b0: 30 78 30 30 30 34 20 7d 0d 0a 0d 0a 65 6e 75 6d  0x0004 }....enum
16c0: 20 3a 20 75 69 6e 74 20 7b 20 46 4f 46 5f 4d 55   : uint { FOF_MU
16d0: 4c 54 49 44 45 53 54 46 49 4c 45 53 20 3d 20 30  LTIDESTFILES = 0
16e0: 78 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0001 }..enum : 
16f0: 75 69 6e 74 20 7b 20 46 4f 46 5f 43 4f 4e 46 49  uint { FOF_CONFI
1700: 52 4d 4d 4f 55 53 45 20 3d 20 30 78 30 30 30 32  RMMOUSE = 0x0002
1710: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
1720: 7b 20 46 4f 46 5f 53 49 4c 45 4e 54 20 3d 20 30  { FOF_SILENT = 0
1730: 78 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0004 }..enum : 
1740: 75 69 6e 74 20 7b 20 46 4f 46 5f 52 45 4e 41 4d  uint { FOF_RENAM
1750: 45 4f 4e 43 4f 4c 4c 49 53 49 4f 4e 20 3d 20 30  EONCOLLISION = 0
1760: 78 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0008 }..enum : 
1770: 75 69 6e 74 20 7b 20 46 4f 46 5f 4e 4f 43 4f 4e  uint { FOF_NOCON
1780: 46 49 52 4d 41 54 49 4f 4e 20 3d 20 30 78 30 30  FIRMATION = 0x00
1790: 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  10 }..enum : uin
17a0: 74 20 7b 20 46 4f 46 5f 57 41 4e 54 4d 41 50 50  t { FOF_WANTMAPP
17b0: 49 4e 47 48 41 4e 44 4c 45 20 3d 20 30 78 30 30  INGHANDLE = 0x00
17c0: 32 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  20 }....enum : u
17d0: 69 6e 74 20 7b 20 46 4f 46 5f 41 4c 4c 4f 57 55  int { FOF_ALLOWU
17e0: 4e 44 4f 20 3d 20 30 78 30 30 34 30 20 7d 0d 0a  NDO = 0x0040 }..
17f0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4f  enum : uint { FO
1800: 46 5f 46 49 4c 45 53 4f 4e 4c 59 20 3d 20 30 78  F_FILESONLY = 0x
1810: 30 30 38 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0080 }..enum : u
1820: 69 6e 74 20 7b 20 46 4f 46 5f 53 49 4d 50 4c 45  int { FOF_SIMPLE
1830: 50 52 4f 47 52 45 53 53 20 3d 20 30 78 30 31 30  PROGRESS = 0x010
1840: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
1850: 20 7b 20 46 4f 46 5f 4e 4f 43 4f 4e 46 49 52 4d   { FOF_NOCONFIRM
1860: 4d 4b 44 49 52 20 3d 20 30 78 30 32 30 30 20 7d  MKDIR = 0x0200 }
1870: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
1880: 46 4f 46 5f 4e 4f 45 52 52 4f 52 55 49 20 3d 20  FOF_NOERRORUI = 
1890: 30 78 30 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0400 }..enum :
18a0: 20 75 69 6e 74 20 7b 20 46 4f 46 5f 4e 4f 43 4f   uint { FOF_NOCO
18b0: 50 59 53 45 43 55 52 49 54 59 41 54 54 52 49 42  PYSECURITYATTRIB
18c0: 53 20 3d 20 30 78 30 38 30 30 20 7d 0d 0a 65 6e  S = 0x0800 }..en
18d0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4f 46 5f  um : uint { FOF_
18e0: 4e 4f 52 45 43 55 52 53 49 4f 4e 20 3d 20 30 78  NORECURSION = 0x
18f0: 31 30 30 30 20 7d 0d 0a 2f 2f 20 23 69 66 20 28  1000 }..// #if (
1900: 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30 78 30  _WIN32_IE >= 0x0
1910: 35 30 30 29 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  500)..enum : uin
1920: 74 20 7b 20 46 4f 46 5f 4e 4f 5f 43 4f 4e 4e 45  t { FOF_NO_CONNE
1930: 43 54 45 44 5f 45 4c 45 4d 45 4e 54 53 20 3d 20  CTED_ELEMENTS = 
1940: 30 78 32 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  0x2000 }..enum :
1950: 20 75 69 6e 74 20 7b 20 46 4f 46 5f 57 41 4e 54   uint { FOF_WANT
1960: 4e 55 4b 45 57 41 52 4e 49 4e 47 20 3d 20 30 78  NUKEWARNING = 0x
1970: 34 30 30 30 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69  4000 }..// #endi
1980: 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 49 45 20  f // (_WIN32_IE 
1990: 3e 3d 20 30 78 35 30 30 29 0d 0a 2f 2f 20 23 69  >= 0x500)..// #i
19a0: 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  f (_WIN32_WINNT 
19b0: 3e 3d 20 30 78 30 35 30 31 29 0d 0a 65 6e 75 6d  >= 0x0501)..enum
19c0: 20 3a 20 75 69 6e 74 20 7b 20 46 4f 46 5f 4e 4f   : uint { FOF_NO
19d0: 52 45 43 55 52 53 45 52 45 50 41 52 53 45 20 3d  RECURSEREPARSE =
19e0: 20 30 78 38 30 30 30 20 7d 0d 0a 2f 2f 20 23 65   0x8000 }..// #e
19f0: 6e 64 69 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f  ndif // (_WIN32_
1a00: 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 31 29 0d  WINNT >= 0x501).
1a10: 0a 0d 0a 61 6c 69 61 73 20 57 4f 52 44 20 46 49  ...alias WORD FI
1a20: 4c 45 4f 50 5f 46 4c 41 47 53 3b 0d 0a 0d 0a 65  LEOP_FLAGS;....e
1a30: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 4f 5f  num : uint { PO_
1a40: 44 45 4c 45 54 45 20 3d 20 30 78 30 30 31 33 20  DELETE = 0x0013 
1a50: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1a60: 20 50 4f 5f 52 45 4e 41 4d 45 20 3d 20 30 78 30   PO_RENAME = 0x0
1a70: 30 31 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  014 }..enum : ui
1a80: 6e 74 20 7b 20 50 4f 5f 50 4f 52 54 43 48 41 4e  nt { PO_PORTCHAN
1a90: 47 45 20 3d 20 30 78 30 30 32 30 20 7d 0d 0a 0d  GE = 0x0020 }...
1aa0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
1ab0: 4f 5f 52 45 4e 5f 50 4f 52 54 20 3d 20 30 78 30  O_REN_PORT = 0x0
1ac0: 30 33 34 20 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57  034 }....alias W
1ad0: 4f 52 44 20 50 52 49 4e 54 45 52 4f 50 5f 46 4c  ORD PRINTEROP_FL
1ae0: 41 47 53 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  AGS;....// #endi
1af0: 66 20 2f 2f 20 46 4f 5f 4d 4f 56 45 0d 0a 0d 0a  f // FO_MOVE....
1b00: 73 74 72 75 63 74 20 5f 53 48 46 49 4c 45 4f 50  struct _SHFILEOP
1b10: 53 54 52 55 43 54 41 20 7b 0d 0a 20 20 48 57 4e  STRUCTA {..  HWN
1b20: 44 20 68 77 6e 64 3b 0d 0a 20 20 55 49 4e 54 20  D hwnd;..  UINT 
1b30: 77 46 75 6e 63 3b 0d 0a 20 20 4c 50 43 53 54 52  wFunc;..  LPCSTR
1b40: 20 70 46 72 6f 6d 3b 0d 0a 20 20 4c 50 43 53 54   pFrom;..  LPCST
1b50: 52 20 70 54 6f 3b 0d 0a 20 20 46 49 4c 45 4f 50  R pTo;..  FILEOP
1b60: 5f 46 4c 41 47 53 20 66 46 6c 61 67 73 3b 0d 0a  _FLAGS fFlags;..
1b70: 20 20 42 4f 4f 4c 20 66 41 6e 79 4f 70 65 72 61    BOOL fAnyOpera
1b80: 74 69 6f 6e 73 41 62 6f 72 74 65 64 3b 0d 0a 20  tionsAborted;.. 
1b90: 20 4c 50 56 4f 49 44 20 68 4e 61 6d 65 4d 61 70   LPVOID hNameMap
1ba0: 70 69 6e 67 73 3b 0d 0a 20 20 4c 50 43 53 54 52  pings;..  LPCSTR
1bb0: 20 6c 70 73 7a 50 72 6f 67 72 65 73 73 54 69 74   lpszProgressTit
1bc0: 6c 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 53  le;..}..alias _S
1bd0: 48 46 49 4c 45 4f 50 53 54 52 55 43 54 41 20 53  HFILEOPSTRUCTA S
1be0: 48 46 49 4c 45 4f 50 53 54 52 55 43 54 41 3b 0d  HFILEOPSTRUCTA;.
1bf0: 0a 61 6c 69 61 73 20 5f 53 48 46 49 4c 45 4f 50  .alias _SHFILEOP
1c00: 53 54 52 55 43 54 41 2a 20 4c 50 53 48 46 49 4c  STRUCTA* LPSHFIL
1c10: 45 4f 50 53 54 52 55 43 54 41 3b 0d 0a 0d 0a 73  EOPSTRUCTA;....s
1c20: 74 72 75 63 74 20 5f 53 48 46 49 4c 45 4f 50 53  truct _SHFILEOPS
1c30: 54 52 55 43 54 57 20 7b 0d 0a 20 20 48 57 4e 44  TRUCTW {..  HWND
1c40: 20 68 77 6e 64 3b 0d 0a 20 20 55 49 4e 54 20 77   hwnd;..  UINT w
1c50: 46 75 6e 63 3b 0d 0a 20 20 4c 50 43 57 53 54 52  Func;..  LPCWSTR
1c60: 20 70 46 72 6f 6d 3b 0d 0a 20 20 4c 50 43 57 53   pFrom;..  LPCWS
1c70: 54 52 20 70 54 6f 3b 0d 0a 20 20 46 49 4c 45 4f  TR pTo;..  FILEO
1c80: 50 5f 46 4c 41 47 53 20 66 46 6c 61 67 73 3b 0d  P_FLAGS fFlags;.
1c90: 0a 20 20 42 4f 4f 4c 20 66 41 6e 79 4f 70 65 72  .  BOOL fAnyOper
1ca0: 61 74 69 6f 6e 73 41 62 6f 72 74 65 64 3b 0d 0a  ationsAborted;..
1cb0: 20 20 4c 50 56 4f 49 44 20 68 4e 61 6d 65 4d 61    LPVOID hNameMa
1cc0: 70 70 69 6e 67 73 3b 0d 0a 20 20 4c 50 43 57 53  ppings;..  LPCWS
1cd0: 54 52 20 6c 70 73 7a 50 72 6f 67 72 65 73 73 54  TR lpszProgressT
1ce0: 69 74 6c 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  itle;..}..alias 
1cf0: 5f 53 48 46 49 4c 45 4f 50 53 54 52 55 43 54 57  _SHFILEOPSTRUCTW
1d00: 20 53 48 46 49 4c 45 4f 50 53 54 52 55 43 54 57   SHFILEOPSTRUCTW
1d10: 3b 0d 0a 61 6c 69 61 73 20 5f 53 48 46 49 4c 45  ;..alias _SHFILE
1d20: 4f 50 53 54 52 55 43 54 57 2a 20 4c 50 53 48 46  OPSTRUCTW* LPSHF
1d30: 49 4c 45 4f 50 53 54 52 55 43 54 57 3b 0d 0a 0d  ILEOPSTRUCTW;...
1d40: 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
1d50: 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23  DE..// .....// #
1d60: 65 6c 73 65 0d 0a 61 6c 69 61 73 20 53 48 46 49  else..alias SHFI
1d70: 4c 45 4f 50 53 54 52 55 43 54 41 20 53 48 46 49  LEOPSTRUCTA SHFI
1d80: 4c 45 4f 50 53 54 52 55 43 54 3b 0d 0a 61 6c 69  LEOPSTRUCT;..ali
1d90: 61 73 20 4c 50 53 48 46 49 4c 45 4f 50 53 54 52  as LPSHFILEOPSTR
1da0: 55 43 54 41 20 4c 50 53 48 46 49 4c 45 4f 50 53  UCTA LPSHFILEOPS
1db0: 54 52 55 43 54 3b 0d 0a 2f 2f 20 23 65 6e 64 69  TRUCT;..// #endi
1dc0: 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
1dd0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1de0: 65 78 70 6f 72 74 20 69 6e 74 20 53 48 46 69 6c  export int SHFil
1df0: 65 4f 70 65 72 61 74 69 6f 6e 41 28 4c 50 53 48  eOperationA(LPSH
1e00: 46 49 4c 45 4f 50 53 54 52 55 43 54 41 20 6c 70  FILEOPSTRUCTA lp
1e10: 46 69 6c 65 4f 70 29 3b 0d 0a 65 78 74 65 72 6e  FileOp);..extern
1e20: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1e30: 20 69 6e 74 20 53 48 46 69 6c 65 4f 70 65 72 61   int SHFileOpera
1e40: 74 69 6f 6e 57 28 4c 50 53 48 46 49 4c 45 4f 50  tionW(LPSHFILEOP
1e50: 53 54 52 55 43 54 57 20 6c 70 46 69 6c 65 4f 70  STRUCTW lpFileOp
1e60: 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
1e70: 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  ICODE..// #.....
1e80: 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20  // #else..alias 
1e90: 53 48 46 69 6c 65 4f 70 65 72 61 74 69 6f 6e 41  SHFileOperationA
1ea0: 20 53 48 46 69 6c 65 4f 70 65 72 61 74 69 6f 6e   SHFileOperation
1eb0: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ;..// #endif // 
1ec0: 21 55 4e 49 43 4f 44 45 0d 0a 65 78 74 65 72 6e  !UNICODE..extern
1ed0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1ee0: 20 76 6f 69 64 20 53 48 46 72 65 65 4e 61 6d 65   void SHFreeName
1ef0: 4d 61 70 70 69 6e 67 73 28 48 41 4e 44 4c 45 20  Mappings(HANDLE 
1f00: 68 4e 61 6d 65 4d 61 70 70 69 6e 67 73 29 3b 0d  hNameMappings);.
1f10: 0a 0d 0a 73 74 72 75 63 74 20 5f 53 48 4e 41 4d  ...struct _SHNAM
1f20: 45 4d 41 50 50 49 4e 47 41 20 7b 0d 0a 20 20 4c  EMAPPINGA {..  L
1f30: 50 53 54 52 20 70 73 7a 4f 6c 64 50 61 74 68 3b  PSTR pszOldPath;
1f40: 0d 0a 20 20 4c 50 53 54 52 20 70 73 7a 4e 65 77  ..  LPSTR pszNew
1f50: 50 61 74 68 3b 0d 0a 20 20 69 6e 74 20 63 63 68  Path;..  int cch
1f60: 4f 6c 64 50 61 74 68 3b 0d 0a 20 20 69 6e 74 20  OldPath;..  int 
1f70: 63 63 68 4e 65 77 50 61 74 68 3b 0d 0a 7d 0d 0a  cchNewPath;..}..
1f80: 61 6c 69 61 73 20 5f 53 48 4e 41 4d 45 4d 41 50  alias _SHNAMEMAP
1f90: 50 49 4e 47 41 20 53 48 4e 41 4d 45 4d 41 50 50  PINGA SHNAMEMAPP
1fa0: 49 4e 47 41 3b 0d 0a 61 6c 69 61 73 20 5f 53 48  INGA;..alias _SH
1fb0: 4e 41 4d 45 4d 41 50 50 49 4e 47 41 2a 20 4c 50  NAMEMAPPINGA* LP
1fc0: 53 48 4e 41 4d 45 4d 41 50 50 49 4e 47 41 3b 0d  SHNAMEMAPPINGA;.
1fd0: 0a 0d 0a 73 74 72 75 63 74 20 5f 53 48 4e 41 4d  ...struct _SHNAM
1fe0: 45 4d 41 50 50 49 4e 47 57 20 7b 0d 0a 20 20 4c  EMAPPINGW {..  L
1ff0: 50 57 53 54 52 20 70 73 7a 4f 6c 64 50 61 74 68  PWSTR pszOldPath
2000: 3b 0d 0a 20 20 4c 50 57 53 54 52 20 70 73 7a 4e  ;..  LPWSTR pszN
2010: 65 77 50 61 74 68 3b 0d 0a 20 20 69 6e 74 20 63  ewPath;..  int c
2020: 63 68 4f 6c 64 50 61 74 68 3b 0d 0a 20 20 69 6e  chOldPath;..  in
2030: 74 20 63 63 68 4e 65 77 50 61 74 68 3b 0d 0a 7d  t cchNewPath;..}
2040: 0d 0a 61 6c 69 61 73 20 5f 53 48 4e 41 4d 45 4d  ..alias _SHNAMEM
2050: 41 50 50 49 4e 47 57 20 53 48 4e 41 4d 45 4d 41  APPINGW SHNAMEMA
2060: 50 50 49 4e 47 57 3b 0d 0a 61 6c 69 61 73 20 5f  PPINGW;..alias _
2070: 53 48 4e 41 4d 45 4d 41 50 50 49 4e 47 57 2a 20  SHNAMEMAPPINGW* 
2080: 4c 50 53 48 4e 41 4d 45 4d 41 50 50 49 4e 47 57  LPSHNAMEMAPPINGW
2090: 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  ;....// #ifdef U
20a0: 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a  NICODE..// .....
20b0: 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20  // #else..alias 
20c0: 53 48 4e 41 4d 45 4d 41 50 50 49 4e 47 41 20 53  SHNAMEMAPPINGA S
20d0: 48 4e 41 4d 45 4d 41 50 50 49 4e 47 3b 0d 0a 61  HNAMEMAPPING;..a
20e0: 6c 69 61 73 20 4c 50 53 48 4e 41 4d 45 4d 41 50  lias LPSHNAMEMAP
20f0: 50 49 4e 47 41 20 4c 50 53 48 4e 41 4d 45 4d 41  PINGA LPSHNAMEMA
2100: 50 50 49 4e 47 3b 0d 0a 2f 2f 20 23 65 6e 64 69  PPING;..// #endi
2110: 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
2120: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
2130: 5f 45 52 52 5f 46 4e 46 20 3d 20 32 20 7d 0d 0a  _ERR_FNF = 2 }..
2140: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
2150: 5f 45 52 52 5f 50 4e 46 20 3d 20 33 20 7d 0d 0a  _ERR_PNF = 3 }..
2160: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
2170: 5f 45 52 52 5f 41 43 43 45 53 53 44 45 4e 49 45  _ERR_ACCESSDENIE
2180: 44 20 3d 20 35 20 7d 0d 0a 65 6e 75 6d 20 3a 20  D = 5 }..enum : 
2190: 75 69 6e 74 20 7b 20 53 45 5f 45 52 52 5f 4f 4f  uint { SE_ERR_OO
21a0: 4d 20 3d 20 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20  M = 8 }..enum : 
21b0: 75 69 6e 74 20 7b 20 53 45 5f 45 52 52 5f 44 4c  uint { SE_ERR_DL
21c0: 4c 4e 4f 54 46 4f 55 4e 44 20 3d 20 33 32 20 7d  LNOTFOUND = 32 }
21d0: 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a  ....// #endif /*
21e0: 20 57 49 4e 56 45 52 20 3e 3d 20 30 78 30 34 30   WINVER >= 0x040
21f0: 30 20 2a 2f 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  0 */....enum : u
2200: 69 6e 74 20 7b 20 53 45 5f 45 52 52 5f 53 48 41  int { SE_ERR_SHA
2210: 52 45 20 3d 20 32 36 20 7d 0d 0a 65 6e 75 6d 20  RE = 26 }..enum 
2220: 3a 20 75 69 6e 74 20 7b 20 53 45 5f 45 52 52 5f  : uint { SE_ERR_
2230: 41 53 53 4f 43 49 4e 43 4f 4d 50 4c 45 54 45 20  ASSOCINCOMPLETE 
2240: 3d 20 32 37 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  = 27 }..enum : u
2250: 69 6e 74 20 7b 20 53 45 5f 45 52 52 5f 44 44 45  int { SE_ERR_DDE
2260: 54 49 4d 45 4f 55 54 20 3d 20 32 38 20 7d 0d 0a  TIMEOUT = 28 }..
2270: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
2280: 5f 45 52 52 5f 44 44 45 46 41 49 4c 20 3d 20 32  _ERR_DDEFAIL = 2
2290: 39 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  9 }..enum : uint
22a0: 20 7b 20 53 45 5f 45 52 52 5f 44 44 45 42 55 53   { SE_ERR_DDEBUS
22b0: 59 20 3d 20 33 30 20 7d 0d 0a 65 6e 75 6d 20 3a  Y = 30 }..enum :
22c0: 20 75 69 6e 74 20 7b 20 53 45 5f 45 52 52 5f 4e   uint { SE_ERR_N
22d0: 4f 41 53 53 4f 43 20 3d 20 33 31 20 7d 0d 0a 0d  OASSOC = 31 }...
22e0: 0a 2f 2f 20 23 69 66 28 57 49 4e 56 45 52 20 3e  .// #if(WINVER >
22f0: 3d 20 30 78 30 34 30 30 29 0d 0a 0d 0a 65 6e 75  = 0x0400)....enu
2300: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f 4d  m : uint { SEE_M
2310: 41 53 4b 5f 43 4c 41 53 53 4e 41 4d 45 20 3d 20  ASK_CLASSNAME = 
2320: 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e  0x00000001 }..en
2330: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f  um : uint { SEE_
2340: 4d 41 53 4b 5f 43 4c 41 53 53 4b 45 59 20 3d 20  MASK_CLASSKEY = 
2350: 30 78 30 30 30 30 30 30 30 33 20 7d 0d 0a 0d 0a  0x00000003 }....
2360: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
2370: 45 5f 4d 41 53 4b 5f 49 44 4c 49 53 54 20 3d 20  E_MASK_IDLIST = 
2380: 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a 65 6e  0x00000004 }..en
2390: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f  um : uint { SEE_
23a0: 4d 41 53 4b 5f 49 4e 56 4f 4b 45 49 44 4c 49 53  MASK_INVOKEIDLIS
23b0: 54 20 3d 20 30 78 30 30 30 30 30 30 30 63 20 7d  T = 0x0000000c }
23c0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
23d0: 53 45 45 5f 4d 41 53 4b 5f 49 43 4f 4e 20 3d 20  SEE_MASK_ICON = 
23e0: 30 78 30 30 30 30 30 30 31 30 20 7d 0d 0a 65 6e  0x00000010 }..en
23f0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f  um : uint { SEE_
2400: 4d 41 53 4b 5f 48 4f 54 4b 45 59 20 3d 20 30 78  MASK_HOTKEY = 0x
2410: 30 30 30 30 30 30 32 30 20 7d 0d 0a 65 6e 75 6d  00000020 }..enum
2420: 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f 4d 41   : uint { SEE_MA
2430: 53 4b 5f 4e 4f 43 4c 4f 53 45 50 52 4f 43 45 53  SK_NOCLOSEPROCES
2440: 53 20 3d 20 30 78 30 30 30 30 30 30 34 30 20 7d  S = 0x00000040 }
2450: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2460: 53 45 45 5f 4d 41 53 4b 5f 43 4f 4e 4e 45 43 54  SEE_MASK_CONNECT
2470: 4e 45 54 44 52 56 20 3d 20 30 78 30 30 30 30 30  NETDRV = 0x00000
2480: 30 38 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  080 }..enum : ui
2490: 6e 74 20 7b 20 53 45 45 5f 4d 41 53 4b 5f 46 4c  nt { SEE_MASK_FL
24a0: 41 47 5f 44 44 45 57 41 49 54 20 3d 20 30 78 30  AG_DDEWAIT = 0x0
24b0: 30 30 30 30 31 30 30 20 7d 0d 0a 65 6e 75 6d 20  0000100 }..enum 
24c0: 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f 4d 41 53  : uint { SEE_MAS
24d0: 4b 5f 44 4f 45 4e 56 53 55 42 53 54 20 3d 20 30  K_DOENVSUBST = 0
24e0: 78 30 30 30 30 30 32 30 30 20 7d 0d 0a 65 6e 75  x00000200 }..enu
24f0: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f 4d  m : uint { SEE_M
2500: 41 53 4b 5f 46 4c 41 47 5f 4e 4f 5f 55 49 20 3d  ASK_FLAG_NO_UI =
2510: 20 30 78 30 30 30 30 30 34 30 30 20 7d 0d 0a 65   0x00000400 }..e
2520: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45  num : uint { SEE
2530: 5f 4d 41 53 4b 5f 55 4e 49 43 4f 44 45 20 3d 20  _MASK_UNICODE = 
2540: 30 78 30 30 30 30 34 30 30 30 20 7d 0d 0a 65 6e  0x00004000 }..en
2550: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f  um : uint { SEE_
2560: 4d 41 53 4b 5f 4e 4f 5f 43 4f 4e 53 4f 4c 45 20  MASK_NO_CONSOLE 
2570: 3d 20 30 78 30 30 30 30 38 30 30 30 20 7d 0d 0a  = 0x00008000 }..
2580: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
2590: 45 5f 4d 41 53 4b 5f 41 53 59 4e 43 4f 4b 20 3d  E_MASK_ASYNCOK =
25a0: 20 30 78 30 30 31 30 30 30 30 30 20 7d 0d 0a 65   0x00100000 }..e
25b0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45  num : uint { SEE
25c0: 5f 4d 41 53 4b 5f 48 4d 4f 4e 49 54 4f 52 20 3d  _MASK_HMONITOR =
25d0: 20 30 78 30 30 32 30 30 30 30 30 20 7d 0d 0a 2f   0x00200000 }../
25e0: 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 49 45  / #if (_WIN32_IE
25f0: 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65 6e 75   >= 0x0500)..enu
2600: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45 5f 4d  m : uint { SEE_M
2610: 41 53 4b 5f 4e 4f 51 55 45 52 59 43 4c 41 53 53  ASK_NOQUERYCLASS
2620: 53 54 4f 52 45 20 3d 20 30 78 30 31 30 30 30 30  STORE = 0x010000
2630: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
2640: 74 20 7b 20 53 45 45 5f 4d 41 53 4b 5f 57 41 49  t { SEE_MASK_WAI
2650: 54 46 4f 52 49 4e 50 55 54 49 44 4c 45 20 3d 20  TFORINPUTIDLE = 
2660: 30 78 30 32 30 30 30 30 30 30 20 7d 0d 0a 2f 2f  0x02000000 }..//
2670: 20 23 65 6e 64 69 66 20 2f 2f 20 28 5f 57 49 4e   #endif // (_WIN
2680: 33 32 5f 49 45 20 3e 3d 20 30 78 35 30 30 29 0d  32_IE >= 0x500).
2690: 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f  .// #if (_WIN32_
26a0: 49 45 20 3e 3d 20 30 78 30 35 36 30 29 0d 0a 65  IE >= 0x0560)..e
26b0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 45  num : uint { SEE
26c0: 5f 4d 41 53 4b 5f 46 4c 41 47 5f 4c 4f 47 5f 55  _MASK_FLAG_LOG_U
26d0: 53 41 47 45 20 3d 20 30 78 30 34 30 30 30 30 30  SAGE = 0x0400000
26e0: 30 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  0 }..// #endif /
26f0: 2f 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20  / (_WIN32_IE >= 
2700: 30 78 35 36 30 29 0d 0a 0d 0a 2f 2f 20 23 69 66  0x560)....// #if
2710: 6e 64 65 66 20 44 55 4d 4d 59 55 4e 49 4f 4e 4e  ndef DUMMYUNIONN
2720: 41 4d 45 0d 0a 2f 2f 20 23 69 66 64 65 66 20 4e  AME..// #ifdef N
2730: 4f 4e 41 4d 45 4c 45 53 53 55 4e 49 4f 4e 0d 0a  ONAMELESSUNION..
2740: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e  // #.....// #...
2750: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e  ..// #.....// #.
2760: 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  ....// #.....// 
2770: 23 65 6c 73 65 0d 0a 2f 2f 20 23 64 65 66 69 6e  #else..// #defin
2780: 65 20 44 55 4d 4d 59 55 4e 49 4f 4e 4e 41 4d 45  e DUMMYUNIONNAME
2790: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 44 55 4d  ..// #define DUM
27a0: 4d 59 55 4e 49 4f 4e 4e 41 4d 45 32 0d 0a 2f 2f  MYUNIONNAME2..//
27b0: 20 23 64 65 66 69 6e 65 20 44 55 4d 4d 59 55 4e   #define DUMMYUN
27c0: 49 4f 4e 4e 41 4d 45 33 0d 0a 2f 2f 20 23 64 65  IONNAME3..// #de
27d0: 66 69 6e 65 20 44 55 4d 4d 59 55 4e 49 4f 4e 4e  fine DUMMYUNIONN
27e0: 41 4d 45 34 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  AME4..// #define
27f0: 20 44 55 4d 4d 59 55 4e 49 4f 4e 4e 41 4d 45 35   DUMMYUNIONNAME5
2800: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20  ..// #endif..// 
2810: 23 65 6e 64 69 66 20 2f 2f 20 44 55 4d 4d 59 55  #endif // DUMMYU
2820: 4e 49 4f 4e 4e 41 4d 45 0d 0a 0d 0a 73 74 72 75  NIONNAME....stru
2830: 63 74 20 5f 53 48 45 4c 4c 45 58 45 43 55 54 45  ct _SHELLEXECUTE
2840: 49 4e 46 4f 41 20 7b 0d 0a 20 20 44 57 4f 52 44  INFOA {..  DWORD
2850: 20 63 62 53 69 7a 65 3b 0d 0a 20 20 55 4c 4f 4e   cbSize;..  ULON
2860: 47 20 66 4d 61 73 6b 3b 0d 0a 20 20 48 57 4e 44  G fMask;..  HWND
2870: 20 68 77 6e 64 3b 0d 0a 20 20 4c 50 43 53 54 52   hwnd;..  LPCSTR
2880: 20 6c 70 56 65 72 62 3b 0d 0a 20 20 4c 50 43 53   lpVerb;..  LPCS
2890: 54 52 20 6c 70 46 69 6c 65 3b 0d 0a 20 20 4c 50  TR lpFile;..  LP
28a0: 43 53 54 52 20 6c 70 50 61 72 61 6d 65 74 65 72  CSTR lpParameter
28b0: 73 3b 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 44  s;..  LPCSTR lpD
28c0: 69 72 65 63 74 6f 72 79 3b 0d 0a 20 20 69 6e 74  irectory;..  int
28d0: 20 6e 53 68 6f 77 3b 0d 0a 20 20 48 49 4e 53 54   nShow;..  HINST
28e0: 41 4e 43 45 20 68 49 6e 73 74 41 70 70 3b 0d 0a  ANCE hInstApp;..
28f0: 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 49 44 4c  ..  LPVOID lpIDL
2900: 69 73 74 3b 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ist;..  LPCSTR l
2910: 70 43 6c 61 73 73 3b 0d 0a 20 20 48 4b 45 59 20  pClass;..  HKEY 
2920: 68 6b 65 79 43 6c 61 73 73 3b 0d 0a 20 20 44 57  hkeyClass;..  DW
2930: 4f 52 44 20 64 77 48 6f 74 4b 65 79 3b 0d 0a 75  ORD dwHotKey;..u
2940: 6e 69 6f 6e 20 7b 0d 0a 20 20 48 41 4e 44 4c 45  nion {..  HANDLE
2950: 20 68 49 63 6f 6e 3b 0d 0a 20 20 48 41 4e 44 4c   hIcon;..  HANDL
2960: 45 20 68 4d 6f 6e 69 74 6f 72 3b 0d 0a 7d 0d 0a  E hMonitor;..}..
2970: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63  ..  HANDLE hProc
2980: 65 73 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f  ess;..}..alias _
2990: 53 48 45 4c 4c 45 58 45 43 55 54 45 49 4e 46 4f  SHELLEXECUTEINFO
29a0: 41 20 53 48 45 4c 4c 45 58 45 43 55 54 45 49 4e  A SHELLEXECUTEIN
29b0: 46 4f 41 3b 0d 0a 61 6c 69 61 73 20 5f 53 48 45  FOA;..alias _SHE
29c0: 4c 4c 45 58 45 43 55 54 45 49 4e 46 4f 41 2a 20  LLEXECUTEINFOA* 
29d0: 4c 50 53 48 45 4c 4c 45 58 45 43 55 54 45 49 4e  LPSHELLEXECUTEIN
29e0: 46 4f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 5f  FOA;....struct _
29f0: 53 48 45 4c 4c 45 58 45 43 55 54 45 49 4e 46 4f  SHELLEXECUTEINFO
2a00: 57 20 7b 0d 0a 20 20 44 57 4f 52 44 20 63 62 53  W {..  DWORD cbS
2a10: 69 7a 65 3b 0d 0a 20 20 55 4c 4f 4e 47 20 66 4d  ize;..  ULONG fM
2a20: 61 73 6b 3b 0d 0a 20 20 48 57 4e 44 20 68 77 6e  ask;..  HWND hwn
2a30: 64 3b 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  d;..  LPCWSTR lp
2a40: 56 65 72 62 3b 0d 0a 20 20 4c 50 43 57 53 54 52  Verb;..  LPCWSTR
2a50: 20 6c 70 46 69 6c 65 3b 0d 0a 20 20 4c 50 43 57   lpFile;..  LPCW
2a60: 53 54 52 20 6c 70 50 61 72 61 6d 65 74 65 72 73  STR lpParameters
2a70: 3b 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 44  ;..  LPCWSTR lpD
2a80: 69 72 65 63 74 6f 72 79 3b 0d 0a 20 20 69 6e 74  irectory;..  int
2a90: 20 6e 53 68 6f 77 3b 0d 0a 20 20 48 49 4e 53 54   nShow;..  HINST
2aa0: 41 4e 43 45 20 68 49 6e 73 74 41 70 70 3b 0d 0a  ANCE hInstApp;..
2ab0: 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 49 44 4c  ..  LPVOID lpIDL
2ac0: 69 73 74 3b 0d 0a 20 20 4c 50 43 57 53 54 52 20  ist;..  LPCWSTR 
2ad0: 6c 70 43 6c 61 73 73 3b 0d 0a 20 20 48 4b 45 59  lpClass;..  HKEY
2ae0: 20 68 6b 65 79 43 6c 61 73 73 3b 0d 0a 20 20 44   hkeyClass;..  D
2af0: 57 4f 52 44 20 64 77 48 6f 74 4b 65 79 3b 0d 0a  WORD dwHotKey;..
2b00: 75 6e 69 6f 6e 20 7b 0d 0a 20 20 48 41 4e 44 4c  union {..  HANDL
2b10: 45 20 68 49 63 6f 6e 3b 0d 0a 20 20 48 41 4e 44  E hIcon;..  HAND
2b20: 4c 45 20 68 4d 6f 6e 69 74 6f 72 3b 0d 0a 7d 0d  LE hMonitor;..}.
2b30: 0a 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f  ...  HANDLE hPro
2b40: 63 65 73 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  cess;..}..alias 
2b50: 5f 53 48 45 4c 4c 45 58 45 43 55 54 45 49 4e 46  _SHELLEXECUTEINF
2b60: 4f 57 20 53 48 45 4c 4c 45 58 45 43 55 54 45 49  OW SHELLEXECUTEI
2b70: 4e 46 4f 57 3b 0d 0a 61 6c 69 61 73 20 5f 53 48  NFOW;..alias _SH
2b80: 45 4c 4c 45 58 45 43 55 54 45 49 4e 46 4f 57 2a  ELLEXECUTEINFOW*
2b90: 20 4c 50 53 48 45 4c 4c 45 58 45 43 55 54 45 49   LPSHELLEXECUTEI
2ba0: 4e 46 4f 57 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64  NFOW;....// #ifd
2bb0: 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e  ef UNICODE..// .
2bc0: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c  ....// #else..al
2bd0: 69 61 73 20 53 48 45 4c 4c 45 58 45 43 55 54 45  ias SHELLEXECUTE
2be0: 49 4e 46 4f 41 20 53 48 45 4c 4c 45 58 45 43 55  INFOA SHELLEXECU
2bf0: 54 45 49 4e 46 4f 3b 0d 0a 61 6c 69 61 73 20 4c  TEINFO;..alias L
2c00: 50 53 48 45 4c 4c 45 58 45 43 55 54 45 49 4e 46  PSHELLEXECUTEINF
2c10: 4f 41 20 4c 50 53 48 45 4c 4c 45 58 45 43 55 54  OA LPSHELLEXECUT
2c20: 45 49 4e 46 4f 3b 0d 0a 2f 2f 20 23 65 6e 64 69  EINFO;..// #endi
2c30: 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
2c40: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
2c50: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 68 65 6c  export BOOL Shel
2c60: 6c 45 78 65 63 75 74 65 45 78 41 28 4c 50 53 48  lExecuteExA(LPSH
2c70: 45 4c 4c 45 58 45 43 55 54 45 49 4e 46 4f 41 20  ELLEXECUTEINFOA 
2c80: 6c 70 45 78 65 63 49 6e 66 6f 29 3b 0d 0a 65 78  lpExecInfo);..ex
2c90: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
2ca0: 70 6f 72 74 20 42 4f 4f 4c 20 53 68 65 6c 6c 45  port BOOL ShellE
2cb0: 78 65 63 75 74 65 45 78 57 28 4c 50 53 48 45 4c  xecuteExW(LPSHEL
2cc0: 4c 45 58 45 43 55 54 45 49 4e 46 4f 57 20 6c 70  LEXECUTEINFOW lp
2cd0: 45 78 65 63 49 6e 66 6f 29 3b 0d 0a 2f 2f 20 23  ExecInfo);..// #
2ce0: 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f  ifdef UNICODE../
2cf0: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65  / #.....// #else
2d00: 0d 0a 61 6c 69 61 73 20 53 68 65 6c 6c 45 78 65  ..alias ShellExe
2d10: 63 75 74 65 45 78 41 20 53 68 65 6c 6c 45 78 65  cuteExA ShellExe
2d20: 63 75 74 65 45 78 3b 0d 0a 2f 2f 20 23 65 6e 64  cuteEx;..// #end
2d30: 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
2d40: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
2d50: 65 78 70 6f 72 74 20 76 6f 69 64 20 57 69 6e 45  export void WinE
2d60: 78 65 63 45 72 72 6f 72 41 28 48 57 4e 44 20 68  xecErrorA(HWND h
2d70: 77 6e 64 2c 20 69 6e 74 20 65 72 72 6f 72 2c 20  wnd, int error, 
2d80: 4c 50 43 53 54 52 20 6c 70 73 74 72 46 69 6c 65  LPCSTR lpstrFile
2d90: 4e 61 6d 65 2c 20 4c 50 43 53 54 52 20 6c 70 73  Name, LPCSTR lps
2da0: 74 72 54 69 74 6c 65 29 3b 0d 0a 65 78 74 65 72  trTitle);..exter
2db0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
2dc0: 74 20 76 6f 69 64 20 57 69 6e 45 78 65 63 45 72  t void WinExecEr
2dd0: 72 6f 72 57 28 48 57 4e 44 20 68 77 6e 64 2c 20  rorW(HWND hwnd, 
2de0: 69 6e 74 20 65 72 72 6f 72 2c 20 4c 50 43 57 53  int error, LPCWS
2df0: 54 52 20 6c 70 73 74 72 46 69 6c 65 4e 61 6d 65  TR lpstrFileName
2e00: 2c 20 4c 50 43 57 53 54 52 20 6c 70 73 74 72 54  , LPCWSTR lpstrT
2e10: 69 74 6c 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  itle);..// #ifde
2e20: 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e  f UNICODE..// #.
2e30: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c  ....// #else..al
2e40: 69 61 73 20 57 69 6e 45 78 65 63 45 72 72 6f 72  ias WinExecError
2e50: 41 20 57 69 6e 45 78 65 63 45 72 72 6f 72 3b 0d  A WinExecError;.
2e60: 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
2e70: 4e 49 43 4f 44 45 0d 0a 0d 0a 73 74 72 75 63 74  NICODE....struct
2e80: 20 5f 53 48 43 52 45 41 54 45 50 52 4f 43 45 53   _SHCREATEPROCES
2e90: 53 49 4e 46 4f 57 20 7b 0d 0a 20 20 44 57 4f 52  SINFOW {..  DWOR
2ea0: 44 20 63 62 53 69 7a 65 3b 0d 0a 20 20 55 4c 4f  D cbSize;..  ULO
2eb0: 4e 47 20 66 4d 61 73 6b 3b 0d 0a 20 20 48 57 4e  NG fMask;..  HWN
2ec0: 44 20 68 77 6e 64 3b 0d 0a 20 20 4c 50 43 57 53  D hwnd;..  LPCWS
2ed0: 54 52 20 70 73 7a 46 69 6c 65 3b 0d 0a 20 20 4c  TR pszFile;..  L
2ee0: 50 43 57 53 54 52 20 70 73 7a 50 61 72 61 6d 65  PCWSTR pszParame
2ef0: 74 65 72 73 3b 0d 0a 20 20 4c 50 43 57 53 54 52  ters;..  LPCWSTR
2f00: 20 70 73 7a 43 75 72 72 65 6e 74 44 69 72 65 63   pszCurrentDirec
2f10: 74 6f 72 79 3b 0d 0a 20 20 48 41 4e 44 4c 45 20  tory;..  HANDLE 
2f20: 68 55 73 65 72 54 6f 6b 65 6e 3b 0d 0a 20 20 4c  hUserToken;..  L
2f30: 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42  PSECURITY_ATTRIB
2f40: 55 54 45 53 20 6c 70 50 72 6f 63 65 73 73 41 74  UTES lpProcessAt
2f50: 74 72 69 62 75 74 65 73 3b 0d 0a 20 20 4c 50 53  tributes;..  LPS
2f60: 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54  ECURITY_ATTRIBUT
2f70: 45 53 20 6c 70 54 68 72 65 61 64 41 74 74 72 69  ES lpThreadAttri
2f80: 62 75 74 65 73 3b 0d 0a 20 20 42 4f 4f 4c 20 62  butes;..  BOOL b
2f90: 49 6e 68 65 72 69 74 48 61 6e 64 6c 65 73 3b 0d  InheritHandles;.
2fa0: 0a 20 20 44 57 4f 52 44 20 64 77 43 72 65 61 74  .  DWORD dwCreat
2fb0: 69 6f 6e 46 6c 61 67 73 3b 0d 0a 20 20 4c 50 53  ionFlags;..  LPS
2fc0: 54 41 52 54 55 50 49 4e 46 4f 57 20 6c 70 53 74  TARTUPINFOW lpSt
2fd0: 61 72 74 75 70 49 6e 66 6f 3b 0d 0a 20 20 4c 50  artupInfo;..  LP
2fe0: 50 52 4f 43 45 53 53 5f 49 4e 46 4f 52 4d 41 54  PROCESS_INFORMAT
2ff0: 49 4f 4e 20 6c 70 50 72 6f 63 65 73 73 49 6e 66  ION lpProcessInf
3000: 6f 72 6d 61 74 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c  ormation;..}..al
3010: 69 61 73 20 5f 53 48 43 52 45 41 54 45 50 52 4f  ias _SHCREATEPRO
3020: 43 45 53 53 49 4e 46 4f 57 20 53 48 43 52 45 41  CESSINFOW SHCREA
3030: 54 45 50 52 4f 43 45 53 53 49 4e 46 4f 57 3b 0d  TEPROCESSINFOW;.
3040: 0a 61 6c 69 61 73 20 5f 53 48 43 52 45 41 54 45  .alias _SHCREATE
3050: 50 52 4f 43 45 53 53 49 4e 46 4f 57 2a 20 50 53  PROCESSINFOW* PS
3060: 48 43 52 45 41 54 45 50 52 4f 43 45 53 53 49 4e  HCREATEPROCESSIN
3070: 46 4f 57 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  FOW;....extern(W
3080: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
3090: 4f 4f 4c 20 53 48 43 72 65 61 74 65 50 72 6f 63  OOL SHCreateProc
30a0: 65 73 73 41 73 55 73 65 72 57 28 50 53 48 43 52  essAsUserW(PSHCR
30b0: 45 41 54 45 50 52 4f 43 45 53 53 49 4e 46 4f 57  EATEPROCESSINFOW
30c0: 20 70 73 63 70 69 29 3b 0d 0a 0d 0a 73 74 72 75   pscpi);....stru
30d0: 63 74 20 5f 53 48 51 55 45 52 59 52 42 49 4e 46  ct _SHQUERYRBINF
30e0: 4f 20 7b 0d 0a 20 20 44 57 4f 52 44 20 63 62 53  O {..  DWORD cbS
30f0: 69 7a 65 3b 0d 0a 2f 2f 20 23 69 66 20 21 64 65  ize;..// #if !de
3100: 66 69 6e 65 64 28 5f 4d 41 43 29 20 7c 7c 20 64  fined(_MAC) || d
3110: 65 66 69 6e 65 64 28 5f 4d 41 43 5f 49 4e 54 5f  efined(_MAC_INT_
3120: 36 34 29 0d 0a 20 20 5f 5f 69 6e 74 36 34 20 69  64)..  __int64 i
3130: 36 34 53 69 7a 65 3b 0d 0a 20 20 5f 5f 69 6e 74  64Size;..  __int
3140: 36 34 20 69 36 34 4e 75 6d 49 74 65 6d 73 3b 0d  64 i64NumItems;.
3150: 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 2e 2e  .// #else..// ..
3160: 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 7d 0d  ...// #endif..}.
3170: 0a 61 6c 69 61 73 20 5f 53 48 51 55 45 52 59 52  .alias _SHQUERYR
3180: 42 49 4e 46 4f 20 53 48 51 55 45 52 59 52 42 49  BINFO SHQUERYRBI
3190: 4e 46 4f 3b 0d 0a 61 6c 69 61 73 20 5f 53 48 51  NFO;..alias _SHQ
31a0: 55 45 52 59 52 42 49 4e 46 4f 2a 20 4c 50 53 48  UERYRBINFO* LPSH
31b0: 51 55 45 52 59 52 42 49 4e 46 4f 3b 0d 0a 0d 0a  QUERYRBINFO;....
31c0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 48  enum : uint { SH
31d0: 45 52 42 5f 4e 4f 43 4f 4e 46 49 52 4d 41 54 49  ERB_NOCONFIRMATI
31e0: 4f 4e 20 3d 20 30 78 30 30 30 30 30 30 30 31 20  ON = 0x00000001 
31f0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
3200: 20 53 48 45 52 42 5f 4e 4f 50 52 4f 47 52 45 53   SHERB_NOPROGRES
3210: 53 55 49 20 3d 20 30 78 30 30 30 30 30 30 30 32  SUI = 0x00000002
3220: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
3230: 7b 20 53 48 45 52 42 5f 4e 4f 53 4f 55 4e 44 20  { SHERB_NOSOUND 
3240: 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a  = 0x00000004 }..
3250: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
3260: 29 20 65 78 70 6f 72 74 20 48 52 45 53 55 4c 54  ) export HRESULT
3270: 20 53 48 51 75 65 72 79 52 65 63 79 63 6c 65 42   SHQueryRecycleB
3280: 69 6e 41 28 4c 50 43 53 54 52 20 70 73 7a 52 6f  inA(LPCSTR pszRo
3290: 6f 74 50 61 74 68 2c 20 4c 50 53 48 51 55 45 52  otPath, LPSHQUER
32a0: 59 52 42 49 4e 46 4f 20 70 53 48 51 75 65 72 79  YRBINFO pSHQuery
32b0: 52 42 49 6e 66 6f 29 3b 0d 0a 65 78 74 65 72 6e  RBInfo);..extern
32c0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
32d0: 20 48 52 45 53 55 4c 54 20 53 48 51 75 65 72 79   HRESULT SHQuery
32e0: 52 65 63 79 63 6c 65 42 69 6e 57 28 4c 50 43 57  RecycleBinW(LPCW
32f0: 53 54 52 20 70 73 7a 52 6f 6f 74 50 61 74 68 2c  STR pszRootPath,
3300: 20 4c 50 53 48 51 55 45 52 59 52 42 49 4e 46 4f   LPSHQUERYRBINFO
3310: 20 70 53 48 51 75 65 72 79 52 42 49 6e 66 6f 29   pSHQueryRBInfo)
3320: 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
3330: 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  CODE..// #...../
3340: 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 53  / #else..alias S
3350: 48 51 75 65 72 79 52 65 63 79 63 6c 65 42 69 6e  HQueryRecycleBin
3360: 41 20 53 48 51 75 65 72 79 52 65 63 79 63 6c 65  A SHQueryRecycle
3370: 42 69 6e 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  Bin;..// #endif 
3380: 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 65 78 74  // !UNICODE..ext
3390: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
33a0: 6f 72 74 20 48 52 45 53 55 4c 54 20 53 48 45 6d  ort HRESULT SHEm
33b0: 70 74 79 52 65 63 79 63 6c 65 42 69 6e 41 28 48  ptyRecycleBinA(H
33c0: 57 4e 44 20 68 77 6e 64 2c 20 4c 50 43 53 54 52  WND hwnd, LPCSTR
33d0: 20 70 73 7a 52 6f 6f 74 50 61 74 68 2c 20 44 57   pszRootPath, DW
33e0: 4f 52 44 20 64 77 46 6c 61 67 73 29 3b 0d 0a 65  ORD dwFlags);..e
33f0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
3400: 78 70 6f 72 74 20 48 52 45 53 55 4c 54 20 53 48  xport HRESULT SH
3410: 45 6d 70 74 79 52 65 63 79 63 6c 65 42 69 6e 57  EmptyRecycleBinW
3420: 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 43 57  (HWND hwnd, LPCW
3430: 53 54 52 20 70 73 7a 52 6f 6f 74 50 61 74 68 2c  STR pszRootPath,
3440: 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 29 3b   DWORD dwFlags);
3450: 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
3460: 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  ODE..// #.....//
3470: 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 53 48   #else..alias SH
3480: 45 6d 70 74 79 52 65 63 79 63 6c 65 42 69 6e 41  EmptyRecycleBinA
3490: 20 53 48 45 6d 70 74 79 52 65 63 79 63 6c 65 42   SHEmptyRecycleB
34a0: 69 6e 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  in;..// #endif /
34b0: 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 73 74  / !UNICODE....st
34c0: 72 75 63 74 20 5f 4e 4f 54 49 46 59 49 43 4f 4e  ruct _NOTIFYICON
34d0: 44 41 54 41 41 20 7b 0d 0a 20 20 44 57 4f 52 44  DATAA {..  DWORD
34e0: 20 63 62 53 69 7a 65 3b 0d 0a 20 20 48 57 4e 44   cbSize;..  HWND
34f0: 20 68 57 6e 64 3b 0d 0a 20 20 55 49 4e 54 20 75   hWnd;..  UINT u
3500: 49 44 3b 0d 0a 20 20 55 49 4e 54 20 75 46 6c 61  ID;..  UINT uFla
3510: 67 73 3b 0d 0a 20 20 55 49 4e 54 20 75 43 61 6c  gs;..  UINT uCal
3520: 6c 62 61 63 6b 4d 65 73 73 61 67 65 3b 0d 0a 20  lbackMessage;.. 
3530: 20 48 49 43 4f 4e 20 68 49 63 6f 6e 3b 0d 0a 2f   HICON hIcon;../
3540: 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 49 45  / #if (_WIN32_IE
3550: 20 3c 20 30 78 30 35 30 30 29 0d 0a 2f 2f 20 2e   < 0x0500)..// .
3560: 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 20 20  ....// #else..  
3570: 43 48 41 52 20 73 7a 54 69 70 5b 31 32 38 5d 3b  CHAR szTip[128];
3580: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20  ..// #endif..// 
3590: 23 69 66 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e  #if (_WIN32_IE >
35a0: 3d 20 30 78 30 35 30 30 29 0d 0a 20 20 44 57 4f  = 0x0500)..  DWO
35b0: 52 44 20 64 77 53 74 61 74 65 3b 0d 0a 20 20 44  RD dwState;..  D
35c0: 57 4f 52 44 20 64 77 53 74 61 74 65 4d 61 73 6b  WORD dwStateMask
35d0: 3b 0d 0a 20 20 43 48 41 52 20 73 7a 49 6e 66 6f  ;..  CHAR szInfo
35e0: 5b 32 35 36 5d 3b 0d 0a 75 6e 69 6f 6e 20 7b 0d  [256];..union {.
35f0: 0a 20 20 55 49 4e 54 20 75 54 69 6d 65 6f 75 74  .  UINT uTimeout
3600: 3b 0d 0a 20 20 55 49 4e 54 20 75 56 65 72 73 69  ;..  UINT uVersi
3610: 6f 6e 3b 0d 0a 7d 0d 0a 0d 0a 20 20 43 48 41 52  on;..}....  CHAR
3620: 20 73 7a 49 6e 66 6f 54 69 74 6c 65 5b 36 34 5d   szInfoTitle[64]
3630: 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 49 6e 66  ;..  DWORD dwInf
3640: 6f 46 6c 61 67 73 3b 0d 0a 2f 2f 20 23 65 6e 64  oFlags;..// #end
3650: 69 66 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e  if..// #if (_WIN
3660: 33 32 5f 49 45 20 3e 3d 20 30 78 36 30 30 29 0d  32_IE >= 0x600).
3670: 0a 20 20 47 55 49 44 20 67 75 69 64 49 74 65 6d  .  GUID guidItem
3680: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 7d 0d  ;..// #endif..}.
3690: 0a 61 6c 69 61 73 20 5f 4e 4f 54 49 46 59 49 43  .alias _NOTIFYIC
36a0: 4f 4e 44 41 54 41 41 20 4e 4f 54 49 46 59 49 43  ONDATAA NOTIFYIC
36b0: 4f 4e 44 41 54 41 41 3b 0d 0a 61 6c 69 61 73 20  ONDATAA;..alias 
36c0: 5f 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 41  _NOTIFYICONDATAA
36d0: 2a 20 50 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54  * PNOTIFYICONDAT
36e0: 41 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 4e  AA;....struct _N
36f0: 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 57 20 7b  OTIFYICONDATAW {
3700: 0d 0a 20 20 44 57 4f 52 44 20 63 62 53 69 7a 65  ..  DWORD cbSize
3710: 3b 0d 0a 20 20 48 57 4e 44 20 68 57 6e 64 3b 0d  ;..  HWND hWnd;.
3720: 0a 20 20 55 49 4e 54 20 75 49 44 3b 0d 0a 20 20  .  UINT uID;..  
3730: 55 49 4e 54 20 75 46 6c 61 67 73 3b 0d 0a 20 20  UINT uFlags;..  
3740: 55 49 4e 54 20 75 43 61 6c 6c 62 61 63 6b 4d 65  UINT uCallbackMe
3750: 73 73 61 67 65 3b 0d 0a 20 20 48 49 43 4f 4e 20  ssage;..  HICON 
3760: 68 49 63 6f 6e 3b 0d 0a 2f 2f 20 23 69 66 20 28  hIcon;..// #if (
3770: 5f 57 49 4e 33 32 5f 49 45 20 3c 20 30 78 30 35  _WIN32_IE < 0x05
3780: 30 30 29 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20  00)..// .....// 
3790: 23 65 6c 73 65 0d 0a 20 20 57 43 48 41 52 20 73  #else..  WCHAR s
37a0: 7a 54 69 70 5b 31 32 38 5d 3b 0d 0a 2f 2f 20 23  zTip[128];..// #
37b0: 65 6e 64 69 66 0d 0a 2f 2f 20 23 69 66 20 28 5f  endif..// #if (_
37c0: 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30 78 30 35  WIN32_IE >= 0x05
37d0: 30 30 29 0d 0a 20 20 44 57 4f 52 44 20 64 77 53  00)..  DWORD dwS
37e0: 74 61 74 65 3b 0d 0a 20 20 44 57 4f 52 44 20 64  tate;..  DWORD d
37f0: 77 53 74 61 74 65 4d 61 73 6b 3b 0d 0a 20 20 57  wStateMask;..  W
3800: 43 48 41 52 20 73 7a 49 6e 66 6f 5b 32 35 36 5d  CHAR szInfo[256]
3810: 3b 0d 0a 75 6e 69 6f 6e 20 7b 0d 0a 20 20 55 49  ;..union {..  UI
3820: 4e 54 20 75 54 69 6d 65 6f 75 74 3b 0d 0a 20 20  NT uTimeout;..  
3830: 55 49 4e 54 20 75 56 65 72 73 69 6f 6e 3b 0d 0a  UINT uVersion;..
3840: 7d 0d 0a 0d 0a 20 20 57 43 48 41 52 20 73 7a 49  }....  WCHAR szI
3850: 6e 66 6f 54 69 74 6c 65 5b 36 34 5d 3b 0d 0a 20  nfoTitle[64];.. 
3860: 20 44 57 4f 52 44 20 64 77 49 6e 66 6f 46 6c 61   DWORD dwInfoFla
3870: 67 73 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a  gs;..// #endif..
3880: 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 49  // #if (_WIN32_I
3890: 45 20 3e 3d 20 30 78 36 30 30 29 0d 0a 20 20 47  E >= 0x600)..  G
38a0: 55 49 44 20 67 75 69 64 49 74 65 6d 3b 0d 0a 2f  UID guidItem;../
38b0: 2f 20 23 65 6e 64 69 66 0d 0a 7d 0d 0a 61 6c 69  / #endif..}..ali
38c0: 61 73 20 5f 4e 4f 54 49 46 59 49 43 4f 4e 44 41  as _NOTIFYICONDA
38d0: 54 41 57 20 4e 4f 54 49 46 59 49 43 4f 4e 44 41  TAW NOTIFYICONDA
38e0: 54 41 57 3b 0d 0a 61 6c 69 61 73 20 5f 4e 4f 54  TAW;..alias _NOT
38f0: 49 46 59 49 43 4f 4e 44 41 54 41 57 2a 20 50 4e  IFYICONDATAW* PN
3900: 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 57 3b 0d  OTIFYICONDATAW;.
3910: 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ...// #ifdef UNI
3920: 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f  CODE..// .....//
3930: 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 4e 4f   #else..alias NO
3940: 54 49 46 59 49 43 4f 4e 44 41 54 41 41 20 4e 4f  TIFYICONDATAA NO
3950: 54 49 46 59 49 43 4f 4e 44 41 54 41 3b 0d 0a 61  TIFYICONDATA;..a
3960: 6c 69 61 73 20 50 4e 4f 54 49 46 59 49 43 4f 4e  lias PNOTIFYICON
3970: 44 41 54 41 41 20 50 4e 4f 54 49 46 59 49 43 4f  DATAA PNOTIFYICO
3980: 4e 44 41 54 41 3b 0d 0a 2f 2f 20 23 65 6e 64 69  NDATA;..// #endi
3990: 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
39a0: 2f 2f 20 23 64 65 66 69 6e 65 20 4e 4f 54 49 46  // #define NOTIF
39b0: 59 49 43 4f 4e 44 41 54 41 41 5f 56 31 5f 53 49  YICONDATAA_V1_SI
39c0: 5a 45 20 46 49 45 4c 44 5f 4f 46 46 53 45 54 28  ZE FIELD_OFFSET(
39d0: 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 41 2c  NOTIFYICONDATAA,
39e0: 20 73 7a 54 69 70 5b 36 34 5d 29 0d 0a 2f 2f 20   szTip[64])..// 
39f0: 23 64 65 66 69 6e 65 20 4e 4f 54 49 46 59 49 43  #define NOTIFYIC
3a00: 4f 4e 44 41 54 41 57 5f 56 31 5f 53 49 5a 45 20  ONDATAW_V1_SIZE 
3a10: 46 49 45 4c 44 5f 4f 46 46 53 45 54 28 4e 4f 54  FIELD_OFFSET(NOT
3a20: 49 46 59 49 43 4f 4e 44 41 54 41 57 2c 20 73 7a  IFYICONDATAW, sz
3a30: 54 69 70 5b 36 34 5d 29 0d 0a 2f 2f 20 23 69 66  Tip[64])..// #if
3a40: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20  def UNICODE..// 
3a50: 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  #.....// #else..
3a60: 2f 2f 20 23 64 65 66 69 6e 65 20 4e 4f 54 49 46  // #define NOTIF
3a70: 59 49 43 4f 4e 44 41 54 41 5f 56 31 5f 53 49 5a  YICONDATA_V1_SIZ
3a80: 45 20 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54 41  E NOTIFYICONDATA
3a90: 41 5f 56 31 5f 53 49 5a 45 0d 0a 2f 2f 20 23 65  A_V1_SIZE..// #e
3aa0: 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 64 65 66 69  ndif....// #defi
3ab0: 6e 65 20 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54  ne NOTIFYICONDAT
3ac0: 41 41 5f 56 32 5f 53 49 5a 45 20 46 49 45 4c 44  AA_V2_SIZE FIELD
3ad0: 5f 4f 46 46 53 45 54 28 4e 4f 54 49 46 59 49 43  _OFFSET(NOTIFYIC
3ae0: 4f 4e 44 41 54 41 41 2c 20 67 75 69 64 49 74 65  ONDATAA, guidIte
3af0: 6d 29 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 4e  m)..// #define N
3b00: 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 57 5f 56  OTIFYICONDATAW_V
3b10: 32 5f 53 49 5a 45 20 46 49 45 4c 44 5f 4f 46 46  2_SIZE FIELD_OFF
3b20: 53 45 54 28 4e 4f 54 49 46 59 49 43 4f 4e 44 41  SET(NOTIFYICONDA
3b30: 54 41 57 2c 20 67 75 69 64 49 74 65 6d 29 0d 0a  TAW, guidItem)..
3b40: 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
3b50: 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  E..// #.....// #
3b60: 65 6c 73 65 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  else..// #define
3b70: 20 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 5f   NOTIFYICONDATA_
3b80: 56 32 5f 53 49 5a 45 20 4e 4f 54 49 46 59 49 43  V2_SIZE NOTIFYIC
3b90: 4f 4e 44 41 54 41 41 5f 56 32 5f 53 49 5a 45 0d  ONDATAA_V2_SIZE.
3ba0: 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f  .// #endif....//
3bb0: 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 49 45 20   #if (_WIN32_IE 
3bc0: 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65 6e 75 6d  >= 0x0500)..enum
3bd0: 20 3a 20 75 69 6e 74 20 7b 20 4e 49 4e 5f 53 45   : uint { NIN_SE
3be0: 4c 45 43 54 20 3d 20 57 4d 5f 55 53 45 52 20 2b  LECT = WM_USER +
3bf0: 20 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   0 }..enum : uin
3c00: 74 20 7b 20 4e 49 4e 46 5f 4b 45 59 20 3d 20 30  t { NINF_KEY = 0
3c10: 78 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  x1 }..enum : uin
3c20: 74 20 7b 20 4e 49 4e 5f 4b 45 59 53 45 4c 45 43  t { NIN_KEYSELEC
3c30: 54 20 3d 20 4e 49 4e 5f 53 45 4c 45 43 54 20 7c  T = NIN_SELECT |
3c40: 20 4e 49 4e 46 5f 4b 45 59 20 7d 0d 0a 2f 2f 20   NINF_KEY }..// 
3c50: 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 69 66  #endif....// #if
3c60: 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30   (_WIN32_IE >= 0
3c70: 78 30 35 30 31 29 0d 0a 65 6e 75 6d 20 3a 20 75  x0501)..enum : u
3c80: 69 6e 74 20 7b 20 4e 49 4e 5f 42 41 4c 4c 4f 4f  int { NIN_BALLOO
3c90: 4e 53 48 4f 57 20 3d 20 57 4d 5f 55 53 45 52 20  NSHOW = WM_USER 
3ca0: 2b 20 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  + 2 }..enum : ui
3cb0: 6e 74 20 7b 20 4e 49 4e 5f 42 41 4c 4c 4f 4f 4e  nt { NIN_BALLOON
3cc0: 48 49 44 45 20 3d 20 57 4d 5f 55 53 45 52 20 2b  HIDE = WM_USER +
3cd0: 20 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   3 }..enum : uin
3ce0: 74 20 7b 20 4e 49 4e 5f 42 41 4c 4c 4f 4f 4e 54  t { NIN_BALLOONT
3cf0: 49 4d 45 4f 55 54 20 3d 20 57 4d 5f 55 53 45 52  IMEOUT = WM_USER
3d00: 20 2b 20 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   + 4 }..enum : u
3d10: 69 6e 74 20 7b 20 4e 49 4e 5f 42 41 4c 4c 4f 4f  int { NIN_BALLOO
3d20: 4e 55 53 45 52 43 4c 49 43 4b 20 3d 20 57 4d 5f  NUSERCLICK = WM_
3d30: 55 53 45 52 20 2b 20 35 20 7d 0d 0a 2f 2f 20 23  USER + 5 }..// #
3d40: 65 6e 64 69 66 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  endif....enum : 
3d50: 75 69 6e 74 20 7b 20 4e 49 4d 5f 41 44 44 20 3d  uint { NIM_ADD =
3d60: 20 30 78 30 30 30 30 30 30 30 30 20 7d 0d 0a 65   0x00000000 }..e
3d70: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 49 4d  num : uint { NIM
3d80: 5f 4d 4f 44 49 46 59 20 3d 20 30 78 30 30 30 30  _MODIFY = 0x0000
3d90: 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
3da0: 69 6e 74 20 7b 20 4e 49 4d 5f 44 45 4c 45 54 45  int { NIM_DELETE
3db0: 20 3d 20 30 78 30 30 30 30 30 30 30 32 20 7d 0d   = 0x00000002 }.
3dc0: 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f  .// #if (_WIN32_
3dd0: 49 45 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65  IE >= 0x0500)..e
3de0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 49 4d  num : uint { NIM
3df0: 5f 53 45 54 46 4f 43 55 53 20 3d 20 30 78 30 30  _SETFOCUS = 0x00
3e00: 30 30 30 30 30 33 20 7d 0d 0a 65 6e 75 6d 20 3a  000003 }..enum :
3e10: 20 75 69 6e 74 20 7b 20 4e 49 4d 5f 53 45 54 56   uint { NIM_SETV
3e20: 45 52 53 49 4f 4e 20 3d 20 30 78 30 30 30 30 30  ERSION = 0x00000
3e30: 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  004 }..enum : ui
3e40: 6e 74 20 7b 20 4e 4f 54 49 46 59 49 43 4f 4e 5f  nt { NOTIFYICON_
3e50: 56 45 52 53 49 4f 4e 20 3d 20 33 20 7d 0d 0a 2f  VERSION = 3 }../
3e60: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 6e 75 6d  / #endif....enum
3e70: 20 3a 20 75 69 6e 74 20 7b 20 4e 49 46 5f 4d 45   : uint { NIF_ME
3e80: 53 53 41 47 45 20 3d 20 30 78 30 30 30 30 30 30  SSAGE = 0x000000
3e90: 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  01 }..enum : uin
3ea0: 74 20 7b 20 4e 49 46 5f 49 43 4f 4e 20 3d 20 30  t { NIF_ICON = 0
3eb0: 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e 75  x00000002 }..enu
3ec0: 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 49 46 5f 54  m : uint { NIF_T
3ed0: 49 50 20 3d 20 30 78 30 30 30 30 30 30 30 34 20  IP = 0x00000004 
3ee0: 7d 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33  }..// #if (_WIN3
3ef0: 32 5f 49 45 20 3e 3d 20 30 78 30 35 30 30 29 0d  2_IE >= 0x0500).
3f00: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e  .enum : uint { N
3f10: 49 46 5f 53 54 41 54 45 20 3d 20 30 78 30 30 30  IF_STATE = 0x000
3f20: 30 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00008 }..enum : 
3f30: 75 69 6e 74 20 7b 20 4e 49 46 5f 49 4e 46 4f 20  uint { NIF_INFO 
3f40: 3d 20 30 78 30 30 30 30 30 30 31 30 20 7d 0d 0a  = 0x00000010 }..
3f50: 2f 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23 69  // #endif..// #i
3f60: 66 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20  f (_WIN32_IE >= 
3f70: 30 78 36 30 30 29 0d 0a 65 6e 75 6d 20 3a 20 75  0x600)..enum : u
3f80: 69 6e 74 20 7b 20 4e 49 46 5f 47 55 49 44 20 3d  int { NIF_GUID =
3f90: 20 30 78 30 30 30 30 30 30 32 30 20 7d 0d 0a 2f   0x00000020 }../
3fa0: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23  / #endif....// #
3fb0: 69 66 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d  if (_WIN32_IE >=
3fc0: 20 30 78 30 35 30 30 29 0d 0a 65 6e 75 6d 20 3a   0x0500)..enum :
3fd0: 20 75 69 6e 74 20 7b 20 4e 49 53 5f 48 49 44 44   uint { NIS_HIDD
3fe0: 45 4e 20 3d 20 30 78 30 30 30 30 30 30 30 31 20  EN = 0x00000001 
3ff0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
4000: 20 4e 49 53 5f 53 48 41 52 45 44 49 43 4f 4e 20   NIS_SHAREDICON 
4010: 3d 20 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a  = 0x00000002 }..
4020: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
4030: 4e 49 49 46 5f 4e 4f 4e 45 20 3d 20 30 78 30 30  NIIF_NONE = 0x00
4040: 30 30 30 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d  000000 }....enum
4050: 20 3a 20 75 69 6e 74 20 7b 20 4e 49 49 46 5f 49   : uint { NIIF_I
4060: 4e 46 4f 20 3d 20 30 78 30 30 30 30 30 30 30 31  NFO = 0x00000001
4070: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4080: 7b 20 4e 49 49 46 5f 57 41 52 4e 49 4e 47 20 3d  { NIIF_WARNING =
4090: 20 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65   0x00000002 }..e
40a0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 49 49  num : uint { NII
40b0: 46 5f 45 52 52 4f 52 20 3d 20 30 78 30 30 30 30  F_ERROR = 0x0000
40c0: 30 30 30 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0003 }..enum : u
40d0: 69 6e 74 20 7b 20 4e 49 49 46 5f 49 43 4f 4e 5f  int { NIIF_ICON_
40e0: 4d 41 53 4b 20 3d 20 30 78 30 30 30 30 30 30 30  MASK = 0x0000000
40f0: 46 20 7d 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49  F }..// #if (_WI
4100: 4e 33 32 5f 49 45 20 3e 3d 20 30 78 30 35 30 31  N32_IE >= 0x0501
4110: 29 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  )..enum : uint {
4120: 20 4e 49 49 46 5f 4e 4f 53 4f 55 4e 44 20 3d 20   NIIF_NOSOUND = 
4130: 30 78 30 30 30 30 30 30 31 30 20 7d 0d 0a 2f 2f  0x00000010 }..//
4140: 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23 65 6e 64   #endif..// #end
4150: 69 66 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  if....extern(Win
4160: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
4170: 4c 20 53 68 65 6c 6c 5f 4e 6f 74 69 66 79 49 63  L Shell_NotifyIc
4180: 6f 6e 41 28 44 57 4f 52 44 20 64 77 4d 65 73 73  onA(DWORD dwMess
4190: 61 67 65 2c 20 50 4e 4f 54 49 46 59 49 43 4f 4e  age, PNOTIFYICON
41a0: 44 41 54 41 41 20 6c 70 44 61 74 61 29 3b 0d 0a  DATAA lpData);..
41b0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
41c0: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 68 65 6c  export BOOL Shel
41d0: 6c 5f 4e 6f 74 69 66 79 49 63 6f 6e 57 28 44 57  l_NotifyIconW(DW
41e0: 4f 52 44 20 64 77 4d 65 73 73 61 67 65 2c 20 50  ORD dwMessage, P
41f0: 4e 4f 54 49 46 59 49 43 4f 4e 44 41 54 41 57 20  NOTIFYICONDATAW 
4200: 6c 70 44 61 74 61 29 3b 0d 0a 2f 2f 20 23 69 66  lpData);..// #if
4210: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20  def UNICODE..// 
4220: 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  #.....// #else..
4230: 61 6c 69 61 73 20 53 68 65 6c 6c 5f 4e 6f 74 69  alias Shell_Noti
4240: 66 79 49 63 6f 6e 41 20 53 68 65 6c 6c 5f 4e 6f  fyIconA Shell_No
4250: 74 69 66 79 49 63 6f 6e 3b 0d 0a 2f 2f 20 23 65  tifyIcon;..// #e
4260: 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
4270: 0d 0a 0d 0a 2f 2f 20 23 69 66 6e 64 65 66 20 53  ....// #ifndef S
4280: 48 46 49 4c 45 49 4e 46 4f 5f 44 45 46 49 4e 45  HFILEINFO_DEFINE
4290: 44 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 53 48  D..// #define SH
42a0: 46 49 4c 45 49 4e 46 4f 5f 44 45 46 49 4e 45 44  FILEINFO_DEFINED
42b0: 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 53 48 46 49  ....struct _SHFI
42c0: 4c 45 49 4e 46 4f 41 20 7b 0d 0a 20 20 48 49 43  LEINFOA {..  HIC
42d0: 4f 4e 20 68 49 63 6f 6e 3b 0d 0a 20 20 69 6e 74  ON hIcon;..  int
42e0: 20 69 49 63 6f 6e 3b 0d 0a 20 20 44 57 4f 52 44   iIcon;..  DWORD
42f0: 20 64 77 41 74 74 72 69 62 75 74 65 73 3b 0d 0a   dwAttributes;..
4300: 20 20 43 48 41 52 20 73 7a 44 69 73 70 6c 61 79    CHAR szDisplay
4310: 4e 61 6d 65 5b 4d 41 58 5f 50 41 54 48 5d 3b 0d  Name[MAX_PATH];.
4320: 0a 20 20 43 48 41 52 20 73 7a 54 79 70 65 4e 61  .  CHAR szTypeNa
4330: 6d 65 5b 38 30 5d 3b 0d 0a 7d 0d 0a 61 6c 69 61  me[80];..}..alia
4340: 73 20 5f 53 48 46 49 4c 45 49 4e 46 4f 41 20 53  s _SHFILEINFOA S
4350: 48 46 49 4c 45 49 4e 46 4f 41 3b 0d 0a 0d 0a 73  HFILEINFOA;....s
4360: 74 72 75 63 74 20 5f 53 48 46 49 4c 45 49 4e 46  truct _SHFILEINF
4370: 4f 57 20 7b 0d 0a 20 20 48 49 43 4f 4e 20 68 49  OW {..  HICON hI
4380: 63 6f 6e 3b 0d 0a 20 20 69 6e 74 20 69 49 63 6f  con;..  int iIco
4390: 6e 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 41 74  n;..  DWORD dwAt
43a0: 74 72 69 62 75 74 65 73 3b 0d 0a 20 20 57 43 48  tributes;..  WCH
43b0: 41 52 20 73 7a 44 69 73 70 6c 61 79 4e 61 6d 65  AR szDisplayName
43c0: 5b 4d 41 58 5f 50 41 54 48 5d 3b 0d 0a 20 20 57  [MAX_PATH];..  W
43d0: 43 48 41 52 20 73 7a 54 79 70 65 4e 61 6d 65 5b  CHAR szTypeName[
43e0: 38 30 5d 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f  80];..}..alias _
43f0: 53 48 46 49 4c 45 49 4e 46 4f 57 20 53 48 46 49  SHFILEINFOW SHFI
4400: 4c 45 49 4e 46 4f 57 3b 0d 0a 0d 0a 2f 2f 20 23  LEINFOW;....// #
4410: 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f  ifdef UNICODE../
4420: 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d  / .....// #else.
4430: 0a 61 6c 69 61 73 20 53 48 46 49 4c 45 49 4e 46  .alias SHFILEINF
4440: 4f 41 20 53 48 46 49 4c 45 49 4e 46 4f 3b 0d 0a  OA SHFILEINFO;..
4450: 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 55 4e 49  // #endif // UNI
4460: 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  CODE....// #endi
4470: 66 20 2f 2f 20 21 53 48 46 49 4c 45 49 4e 46 4f  f // !SHFILEINFO
4480: 5f 44 45 46 49 4e 45 44 0d 0a 0d 0a 65 6e 75 6d  _DEFINED....enum
4490: 20 3a 20 75 69 6e 74 20 7b 20 53 48 47 46 49 5f   : uint { SHGFI_
44a0: 49 43 4f 4e 20 3d 20 30 78 30 30 30 30 30 30 31  ICON = 0x0000001
44b0: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
44c0: 74 20 7b 20 53 48 47 46 49 5f 44 49 53 50 4c 41  t { SHGFI_DISPLA
44d0: 59 4e 41 4d 45 20 3d 20 30 78 30 30 30 30 30 30  YNAME = 0x000000
44e0: 32 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  200 }..enum : ui
44f0: 6e 74 20 7b 20 53 48 47 46 49 5f 54 59 50 45 4e  nt { SHGFI_TYPEN
4500: 41 4d 45 20 3d 20 30 78 30 30 30 30 30 30 34 30  AME = 0x00000040
4510: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
4520: 20 7b 20 53 48 47 46 49 5f 41 54 54 52 49 42 55   { SHGFI_ATTRIBU
4530: 54 45 53 20 3d 20 30 78 30 30 30 30 30 30 38 30  TES = 0x00000080
4540: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
4550: 20 7b 20 53 48 47 46 49 5f 49 43 4f 4e 4c 4f 43   { SHGFI_ICONLOC
4560: 41 54 49 4f 4e 20 3d 20 30 78 30 30 30 30 30 31  ATION = 0x000001
4570: 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  000 }..enum : ui
4580: 6e 74 20 7b 20 53 48 47 46 49 5f 45 58 45 54 59  nt { SHGFI_EXETY
4590: 50 45 20 3d 20 30 78 30 30 30 30 30 32 30 30 30  PE = 0x000002000
45a0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
45b0: 7b 20 53 48 47 46 49 5f 53 59 53 49 43 4f 4e 49  { SHGFI_SYSICONI
45c0: 4e 44 45 58 20 3d 20 30 78 30 30 30 30 30 34 30  NDEX = 0x0000040
45d0: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
45e0: 74 20 7b 20 53 48 47 46 49 5f 4c 49 4e 4b 4f 56  t { SHGFI_LINKOV
45f0: 45 52 4c 41 59 20 3d 20 30 78 30 30 30 30 30 38  ERLAY = 0x000008
4600: 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  000 }..enum : ui
4610: 6e 74 20 7b 20 53 48 47 46 49 5f 53 45 4c 45 43  nt { SHGFI_SELEC
4620: 54 45 44 20 3d 20 30 78 30 30 30 30 31 30 30 30  TED = 0x00001000
4630: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
4640: 20 7b 20 53 48 47 46 49 5f 41 54 54 52 5f 53 50   { SHGFI_ATTR_SP
4650: 45 43 49 46 49 45 44 20 3d 20 30 78 30 30 30 30  ECIFIED = 0x0000
4660: 32 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  20000 }..enum : 
4670: 75 69 6e 74 20 7b 20 53 48 47 46 49 5f 4c 41 52  uint { SHGFI_LAR
4680: 47 45 49 43 4f 4e 20 3d 20 30 78 30 30 30 30 30  GEICON = 0x00000
4690: 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0000 }..enum : u
46a0: 69 6e 74 20 7b 20 53 48 47 46 49 5f 53 4d 41 4c  int { SHGFI_SMAL
46b0: 4c 49 43 4f 4e 20 3d 20 30 78 30 30 30 30 30 30  LICON = 0x000000
46c0: 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  001 }..enum : ui
46d0: 6e 74 20 7b 20 53 48 47 46 49 5f 4f 50 45 4e 49  nt { SHGFI_OPENI
46e0: 43 4f 4e 20 3d 20 30 78 30 30 30 30 30 30 30 30  CON = 0x00000000
46f0: 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  2 }..enum : uint
4700: 20 7b 20 53 48 47 46 49 5f 53 48 45 4c 4c 49 43   { SHGFI_SHELLIC
4710: 4f 4e 53 49 5a 45 20 3d 20 30 78 30 30 30 30 30  ONSIZE = 0x00000
4720: 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0004 }..enum : u
4730: 69 6e 74 20 7b 20 53 48 47 46 49 5f 50 49 44 4c  int { SHGFI_PIDL
4740: 20 3d 20 30 78 30 30 30 30 30 30 30 30 38 20 7d   = 0x000000008 }
4750: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
4760: 53 48 47 46 49 5f 55 53 45 46 49 4c 45 41 54 54  SHGFI_USEFILEATT
4770: 52 49 42 55 54 45 53 20 3d 20 30 78 30 30 30 30  RIBUTES = 0x0000
4780: 30 30 30 31 30 20 7d 0d 0a 0d 0a 2f 2f 20 23 69  00010 }....// #i
4790: 66 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20  f (_WIN32_IE >= 
47a0: 30 78 30 35 30 30 29 0d 0a 65 6e 75 6d 20 3a 20  0x0500)..enum : 
47b0: 75 69 6e 74 20 7b 20 53 48 47 46 49 5f 41 44 44  uint { SHGFI_ADD
47c0: 4f 56 45 52 4c 41 59 53 20 3d 20 30 78 30 30 30  OVERLAYS = 0x000
47d0: 30 30 30 30 32 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000020 }..enum :
47e0: 20 75 69 6e 74 20 7b 20 53 48 47 46 49 5f 4f 56   uint { SHGFI_OV
47f0: 45 52 4c 41 59 49 4e 44 45 58 20 3d 20 30 78 30  ERLAYINDEX = 0x0
4800: 30 30 30 30 30 30 34 30 20 7d 0d 0a 0d 0a 2f 2f  00000040 }....//
4810: 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 78 74 65 72   #endif....exter
4820: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
4830: 74 20 44 57 4f 52 44 5f 50 54 52 20 53 48 47 65  t DWORD_PTR SHGe
4840: 74 46 69 6c 65 49 6e 66 6f 41 28 4c 50 43 53 54  tFileInfoA(LPCST
4850: 52 20 70 73 7a 50 61 74 68 2c 20 44 57 4f 52 44  R pszPath, DWORD
4860: 20 64 77 46 69 6c 65 41 74 74 72 69 62 75 74 65   dwFileAttribute
4870: 73 2c 20 53 48 46 49 4c 45 49 4e 46 4f 41 20 2a  s, SHFILEINFOA *
4880: 70 73 66 69 2c 20 55 49 4e 54 20 63 62 46 69 6c  psfi, UINT cbFil
4890: 65 49 6e 66 6f 2c 20 55 49 4e 54 20 75 46 6c 61  eInfo, UINT uFla
48a0: 67 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  gs);..extern(Win
48b0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f  dows) export DWO
48c0: 52 44 5f 50 54 52 20 53 48 47 65 74 46 69 6c 65  RD_PTR SHGetFile
48d0: 49 6e 66 6f 57 28 4c 50 43 57 53 54 52 20 70 73  InfoW(LPCWSTR ps
48e0: 7a 50 61 74 68 2c 20 44 57 4f 52 44 20 64 77 46  zPath, DWORD dwF
48f0: 69 6c 65 41 74 74 72 69 62 75 74 65 73 2c 20 53  ileAttributes, S
4900: 48 46 49 4c 45 49 4e 46 4f 57 20 2a 70 73 66 69  HFILEINFOW *psfi
4910: 2c 20 55 49 4e 54 20 63 62 46 69 6c 65 49 6e 66  , UINT cbFileInf
4920: 6f 2c 20 55 49 4e 54 20 75 46 6c 61 67 73 29 3b  o, UINT uFlags);
4930: 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
4940: 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  ODE..// #.....//
4950: 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 53 48   #else..alias SH
4960: 47 65 74 46 69 6c 65 49 6e 66 6f 41 20 53 48 47  GetFileInfoA SHG
4970: 65 74 46 69 6c 65 49 6e 66 6f 3b 0d 0a 2f 2f 20  etFileInfo;..// 
4980: 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
4990: 44 45 0d 0a 0d 0a 61 6c 69 61 73 20 53 48 47 65  DE....alias SHGe
49a0: 74 44 69 73 6b 46 72 65 65 53 70 61 63 65 45 78  tDiskFreeSpaceEx
49b0: 20 53 48 47 65 74 44 69 73 6b 46 72 65 65 53 70   SHGetDiskFreeSp
49c0: 61 63 65 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ace;....extern(W
49d0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
49e0: 4f 4f 4c 20 53 48 47 65 74 44 69 73 6b 46 72 65  OOL SHGetDiskFre
49f0: 65 53 70 61 63 65 45 78 41 28 4c 50 43 53 54 52  eSpaceExA(LPCSTR
4a00: 20 70 73 7a 44 69 72 65 63 74 6f 72 79 4e 61 6d   pszDirectoryNam
4a10: 65 2c 20 55 4c 41 52 47 45 5f 49 4e 54 45 47 45  e, ULARGE_INTEGE
4a20: 52 2a 20 70 75 6c 46 72 65 65 42 79 74 65 73 41  R* pulFreeBytesA
4a30: 76 61 69 6c 61 62 6c 65 54 6f 43 61 6c 6c 65 72  vailableToCaller
4a40: 2c 20 55 4c 41 52 47 45 5f 49 4e 54 45 47 45 52  , ULARGE_INTEGER
4a50: 2a 20 70 75 6c 54 6f 74 61 6c 4e 75 6d 62 65 72  * pulTotalNumber
4a60: 4f 66 42 79 74 65 73 2c 20 55 4c 41 52 47 45 5f  OfBytes, ULARGE_
4a70: 49 4e 54 45 47 45 52 2a 20 70 75 6c 54 6f 74 61  INTEGER* pulTota
4a80: 6c 4e 75 6d 62 65 72 4f 66 46 72 65 65 42 79 74  lNumberOfFreeByt
4a90: 65 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  es);..extern(Win
4aa0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
4ab0: 4c 20 53 48 47 65 74 44 69 73 6b 46 72 65 65 53  L SHGetDiskFreeS
4ac0: 70 61 63 65 45 78 57 28 4c 50 43 57 53 54 52 20  paceExW(LPCWSTR 
4ad0: 70 73 7a 44 69 72 65 63 74 6f 72 79 4e 61 6d 65  pszDirectoryName
4ae0: 2c 20 55 4c 41 52 47 45 5f 49 4e 54 45 47 45 52  , ULARGE_INTEGER
4af0: 2a 20 70 75 6c 46 72 65 65 42 79 74 65 73 41 76  * pulFreeBytesAv
4b00: 61 69 6c 61 62 6c 65 54 6f 43 61 6c 6c 65 72 2c  ailableToCaller,
4b10: 20 55 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 2a   ULARGE_INTEGER*
4b20: 20 70 75 6c 54 6f 74 61 6c 4e 75 6d 62 65 72 4f   pulTotalNumberO
4b30: 66 42 79 74 65 73 2c 20 55 4c 41 52 47 45 5f 49  fBytes, ULARGE_I
4b40: 4e 54 45 47 45 52 2a 20 70 75 6c 54 6f 74 61 6c  NTEGER* pulTotal
4b50: 4e 75 6d 62 65 72 4f 66 46 72 65 65 42 79 74 65  NumberOfFreeByte
4b60: 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  s);..// #ifdef U
4b70: 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d  NICODE..// #....
4b80: 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73  .// #else..alias
4b90: 20 53 48 47 65 74 44 69 73 6b 46 72 65 65 53 70   SHGetDiskFreeSp
4ba0: 61 63 65 45 78 41 20 53 48 47 65 74 44 69 73 6b  aceExA SHGetDisk
4bb0: 46 72 65 65 53 70 61 63 65 45 78 3b 0d 0a 2f 2f  FreeSpaceEx;..//
4bc0: 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
4bd0: 4f 44 45 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ODE..extern(Wind
4be0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
4bf0: 20 53 48 47 65 74 4e 65 77 4c 69 6e 6b 49 6e 66   SHGetNewLinkInf
4c00: 6f 41 28 4c 50 43 53 54 52 20 70 73 7a 4c 69 6e  oA(LPCSTR pszLin
4c10: 6b 54 6f 2c 20 4c 50 43 53 54 52 20 70 73 7a 44  kTo, LPCSTR pszD
4c20: 69 72 2c 20 4c 50 53 54 52 20 70 73 7a 4e 61 6d  ir, LPSTR pszNam
4c30: 65 2c 20 42 4f 4f 4c 20 2a 70 66 4d 75 73 74 43  e, BOOL *pfMustC
4c40: 6f 70 79 2c 20 55 49 4e 54 20 75 46 6c 61 67 73  opy, UINT uFlags
4c50: 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
4c60: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
4c70: 53 48 47 65 74 4e 65 77 4c 69 6e 6b 49 6e 66 6f  SHGetNewLinkInfo
4c80: 57 28 4c 50 43 57 53 54 52 20 70 73 7a 4c 69 6e  W(LPCWSTR pszLin
4c90: 6b 54 6f 2c 20 4c 50 43 57 53 54 52 20 70 73 7a  kTo, LPCWSTR psz
4ca0: 44 69 72 2c 20 4c 50 57 53 54 52 20 70 73 7a 4e  Dir, LPWSTR pszN
4cb0: 61 6d 65 2c 20 42 4f 4f 4c 20 2a 70 66 4d 75 73  ame, BOOL *pfMus
4cc0: 74 43 6f 70 79 2c 20 55 49 4e 54 20 75 46 6c 61  tCopy, UINT uFla
4cd0: 67 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  gs);..// #ifdef 
4ce0: 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e  UNICODE..// #...
4cf0: 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61  ..// #else..alia
4d00: 73 20 53 48 47 65 74 4e 65 77 4c 69 6e 6b 49 6e  s SHGetNewLinkIn
4d10: 66 6f 41 20 53 48 47 65 74 4e 65 77 4c 69 6e 6b  foA SHGetNewLink
4d20: 49 6e 66 6f 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66  Info;..// #endif
4d30: 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
4d40: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 48  enum : uint { SH
4d50: 47 4e 4c 49 5f 50 49 44 4c 20 3d 20 30 78 30 30  GNLI_PIDL = 0x00
4d60: 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20  0000001 }..enum 
4d70: 3a 20 75 69 6e 74 20 7b 20 53 48 47 4e 4c 49 5f  : uint { SHGNLI_
4d80: 50 52 45 46 49 58 4e 41 4d 45 20 3d 20 30 78 30  PREFIXNAME = 0x0
4d90: 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e 75 6d  00000002 }..enum
4da0: 20 3a 20 75 69 6e 74 20 7b 20 53 48 47 4e 4c 49   : uint { SHGNLI
4db0: 5f 4e 4f 55 4e 49 51 55 45 20 3d 20 30 78 30 30  _NOUNIQUE = 0x00
4dc0: 30 30 30 30 30 30 34 20 7d 0d 0a 2f 2f 20 23 69  0000004 }..// #i
4dd0: 66 20 28 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20  f (_WIN32_IE >= 
4de0: 30 78 30 35 30 31 29 0d 0a 65 6e 75 6d 20 3a 20  0x0501)..enum : 
4df0: 75 69 6e 74 20 7b 20 53 48 47 4e 4c 49 5f 4e 4f  uint { SHGNLI_NO
4e00: 4c 4e 4b 20 3d 20 30 78 30 30 30 30 30 30 30 30  LNK = 0x00000000
4e10: 38 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  8 }..// #endif /
4e20: 2f 20 5f 57 49 4e 32 5f 49 45 20 3e 3d 20 30 78  / _WIN2_IE >= 0x
4e30: 30 35 30 31 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  0501....enum : u
4e40: 69 6e 74 20 7b 20 50 52 49 4e 54 41 43 54 49 4f  int { PRINTACTIO
4e50: 4e 5f 4f 50 45 4e 20 3d 20 30 20 7d 0d 0a 65 6e  N_OPEN = 0 }..en
4e60: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 52 49 4e  um : uint { PRIN
4e70: 54 41 43 54 49 4f 4e 5f 50 52 4f 50 45 52 54 49  TACTION_PROPERTI
4e80: 45 53 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20 3a  ES = 1 }..enum :
4e90: 20 75 69 6e 74 20 7b 20 50 52 49 4e 54 41 43 54   uint { PRINTACT
4ea0: 49 4f 4e 5f 4e 45 54 49 4e 53 54 41 4c 4c 20 3d  ION_NETINSTALL =
4eb0: 20 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   2 }..enum : uin
4ec0: 74 20 7b 20 50 52 49 4e 54 41 43 54 49 4f 4e 5f  t { PRINTACTION_
4ed0: 4e 45 54 49 4e 53 54 41 4c 4c 4c 49 4e 4b 20 3d  NETINSTALLLINK =
4ee0: 20 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   3 }..enum : uin
4ef0: 74 20 7b 20 50 52 49 4e 54 41 43 54 49 4f 4e 5f  t { PRINTACTION_
4f00: 54 45 53 54 50 41 47 45 20 3d 20 34 20 7d 0d 0a  TESTPAGE = 4 }..
4f10: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 52  enum : uint { PR
4f20: 49 4e 54 41 43 54 49 4f 4e 5f 4f 50 45 4e 4e 45  INTACTION_OPENNE
4f30: 54 50 52 4e 20 3d 20 35 20 7d 0d 0a 2f 2f 20 23  TPRN = 5 }..// #
4f40: 69 66 64 65 66 20 57 49 4e 4e 54 0d 0a 2f 2f 20  ifdef WINNT..// 
4f50: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
4f60: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 78 74 65  / #endif....exte
4f70: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
4f80: 72 74 20 42 4f 4f 4c 20 53 48 49 6e 76 6f 6b 65  rt BOOL SHInvoke
4f90: 50 72 69 6e 74 65 72 43 6f 6d 6d 61 6e 64 41 28  PrinterCommandA(
4fa0: 48 57 4e 44 20 68 77 6e 64 2c 20 55 49 4e 54 20  HWND hwnd, UINT 
4fb0: 75 41 63 74 69 6f 6e 2c 20 4c 50 43 53 54 52 20  uAction, LPCSTR 
4fc0: 6c 70 42 75 66 31 2c 20 4c 50 43 53 54 52 20 6c  lpBuf1, LPCSTR l
4fd0: 70 42 75 66 32 2c 20 42 4f 4f 4c 20 66 4d 6f 64  pBuf2, BOOL fMod
4fe0: 61 6c 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  al);..extern(Win
4ff0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
5000: 4c 20 53 48 49 6e 76 6f 6b 65 50 72 69 6e 74 65  L SHInvokePrinte
5010: 72 43 6f 6d 6d 61 6e 64 57 28 48 57 4e 44 20 68  rCommandW(HWND h
5020: 77 6e 64 2c 20 55 49 4e 54 20 75 41 63 74 69 6f  wnd, UINT uActio
5030: 6e 2c 20 4c 50 43 57 53 54 52 20 6c 70 42 75 66  n, LPCWSTR lpBuf
5040: 31 2c 20 4c 50 43 57 53 54 52 20 6c 70 42 75 66  1, LPCWSTR lpBuf
5050: 32 2c 20 42 4f 4f 4c 20 66 4d 6f 64 61 6c 29 3b  2, BOOL fModal);
5060: 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
5070: 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  ODE..// #.....//
5080: 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20 53 48   #else..alias SH
5090: 49 6e 76 6f 6b 65 50 72 69 6e 74 65 72 43 6f 6d  InvokePrinterCom
50a0: 6d 61 6e 64 41 20 53 48 49 6e 76 6f 6b 65 50 72  mandA SHInvokePr
50b0: 69 6e 74 65 72 43 6f 6d 6d 61 6e 64 3b 0d 0a 2f  interCommand;../
50c0: 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
50d0: 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  CODE....// #endi
50e0: 66 20 2f 2a 20 57 49 4e 56 45 52 20 3e 3d 20 30  f /* WINVER >= 0
50f0: 78 30 34 30 30 20 2a 2f 0d 0a 0d 0a 2f 2f 20 23  x0400 */....// #
5100: 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54  if (_WIN32_WINNT
5110: 20 3e 3d 20 30 78 30 35 30 30 29 20 7c 7c 20 28   >= 0x0500) || (
5120: 5f 57 49 4e 33 32 5f 57 49 4e 44 4f 57 53 20 3e  _WIN32_WINDOWS >
5130: 3d 20 30 78 30 35 30 30 29 20 20 0d 0a 0d 0a 65  = 0x0500)  ....e
5140: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
5150: 78 70 6f 72 74 20 48 52 45 53 55 4c 54 20 53 48  xport HRESULT SH
5160: 4c 6f 61 64 4e 6f 6e 6c 6f 61 64 65 64 49 63 6f  LoadNonloadedIco
5170: 6e 4f 76 65 72 6c 61 79 49 64 65 6e 74 69 66 69  nOverlayIdentifi
5180: 65 72 73 28 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  ers();....extern
5190: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
51a0: 20 48 52 45 53 55 4c 54 20 53 48 49 73 46 69 6c   HRESULT SHIsFil
51b0: 65 41 76 61 69 6c 61 62 6c 65 4f 66 66 6c 69 6e  eAvailableOfflin
51c0: 65 28 4c 50 43 57 53 54 52 20 70 77 73 7a 50 61  e(LPCWSTR pwszPa
51d0: 74 68 2c 20 4c 50 44 57 4f 52 44 20 70 64 77 53  th, LPDWORD pdwS
51e0: 74 61 74 75 73 29 3b 0d 0a 0d 0a 65 6e 75 6d 20  tatus);....enum 
51f0: 3a 20 75 69 6e 74 20 7b 20 4f 46 46 4c 49 4e 45  : uint { OFFLINE
5200: 5f 53 54 41 54 55 53 5f 4c 4f 43 41 4c 20 3d 20  _STATUS_LOCAL = 
5210: 30 78 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0001 }..enum :
5220: 20 75 69 6e 74 20 7b 20 4f 46 46 4c 49 4e 45 5f   uint { OFFLINE_
5230: 53 54 41 54 55 53 5f 52 45 4d 4f 54 45 20 3d 20  STATUS_REMOTE = 
5240: 30 78 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0002 }..enum :
5250: 20 75 69 6e 74 20 7b 20 4f 46 46 4c 49 4e 45 5f   uint { OFFLINE_
5260: 53 54 41 54 55 53 5f 49 4e 43 4f 4d 50 4c 45 54  STATUS_INCOMPLET
5270: 45 20 3d 20 30 78 30 30 30 34 20 7d 0d 0a 0d 0a  E = 0x0004 }....
5280: 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 78 74  // #endif....ext
5290: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
52a0: 6f 72 74 20 48 52 45 53 55 4c 54 20 53 48 53 65  ort HRESULT SHSe
52b0: 74 4c 6f 63 61 6c 69 7a 65 64 4e 61 6d 65 28 4c  tLocalizedName(L
52c0: 50 57 53 54 52 20 70 73 7a 50 61 74 68 2c 20 4c  PWSTR pszPath, L
52d0: 50 43 57 53 54 52 20 70 73 7a 52 65 73 4d 6f 64  PCWSTR pszResMod
52e0: 75 6c 65 2c 20 69 6e 74 20 69 64 73 52 65 73 29  ule, int idsRes)
52f0: 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 20 20 20 20 20  ;....// #if     
5300: 20 20 20 20 5f 57 49 4e 33 32 5f 49 45 20 3e 3d      _WIN32_IE >=
5310: 20 30 78 30 36 30 30 0d 0a 0d 0a 65 78 74 65 72   0x0600....exter
5320: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
5330: 74 20 48 52 45 53 55 4c 54 20 53 48 45 6e 75 6d  t HRESULT SHEnum
5340: 65 72 61 74 65 55 6e 72 65 61 64 4d 61 69 6c 41  erateUnreadMailA
5350: 63 63 6f 75 6e 74 73 41 28 48 4b 45 59 20 68 4b  ccountsA(HKEY hK
5360: 65 79 55 73 65 72 2c 20 44 57 4f 52 44 20 64 77  eyUser, DWORD dw
5370: 49 6e 64 65 78 2c 20 4c 50 53 54 52 20 70 73 7a  Index, LPSTR psz
5380: 4d 61 69 6c 41 64 64 72 65 73 73 2c 20 69 6e 74  MailAddress, int
5390: 20 63 63 68 4d 61 69 6c 41 64 64 72 65 73 73 29   cchMailAddress)
53a0: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
53b0: 73 29 20 65 78 70 6f 72 74 20 48 52 45 53 55 4c  s) export HRESUL
53c0: 54 20 53 48 45 6e 75 6d 65 72 61 74 65 55 6e 72  T SHEnumerateUnr
53d0: 65 61 64 4d 61 69 6c 41 63 63 6f 75 6e 74 73 57  eadMailAccountsW
53e0: 28 48 4b 45 59 20 68 4b 65 79 55 73 65 72 2c 20  (HKEY hKeyUser, 
53f0: 44 57 4f 52 44 20 64 77 49 6e 64 65 78 2c 20 4c  DWORD dwIndex, L
5400: 50 57 53 54 52 20 70 73 7a 4d 61 69 6c 41 64 64  PWSTR pszMailAdd
5410: 72 65 73 73 2c 20 69 6e 74 20 63 63 68 4d 61 69  ress, int cchMai
5420: 6c 41 64 64 72 65 73 73 29 3b 0d 0a 2f 2f 20 23  lAddress);..// #
5430: 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f  ifdef UNICODE../
5440: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65  / #.....// #else
5450: 0d 0a 61 6c 69 61 73 20 53 48 45 6e 75 6d 65 72  ..alias SHEnumer
5460: 61 74 65 55 6e 72 65 61 64 4d 61 69 6c 41 63 63  ateUnreadMailAcc
5470: 6f 75 6e 74 73 41 20 53 48 45 6e 75 6d 65 72 61  ountsA SHEnumera
5480: 74 65 55 6e 72 65 61 64 4d 61 69 6c 41 63 63 6f  teUnreadMailAcco
5490: 75 6e 74 73 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66  unts;..// #endif
54a0: 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 65 78   // !UNICODE..ex
54b0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
54c0: 70 6f 72 74 20 48 52 45 53 55 4c 54 20 53 48 47  port HRESULT SHG
54d0: 65 74 55 6e 72 65 61 64 4d 61 69 6c 43 6f 75 6e  etUnreadMailCoun
54e0: 74 41 28 48 4b 45 59 20 68 4b 65 79 55 73 65 72  tA(HKEY hKeyUser
54f0: 2c 20 4c 50 43 53 54 52 20 70 73 7a 4d 61 69 6c  , LPCSTR pszMail
5500: 41 64 64 72 65 73 73 2c 20 44 57 4f 52 44 20 2a  Address, DWORD *
5510: 70 64 77 43 6f 75 6e 74 2c 20 46 49 4c 45 54 49  pdwCount, FILETI
5520: 4d 45 20 2a 70 46 69 6c 65 54 69 6d 65 2c 20 4c  ME *pFileTime, L
5530: 50 53 54 52 20 70 73 7a 53 68 65 6c 6c 45 78 65  PSTR pszShellExe
5540: 63 75 74 65 43 6f 6d 6d 61 6e 64 2c 20 69 6e 74  cuteCommand, int
5550: 20 63 63 68 53 68 65 6c 6c 45 78 65 63 75 74 65   cchShellExecute
5560: 43 6f 6d 6d 61 6e 64 29 3b 0d 0a 65 78 74 65 72  Command);..exter
5570: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
5580: 74 20 48 52 45 53 55 4c 54 20 53 48 47 65 74 55  t HRESULT SHGetU
5590: 6e 72 65 61 64 4d 61 69 6c 43 6f 75 6e 74 57 28  nreadMailCountW(
55a0: 48 4b 45 59 20 68 4b 65 79 55 73 65 72 2c 20 4c  HKEY hKeyUser, L
55b0: 50 43 57 53 54 52 20 70 73 7a 4d 61 69 6c 41 64  PCWSTR pszMailAd
55c0: 64 72 65 73 73 2c 20 44 57 4f 52 44 20 2a 70 64  dress, DWORD *pd
55d0: 77 43 6f 75 6e 74 2c 20 46 49 4c 45 54 49 4d 45  wCount, FILETIME
55e0: 20 2a 70 46 69 6c 65 54 69 6d 65 2c 20 4c 50 57   *pFileTime, LPW
55f0: 53 54 52 20 70 73 7a 53 68 65 6c 6c 45 78 65 63  STR pszShellExec
5600: 75 74 65 43 6f 6d 6d 61 6e 64 2c 20 69 6e 74 20  uteCommand, int 
5610: 63 63 68 53 68 65 6c 6c 45 78 65 63 75 74 65 43  cchShellExecuteC
5620: 6f 6d 6d 61 6e 64 29 3b 0d 0a 2f 2f 20 23 69 66  ommand);..// #if
5630: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20  def UNICODE..// 
5640: 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  #.....// #else..
5650: 61 6c 69 61 73 20 53 48 47 65 74 55 6e 72 65 61  alias SHGetUnrea
5660: 64 4d 61 69 6c 43 6f 75 6e 74 41 20 53 48 47 65  dMailCountA SHGe
5670: 74 55 6e 72 65 61 64 4d 61 69 6c 43 6f 75 6e 74  tUnreadMailCount
5680: 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ;..// #endif // 
5690: 21 55 4e 49 43 4f 44 45 0d 0a 65 78 74 65 72 6e  !UNICODE..extern
56a0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
56b0: 20 48 52 45 53 55 4c 54 20 53 48 53 65 74 55 6e   HRESULT SHSetUn
56c0: 72 65 61 64 4d 61 69 6c 43 6f 75 6e 74 41 28 4c  readMailCountA(L
56d0: 50 43 53 54 52 20 70 73 7a 4d 61 69 6c 41 64 64  PCSTR pszMailAdd
56e0: 72 65 73 73 2c 20 44 57 4f 52 44 20 64 77 43 6f  ress, DWORD dwCo
56f0: 75 6e 74 2c 20 4c 50 43 53 54 52 20 70 73 7a 53  unt, LPCSTR pszS
5700: 68 65 6c 6c 45 78 65 63 75 74 65 43 6f 6d 6d 61  hellExecuteComma
5710: 6e 64 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  nd);..extern(Win
5720: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 52 45  dows) export HRE
5730: 53 55 4c 54 20 53 48 53 65 74 55 6e 72 65 61 64  SULT SHSetUnread
5740: 4d 61 69 6c 43 6f 75 6e 74 57 28 4c 50 43 57 53  MailCountW(LPCWS
5750: 54 52 20 70 73 7a 4d 61 69 6c 41 64 64 72 65 73  TR pszMailAddres
5760: 73 2c 20 44 57 4f 52 44 20 64 77 43 6f 75 6e 74  s, DWORD dwCount
5770: 2c 20 4c 50 43 57 53 54 52 20 70 73 7a 53 68 65  , LPCWSTR pszShe
5780: 6c 6c 45 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64  llExecuteCommand
5790: 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
57a0: 49 43 4f 44 45 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  ICODE..// #.....
57b0: 2f 2f 20 23 65 6c 73 65 0d 0a 61 6c 69 61 73 20  // #else..alias 
57c0: 53 48 53 65 74 55 6e 72 65 61 64 4d 61 69 6c 43  SHSetUnreadMailC
57d0: 6f 75 6e 74 41 20 53 48 53 65 74 55 6e 72 65 61  ountA SHSetUnrea
57e0: 64 4d 61 69 6c 43 6f 75 6e 74 3b 0d 0a 2f 2f 20  dMailCount;..// 
57f0: 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
5800: 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  DE....// #endif 
5810: 20 2f 2a 20 20 5f 57 49 4e 33 32 5f 49 45 20 3e   /*  _WIN32_IE >
5820: 3d 20 30 78 30 36 30 30 20 20 20 20 20 2a 2f 0d  = 0x0600     */.
5830: 0a 0d 0a 2f 2f 20 23 69 66 20 20 20 20 20 20 20  ...// #if       
5840: 20 20 5f 57 49 4e 33 32 5f 49 45 20 3e 3d 20 30    _WIN32_IE >= 0
5850: 78 30 36 30 30 0d 0a 0d 0a 65 78 74 65 72 6e 28  x0600....extern(
5860: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
5870: 48 52 45 53 55 4c 54 20 53 48 47 65 74 49 6d 61  HRESULT SHGetIma
5880: 67 65 4c 69 73 74 28 69 6e 74 20 69 49 6d 61 67  geList(int iImag
5890: 65 4c 69 73 74 2c 20 52 45 46 49 49 44 20 72 69  eList, REFIID ri
58a0: 69 64 2c 20 76 6f 69 64 20 2a 2a 70 70 76 4f 62  id, void **ppvOb
58b0: 6a 29 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  j);....enum : ui
58c0: 6e 74 20 7b 20 53 48 49 4c 5f 4c 41 52 47 45 20  nt { SHIL_LARGE 
58d0: 3d 20 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  = 0 }..enum : ui
58e0: 6e 74 20 7b 20 53 48 49 4c 5f 53 4d 41 4c 4c 20  nt { SHIL_SMALL 
58f0: 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  = 1 }..enum : ui
5900: 6e 74 20 7b 20 53 48 49 4c 5f 45 58 54 52 41 4c  nt { SHIL_EXTRAL
5910: 41 52 47 45 20 3d 20 32 20 7d 0d 0a 65 6e 75 6d  ARGE = 2 }..enum
5920: 20 3a 20 75 69 6e 74 20 7b 20 53 48 49 4c 5f 53   : uint { SHIL_S
5930: 59 53 53 4d 41 4c 4c 20 3d 20 33 20 7d 0d 0a 0d  YSSMALL = 3 }...
5940: 0a 61 6c 69 61 73 20 53 48 49 4c 5f 53 59 53 53  .alias SHIL_SYSS
5950: 4d 41 4c 4c 20 53 48 49 4c 5f 4c 41 53 54 3b 0d  MALL SHIL_LAST;.
5960: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
5970: 73 29 20 61 6c 69 61 73 20 48 52 45 53 55 4c 54  s) alias HRESULT
5980: 20 66 75 6e 63 74 69 6f 6e 28 20 4c 50 43 57 53   function( LPCWS
5990: 54 52 20 70 73 7a 50 61 74 68 29 20 50 46 4e 43  TR pszPath) PFNC
59a0: 41 4e 53 48 41 52 45 46 4f 4c 44 45 52 57 3b 0d  ANSHAREFOLDERW;.
59b0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
59c0: 20 61 6c 69 61 73 20 48 52 45 53 55 4c 54 20 66   alias HRESULT f
59d0: 75 6e 63 74 69 6f 6e 28 20 48 57 4e 44 20 68 77  unction( HWND hw
59e0: 6e 64 50 61 72 65 6e 74 2c 20 20 4c 50 43 57 53  ndParent,  LPCWS
59f0: 54 52 20 70 73 7a 50 61 74 68 29 20 50 46 4e 53  TR pszPath) PFNS
5a00: 48 4f 57 53 48 41 52 45 46 4f 4c 44 45 52 55 49  HOWSHAREFOLDERUI
5a10: 57 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  W;....// #endif 
5a20: 20 2f 2a 20 20 5f 57 49 4e 33 32 5f 49 45 20 3e   /*  _WIN32_IE >
5a30: 3d 20 30 78 30 36 30 30 20 20 20 20 20 2a 2f 0d  = 0x0600     */.
5a40: 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 5f 5f 63  ...// #ifdef __c
5a50: 70 6c 75 73 70 6c 75 73 0d 0a 2f 2f 20 7d 0d 0a  plusplus..// }..
5a60: 2f 2f 20 23 65 6e 64 69 66 20 20 2f 2a 20 5f 5f  // #endif  /* __
5a70: 63 70 6c 75 73 70 6c 75 73 20 2a 2f 0d 0a 0d 0a  cplusplus */....
5a80: 2f 2f 20 23 69 66 20 21 64 65 66 69 6e 65 64 28  // #if !defined(
5a90: 5f 57 49 4e 36 34 29 0d 0a 61 6c 69 67 6e 3a 0d  _WIN64)..align:.
5aa0: 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f  .// #endif....//
5ab0: 20 23 65 6e 64 69 66 20 20 2f 2a 20 5f 49 4e 43   #endif  /* _INC
5ac0: 5f 53 48 45 4c 4c 41 50 49 20 2a 2f 0d 0a 0d 0a  _SHELLAPI */....