| 1 | #ifndef _SHLOBJ_H
 | 
|---|
| 2 | #define _SHLOBJ_H
 | 
|---|
| 3 | #if __GNUC__ >= 3
 | 
|---|
| 4 | #pragma GCC system_header
 | 
|---|
| 5 | #endif
 | 
|---|
| 6 | 
 | 
|---|
| 7 | #ifdef __cplusplus
 | 
|---|
| 8 | extern "C" {
 | 
|---|
| 9 | #endif
 | 
|---|
| 10 | 
 | 
|---|
| 11 | #include <ole2.h>
 | 
|---|
| 12 | #include <shlguid.h>
 | 
|---|
| 13 | #include <shellapi.h>
 | 
|---|
| 14 | #pragma pack(push,1)
 | 
|---|
| 15 | #include <commctrl.h>
 | 
|---|
| 16 | 
 | 
|---|
| 17 | #define BIF_RETURNONLYFSDIRS 1
 | 
|---|
| 18 | #define BIF_DONTGOBELOWDOMAIN 2
 | 
|---|
| 19 | #define BIF_STATUSTEXT 4
 | 
|---|
| 20 | #define BIF_RETURNFSANCESTORS 8
 | 
|---|
| 21 | #define BIF_EDITBOX 16
 | 
|---|
| 22 | #define BIF_VALIDATE 32
 | 
|---|
| 23 | #define BIF_NEWDIALOGSTYLE 64
 | 
|---|
| 24 | #define BIF_BROWSEINCLUDEURLS 128
 | 
|---|
| 25 | #define BIF_USENEWUI ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE )
 | 
|---|
| 26 | #define BIF_BROWSEFORCOMPUTER 0x1000
 | 
|---|
| 27 | #define BIF_BROWSEFORPRINTER 0x2000
 | 
|---|
| 28 | #define BIF_BROWSEINCLUDEFILES 0x4000
 | 
|---|
| 29 | #define BIF_SHAREABLE 0x8000
 | 
|---|
| 30 | #define BFFM_INITIALIZED 1
 | 
|---|
| 31 | #define BFFM_SELCHANGED 2
 | 
|---|
| 32 | #define BFFM_VALIDATEFAILEDA 3
 | 
|---|
| 33 | #define BFFM_VALIDATEFAILEDW 4
 | 
|---|
| 34 | #define BFFM_SETSTATUSTEXTA (WM_USER + 100)
 | 
|---|
| 35 | #define BFFM_SETSTATUSTEXTW (WM_USER + 104)
 | 
|---|
| 36 | #define BFFM_ENABLEOK (WM_USER + 101)
 | 
|---|
| 37 | #define BFFM_SETSELECTIONA (WM_USER + 102)
 | 
|---|
| 38 | #define BFFM_SETSELECTIONW (WM_USER + 103)
 | 
|---|
| 39 | #define BFFM_SETOKTEXT (WM_USER + 105)
 | 
|---|
| 40 | #define BFFM_SETEXPANDED (WM_USER + 106)
 | 
|---|
| 41 | #ifdef UNICODE
 | 
|---|
| 42 | #define BFFM_SETSTATUSTEXT  BFFM_SETSTATUSTEXTW
 | 
|---|
| 43 | #define BFFM_SETSELECTION   BFFM_SETSELECTIONW
 | 
|---|
| 44 | #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW
 | 
|---|
| 45 | #else
 | 
|---|
| 46 | #define BFFM_SETSTATUSTEXT  BFFM_SETSTATUSTEXTA
 | 
|---|
| 47 | #define BFFM_SETSELECTION   BFFM_SETSELECTIONA
 | 
|---|
| 48 | #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA
 | 
|---|
| 49 | #endif
 | 
|---|
| 50 | #define DVASPECT_SHORTNAME 2
 | 
|---|
| 51 | #define SHARD_PIDL      1
 | 
|---|
| 52 | #define SHARD_PATH      2
 | 
|---|
| 53 | #define SHCNE_RENAMEITEM        1
 | 
|---|
| 54 | #define SHCNE_CREATE    2
 | 
|---|
| 55 | #define SHCNE_DELETE    4
 | 
|---|
| 56 | #define SHCNE_MKDIR     8
 | 
|---|
| 57 | #define SHCNE_RMDIR     16
 | 
|---|
| 58 | #define SHCNE_MEDIAINSERTED     32
 | 
|---|
| 59 | #define SHCNE_MEDIAREMOVED      64
 | 
|---|
| 60 | #define SHCNE_DRIVEREMOVED      128
 | 
|---|
| 61 | #define SHCNE_DRIVEADD  256
 | 
|---|
| 62 | #define SHCNE_NETSHARE  512
 | 
|---|
| 63 | #define SHCNE_NETUNSHARE        1024
 | 
|---|
| 64 | #define SHCNE_ATTRIBUTES        2048
 | 
|---|
| 65 | #define SHCNE_UPDATEDIR 4096
 | 
|---|
| 66 | #define SHCNE_UPDATEITEM        8192
 | 
|---|
| 67 | #define SHCNE_SERVERDISCONNECT  16384
 | 
|---|
| 68 | #define SHCNE_UPDATEIMAGE       32768
 | 
|---|
| 69 | #define SHCNE_DRIVEADDGUI       65536
 | 
|---|
| 70 | #define SHCNE_RENAMEFOLDER      0x20000
 | 
|---|
| 71 | #define SHCNE_FREESPACE 0x40000
 | 
|---|
| 72 | #define SHCNE_ASSOCCHANGED      0x8000000
 | 
|---|
| 73 | #define SHCNE_DISKEVENTS        0x2381F
 | 
|---|
| 74 | #define SHCNE_GLOBALEVENTS      0xC0581E0
 | 
|---|
| 75 | #define SHCNE_ALLEVENTS 0x7FFFFFFF
 | 
|---|
| 76 | #define SHCNE_INTERRUPT 0x80000000
 | 
|---|
| 77 | #define SHCNF_IDLIST    0
 | 
|---|
| 78 | #define SHCNF_PATHA     1
 | 
|---|
| 79 | #define SHCNF_PRINTERA  2
 | 
|---|
| 80 | #define SHCNF_DWORD     3
 | 
|---|
| 81 | #define SHCNF_PATHW     5
 | 
|---|
| 82 | #define SHCNF_PRINTERW  6
 | 
|---|
| 83 | #define SHCNF_TYPE      0xFF
 | 
|---|
| 84 | #define SHCNF_FLUSH     0x1000
 | 
|---|
| 85 | #define SHCNF_FLUSHNOWAIT       0x2000
 | 
|---|
| 86 | #ifdef UNICODE
 | 
|---|
| 87 | #define SHCNF_PATH      SHCNF_PATHW
 | 
|---|
| 88 | #define SHCNF_PRINTER   SHCNF_PRINTERW
 | 
|---|
| 89 | #else
 | 
|---|
| 90 | #define SHCNF_PATH      SHCNF_PATHA
 | 
|---|
| 91 | #define SHCNF_PRINTER   SHCNF_PRINTERA
 | 
|---|
| 92 | #endif
 | 
|---|
| 93 | #define SFGAO_CANCOPY   DROPEFFECT_COPY
 | 
|---|
| 94 | #define SFGAO_CANMOVE   DROPEFFECT_MOVE
 | 
|---|
| 95 | #define SFGAO_CANLINK   DROPEFFECT_LINK
 | 
|---|
| 96 | #define SFGAO_CANRENAME         0x00000010L
 | 
|---|
| 97 | #define SFGAO_CANDELETE         0x00000020L
 | 
|---|
| 98 | #define SFGAO_HASPROPSHEET      0x00000040L
 | 
|---|
| 99 | #define SFGAO_DROPTARGET        0x00000100L
 | 
|---|
| 100 | #define SFGAO_CAPABILITYMASK    0x00000177L
 | 
|---|
| 101 | #define SFGAO_GHOSTED           0x00008000L
 | 
|---|
| 102 | #define SFGAO_LINK              0x00010000L
 | 
|---|
| 103 | #define SFGAO_SHARE             0x00020000L
 | 
|---|
| 104 | #define SFGAO_READONLY          0x00040000L
 | 
|---|
| 105 | #define SFGAO_HIDDEN            0x00080000L
 | 
|---|
| 106 | #define SFGAO_DISPLAYATTRMASK   0x000F0000L
 | 
|---|
| 107 | #define SFGAO_FILESYSANCESTOR   0x10000000L
 | 
|---|
| 108 | #define SFGAO_FOLDER            0x20000000L
 | 
|---|
| 109 | #define SFGAO_FILESYSTEM        0x40000000L
 | 
|---|
| 110 | #define SFGAO_HASSUBFOLDER      0x80000000L
 | 
|---|
| 111 | #define SFGAO_CONTENTSMASK      0x80000000L
 | 
|---|
| 112 | #define SFGAO_VALIDATE          0x01000000L
 | 
|---|
| 113 | #define SFGAO_REMOVABLE         0x02000000L
 | 
|---|
| 114 | #define SFGAO_COMPRESSED        0x04000000L
 | 
|---|
| 115 | #define STRRET_WSTR     0
 | 
|---|
| 116 | #define STRRET_OFFSET   1
 | 
|---|
| 117 | #define STRRET_CSTR     2
 | 
|---|
| 118 | #define SHGDFIL_FINDDATA        1
 | 
|---|
| 119 | #define SHGDFIL_NETRESOURCE     2
 | 
|---|
| 120 | #define SHGDFIL_DESCRIPTIONID   3
 | 
|---|
| 121 | #define SHDID_ROOT_REGITEM      1
 | 
|---|
| 122 | #define SHDID_FS_FILE   2
 | 
|---|
| 123 | #define SHDID_FS_DIRECTORY      3
 | 
|---|
| 124 | #define SHDID_FS_OTHER  4
 | 
|---|
| 125 | #define SHDID_COMPUTER_DRIVE35  5
 | 
|---|
| 126 | #define SHDID_COMPUTER_DRIVE525 6
 | 
|---|
| 127 | #define SHDID_COMPUTER_REMOVABLE        7
 | 
|---|
| 128 | #define SHDID_COMPUTER_FIXED    8
 | 
|---|
| 129 | #define SHDID_COMPUTER_NETDRIVE 9
 | 
|---|
| 130 | #define SHDID_COMPUTER_CDROM    10
 | 
|---|
| 131 | #define SHDID_COMPUTER_RAMDISK  11
 | 
|---|
| 132 | #define SHDID_COMPUTER_OTHER    12
 | 
|---|
| 133 | #define SHDID_NET_DOMAIN        13
 | 
|---|
| 134 | #define SHDID_NET_SERVER        14
 | 
|---|
| 135 | #define SHDID_NET_SHARE 15
 | 
|---|
| 136 | #define SHDID_NET_RESTOFNET     16
 | 
|---|
| 137 | #define SHDID_NET_OTHER 17
 | 
|---|
| 138 | #ifndef REGSTR_PATH_EXPLORER
 | 
|---|
| 139 | #define REGSTR_PATH_EXPLORER    TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer")
 | 
|---|
| 140 | #endif
 | 
|---|
| 141 | #define REGSTR_PATH_SPECIAL_FOLDERS     REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")
 | 
|---|
| 142 | #define CSIDL_DESKTOP   0
 | 
|---|
| 143 | #define CSIDL_INTERNET  1
 | 
|---|
| 144 | #define CSIDL_PROGRAMS  2
 | 
|---|
| 145 | #define CSIDL_CONTROLS  3
 | 
|---|
| 146 | #define CSIDL_PRINTERS  4
 | 
|---|
| 147 | #define CSIDL_PERSONAL  5
 | 
|---|
| 148 | #define CSIDL_FAVORITES 6
 | 
|---|
| 149 | #define CSIDL_STARTUP   7
 | 
|---|
| 150 | #define CSIDL_RECENT    8
 | 
|---|
| 151 | #define CSIDL_SENDTO    9
 | 
|---|
| 152 | #define CSIDL_BITBUCKET 10
 | 
|---|
| 153 | #define CSIDL_STARTMENU 11
 | 
|---|
| 154 | #define CSIDL_DESKTOPDIRECTORY  16
 | 
|---|
| 155 | #define CSIDL_DRIVES    17
 | 
|---|
| 156 | #define CSIDL_NETWORK   18
 | 
|---|
| 157 | #define CSIDL_NETHOOD   19
 | 
|---|
| 158 | #define CSIDL_FONTS     20
 | 
|---|
| 159 | #define CSIDL_TEMPLATES 21
 | 
|---|
| 160 | #define CSIDL_COMMON_STARTMENU  22
 | 
|---|
| 161 | #define CSIDL_COMMON_PROGRAMS   23
 | 
|---|
| 162 | #define CSIDL_COMMON_STARTUP    24
 | 
|---|
| 163 | #define CSIDL_COMMON_DESKTOPDIRECTORY   25
 | 
|---|
| 164 | #define CSIDL_APPDATA   26
 | 
|---|
| 165 | #define CSIDL_PRINTHOOD 27
 | 
|---|
| 166 | #define CSIDL_LOCAL_APPDATA 28
 | 
|---|
| 167 | #define CSIDL_ALTSTARTUP    29
 | 
|---|
| 168 | #define CSIDL_COMMON_ALTSTARTUP 30
 | 
|---|
| 169 | #define CSIDL_COMMON_FAVORITES  31
 | 
|---|
| 170 | #define CSIDL_INTERNET_CACHE   32
 | 
|---|
| 171 | #define CSIDL_COOKIES   33
 | 
|---|
| 172 | #define CSIDL_HISTORY   34
 | 
|---|
| 173 | #define CSIDL_COMMON_APPDATA    35
 | 
|---|
| 174 | #define CSIDL_WINDOWS   36
 | 
|---|
| 175 | #define CSIDL_SYSTEM    37
 | 
|---|
| 176 | #define CSIDL_PROGRAM_FILES     38
 | 
|---|
| 177 | #define CSIDL_MYPICTURES        39
 | 
|---|
| 178 | #define CSIDL_PROFILE   40
 | 
|---|
| 179 | #define CSIDL_SYSTEMX86 41
 | 
|---|
| 180 | #define CSIDL_PROGRAM_FILESX86  42
 | 
|---|
| 181 | #define CSIDL_PROGRAM_FILES_COMMON      43
 | 
|---|
| 182 | #define CSIDL_PROGRAM_FILES_COMMONX86   44
 | 
|---|
| 183 | #define CSIDL_COMMON_TEMPLATES  45
 | 
|---|
| 184 | #define CSIDL_COMMON_DOCUMENTS  46
 | 
|---|
| 185 | #define CSIDL_COMMON_ADMINTOOLS 47
 | 
|---|
| 186 | #define CSIDL_ADMINTOOLS        48
 | 
|---|
| 187 | #define CSIDL_CONNECTIONS       49
 | 
|---|
| 188 | #define CSIDL_COMMON_MUSIC      53
 | 
|---|
| 189 | #define CSIDL_COMMON_PICTURES   54
 | 
|---|
| 190 | #define CSIDL_COMMON_VIDEO      55
 | 
|---|
| 191 | #define CSIDL_RESOURCES 56
 | 
|---|
| 192 | #define CSIDL_RESOURCES_LOCALIZED       57
 | 
|---|
| 193 | #define CSIDL_COMMON_OEM_LINKS  58
 | 
|---|
| 194 | #define CSIDL_CDBURN_AREA       59
 | 
|---|
| 195 | #define CSIDL_COMPUTERSNEARME   61
 | 
|---|
| 196 | #define CSIDL_FLAG_DONT_VERIFY  0x4000
 | 
|---|
| 197 | #define CSIDL_FLAG_CREATE       0x8000
 | 
|---|
| 198 | #define CSIDL_FLAG_MASK 0xFF00
 | 
|---|
| 199 | #define CFSTR_SHELLIDLIST       TEXT("Shell IDList Array")
 | 
|---|
| 200 | #define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets")
 | 
|---|
| 201 | #define CFSTR_NETRESOURCES      TEXT("Net Resource")
 | 
|---|
| 202 | #define CFSTR_FILECONTENTS      TEXT("FileContents")
 | 
|---|
| 203 | #define CFSTR_FILENAMEA         TEXT("FileName")
 | 
|---|
| 204 | #define CFSTR_FILENAMEMAPA      TEXT("FileNameMap")
 | 
|---|
| 205 | #define CFSTR_FILEDESCRIPTORA   TEXT("FileGroupDescriptor")
 | 
|---|
| 206 | #define CFSTR_INETURLA          TEXT("UniformResourceLocator")
 | 
|---|
| 207 | #define CFSTR_SHELLURL          CFSTR_INETURLA
 | 
|---|
| 208 | #define CFSTR_FILENAMEW         TEXT("FileNameW")
 | 
|---|
| 209 | #define CFSTR_FILENAMEMAPW      TEXT("FileNameMapW")
 | 
|---|
| 210 | #define CFSTR_FILEDESCRIPTORW   TEXT("FileGroupDescriptorW")
 | 
|---|
| 211 | #define CFSTR_INETURLW          TEXT("UniformResourceLocatorW")
 | 
|---|
| 212 | #ifdef UNICODE
 | 
|---|
| 213 | #define CFSTR_FILENAME          CFSTR_FILENAMEW
 | 
|---|
| 214 | #define CFSTR_FILENAMEMAP       CFSTR_FILENAMEMAPW
 | 
|---|
| 215 | #define CFSTR_FILEDESCRIPTOR    CFSTR_FILEDESCRIPTORW
 | 
|---|
| 216 | #define CFSTR_INETURL           CFSTR_INETURLW
 | 
|---|
| 217 | #else
 | 
|---|
| 218 | #define CFSTR_FILENAME          CFSTR_FILENAMEA
 | 
|---|
| 219 | #define CFSTR_FILENAMEMAP       CFSTR_FILENAMEMAPA
 | 
|---|
| 220 | #define CFSTR_FILEDESCRIPTOR    CFSTR_FILEDESCRIPTORA
 | 
|---|
| 221 | #define CFSTR_INETURL           CFSTR_INETURLA
 | 
|---|
| 222 | #endif
 | 
|---|
| 223 | #define CFSTR_PRINTERGROUP      TEXT("PrinterFriendlyName")
 | 
|---|
| 224 | #define CFSTR_INDRAGLOOP        TEXT("InShellDragLoop")
 | 
|---|
| 225 | #define CFSTR_PASTESUCCEEDED    TEXT("Paste Succeeded")
 | 
|---|
| 226 | #define CFSTR_PERFORMEDDROPEFFECT       TEXT("Performed DropEffect")
 | 
|---|
| 227 | #define CFSTR_PREFERREDDROPEFFECT       TEXT("Preferred DropEffect")
 | 
|---|
| 228 | #define CMF_NORMAL      0
 | 
|---|
| 229 | #define CMF_DEFAULTONLY 1
 | 
|---|
| 230 | #define CMF_VERBSONLY   2
 | 
|---|
| 231 | #define CMF_EXPLORE     4
 | 
|---|
| 232 | #define CMF_NOVERBS     8
 | 
|---|
| 233 | #define CMF_CANRENAME   16
 | 
|---|
| 234 | #define CMF_NODEFAULT   32
 | 
|---|
| 235 | #define CMF_INCLUDESTATIC       64
 | 
|---|
| 236 | #define CMF_RESERVED    0xffff0000
 | 
|---|
| 237 | #define GCS_VERBA        0
 | 
|---|
| 238 | #define GCS_HELPTEXTA    1
 | 
|---|
| 239 | #define GCS_VALIDATEA    2
 | 
|---|
| 240 | #define GCS_VERBW        4
 | 
|---|
| 241 | #define GCS_HELPTEXTW    5
 | 
|---|
| 242 | #define GCS_VALIDATEW    6
 | 
|---|
| 243 | #define GCS_UNICODE      4
 | 
|---|
| 244 | #ifdef UNICODE
 | 
|---|
| 245 | #define GCS_VERB        GCS_VERBW
 | 
|---|
| 246 | #define GCS_HELPTEXT    GCS_HELPTEXTW
 | 
|---|
| 247 | #define GCS_VALIDATE    GCS_VALIDATEW
 | 
|---|
| 248 | #else
 | 
|---|
| 249 | #define GCS_VERB        GCS_VERBA
 | 
|---|
| 250 | #define GCS_HELPTEXT    GCS_HELPTEXTA
 | 
|---|
| 251 | #define GCS_VALIDATE    GCS_VALIDATEA
 | 
|---|
| 252 | #endif
 | 
|---|
| 253 | #define CMDSTR_NEWFOLDERA       "NewFolder"
 | 
|---|
| 254 | #define CMDSTR_VIEWLISTA        "ViewList"
 | 
|---|
| 255 | #define CMDSTR_VIEWDETAILSA     "ViewDetails"
 | 
|---|
| 256 | #define CMDSTR_NEWFOLDERW       L"NewFolder"
 | 
|---|
| 257 | #define CMDSTR_VIEWLISTW        L"ViewList"
 | 
|---|
| 258 | #define CMDSTR_VIEWDETAILSW     L"ViewDetails"
 | 
|---|
| 259 | #ifdef UNICODE
 | 
|---|
| 260 | #define CMDSTR_NEWFOLDER        CMDSTR_NEWFOLDERW
 | 
|---|
| 261 | #define CMDSTR_VIEWLIST         CMDSTR_VIEWLISTW
 | 
|---|
| 262 | #define CMDSTR_VIEWDETAILS      CMDSTR_VIEWDETAILSW
 | 
|---|
| 263 | #else
 | 
|---|
| 264 | #define CMDSTR_NEWFOLDER        CMDSTR_NEWFOLDER
 | 
|---|
| 265 | #define CMDSTR_VIEWLIST         CMDSTR_VIEWLIST
 | 
|---|
| 266 | #define CMDSTR_VIEWDETAILS      CMDSTR_VIEWDETAILS
 | 
|---|
| 267 | #endif
 | 
|---|
| 268 | #define CMIC_MASK_HOTKEY        SEE_MASK_HOTKEY
 | 
|---|
| 269 | #define CMIC_MASK_ICON  SEE_MASK_ICON
 | 
|---|
| 270 | #define CMIC_MASK_FLAG_NO_UI    SEE_MASK_FLAG_NO_UI
 | 
|---|
| 271 | #define CMIC_MASK_MODAL 0x80000000
 | 
|---|
| 272 | #define CMIC_VALID_SEE_FLAGS    SEE_VALID_CMIC_FLAGS
 | 
|---|
| 273 | #define GIL_OPENICON    1
 | 
|---|
| 274 | #define GIL_FORSHELL    2
 | 
|---|
| 275 | #define GIL_SIMULATEDOC 1
 | 
|---|
| 276 | #define GIL_PERINSTANCE 2
 | 
|---|
| 277 | #define GIL_PERCLASS    4
 | 
|---|
| 278 | #define GIL_NOTFILENAME 8
 | 
|---|
| 279 | #define GIL_DONTCACHE   16
 | 
|---|
| 280 | #define FVSIF_RECT      1
 | 
|---|
| 281 | #define FVSIF_PINNED    2
 | 
|---|
| 282 | #define FVSIF_NEWFAILED 0x8000000
 | 
|---|
| 283 | #define FVSIF_NEWFILE   0x80000000
 | 
|---|
| 284 | #define FVSIF_CANVIEWIT 0x40000000
 | 
|---|
| 285 | #define CDBOSC_SETFOCUS 0
 | 
|---|
| 286 | #define CDBOSC_KILLFOCUS        1
 | 
|---|
| 287 | #define CDBOSC_SELCHANGE        2
 | 
|---|
| 288 | #define CDBOSC_RENAME   3
 | 
|---|
| 289 | #define FCIDM_SHVIEWFIRST       0
 | 
|---|
| 290 | #define FCIDM_SHVIEWLAST        0x7fff
 | 
|---|
| 291 | #define FCIDM_BROWSERFIRST      0xa000
 | 
|---|
| 292 | #define FCIDM_BROWSERLAST       0xbf00
 | 
|---|
| 293 | #define FCIDM_GLOBALFIRST       0x8000
 | 
|---|
| 294 | #define FCIDM_GLOBALLAST        0x9fff
 | 
|---|
| 295 | #define FCIDM_MENU_FILE FCIDM_GLOBALFIRST
 | 
|---|
| 296 | #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040)
 | 
|---|
| 297 | #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080)
 | 
|---|
| 298 | #define FCIDM_MENU_VIEW_SEP_OPTIONS     (FCIDM_GLOBALFIRST+0x0081)
 | 
|---|
| 299 | #define FCIDM_MENU_TOOLS        (FCIDM_GLOBALFIRST+0x00c0)
 | 
|---|
| 300 | #define FCIDM_MENU_TOOLS_SEP_GOTO       (FCIDM_GLOBALFIRST+0x00c1)
 | 
|---|
| 301 | #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100)
 | 
|---|
| 302 | #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140)
 | 
|---|
| 303 | #define FCIDM_MENU_EXPLORE      (FCIDM_GLOBALFIRST+0x0150)
 | 
|---|
| 304 | #define FCIDM_MENU_FAVORITES    (FCIDM_GLOBALFIRST+0x0170)
 | 
|---|
| 305 | #define FCIDM_TOOLBAR   FCIDM_BROWSERFIRST
 | 
|---|
| 306 | #define FCIDM_STATUS    (FCIDM_BROWSERFIRST+1)
 | 
|---|
| 307 | #define SBSP_DEFBROWSER 0
 | 
|---|
| 308 | #define SBSP_SAMEBROWSER        1
 | 
|---|
| 309 | #define SBSP_NEWBROWSER 2
 | 
|---|
| 310 | #define SBSP_DEFMODE    0
 | 
|---|
| 311 | #define SBSP_OPENMODE   16
 | 
|---|
| 312 | #define SBSP_EXPLOREMODE        32
 | 
|---|
| 313 | #define SBSP_ABSOLUTE   0
 | 
|---|
| 314 | #define SBSP_RELATIVE   0x1000
 | 
|---|
| 315 | #define SBSP_PARENT     0x2000
 | 
|---|
| 316 | #define SBSP_INITIATEDBYHLINKFRAME      0x80000000
 | 
|---|
| 317 | #define SBSP_REDIRECT   0x40000000
 | 
|---|
| 318 | #define FCW_STATUS      1
 | 
|---|
| 319 | #define FCW_TOOLBAR     2
 | 
|---|
| 320 | #define FCW_TREE        3
 | 
|---|
| 321 | #define FCT_MERGE       1
 | 
|---|
| 322 | #define FCT_CONFIGABLE  2
 | 
|---|
| 323 | #define FCT_ADDTOEND    4
 | 
|---|
| 324 | #define SVSI_DESELECT   0
 | 
|---|
| 325 | #define SVSI_SELECT     1
 | 
|---|
| 326 | #define SVSI_EDIT       3
 | 
|---|
| 327 | #define SVSI_DESELECTOTHERS     4
 | 
|---|
| 328 | #define SVSI_ENSUREVISIBLE      8
 | 
|---|
| 329 | #define SVSI_FOCUSED    16
 | 
|---|
| 330 | #define SVGIO_BACKGROUND        0
 | 
|---|
| 331 | #define SVGIO_SELECTION 1
 | 
|---|
| 332 | #define SVGIO_ALLVIEW   2
 | 
|---|
| 333 | #define SV2GV_CURRENTVIEW ((UINT)-1)
 | 
|---|
| 334 | #define SV2GV_DEFAULTVIEW ((UINT)-2)
 | 
|---|
| 335 | 
 | 
|---|
| 336 | typedef ULONG SFGAOF;
 | 
|---|
| 337 | typedef DWORD SHGDNF;
 | 
|---|
| 338 | 
 | 
|---|
| 339 | typedef struct _IDA {
 | 
|---|
| 340 |         UINT cidl;
 | 
|---|
| 341 |         UINT aoffset[1];
 | 
|---|
| 342 | } CIDA,*LPIDA;
 | 
|---|
| 343 | typedef struct _SHITEMID {
 | 
|---|
| 344 |         USHORT  cb;
 | 
|---|
| 345 |         BYTE    abID[1];
 | 
|---|
| 346 | } SHITEMID, * LPSHITEMID;
 | 
|---|
| 347 | typedef const SHITEMID *LPCSHITEMID;
 | 
|---|
| 348 | typedef struct _ITEMIDLIST {
 | 
|---|
| 349 |         SHITEMID mkid;
 | 
|---|
| 350 | } ITEMIDLIST,*LPITEMIDLIST;
 | 
|---|
| 351 | typedef const ITEMIDLIST *LPCITEMIDLIST;
 | 
|---|
| 352 | typedef int (CALLBACK* BFFCALLBACK)(HWND,UINT,LPARAM,LPARAM);
 | 
|---|
| 353 | typedef struct _browseinfoA {
 | 
|---|
| 354 |         HWND    hwndOwner;
 | 
|---|
| 355 |         LPCITEMIDLIST   pidlRoot;
 | 
|---|
| 356 |         LPSTR   pszDisplayName;
 | 
|---|
| 357 |         LPCSTR  lpszTitle;
 | 
|---|
| 358 |         UINT    ulFlags;
 | 
|---|
| 359 |         BFFCALLBACK     lpfn;
 | 
|---|
| 360 |         LPARAM  lParam;
 | 
|---|
| 361 |         int     iImage;
 | 
|---|
| 362 | } BROWSEINFOA,*PBROWSEINFOA,*LPBROWSEINFOA;
 | 
|---|
| 363 | typedef struct _browseinfoW {
 | 
|---|
| 364 |         HWND    hwndOwner;
 | 
|---|
| 365 |         LPCITEMIDLIST   pidlRoot;
 | 
|---|
| 366 |         LPWSTR  pszDisplayName;
 | 
|---|
| 367 |         LPCWSTR lpszTitle;
 | 
|---|
| 368 |         UINT    ulFlags;
 | 
|---|
| 369 |         BFFCALLBACK     lpfn;
 | 
|---|
| 370 |         LPARAM  lParam;
 | 
|---|
| 371 |         int     iImage;
 | 
|---|
| 372 | } BROWSEINFOW,*PBROWSEINFOW,*LPBROWSEINFOW;
 | 
|---|
| 373 | typedef struct _CMInvokeCommandInfo {
 | 
|---|
| 374 |         DWORD cbSize;
 | 
|---|
| 375 |         DWORD fMask;
 | 
|---|
| 376 |         HWND hwnd;
 | 
|---|
| 377 |         LPCSTR lpVerb;
 | 
|---|
| 378 |         LPCSTR lpParameters;
 | 
|---|
| 379 |         LPCSTR lpDirectory;
 | 
|---|
| 380 |         int nShow;
 | 
|---|
| 381 |         DWORD dwHotKey;
 | 
|---|
| 382 |         HANDLE hIcon;
 | 
|---|
| 383 | } CMINVOKECOMMANDINFO,*LPCMINVOKECOMMANDINFO;
 | 
|---|
| 384 | typedef struct _DROPFILES {
 | 
|---|
| 385 |         DWORD pFiles;
 | 
|---|
| 386 |         POINT pt;
 | 
|---|
| 387 |         BOOL fNC;
 | 
|---|
| 388 |         BOOL fWide;
 | 
|---|
| 389 | } DROPFILES,*LPDROPFILES;
 | 
|---|
| 390 | typedef enum tagSHGDN {
 | 
|---|
| 391 |         SHGDN_NORMAL=0,
 | 
|---|
| 392 |         SHGDN_INFOLDER,
 | 
|---|
| 393 |         SHGDN_FOREDITING=0x1000,
 | 
|---|
| 394 |         SHGDN_INCLUDE_NONFILESYS=0x2000,
 | 
|---|
| 395 |         SHGDN_FORADDRESSBAR=0x4000,
 | 
|---|
| 396 |         SHGDN_FORPARSING=0x8000
 | 
|---|
| 397 | } SHGNO;
 | 
|---|
| 398 | typedef enum tagSHCONTF {
 | 
|---|
| 399 |         SHCONTF_FOLDERS = 32,
 | 
|---|
| 400 |         SHCONTF_NONFOLDERS = 64,
 | 
|---|
| 401 |         SHCONTF_INCLUDEHIDDEN = 128,
 | 
|---|
| 402 |         SHCONTF_INIT_ON_FIRST_NEXT = 256,
 | 
|---|
| 403 |         SHCONTF_NETPRINTERSRCH = 512,
 | 
|---|
| 404 |         SHCONTF_SHAREABLE = 1024,
 | 
|---|
| 405 |         SHCONTF_STORAGE = 2048
 | 
|---|
| 406 | } SHCONTF;
 | 
|---|
| 407 | typedef struct _STRRET {
 | 
|---|
| 408 |         UINT uType;
 | 
|---|
| 409 |         _ANONYMOUS_UNION union {
 | 
|---|
| 410 |                 LPWSTR pOleStr;
 | 
|---|
| 411 |                 UINT uOffset;
 | 
|---|
| 412 |                 char cStr[MAX_PATH];
 | 
|---|
| 413 |         } DUMMYUNIONNAME;
 | 
|---|
| 414 | } STRRET,*LPSTRRET;
 | 
|---|
| 415 | typedef enum {
 | 
|---|
| 416 |         FD_CLSID=1,FD_SIZEPOINT=2,FD_ATTRIBUTES=4,FD_CREATETIME=8,FD_ACCESSTIME=16,
 | 
|---|
| 417 |         FD_WRITESTIME=32,FD_FILESIZE=64,FD_LINKUI=0x8000
 | 
|---|
| 418 | } FD_FLAGS;
 | 
|---|
| 419 | typedef struct _FILEDESCRIPTORA {
 | 
|---|
| 420 |         DWORD dwFlags;
 | 
|---|
| 421 |         CLSID clsid;
 | 
|---|
| 422 |         SIZEL sizel;
 | 
|---|
| 423 |         POINTL pointl;
 | 
|---|
| 424 |         DWORD dwFileAttributes;
 | 
|---|
| 425 |         FILETIME ftCreationTime;
 | 
|---|
| 426 |         FILETIME ftLastAccessTime;
 | 
|---|
| 427 |         FILETIME ftLastWriteTime;
 | 
|---|
| 428 |         DWORD nFileSizeHigh;
 | 
|---|
| 429 |         DWORD nFileSizeLow;
 | 
|---|
| 430 |         CHAR cFileName[MAX_PATH];
 | 
|---|
| 431 | } FILEDESCRIPTORA,*LPFILEDESCRIPTORA;
 | 
|---|
| 432 | typedef struct _FILEDESCRIPTORW {
 | 
|---|
| 433 |         DWORD dwFlags;
 | 
|---|
| 434 |         CLSID clsid;
 | 
|---|
| 435 |         SIZEL sizel;
 | 
|---|
| 436 |         POINTL pointl;
 | 
|---|
| 437 |         DWORD dwFileAttributes;
 | 
|---|
| 438 |         FILETIME ftCreationTime;
 | 
|---|
| 439 |         FILETIME ftLastAccessTime;
 | 
|---|
| 440 |         FILETIME ftLastWriteTime;
 | 
|---|
| 441 |         DWORD nFileSizeHigh;
 | 
|---|
| 442 |         DWORD nFileSizeLow;
 | 
|---|
| 443 |         WCHAR cFileName[MAX_PATH];
 | 
|---|
| 444 | } FILEDESCRIPTORW,*LPFILEDESCRIPTORW;
 | 
|---|
| 445 | typedef struct _FILEGROUPDESCRIPTORA {
 | 
|---|
| 446 |         UINT cItems;
 | 
|---|
| 447 |         FILEDESCRIPTORA fgd[1];
 | 
|---|
| 448 | } FILEGROUPDESCRIPTORA,*LPFILEGROUPDESCRIPTORA;
 | 
|---|
| 449 | typedef struct _FILEGROUPDESCRIPTORW {
 | 
|---|
| 450 |         UINT cItems;
 | 
|---|
| 451 |         FILEDESCRIPTORW fgd[1];
 | 
|---|
| 452 | } FILEGROUPDESCRIPTORW,*LPFILEGROUPDESCRIPTORW;
 | 
|---|
| 453 | typedef enum {
 | 
|---|
| 454 |         SLR_NO_UI=1,
 | 
|---|
| 455 |         SLR_ANY_MATCH=2,
 | 
|---|
| 456 |         SLR_UPDATE=4,
 | 
|---|
| 457 |         SLR_NOUPDATE=8,
 | 
|---|
| 458 |         SLR_NOSEARCH=16,
 | 
|---|
| 459 |         SLR_NOTRACK=32,
 | 
|---|
| 460 |         SLR_NOLINKINFO=64,
 | 
|---|
| 461 |         SLR_INVOKE_MSI=128
 | 
|---|
| 462 | } SLR_FLAGS;
 | 
|---|
| 463 | typedef enum {
 | 
|---|
| 464 |         SLGP_SHORTPATH=1,
 | 
|---|
| 465 |         SLGP_UNCPRIORITY=2,
 | 
|---|
| 466 |         SLGP_RAWPATH=4
 | 
|---|
| 467 | } SLGP_FLAGS;
 | 
|---|
| 468 | typedef PBYTE LPVIEWSETTINGS;
 | 
|---|
| 469 | typedef enum {
 | 
|---|
| 470 |         FWF_AUTOARRANGE=1,FWF_ABBREVIATEDNAMES=2,FWF_SNAPTOGRID=4,FWF_OWNERDATA=8,
 | 
|---|
| 471 |         FWF_BESTFITWINDOW=16,FWF_DESKTOP=32,FWF_SINGLESEL=64,FWF_NOSUBFOLDERS=128,
 | 
|---|
| 472 |         FWF_TRANSPARENT=256,FWF_NOCLIENTEDGE=512,FWF_NOSCROLL=0x400,FWF_ALIGNLEFT=0x800,
 | 
|---|
| 473 |         FWF_SINGLECLICKACTIVATE=0x8000
 | 
|---|
| 474 | } FOLDERFLAGS;
 | 
|---|
| 475 | typedef enum {
 | 
|---|
| 476 |         FVM_ICON=1,
 | 
|---|
| 477 |         FVM_SMALLICON,
 | 
|---|
| 478 |         FVM_LIST,
 | 
|---|
| 479 |         FVM_DETAILS
 | 
|---|
| 480 | } FOLDERVIEWMODE;
 | 
|---|
| 481 | typedef struct {
 | 
|---|
| 482 |         UINT ViewMode;
 | 
|---|
| 483 |         UINT fFlags;
 | 
|---|
| 484 | } FOLDERSETTINGS,*LPFOLDERSETTINGS;
 | 
|---|
| 485 | typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
 | 
|---|
| 486 | typedef struct {
 | 
|---|
| 487 |     DWORD cbSize;
 | 
|---|
| 488 |         HWND hwndOwner;
 | 
|---|
| 489 |         int iShow;
 | 
|---|
| 490 |         DWORD dwFlags;
 | 
|---|
| 491 |         RECT rect;
 | 
|---|
| 492 |         LPUNKNOWN punkRel;
 | 
|---|
| 493 |         OLECHAR strNewFile[MAX_PATH];
 | 
|---|
| 494 | } FVSHOWINFO,*LPFVSHOWINFO;
 | 
|---|
| 495 | typedef struct _NRESARRAY {
 | 
|---|
| 496 |         UINT cItems;
 | 
|---|
| 497 |         NETRESOURCE nr[1];
 | 
|---|
| 498 | } NRESARRAY, *LPNRESARRAY;
 | 
|---|
| 499 | enum { SBSC_HIDE,SBSC_SHOW,SBSC_TOGGLE,SBSC_QUERY };
 | 
|---|
| 500 | enum {
 | 
|---|
| 501 |         SBCMDID_ENABLESHOWTREE,SBCMDID_SHOWCONTROL,SBCMDID_CANCELNAVIGATION,
 | 
|---|
| 502 |         SBCMDID_MAYSAVECHANGES,SBCMDID_SETHLINKFRAME,SBCMDID_ENABLESTOP,SBCMDID_OPTIONS
 | 
|---|
| 503 | };
 | 
|---|
| 504 | typedef enum {
 | 
|---|
| 505 |         SVUIA_DEACTIVATE,SVUIA_ACTIVATE_NOFOCUS,SVUIA_ACTIVATE_FOCUS,
 | 
|---|
| 506 |         SVUIA_INPLACEACTIVATE
 | 
|---|
| 507 | } SVUIA_STATUS;
 | 
|---|
| 508 | #if (_WIN32_IE >= 0x0500)
 | 
|---|
| 509 | typedef struct tagEXTRASEARCH
 | 
|---|
| 510 | {
 | 
|---|
| 511 |         GUID guidSearch;
 | 
|---|
| 512 |         WCHAR wszFriendlyName[80];
 | 
|---|
| 513 |         WCHAR wszUrl[2084];
 | 
|---|
| 514 | } EXTRASEARCH, *LPEXTRASEARCH;
 | 
|---|
| 515 | typedef DWORD SHCOLSTATEF;
 | 
|---|
| 516 | typedef struct
 | 
|---|
| 517 | {
 | 
|---|
| 518 |         GUID fmtid;
 | 
|---|
| 519 |         DWORD pid;
 | 
|---|
| 520 | } SHCOLUMNID, *LPSHCOLUMNID;
 | 
|---|
| 521 | typedef const SHCOLUMNID *LPCSHCOLUMNID;
 | 
|---|
| 522 | typedef struct _SHELLDETAILS
 | 
|---|
| 523 | {
 | 
|---|
| 524 |         int fmt; 
 | 
|---|
| 525 |         int cxChar;
 | 
|---|
| 526 |         STRRET str;
 | 
|---|
| 527 | } SHELLDETAILS, *LPSHELLDETAILS;
 | 
|---|
| 528 | typedef struct
 | 
|---|
| 529 | {
 | 
|---|
| 530 |         LPITEMIDLIST pidlTargetFolder;
 | 
|---|
| 531 |         WCHAR szTargetParsingName[MAX_PATH];
 | 
|---|
| 532 |         WCHAR szNetworkProvider[MAX_PATH];
 | 
|---|
| 533 |         DWORD dwAttributes;
 | 
|---|
| 534 |         int csidl;
 | 
|---|
| 535 | } PERSIST_FOLDER_TARGET_INFO;
 | 
|---|
| 536 | 
 | 
|---|
| 537 | typedef enum {
 | 
|---|
| 538 |         SHGFP_TYPE_CURRENT = 0,
 | 
|---|
| 539 |         SHGFP_TYPE_DEFAULT = 1,
 | 
|---|
| 540 | } SHGFP_TYPE;
 | 
|---|
| 541 | #endif
 | 
|---|
| 542 | 
 | 
|---|
| 543 | 
 | 
|---|
| 544 | DECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST);
 | 
|---|
| 545 | typedef IEnumIDList *LPENUMIDLIST;
 | 
|---|
| 546 | 
 | 
|---|
| 547 | #ifdef COBJMACROS
 | 
|---|
| 548 | #define IEnumIDList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 549 | #define IEnumIDList_Release(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 550 | #define IEnumIDList_AddRef(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 551 | #define IEnumIDList_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
 | 
|---|
| 552 | #define IEnumIDList_Skip(T,a) (T)->lpVtbl->Skip(T,a)
 | 
|---|
| 553 | #define IEnumIDList_Reset(T) (T)->lpVtbl->Reset(T)
 | 
|---|
| 554 | #define IEnumIDList_Clone(T,a) (T)->lpVtbl->Clone(T,a)
 | 
|---|
| 555 | #endif
 | 
|---|
| 556 | 
 | 
|---|
| 557 | #undef INTERFACE
 | 
|---|
| 558 | #define INTERFACE IObjMgr
 | 
|---|
| 559 | DECLARE_INTERFACE_(IObjMgr, IUnknown)
 | 
|---|
| 560 | {
 | 
|---|
| 561 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 562 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 563 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 564 |         STDMETHOD(Append)(THIS_ IUnknown*) PURE;
 | 
|---|
| 565 |         STDMETHOD(Remove)(THIS_ IUnknown*) PURE;
 | 
|---|
| 566 | };
 | 
|---|
| 567 | 
 | 
|---|
| 568 | #undef INTERFACE
 | 
|---|
| 569 | #define INTERFACE IContextMenu
 | 
|---|
| 570 | DECLARE_INTERFACE_(IContextMenu,IUnknown)
 | 
|---|
| 571 | {
 | 
|---|
| 572 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 573 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 574 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 575 |         STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE;
 | 
|---|
| 576 |         STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
 | 
|---|
| 577 |         STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
 | 
|---|
| 578 | };
 | 
|---|
| 579 | typedef IContextMenu *LPCONTEXTMENU;
 | 
|---|
| 580 | 
 | 
|---|
| 581 | #ifdef COBJMACROS
 | 
|---|
| 582 | #define IContextMenu_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 583 | #define IContextMenu_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 584 | #define IContextMenu_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 585 | #define IContextMenu_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
 | 
|---|
| 586 | #define IContextMenu_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
 | 
|---|
| 587 | #define IContextMenu_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
 | 
|---|
| 588 | #endif
 | 
|---|
| 589 | 
 | 
|---|
| 590 | #undef INTERFACE
 | 
|---|
| 591 | #define INTERFACE IContextMenu2
 | 
|---|
| 592 | DECLARE_INTERFACE_(IContextMenu2,IContextMenu)
 | 
|---|
| 593 | {
 | 
|---|
| 594 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 595 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 596 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 597 |         STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE;
 | 
|---|
| 598 |         STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
 | 
|---|
| 599 |         STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
 | 
|---|
| 600 |         STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE;
 | 
|---|
| 601 | };
 | 
|---|
| 602 | typedef IContextMenu2 *LPCONTEXTMENU2;
 | 
|---|
| 603 | 
 | 
|---|
| 604 | #undef INTERFACE
 | 
|---|
| 605 | #define INTERFACE IContextMenu3
 | 
|---|
| 606 | DECLARE_INTERFACE_(IContextMenu3,IContextMenu2)
 | 
|---|
| 607 | {
 | 
|---|
| 608 |  STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 609 |  STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 610 |  STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 611 |  STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE;
 | 
|---|
| 612 |  STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
 | 
|---|
| 613 |  STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
 | 
|---|
| 614 |  STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE;
 | 
|---|
| 615 |  STDMETHOD(HandleMenuMsg2)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE;
 | 
|---|
| 616 | };
 | 
|---|
| 617 | typedef IContextMenu3 *LPCONTEXTMENU3;
 | 
|---|
| 618 | 
 | 
|---|
| 619 | #if (_WIN32_IE >= 0x0500)
 | 
|---|
| 620 | #pragma pack(push,8)
 | 
|---|
| 621 | typedef struct {
 | 
|---|
| 622 |         ULONG dwFlags;
 | 
|---|
| 623 |         ULONG dwReserved;
 | 
|---|
| 624 |         WCHAR wszFolder[MAX_PATH];
 | 
|---|
| 625 | } SHCOLUMNINIT,*LPSHCOLUMNINIT;
 | 
|---|
| 626 | typedef const SHCOLUMNINIT* LPCSHCOLUMNINIT;
 | 
|---|
| 627 | typedef struct {
 | 
|---|
| 628 |         ULONG dwFlags;
 | 
|---|
| 629 |         DWORD dwFileAttributes;
 | 
|---|
| 630 |         ULONG dwReserved;
 | 
|---|
| 631 |         WCHAR *pwszExt;
 | 
|---|
| 632 |         WCHAR wszFile[MAX_PATH];
 | 
|---|
| 633 | } SHCOLUMNDATA,*LPSHCOLUMNDATA;
 | 
|---|
| 634 | typedef const SHCOLUMNDATA* LPCSHCOLUMNDATA;
 | 
|---|
| 635 | #pragma pack(pop)
 | 
|---|
| 636 | 
 | 
|---|
| 637 | #define MAX_COLUMN_NAME_LEN 80
 | 
|---|
| 638 | #define MAX_COLUMN_DESC_LEN 128
 | 
|---|
| 639 | 
 | 
|---|
| 640 | #pragma pack(push,1)
 | 
|---|
| 641 | typedef struct {
 | 
|---|
| 642 |         SHCOLUMNID scid;
 | 
|---|
| 643 |         VARTYPE vt;
 | 
|---|
| 644 |         DWORD fmt;
 | 
|---|
| 645 |         UINT cChars;
 | 
|---|
| 646 |         DWORD csFlags;
 | 
|---|
| 647 |         WCHAR wszTitle[MAX_COLUMN_NAME_LEN];
 | 
|---|
| 648 |         WCHAR wszDescription[MAX_COLUMN_DESC_LEN];
 | 
|---|
| 649 | } SHCOLUMNINFO,*LPSHCOLUMNINFO;
 | 
|---|
| 650 | typedef const SHCOLUMNINFO* LPCSHCOLUMNINFO;
 | 
|---|
| 651 | #pragma pack(pop)
 | 
|---|
| 652 | 
 | 
|---|
| 653 | typedef enum {
 | 
|---|
| 654 |         SHCOLSTATE_TYPE_STR = 0x00000001,
 | 
|---|
| 655 |         SHCOLSTATE_TYPE_INT = 0x00000002,
 | 
|---|
| 656 |         SHCOLSTATE_TYPE_DATE = 0x00000003,
 | 
|---|
| 657 |         SHCOLSTATE_TYPEMASK = 0x0000000f,
 | 
|---|
| 658 |         SHCOLSTATE_ONBYDEFAULT = 0x00000010,
 | 
|---|
| 659 |         SHCOLSTATE_SLOW = 0x00000020,
 | 
|---|
| 660 |         SHCOLSTATE_EXTENDED = 0x00000040,
 | 
|---|
| 661 |         SHCOLSTATE_SECONDARYUI = 0x00000080,
 | 
|---|
| 662 |         SHCOLSTATE_HIDDEN = 0x00000100,
 | 
|---|
| 663 |         SHCOLSTATE_PREFER_VARCMP = 0x00000200
 | 
|---|
| 664 | } SHCOLSTATE;
 | 
|---|
| 665 | 
 | 
|---|
| 666 | #ifdef COBJMACROS
 | 
|---|
| 667 | #define IContextMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 668 | #define IContextMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 669 | #define IContextMenu2_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 670 | #define IContextMenu2_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
 | 
|---|
| 671 | #define IContextMenu2_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
 | 
|---|
| 672 | #define IContextMenu2_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
 | 
|---|
| 673 | #define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)
 | 
|---|
| 674 | #endif
 | 
|---|
| 675 | 
 | 
|---|
| 676 | #ifdef COBJMACROS
 | 
|---|
| 677 | #define IContextMenu3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 678 | #define IContextMenu3_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 679 | #define IContextMenu3_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 680 | #define IContextMenu3_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
 | 
|---|
| 681 | #define IContextMenu3_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
 | 
|---|
| 682 | #define IContextMenu3_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
 | 
|---|
| 683 | #define IContextMenu3_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)
 | 
|---|
| 684 | #define IContextMenu3_HandleMenuMsg2(T,a,b,c,d) (T)->lpVtbl->HandleMenuMsg(T,a,b,c,d)
 | 
|---|
| 685 | #endif
 | 
|---|
| 686 | 
 | 
|---|
| 687 | #undef INTERFACE
 | 
|---|
| 688 | #define INTERFACE IColumnProvider
 | 
|---|
| 689 | DECLARE_INTERFACE_(IColumnProvider,IUnknown)
 | 
|---|
| 690 | {
 | 
|---|
| 691 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 692 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 693 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 694 |         STDMETHOD(Initialize)(THIS_ LPCSHCOLUMNINIT) PURE;
 | 
|---|
| 695 |         STDMETHOD(GetColumnInfo)(THIS_ DWORD,SHCOLUMNINFO*) PURE;
 | 
|---|
| 696 |         STDMETHOD(GetItemData)(THIS_ LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*) PURE;
 | 
|---|
| 697 | };
 | 
|---|
| 698 | #endif  /* _WIN32_IE >= 0x0500 */
 | 
|---|
| 699 | 
 | 
|---|
| 700 | #undef INTERFACE
 | 
|---|
| 701 | #define INTERFACE IQueryInfo
 | 
|---|
| 702 | DECLARE_INTERFACE_(IQueryInfo,IUnknown)
 | 
|---|
| 703 | {
 | 
|---|
| 704 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 705 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 706 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 707 |         STDMETHOD(GetInfoTip)(THIS_ DWORD,WCHAR**) PURE;
 | 
|---|
| 708 |         STDMETHOD(GetInfoFlags)(THIS_ DWORD*) PURE;
 | 
|---|
| 709 | };
 | 
|---|
| 710 | 
 | 
|---|
| 711 | #undef INTERFACE
 | 
|---|
| 712 | #define INTERFACE IShellExtInit
 | 
|---|
| 713 | DECLARE_INTERFACE_(IShellExtInit, IUnknown)
 | 
|---|
| 714 | {
 | 
|---|
| 715 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 716 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 717 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 718 |         STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST,LPDATAOBJECT,HKEY) PURE;
 | 
|---|
| 719 | };
 | 
|---|
| 720 | typedef IShellExtInit *LPSHELLEXTINIT;
 | 
|---|
| 721 | 
 | 
|---|
| 722 | #undef INTERFACE
 | 
|---|
| 723 | #define INTERFACE IShellPropSheetExt
 | 
|---|
| 724 | DECLARE_INTERFACE_(IShellPropSheetExt, IUnknown)
 | 
|---|
| 725 | {
 | 
|---|
| 726 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 727 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 728 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 729 |         STDMETHOD(AddPages)(THIS_ LPFNADDPROPSHEETPAGE,LPARAM) PURE;
 | 
|---|
| 730 |         STDMETHOD(ReplacePage)(THIS_ UINT,LPFNADDPROPSHEETPAGE,LPARAM) PURE;
 | 
|---|
| 731 | };
 | 
|---|
| 732 | typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
 | 
|---|
| 733 | 
 | 
|---|
| 734 | #undef INTERFACE
 | 
|---|
| 735 | #define INTERFACE IExtractIconA
 | 
|---|
| 736 | DECLARE_INTERFACE_(IExtractIconA, IUnknown)
 | 
|---|
| 737 | {
 | 
|---|
| 738 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 739 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 740 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 741 |         STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE;
 | 
|---|
| 742 |         STDMETHOD(Extract)(THIS_ LPCSTR,UINT,HICON*,HICON*,UINT) PURE;
 | 
|---|
| 743 | };
 | 
|---|
| 744 | typedef IExtractIconA *LPEXTRACTICONA;
 | 
|---|
| 745 | 
 | 
|---|
| 746 | #ifdef COBJMACROS
 | 
|---|
| 747 | #define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 748 | #define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 749 | #define IExtractIconA_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 750 | #define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
 | 
|---|
| 751 | #define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
 | 
|---|
| 752 | #endif
 | 
|---|
| 753 | 
 | 
|---|
| 754 | #undef INTERFACE
 | 
|---|
| 755 | #define INTERFACE IExtractIconW
 | 
|---|
| 756 | DECLARE_INTERFACE_(IExtractIconW, IUnknown)
 | 
|---|
| 757 | {
 | 
|---|
| 758 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 759 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 760 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 761 |         STDMETHOD(GetIconLocation)(THIS_ UINT,LPWSTR,UINT,int*,PUINT) PURE;
 | 
|---|
| 762 |         STDMETHOD(Extract)(THIS_ LPCWSTR,UINT,HICON*,HICON*,UINT) PURE;
 | 
|---|
| 763 | };
 | 
|---|
| 764 | typedef IExtractIconW *LPEXTRACTICONW;
 | 
|---|
| 765 | 
 | 
|---|
| 766 | #ifdef COBJMACROS
 | 
|---|
| 767 | #define IExtractIconW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 768 | #define IExtractIconW_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 769 | #define IExtractIconW_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 770 | #define IExtractIconW_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
 | 
|---|
| 771 | #define IExtractIconW_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
 | 
|---|
| 772 | #endif
 | 
|---|
| 773 | 
 | 
|---|
| 774 | #ifdef UNICODE
 | 
|---|
| 775 | #define IExtractIcon IExtractIconW
 | 
|---|
| 776 | #define LPEXTRACTICON LPEXTRACTICONW
 | 
|---|
| 777 | #else
 | 
|---|
| 778 | #define IExtractIcon IExtractIconA
 | 
|---|
| 779 | #define LPEXTRACTICON LPEXTRACTICONA
 | 
|---|
| 780 | #endif
 | 
|---|
| 781 | 
 | 
|---|
| 782 | #undef INTERFACE
 | 
|---|
| 783 | #define INTERFACE IShellLinkA
 | 
|---|
| 784 | DECLARE_INTERFACE_(IShellLinkA, IUnknown)
 | 
|---|
| 785 | {
 | 
|---|
| 786 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 787 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 788 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 789 |         STDMETHOD(GetPath)(THIS_ LPSTR,int,WIN32_FIND_DATAA*,DWORD) PURE;
 | 
|---|
| 790 |         STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE;
 | 
|---|
| 791 |         STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE;
 | 
|---|
| 792 |         STDMETHOD(GetDescription)(THIS_ LPSTR,int) PURE;
 | 
|---|
| 793 |         STDMETHOD(SetDescription)(THIS_ LPCSTR) PURE;
 | 
|---|
| 794 |         STDMETHOD(GetWorkingDirectory)(THIS_ LPSTR,int) PURE;
 | 
|---|
| 795 |         STDMETHOD(SetWorkingDirectory)(THIS_ LPCSTR) PURE;
 | 
|---|
| 796 |         STDMETHOD(GetArguments)(THIS_ LPSTR,int) PURE;
 | 
|---|
| 797 |         STDMETHOD(SetArguments)(THIS_ LPCSTR) PURE;
 | 
|---|
| 798 |         STDMETHOD(GetHotkey)(THIS_ PWORD) PURE;
 | 
|---|
| 799 |         STDMETHOD(SetHotkey)(THIS_ WORD) PURE;
 | 
|---|
| 800 |         STDMETHOD(GetShowCmd)(THIS_ int*) PURE;
 | 
|---|
| 801 |         STDMETHOD(SetShowCmd)(THIS_ int) PURE;
 | 
|---|
| 802 |         STDMETHOD(GetIconLocation)(THIS_ LPSTR,int,int*) PURE;
 | 
|---|
| 803 |         STDMETHOD(SetIconLocation)(THIS_ LPCSTR,int) PURE;
 | 
|---|
| 804 |         STDMETHOD(SetRelativePath)(THIS_ LPCSTR ,DWORD) PURE;
 | 
|---|
| 805 |         STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE;
 | 
|---|
| 806 |         STDMETHOD(SetPath)(THIS_ LPCSTR) PURE;
 | 
|---|
| 807 | };
 | 
|---|
| 808 | 
 | 
|---|
| 809 | #ifdef COBJMACROS
 | 
|---|
| 810 | #define IShellLinkA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 811 | #define IShellLinkA_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 812 | #define IShellLinkA_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 813 | #define IShellLinkA_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
 | 
|---|
| 814 | #define IShellLinkA_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
 | 
|---|
| 815 | #define IShellLinkA_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
 | 
|---|
| 816 | #define IShellLinkA_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
 | 
|---|
| 817 | #define IShellLinkA_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
 | 
|---|
| 818 | #define IShellLinkA_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
 | 
|---|
| 819 | #define IShellLinkA_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
 | 
|---|
| 820 | #define IShellLinkA_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
 | 
|---|
| 821 | #define IShellLinkA_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
 | 
|---|
| 822 | #define IShellLinkA_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
 | 
|---|
| 823 | #define IShellLinkA_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
 | 
|---|
| 824 | #define IShellLinkA_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
 | 
|---|
| 825 | #define IShellLinkA_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
 | 
|---|
| 826 | #define IShellLinkA_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
 | 
|---|
| 827 | #define IShellLinkA_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
 | 
|---|
| 828 | #define IShellLinkA_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
 | 
|---|
| 829 | #define IShellLinkA_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
 | 
|---|
| 830 | #define IShellLinkA_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
 | 
|---|
| 831 | #endif
 | 
|---|
| 832 | 
 | 
|---|
| 833 | #undef INTERFACE
 | 
|---|
| 834 | #define INTERFACE IShellLinkW
 | 
|---|
| 835 | DECLARE_INTERFACE_(IShellLinkW, IUnknown)
 | 
|---|
| 836 | {
 | 
|---|
| 837 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 838 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 839 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 840 |         STDMETHOD(GetPath)(THIS_ LPWSTR,int,WIN32_FIND_DATAW*,DWORD) PURE;
 | 
|---|
| 841 |         STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE;
 | 
|---|
| 842 |         STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE;
 | 
|---|
| 843 |         STDMETHOD(GetDescription)(THIS_ LPWSTR,int) PURE;
 | 
|---|
| 844 |         STDMETHOD(SetDescription)(THIS_ LPCWSTR) PURE;
 | 
|---|
| 845 |         STDMETHOD(GetWorkingDirectory)(THIS_ LPWSTR,int) PURE;
 | 
|---|
| 846 |         STDMETHOD(SetWorkingDirectory)(THIS_ LPCWSTR) PURE;
 | 
|---|
| 847 |         STDMETHOD(GetArguments)(THIS_ LPWSTR,int) PURE;
 | 
|---|
| 848 |         STDMETHOD(SetArguments)(THIS_ LPCWSTR) PURE;
 | 
|---|
| 849 |         STDMETHOD(GetHotkey)(THIS_ PWORD) PURE;
 | 
|---|
| 850 |         STDMETHOD(SetHotkey)(THIS_ WORD) PURE;
 | 
|---|
| 851 |         STDMETHOD(GetShowCmd)(THIS_ int*) PURE;
 | 
|---|
| 852 |         STDMETHOD(SetShowCmd)(THIS_ int) PURE;
 | 
|---|
| 853 |         STDMETHOD(GetIconLocation)(THIS_ LPWSTR,int,int*) PURE;
 | 
|---|
| 854 |         STDMETHOD(SetIconLocation)(THIS_ LPCWSTR,int) PURE;
 | 
|---|
| 855 |         STDMETHOD(SetRelativePath)(THIS_ LPCWSTR ,DWORD) PURE;
 | 
|---|
| 856 |         STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE;
 | 
|---|
| 857 |         STDMETHOD(SetPath)(THIS_ LPCWSTR) PURE;
 | 
|---|
| 858 | };
 | 
|---|
| 859 | 
 | 
|---|
| 860 | #ifdef COBJMACROS
 | 
|---|
| 861 | #define IShellLinkW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 862 | #define IShellLinkW_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 863 | #define IShellLinkW_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 864 | #define IShellLinkW_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
 | 
|---|
| 865 | #define IShellLinkW_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
 | 
|---|
| 866 | #define IShellLinkW_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
 | 
|---|
| 867 | #define IShellLinkW_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
 | 
|---|
| 868 | #define IShellLinkW_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
 | 
|---|
| 869 | #define IShellLinkW_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
 | 
|---|
| 870 | #define IShellLinkW_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
 | 
|---|
| 871 | #define IShellLinkW_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
 | 
|---|
| 872 | #define IShellLinkW_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
 | 
|---|
| 873 | #define IShellLinkW_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
 | 
|---|
| 874 | #define IShellLinkW_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
 | 
|---|
| 875 | #define IShellLinkW_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
 | 
|---|
| 876 | #define IShellLinkW_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
 | 
|---|
| 877 | #define IShellLinkW_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
 | 
|---|
| 878 | #define IShellLinkW_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
 | 
|---|
| 879 | #define IShellLinkW_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
 | 
|---|
| 880 | #define IShellLinkW_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
 | 
|---|
| 881 | #define IShellLinkW_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
 | 
|---|
| 882 | #endif
 | 
|---|
| 883 | 
 | 
|---|
| 884 | #undef INTERFACE
 | 
|---|
| 885 | #define INTERFACE IShellFolder
 | 
|---|
| 886 | DECLARE_INTERFACE_(IShellFolder, IUnknown)
 | 
|---|
| 887 | {
 | 
|---|
| 888 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 889 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 890 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 891 |         STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE;
 | 
|---|
| 892 |         STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE;
 | 
|---|
| 893 |         STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
 | 
|---|
| 894 |         STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
 | 
|---|
| 895 |         STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE;
 | 
|---|
| 896 |         STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE;
 | 
|---|
| 897 |         STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE;
 | 
|---|
| 898 |         STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE;
 | 
|---|
| 899 |         STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE;
 | 
|---|
| 900 |         STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE;
 | 
|---|
| 901 | };
 | 
|---|
| 902 | typedef IShellFolder *LPSHELLFOLDER;
 | 
|---|
| 903 | 
 | 
|---|
| 904 | #ifdef COBJMACROS
 | 
|---|
| 905 | #define IShellFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 906 | #define IShellFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 907 | #define IShellFolder_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 908 | #define IShellFolder_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
 | 
|---|
| 909 | #define IShellFolder_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
 | 
|---|
| 910 | #define IShellFolder_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
 | 
|---|
| 911 | #define IShellFolder_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
 | 
|---|
| 912 | #define IShellFolder_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
 | 
|---|
| 913 | #define IShellFolder_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
 | 
|---|
| 914 | #define IShellFolder_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
 | 
|---|
| 915 | #define IShellFolder_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
 | 
|---|
| 916 | #define IShellFolder_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
 | 
|---|
| 917 | #define IShellFolder_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
 | 
|---|
| 918 | #endif
 | 
|---|
| 919 | 
 | 
|---|
| 920 | #if (_WIN32_IE >= 0x0500)
 | 
|---|
| 921 | 
 | 
|---|
| 922 | DECLARE_ENUMERATOR_(IEnumExtraSearch,LPEXTRASEARCH);
 | 
|---|
| 923 | typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
 | 
|---|
| 924 | 
 | 
|---|
| 925 | #undef INTERFACE
 | 
|---|
| 926 | #define INTERFACE IShellFolder2
 | 
|---|
| 927 | DECLARE_INTERFACE_(IShellFolder2, IShellFolder)
 | 
|---|
| 928 | {
 | 
|---|
| 929 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 930 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 931 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 932 |         STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE;
 | 
|---|
| 933 |         STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE;
 | 
|---|
| 934 |         STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
 | 
|---|
| 935 |         STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
 | 
|---|
| 936 |         STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE;
 | 
|---|
| 937 |         STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE;
 | 
|---|
| 938 |         STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE;
 | 
|---|
| 939 |         STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE;
 | 
|---|
| 940 |         STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE;
 | 
|---|
| 941 |         STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE;
 | 
|---|
| 942 |         STDMETHOD(GetDefaultSearchGUID)(THIS_ GUID*) PURE;
 | 
|---|
| 943 |         STDMETHOD(EnumSearches)(THIS_ IEnumExtraSearch**) PURE;
 | 
|---|
| 944 |         STDMETHOD(GetDefaultColumn)(THIS_ DWORD,ULONG*,ULONG*) PURE;
 | 
|---|
| 945 |         STDMETHOD(GetDefaultColumnState)(THIS_ UINT,SHCOLSTATEF*) PURE;
 | 
|---|
| 946 |         STDMETHOD(GetDetailsEx)(THIS_ LPCITEMIDLIST,const SHCOLUMNID*,VARIANT*) PURE;
 | 
|---|
| 947 |         STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST,UINT,SHELLDETAILS*) PURE;
 | 
|---|
| 948 |         STDMETHOD(MapColumnToSCID)(THIS_ UINT,SHCOLUMNID*) PURE;
 | 
|---|
| 949 | };
 | 
|---|
| 950 | typedef IShellFolder2 *LPSHELLFOLDER2;
 | 
|---|
| 951 | 
 | 
|---|
| 952 | #ifdef COBJMACROS
 | 
|---|
| 953 | #define IShellFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 954 | #define IShellFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 955 | #define IShellFolder2_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 956 | #define IShellFolder2_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
 | 
|---|
| 957 | #define IShellFolder2_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
 | 
|---|
| 958 | #define IShellFolder2_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
 | 
|---|
| 959 | #define IShellFolder2_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
 | 
|---|
| 960 | #define IShellFolder2_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
 | 
|---|
| 961 | #define IShellFolder2_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
 | 
|---|
| 962 | #define IShellFolder2_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
 | 
|---|
| 963 | #define IShellFolder2_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
 | 
|---|
| 964 | #define IShellFolder2_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
 | 
|---|
| 965 | #define IShellFolder2_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
 | 
|---|
| 966 | #define IShellFolder2_GetDefaultSearchGUID(T,a) (T)->lpVtbl->GetDefaultSearchGUID(T,a)
 | 
|---|
| 967 | #define IShellFolder2_EnumSearches(T,a) (T)->lpVtbl->EnumSearches(T,a)
 | 
|---|
| 968 | #define IShellFolder2_GetDefaultColumn(T,a,b,c) (T)->lpVtbl->GetDefaultColumn(T,a,b,c)
 | 
|---|
| 969 | #define IShellFolder2_GetDefaultColumnState(T,a,b) (T)->lpVtbl->GetDefaultColumnState(T,a,b)
 | 
|---|
| 970 | #define IShellFolder2_GetDetailsEx(T,a,b,c) (T)->lpVtbl->GetDetailsEx(T,a,b,c)
 | 
|---|
| 971 | #define IShellFolder2_GetDetailsOf(T,a,b,c) (T)->lpVtbl->GetDetailsOf(T,a,b,c)
 | 
|---|
| 972 | #define IShellFolder2_MapColumnToSCID(T,a,b) (T)->lpVtbl->MapColumnToSCID(T,a,b)
 | 
|---|
| 973 | #endif
 | 
|---|
| 974 | 
 | 
|---|
| 975 | #endif /* _WIN32_IE >= 0x0500 */
 | 
|---|
| 976 | #undef INTERFACE
 | 
|---|
| 977 | #define INTERFACE ICopyHook
 | 
|---|
| 978 | DECLARE_INTERFACE_(ICopyHook, IUnknown)
 | 
|---|
| 979 | {
 | 
|---|
| 980 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 981 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 982 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 983 |         STDMETHOD_(UINT,CopyCallback)(THIS_ HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD) PURE;
 | 
|---|
| 984 | };
 | 
|---|
| 985 | typedef ICopyHook *LPCOPYHOOK;
 | 
|---|
| 986 | 
 | 
|---|
| 987 | #undef INTERFACE
 | 
|---|
| 988 | #define INTERFACE IFileViewerSite
 | 
|---|
| 989 | DECLARE_INTERFACE(IFileViewerSite)
 | 
|---|
| 990 | {
 | 
|---|
| 991 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 992 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 993 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 994 |         STDMETHOD(SetPinnedWindow)(THIS_ HWND) PURE;
 | 
|---|
| 995 |         STDMETHOD(GetPinnedWindow)(THIS_ HWND*) PURE;
 | 
|---|
| 996 | };
 | 
|---|
| 997 | typedef IFileViewerSite *LPFILEVIEWERSITE;
 | 
|---|
| 998 | 
 | 
|---|
| 999 | #undef INTERFACE
 | 
|---|
| 1000 | #define INTERFACE IFileViewer
 | 
|---|
| 1001 | DECLARE_INTERFACE(IFileViewer)
 | 
|---|
| 1002 | {
 | 
|---|
| 1003 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1004 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1005 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1006 |         STDMETHOD(ShowInitialize)(THIS_ LPFILEVIEWERSITE) PURE;
 | 
|---|
| 1007 |         STDMETHOD(Show)(THIS_ LPFVSHOWINFO) PURE;
 | 
|---|
| 1008 |         STDMETHOD(PrintTo)(THIS_ LPSTR,BOOL) PURE;
 | 
|---|
| 1009 | };
 | 
|---|
| 1010 | typedef IFileViewer *LPFILEVIEWER;
 | 
|---|
| 1011 | 
 | 
|---|
| 1012 | #undef INTERFACE
 | 
|---|
| 1013 | #define INTERFACE IFileSystemBindData
 | 
|---|
| 1014 | DECLARE_INTERFACE_(IFileSystemBindData, IUnknown)
 | 
|---|
| 1015 | {
 | 
|---|
| 1016 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1017 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1018 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1019 |         STDMETHOD(SetFindData)(THIS_ const WIN32_FIND_DATAW*) PURE;
 | 
|---|
| 1020 |         STDMETHOD(GetFindData)(THIS_ WIN32_FIND_DATAW*) PURE;
 | 
|---|
| 1021 | };
 | 
|---|
| 1022 | 
 | 
|---|
| 1023 | #undef INTERFACE
 | 
|---|
| 1024 | #define INTERFACE IPersistFolder
 | 
|---|
| 1025 | DECLARE_INTERFACE_(IPersistFolder,IPersist)
 | 
|---|
| 1026 | {
 | 
|---|
| 1027 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1028 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1029 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1030 |         STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
 | 
|---|
| 1031 |         STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
 | 
|---|
| 1032 | };
 | 
|---|
| 1033 | typedef IPersistFolder *LPPERSISTFOLDER;
 | 
|---|
| 1034 | 
 | 
|---|
| 1035 | #ifdef COBJMACROS
 | 
|---|
| 1036 | #define IPersistFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 1037 | #define IPersistFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 1038 | #define IPersistFolder_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 1039 | #define IPersistFolder_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
 | 
|---|
| 1040 | #define IPersistFolder_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
 | 
|---|
| 1041 | #endif
 | 
|---|
| 1042 | 
 | 
|---|
| 1043 | #if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500)
 | 
|---|
| 1044 | 
 | 
|---|
| 1045 | #undef INTERFACE
 | 
|---|
| 1046 | #define INTERFACE IPersistFolder2
 | 
|---|
| 1047 | DECLARE_INTERFACE_(IPersistFolder2,IPersistFolder)
 | 
|---|
| 1048 | {
 | 
|---|
| 1049 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1050 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1051 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1052 |         STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
 | 
|---|
| 1053 |         STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
 | 
|---|
| 1054 |         STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE;
 | 
|---|
| 1055 | };
 | 
|---|
| 1056 | typedef IPersistFolder2 *LPPERSISTFOLDER2;
 | 
|---|
| 1057 | 
 | 
|---|
| 1058 | #ifdef COBJMACROS
 | 
|---|
| 1059 | #define IPersistFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 1060 | #define IPersistFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 1061 | #define IPersistFolder2_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 1062 | #define IPersistFolder2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
 | 
|---|
| 1063 | #define IPersistFolder2_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
 | 
|---|
| 1064 | #define IPersistFolder2_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
 | 
|---|
| 1065 | #endif
 | 
|---|
| 1066 | 
 | 
|---|
| 1067 | #endif /* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */
 | 
|---|
| 1068 | 
 | 
|---|
| 1069 | #if (_WIN32_IE >= 0x0500)
 | 
|---|
| 1070 | 
 | 
|---|
| 1071 | #undef INTERFACE
 | 
|---|
| 1072 | #define INTERFACE IPersistFolder3
 | 
|---|
| 1073 | DECLARE_INTERFACE_(IPersistFolder3,IPersistFolder2)
 | 
|---|
| 1074 | {
 | 
|---|
| 1075 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1076 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1077 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1078 |         STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
 | 
|---|
| 1079 |         STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
 | 
|---|
| 1080 |         STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE;
 | 
|---|
| 1081 |         STDMETHOD(InitializeEx)(THIS_ IBindCtx*,LPCITEMIDLIST,const PERSIST_FOLDER_TARGET_INFO*) PURE;
 | 
|---|
| 1082 |         STDMETHOD(GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO*) PURE;
 | 
|---|
| 1083 | };
 | 
|---|
| 1084 | typedef IPersistFolder3 *LPPERSISTFOLDER3;
 | 
|---|
| 1085 | 
 | 
|---|
| 1086 | #ifdef COBJMACROS
 | 
|---|
| 1087 | #define IPersistFolder3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 1088 | #define IPersistFolder3_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 1089 | #define IPersistFolder3_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 1090 | #define IPersistFolder3_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
 | 
|---|
| 1091 | #define IPersistFolder3_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
 | 
|---|
| 1092 | #define IPersistFolder3_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
 | 
|---|
| 1093 | #define IPersistFolder3_InitializeEx(T,a,b,c) (T)->lpVtbl->InitializeEx(T,a,b,c)
 | 
|---|
| 1094 | #define IPersistFolder3_GetFolderTargetInfo(T,a) (T)->lpVtbl->GetFolderTargetInfo(T,a)
 | 
|---|
| 1095 | #endif
 | 
|---|
| 1096 | 
 | 
|---|
| 1097 | #endif /* _WIN32_IE >= 0x0500 */
 | 
|---|
| 1098 | 
 | 
|---|
| 1099 | typedef interface IShellBrowser *LPSHELLBROWSER;
 | 
|---|
| 1100 | typedef interface IShellView *LPSHELLVIEW;
 | 
|---|
| 1101 | 
 | 
|---|
| 1102 | #undef INTERFACE
 | 
|---|
| 1103 | #define INTERFACE IShellBrowser
 | 
|---|
| 1104 | DECLARE_INTERFACE_(IShellBrowser,IOleWindow)
 | 
|---|
| 1105 | {
 | 
|---|
| 1106 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1107 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1108 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1109 |         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
 | 
|---|
| 1110 |         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
 | 
|---|
| 1111 |         STDMETHOD(InsertMenusSB)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE;
 | 
|---|
| 1112 |         STDMETHOD(SetMenuSB)(THIS_ HMENU,HOLEMENU,HWND) PURE;
 | 
|---|
| 1113 |         STDMETHOD(RemoveMenusSB)(THIS_ HMENU) PURE;
 | 
|---|
| 1114 |         STDMETHOD(SetStatusTextSB)(THIS_ LPCOLESTR) PURE;
 | 
|---|
| 1115 |         STDMETHOD(EnableModelessSB)(THIS_ BOOL) PURE;
 | 
|---|
| 1116 |         STDMETHOD(TranslateAcceleratorSB) (THIS_ LPMSG,WORD) PURE;
 | 
|---|
| 1117 |         STDMETHOD(BrowseObject)(THIS_ LPCITEMIDLIST,UINT) PURE;
 | 
|---|
| 1118 |         STDMETHOD(GetViewStateStream)(THIS_ DWORD,LPSTREAM*) PURE;
 | 
|---|
| 1119 |         STDMETHOD(GetControlWindow)(THIS_ UINT,HWND*) PURE;
 | 
|---|
| 1120 |         STDMETHOD(SendControlMsg)(THIS_ UINT,UINT,WPARAM,LPARAM,LRESULT*) PURE;
 | 
|---|
| 1121 |         STDMETHOD(QueryActiveShellView)(THIS_ LPSHELLVIEW*) PURE;
 | 
|---|
| 1122 |         STDMETHOD(OnViewWindowActive)(THIS_ LPSHELLVIEW) PURE;
 | 
|---|
| 1123 |         STDMETHOD(SetToolbarItems)(THIS_ LPTBBUTTON,UINT,UINT) PURE;
 | 
|---|
| 1124 | };
 | 
|---|
| 1125 | 
 | 
|---|
| 1126 | #ifdef COBJMACROS
 | 
|---|
| 1127 | #define IShellBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 1128 | #define IShellBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 1129 | #define IShellBrowser_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 1130 | #define IShellBrowser_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
 | 
|---|
| 1131 | #define IShellBrowser_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
 | 
|---|
| 1132 | #define IShellBrowser_InsertMenusSB(T,a,b) (T)->lpVtbl->InsertMenusSB(T,a,b)
 | 
|---|
| 1133 | #define IShellBrowser_SetMenuSB(T,a,b,c) (T)->lpVtbl->SetMenuSB(T,a,b,c)
 | 
|---|
| 1134 | #define IShellBrowser_RemoveMenusSB(T,a) (T)->lpVtbl->RemoveMenusSB(T,a)
 | 
|---|
| 1135 | #define IShellBrowser_SetStatusTextSB(T,a) (T)->lpVtbl->SetStatusTextSB(T,a)
 | 
|---|
| 1136 | #define IShellBrowser_EnableModelessSB(T,a) (T)->lpVtbl->EnableModelessSB(T,a)
 | 
|---|
| 1137 | #define IShellBrowser_TranslateAcceleratorSB(T,a,b) (T)->lpVtbl->TranslateAcceleratorSB(T,a,b)
 | 
|---|
| 1138 | #define IShellBrowser_BrowseObject(T,a,b) (T)->lpVtbl->BrowseObject(T,a,b)
 | 
|---|
| 1139 | #define IShellBrowser_GetViewStateStream(T,a,b) (T)->lpVtbl->GetViewStateStream(T,a,b)
 | 
|---|
| 1140 | #define IShellBrowser_GetControlWindow(T,a,b) (T)->lpVtbl->GetControlWindow(T,a,b)
 | 
|---|
| 1141 | #define IShellBrowser_SendControlMsg(T,a,b,c,d,e) (T)->lpVtbl->SendControlMsg(T,a,b,c,d,e)
 | 
|---|
| 1142 | #define IShellBrowser_QueryActiveShellView(T,a) (T)->lpVtbl->QueryActiveShellView(T,a)
 | 
|---|
| 1143 | #define IShellBrowser_OnViewWindowActive(T,a) (T)->lpVtbl->OnViewWindowActive(T,a)
 | 
|---|
| 1144 | #define IShellBrowser_SetToolbarItems(T,a,b,c) (T)->lpVtbl->SetToolbarItems(T,a,b,c)
 | 
|---|
| 1145 | #endif
 | 
|---|
| 1146 | 
 | 
|---|
| 1147 | #undef INTERFACE
 | 
|---|
| 1148 | #define INTERFACE IShellView
 | 
|---|
| 1149 | DECLARE_INTERFACE_(IShellView,IOleWindow)
 | 
|---|
| 1150 | {
 | 
|---|
| 1151 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1152 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1153 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1154 |         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
 | 
|---|
| 1155 |         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
 | 
|---|
| 1156 |         STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE;
 | 
|---|
| 1157 | #ifdef _FIX_ENABLEMODELESS_CONFLICT
 | 
|---|
| 1158 |         STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
 | 
|---|
| 1159 | #else
 | 
|---|
| 1160 |         STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
 | 
|---|
| 1161 | #endif
 | 
|---|
| 1162 |         STDMETHOD(UIActivate)(THIS_ UINT) PURE;
 | 
|---|
| 1163 |         STDMETHOD(Refresh) (THIS) PURE;
 | 
|---|
| 1164 |         STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE;
 | 
|---|
| 1165 |         STDMETHOD(DestroyViewWindow)(THIS) PURE;
 | 
|---|
| 1166 |         STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE;
 | 
|---|
| 1167 |         STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE;
 | 
|---|
| 1168 |         STDMETHOD(SaveViewState)(THIS) PURE;
 | 
|---|
| 1169 |         STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE;
 | 
|---|
| 1170 |         STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE;
 | 
|---|
| 1171 | };
 | 
|---|
| 1172 | 
 | 
|---|
| 1173 | #ifdef COBJMACROS
 | 
|---|
| 1174 | #define IShellView_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 1175 | #define IShellView_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 1176 | #define IShellView_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 1177 | #define IShellView_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
 | 
|---|
| 1178 | #define IShellView_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
 | 
|---|
| 1179 | #define IShellView_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a)
 | 
|---|
| 1180 | #ifdef _FIX_ENABLEMODELESS_CONFLICT
 | 
|---|
| 1181 | #define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a)
 | 
|---|
| 1182 | #else
 | 
|---|
| 1183 | #define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
 | 
|---|
| 1184 | #endif
 | 
|---|
| 1185 | #define IShellView_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a)
 | 
|---|
| 1186 | #define IShellView_Refresh(T) (T)->lpVtbl->Refresh(T)
 | 
|---|
| 1187 | #define IShellView_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e)
 | 
|---|
| 1188 | #define IShellView_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T)
 | 
|---|
| 1189 | #define IShellView_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a)
 | 
|---|
| 1190 | #define IShellView_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c)
 | 
|---|
| 1191 | #define IShellView_SaveViewState(T) (T)->lpVtbl->SaveViewState(T)
 | 
|---|
| 1192 | #define IShellView_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b)
 | 
|---|
| 1193 | #define IShellView_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c)
 | 
|---|
| 1194 | #endif
 | 
|---|
| 1195 | 
 | 
|---|
| 1196 | #undef INTERFACE
 | 
|---|
| 1197 | #define INTERFACE ICommDlgBrowser
 | 
|---|
| 1198 | DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown)
 | 
|---|
| 1199 | {
 | 
|---|
| 1200 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1201 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1202 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1203 |         STDMETHOD(OnDefaultCommand)(THIS_ IShellView*) PURE;
 | 
|---|
| 1204 |         STDMETHOD(OnStateChange)(THIS_ IShellView*,ULONG) PURE;
 | 
|---|
| 1205 |         STDMETHOD(IncludeObject)(THIS_ IShellView*,LPCITEMIDLIST) PURE;
 | 
|---|
| 1206 | };
 | 
|---|
| 1207 | typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
 | 
|---|
| 1208 | 
 | 
|---|
| 1209 | #ifdef COBJMACROS
 | 
|---|
| 1210 | #define ICommDlgBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
 | 
|---|
| 1211 | #define ICommDlgBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
 | 
|---|
| 1212 | #define ICommDlgBrowser_Release(T) (T)->lpVtbl->Release(T)
 | 
|---|
| 1213 | #define ICommDlgBrowser_OnDefaultCommand(T,a) (T)->lpVtbl->OnDefaultCommand(T,a)
 | 
|---|
| 1214 | #define ICommDlgBrowser_OnStateChange(T,a,b) (T)->lpVtbl->OnStateChange(T,a,b)
 | 
|---|
| 1215 | #define ICommDlgBrowser_IncludeObject(T,a,b) (T)->lpVtbl->IncludeObject(T,a,b)
 | 
|---|
| 1216 | #endif
 | 
|---|
| 1217 | 
 | 
|---|
| 1218 | typedef GUID SHELLVIEWID;
 | 
|---|
| 1219 | typedef struct _SV2CVW2_PARAMS {
 | 
|---|
| 1220 |         DWORD cbSize;
 | 
|---|
| 1221 |         IShellView *psvPrev;
 | 
|---|
| 1222 |         FOLDERSETTINGS const *pfs;
 | 
|---|
| 1223 |         IShellBrowser *psbOwner;
 | 
|---|
| 1224 |         RECT *prcView;
 | 
|---|
| 1225 |         SHELLVIEWID const *pvid;
 | 
|---|
| 1226 |         HWND hwndView;
 | 
|---|
| 1227 | } SV2CVW2_PARAMS,*LPSV2CVW2_PARAMS;
 | 
|---|
| 1228 | #undef INTERFACE
 | 
|---|
| 1229 | #define INTERFACE IShellView2
 | 
|---|
| 1230 | DECLARE_INTERFACE_(IShellView2,IShellView)
 | 
|---|
| 1231 | {
 | 
|---|
| 1232 | 
 | 
|---|
| 1233 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1234 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1235 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1236 |         STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
 | 
|---|
| 1237 |         STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
 | 
|---|
| 1238 |         STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE;
 | 
|---|
| 1239 | #ifdef _FIX_ENABLEMODELESS_CONFLICT
 | 
|---|
| 1240 |         STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
 | 
|---|
| 1241 | #else
 | 
|---|
| 1242 |         STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
 | 
|---|
| 1243 | #endif
 | 
|---|
| 1244 |         STDMETHOD(UIActivate)(THIS_ UINT) PURE;
 | 
|---|
| 1245 |         STDMETHOD(Refresh) (THIS) PURE;
 | 
|---|
| 1246 |         STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE;
 | 
|---|
| 1247 |         STDMETHOD(DestroyViewWindow)(THIS) PURE;
 | 
|---|
| 1248 |         STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE;
 | 
|---|
| 1249 |         STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE;
 | 
|---|
| 1250 |         STDMETHOD(SaveViewState)(THIS) PURE;
 | 
|---|
| 1251 |         STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE;
 | 
|---|
| 1252 |         STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE;
 | 
|---|
| 1253 |         STDMETHOD(GetView)(THIS_ SHELLVIEWID*,ULONG) PURE;
 | 
|---|
| 1254 |         STDMETHOD(CreateViewWindow2)(THIS_ LPSV2CVW2_PARAMS) PURE;
 | 
|---|
| 1255 | };
 | 
|---|
| 1256 | 
 | 
|---|
| 1257 | #undef INTERFACE
 | 
|---|
| 1258 | #define INTERFACE IShellExecuteHookA
 | 
|---|
| 1259 | DECLARE_INTERFACE_(IShellExecuteHookA,IUnknown)
 | 
|---|
| 1260 | {
 | 
|---|
| 1261 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1262 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1263 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1264 |         STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOA) PURE;
 | 
|---|
| 1265 | };
 | 
|---|
| 1266 | #undef INTERFACE
 | 
|---|
| 1267 | #define INTERFACE IShellExecuteHookW
 | 
|---|
| 1268 | DECLARE_INTERFACE_(IShellExecuteHookW,IUnknown)
 | 
|---|
| 1269 | {
 | 
|---|
| 1270 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1271 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1272 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1273 |         STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOW) PURE;
 | 
|---|
| 1274 | };
 | 
|---|
| 1275 | 
 | 
|---|
| 1276 | #undef INTERFACE
 | 
|---|
| 1277 | #define INTERFACE IShellIcon
 | 
|---|
| 1278 | DECLARE_INTERFACE_(IShellIcon,IUnknown)
 | 
|---|
| 1279 | {
 | 
|---|
| 1280 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1281 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1282 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1283 |         STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST,UINT,PINT) PURE;
 | 
|---|
| 1284 | };
 | 
|---|
| 1285 | typedef IShellIcon *LPSHELLICON;
 | 
|---|
| 1286 | 
 | 
|---|
| 1287 | typedef struct {
 | 
|---|
| 1288 |         BOOL fShowAllObjects : 1;
 | 
|---|
| 1289 |         BOOL fShowExtensions : 1;
 | 
|---|
| 1290 |         BOOL fNoConfirmRecycle : 1;
 | 
|---|
| 1291 |         BOOL fShowSysFiles : 1;
 | 
|---|
| 1292 |         BOOL fShowCompColor : 1;
 | 
|---|
| 1293 |         BOOL fDoubleClickInWebView : 1;
 | 
|---|
| 1294 |         BOOL fDesktopHTML : 1;
 | 
|---|
| 1295 |         BOOL fWin95Classic : 1;
 | 
|---|
| 1296 |         BOOL fDontPrettyPath : 1;
 | 
|---|
| 1297 |         BOOL fShowAttribCol : 1;
 | 
|---|
| 1298 |         BOOL fMapNetDrvBtn : 1;
 | 
|---|
| 1299 |         BOOL fShowInfoTip : 1;
 | 
|---|
| 1300 |         BOOL fHideIcons : 1;
 | 
|---|
| 1301 |         UINT fRestFlags : 3;
 | 
|---|
| 1302 | } SHELLFLAGSTATE, * LPSHELLFLAGSTATE;
 | 
|---|
| 1303 | 
 | 
|---|
| 1304 | #define SSF_SHOWALLOBJECTS 0x1
 | 
|---|
| 1305 | #define SSF_SHOWEXTENSIONS 0x2
 | 
|---|
| 1306 | #define SSF_SHOWCOMPCOLOR 0x8
 | 
|---|
| 1307 | #define SSF_SHOWSYSFILES 0x20
 | 
|---|
| 1308 | #define SSF_DOUBLECLICKINWEBVIEW 0x80
 | 
|---|
| 1309 | #define SSF_SHOWATTRIBCOL 0x100
 | 
|---|
| 1310 | #define SSF_DESKTOPHTML 0x200
 | 
|---|
| 1311 | #define SSF_WIN95CLASSIC 0x400
 | 
|---|
| 1312 | #define SSF_DONTPRETTYPATH 0x800
 | 
|---|
| 1313 | #define SSF_MAPNETDRVBUTTON 0x1000
 | 
|---|
| 1314 | #define SSF_SHOWINFOTIP 0x2000
 | 
|---|
| 1315 | #define SSF_HIDEICONS 0x4000
 | 
|---|
| 1316 | #define SSF_NOCONFIRMRECYCLE 0x8000
 | 
|---|
| 1317 | 
 | 
|---|
| 1318 | #undef  INTERFACE
 | 
|---|
| 1319 | #define INTERFACE IShellIconOverlayIdentifier
 | 
|---|
| 1320 | DECLARE_INTERFACE_(IShellIconOverlayIdentifier,IUnknown)
 | 
|---|
| 1321 | {
 | 
|---|
| 1322 |         STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
 | 
|---|
| 1323 |         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 | 
|---|
| 1324 |         STDMETHOD_(ULONG,Release)(THIS) PURE;
 | 
|---|
| 1325 |         STDMETHOD(IsMemberOf)(THIS_ LPCWSTR,DWORD) PURE;
 | 
|---|
| 1326 |         STDMETHOD(GetOverlayInfo)(THIS_ LPWSTR,int,int*,DWORD*) PURE;
 | 
|---|
| 1327 |         STDMETHOD(GetPriority)(THIS_ int*) PURE;
 | 
|---|
| 1328 | };
 | 
|---|
| 1329 | 
 | 
|---|
| 1330 | #define ISIOI_ICONFILE 0x00000001
 | 
|---|
| 1331 | #define ISIOI_ICONINDEX 0x00000002
 | 
|---|
| 1332 | 
 | 
|---|
| 1333 | #if (_WIN32_WINNT >= 0x0500) /* W2K */
 | 
|---|
| 1334 | typedef struct {
 | 
|---|
| 1335 |         BOOL fShowAllObjects : 1;
 | 
|---|
| 1336 |         BOOL fShowExtensions : 1;
 | 
|---|
| 1337 |         BOOL fNoConfirmRecycle : 1;
 | 
|---|
| 1338 |         BOOL fShowSysFiles : 1;
 | 
|---|
| 1339 |         BOOL fShowCompColor : 1;
 | 
|---|
| 1340 |         BOOL fDoubleClickInWebView : 1;
 | 
|---|
| 1341 |         BOOL fDesktopHTML : 1;
 | 
|---|
| 1342 |         BOOL fWin95Classic : 1;
 | 
|---|
| 1343 |         BOOL fDontPrettyPath : 1;
 | 
|---|
| 1344 |         BOOL fShowAttribCol : 1;
 | 
|---|
| 1345 |         BOOL fMapNetDrvBtn : 1;
 | 
|---|
| 1346 |         BOOL fShowInfoTip : 1;
 | 
|---|
| 1347 |         BOOL fHideIcons : 1;
 | 
|---|
| 1348 |         BOOL fWebView : 1;
 | 
|---|
| 1349 |         BOOL fFilter : 1;
 | 
|---|
| 1350 |         BOOL fShowSuperHidden : 1;
 | 
|---|
| 1351 |         BOOL fNoNetCrawling : 1;
 | 
|---|
| 1352 |         DWORD dwWin95Unused;
 | 
|---|
| 1353 |         UINT uWin95Unused;
 | 
|---|
| 1354 |         LONG lParamSort;
 | 
|---|
| 1355 |         int iSortDirection;
 | 
|---|
| 1356 |         UINT version;
 | 
|---|
| 1357 |         UINT uNotUsed;
 | 
|---|
| 1358 |         BOOL fSepProcess : 1;
 | 
|---|
| 1359 |         BOOL fStartPanelOn : 1;
 | 
|---|
| 1360 |         BOOL fShowStartPage : 1;
 | 
|---|
| 1361 |         UINT fSpareFlags : 13;
 | 
|---|
| 1362 | } SHELLSTATE, *LPSHELLSTATE;
 | 
|---|
| 1363 | #endif /* _WIN32_WINNT >= 0x0500 */
 | 
|---|
| 1364 | 
 | 
|---|
| 1365 | #if (_WIN32_IE >= 0x0500)
 | 
|---|
| 1366 | #pragma pack(push,8)
 | 
|---|
| 1367 | typedef struct
 | 
|---|
| 1368 | {
 | 
|---|
| 1369 |         SIZE sizeDragImage;
 | 
|---|
| 1370 |         POINT ptOffset;
 | 
|---|
| 1371 |         HBITMAP hbmpDragImage;
 | 
|---|
| 1372 |         COLORREF crColorKey;
 | 
|---|
| 1373 | } SHDRAGIMAGE, *LPSHDRAGIMAGE;
 | 
|---|
| 1374 | #pragma pack(pop)
 | 
|---|
| 1375 | 
 | 
|---|
| 1376 | #undef INTERFACE
 | 
|---|
| 1377 | #define INTERFACE IDragSourceHelper
 | 
|---|
| 1378 | DECLARE_INTERFACE_(IDragSourceHelper, IUnknown)
 | 
|---|
| 1379 | {
 | 
|---|
| 1380 |         STDMETHOD (QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
 | 
|---|
| 1381 |         STDMETHOD_(ULONG, AddRef) (THIS) PURE;
 | 
|---|
| 1382 |         STDMETHOD_(ULONG, Release) (THIS) PURE;
 | 
|---|
| 1383 |         STDMETHOD (InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE;
 | 
|---|
| 1384 |         STDMETHOD (InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE;
 | 
|---|
| 1385 | };
 | 
|---|
| 1386 | 
 | 
|---|
| 1387 | #undef INTERFACE
 | 
|---|
| 1388 | #define INTERFACE IDropTargetHelper
 | 
|---|
| 1389 | DECLARE_INTERFACE_(IDropTargetHelper, IUnknown)
 | 
|---|
| 1390 | {
 | 
|---|
| 1391 |         STDMETHOD (QueryInterface)(THIS_ REFIID riid, void** ppv) PURE;
 | 
|---|
| 1392 |         STDMETHOD_(ULONG, AddRef) (THIS) PURE;
 | 
|---|
| 1393 |         STDMETHOD_(ULONG, Release) (THIS) PURE;
 | 
|---|
| 1394 |         STDMETHOD (DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE;
 | 
|---|
| 1395 |         STDMETHOD (DragLeave)(THIS) PURE;
 | 
|---|
| 1396 |         STDMETHOD (DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE;
 | 
|---|
| 1397 |         STDMETHOD (Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE;
 | 
|---|
| 1398 |         STDMETHOD (Show)(THIS_ BOOL fShow) PURE;
 | 
|---|
| 1399 | };
 | 
|---|
| 1400 | #endif /* _WIN32_IE >= 0x0500 */
 | 
|---|
| 1401 | 
 | 
|---|
| 1402 | void WINAPI SHAddToRecentDocs(UINT,PCVOID);
 | 
|---|
| 1403 | LPITEMIDLIST WINAPI SHBrowseForFolderA(PBROWSEINFOA);
 | 
|---|
| 1404 | LPITEMIDLIST WINAPI SHBrowseForFolderW(PBROWSEINFOW);
 | 
|---|
| 1405 | void WINAPI SHChangeNotify(LONG,UINT,PCVOID,PCVOID);
 | 
|---|
| 1406 | HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int);
 | 
|---|
| 1407 | HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int);
 | 
|---|
| 1408 | HRESULT WINAPI SHGetDesktopFolder(LPSHELLFOLDER*);
 | 
|---|
| 1409 | HRESULT WINAPI SHGetInstanceExplorer(IUnknown **);
 | 
|---|
| 1410 | HRESULT WINAPI SHGetMalloc(LPMALLOC*);
 | 
|---|
| 1411 | BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR);
 | 
|---|
| 1412 | BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR);
 | 
|---|
| 1413 | HRESULT WINAPI SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*);
 | 
|---|
| 1414 | HRESULT WINAPI SHLoadInProc(REFCLSID);
 | 
|---|
| 1415 | #if (_WIN32_IE >= 0x0400)
 | 
|---|
| 1416 | BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL);
 | 
|---|
| 1417 | BOOL WINAPI SHGetSpecialFolderPathW(HWND,LPWSTR,int,BOOL);
 | 
|---|
| 1418 | #endif 
 | 
|---|
| 1419 | /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */
 | 
|---|
| 1420 | HRESULT WINAPI SHGetFolderPathA(HWND,int,HANDLE,DWORD,LPSTR);
 | 
|---|
| 1421 | HRESULT WINAPI SHGetFolderPathW(HWND,int,HANDLE,DWORD,LPWSTR);
 | 
|---|
| 1422 | #if (_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500) /* ME or W2K */
 | 
|---|
| 1423 | HRESULT WINAPI SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*);
 | 
|---|
| 1424 | #endif
 | 
|---|
| 1425 | #if (_WIN32_WINNT >= 0x0500)
 | 
|---|
| 1426 | INT WINAPI SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES);
 | 
|---|
| 1427 | INT WINAPI SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES);
 | 
|---|
| 1428 | HRESULT WINAPI SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*);
 | 
|---|
| 1429 | #endif
 | 
|---|
| 1430 | #if (_WIN32_WINNT >= 0x0501) /* XP */
 | 
|---|
| 1431 | HRESULT WINAPI SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR);
 | 
|---|
| 1432 | HRESULT WINAPI SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR);
 | 
|---|
| 1433 | #endif
 | 
|---|
| 1434 | void WINAPI SHGetSettings(LPSHELLFLAGSTATE,DWORD);
 | 
|---|
| 1435 | #if (_WIN32_WINNT >= 0x0500) /* W2K */
 | 
|---|
| 1436 | void WINAPI SHGetSetSettings(LPSHELLSTATE,DWORD,BOOL);
 | 
|---|
| 1437 | #endif
 | 
|---|
| 1438 | 
 | 
|---|
| 1439 | #if (_WIN32_WINNT >= 0x0500) /* W2K */
 | 
|---|
| 1440 | BOOL WINAPI ILIsEqual(LPCITEMIDLIST, LPCITEMIDLIST);
 | 
|---|
| 1441 | BOOL WINAPI ILIsParent(LPCITEMIDLIST, LPCITEMIDLIST, BOOL);
 | 
|---|
| 1442 | BOOL WINAPI ILRemoveLastID(LPITEMIDLIST);
 | 
|---|
| 1443 | HRESULT WINAPI ILLoadFromStream(IStream*, LPITEMIDLIST*);
 | 
|---|
| 1444 | HRESULT WINAPI ILSaveToStream(IStream*, LPCITEMIDLIST);
 | 
|---|
| 1445 | LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST, LPCSHITEMID, BOOL);
 | 
|---|
| 1446 | LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST);
 | 
|---|
| 1447 | LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST);
 | 
|---|
| 1448 | LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST, LPCITEMIDLIST);
 | 
|---|
| 1449 | LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST, LPCITEMIDLIST);
 | 
|---|
| 1450 | LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST);
 | 
|---|
| 1451 | LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST);
 | 
|---|
| 1452 | UINT WINAPI ILGetSize(LPCITEMIDLIST);
 | 
|---|
| 1453 | void WINAPI ILFree(LPITEMIDLIST);
 | 
|---|
| 1454 | 
 | 
|---|
| 1455 | HRESULT WINAPI SHCoCreateInstance(LPCWSTR,REFCLSID,IUnknown*,REFIID,void**);
 | 
|---|
| 1456 | #endif
 | 
|---|
| 1457 | 
 | 
|---|
| 1458 | #ifdef UNICODE
 | 
|---|
| 1459 | typedef IShellExecuteHookW IShellExecuteHook;
 | 
|---|
| 1460 | typedef IShellLinkW IShellLink;
 | 
|---|
| 1461 | typedef BROWSEINFOW BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;
 | 
|---|
| 1462 | #define SHBrowseForFolder SHBrowseForFolderW
 | 
|---|
| 1463 | #define SHGetDataFromIDList SHGetDataFromIDListW
 | 
|---|
| 1464 | #define SHGetPathFromIDList SHGetPathFromIDListW
 | 
|---|
| 1465 | #if (_WIN32_IE >= 0x0400)
 | 
|---|
| 1466 | #define SHGetSpecialFolderPath SHGetSpecialFolderPathW
 | 
|---|
| 1467 | #endif
 | 
|---|
| 1468 | #define SHGetFolderPath SHGetFolderPathW 
 | 
|---|
| 1469 | #if (_WIN32_WINNT >= 0x0500)
 | 
|---|
| 1470 | #define SHCreateDirectoryEx SHCreateDirectoryExW
 | 
|---|
| 1471 | #endif
 | 
|---|
| 1472 | #if (_WIN32_WINNT >= 0x0501)
 | 
|---|
| 1473 | #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW
 | 
|---|
| 1474 | #endif
 | 
|---|
| 1475 | #define FILEDESCRIPTOR FILEDESCRIPTORW
 | 
|---|
| 1476 | #define LPFILEDESCRIPTOR LPFILEDESCRIPTORW
 | 
|---|
| 1477 | #define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORW
 | 
|---|
| 1478 | #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORW
 | 
|---|
| 1479 | 
 | 
|---|
| 1480 | #else
 | 
|---|
| 1481 | typedef IShellExecuteHookA IShellExecuteHook;
 | 
|---|
| 1482 | typedef IShellLinkA IShellLink;
 | 
|---|
| 1483 | typedef BROWSEINFOA BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO;
 | 
|---|
| 1484 | #define SHBrowseForFolder SHBrowseForFolderA
 | 
|---|
| 1485 | #define SHGetDataFromIDList SHGetDataFromIDListA
 | 
|---|
| 1486 | #define SHGetPathFromIDList SHGetPathFromIDListA
 | 
|---|
| 1487 | #if (_WIN32_IE >= 0x0400)
 | 
|---|
| 1488 | #define SHGetSpecialFolderPath SHGetSpecialFolderPathA
 | 
|---|
| 1489 | #endif
 | 
|---|
| 1490 | #define SHGetFolderPath SHGetFolderPathA
 | 
|---|
| 1491 | #if (_WIN32_WINNT >= 0x0500)
 | 
|---|
| 1492 | #define SHCreateDirectoryEx SHCreateDirectoryExA
 | 
|---|
| 1493 | #endif
 | 
|---|
| 1494 | #if (_WIN32_WINNT >= 0x0501)
 | 
|---|
| 1495 | #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA
 | 
|---|
| 1496 | #endif
 | 
|---|
| 1497 | #define FILEDESCRIPTOR FILEDESCRIPTORA
 | 
|---|
| 1498 | #define LPFILEDESCRIPTOR LPFILEDESCRIPTORA
 | 
|---|
| 1499 | #define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORA
 | 
|---|
| 1500 | #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORA
 | 
|---|
| 1501 | #endif /* UNICODE */
 | 
|---|
| 1502 | 
 | 
|---|
| 1503 | DWORD WINAPI SHFormatDrive(HWND,UINT,UINT,UINT);
 | 
|---|
| 1504 | 
 | 
|---|
| 1505 | #define SHFMT_ID_DEFAULT 0xFFFF
 | 
|---|
| 1506 | #define SHFMT_OPT_FULL 1
 | 
|---|
| 1507 | #define SHFMT_OPT_SYSONLY 2
 | 
|---|
| 1508 | #define SHFMT_ERROR 0xFFFFFFFF
 | 
|---|
| 1509 | #define SHFMT_CANCEL 0xFFFFFFFE
 | 
|---|
| 1510 | #define SHFMT_NOFORMAT 0xFFFFFFFD
 | 
|---|
| 1511 | 
 | 
|---|
| 1512 | #pragma pack(pop)
 | 
|---|
| 1513 | #ifdef __cplusplus
 | 
|---|
| 1514 | }
 | 
|---|
| 1515 | #endif
 | 
|---|
| 1516 | 
 | 
|---|
| 1517 | 
 | 
|---|
| 1518 | #endif /* _SHLOBJ_H */
 | 
|---|