4 #pragma GCC system_header
18 #define BIF_RETURNONLYFSDIRS 1
19 #define BIF_DONTGOBELOWDOMAIN 2
20 #define BIF_STATUSTEXT 4
21 #define BIF_RETURNFSANCESTORS 8
22 #define BIF_EDITBOX 16
23 #define BIF_VALIDATE 32
24 #define BIF_NEWDIALOGSTYLE 64
25 #define BIF_BROWSEINCLUDEURLS 128
26 #define BIF_USENEWUI ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE )
27 #define BIF_BROWSEFORCOMPUTER 0x1000
28 #define BIF_BROWSEFORPRINTER 0x2000
29 #define BIF_BROWSEINCLUDEFILES 0x4000
30 #define BIF_SHAREABLE 0x8000
31 #define BFFM_INITIALIZED 1
32 #define BFFM_SELCHANGED 2
33 #define BFFM_VALIDATEFAILEDA 3
34 #define BFFM_VALIDATEFAILEDW 4
35 #define BFFM_SETSTATUSTEXTA (WM_USER + 100)
36 #define BFFM_SETSTATUSTEXTW (WM_USER + 104)
37 #define BFFM_ENABLEOK (WM_USER + 101)
38 #define BFFM_SETSELECTIONA (WM_USER + 102)
39 #define BFFM_SETSELECTIONW (WM_USER + 103)
40 #define BFFM_SETOKTEXT (WM_USER + 105)
41 #define BFFM_SETEXPANDED (WM_USER + 106)
43 #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTW
44 #define BFFM_SETSELECTION BFFM_SETSELECTIONW
45 #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW
47 #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTA
48 #define BFFM_SETSELECTION BFFM_SETSELECTIONA
49 #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA
51 #define DVASPECT_SHORTNAME 2
54 #define SHCNE_RENAMEITEM 1
55 #define SHCNE_CREATE 2
56 #define SHCNE_DELETE 4
58 #define SHCNE_RMDIR 16
59 #define SHCNE_MEDIAINSERTED 32
60 #define SHCNE_MEDIAREMOVED 64
61 #define SHCNE_DRIVEREMOVED 128
62 #define SHCNE_DRIVEADD 256
63 #define SHCNE_NETSHARE 512
64 #define SHCNE_NETUNSHARE 1024
65 #define SHCNE_ATTRIBUTES 2048
66 #define SHCNE_UPDATEDIR 4096
67 #define SHCNE_UPDATEITEM 8192
68 #define SHCNE_SERVERDISCONNECT 16384
69 #define SHCNE_UPDATEIMAGE 32768
70 #define SHCNE_DRIVEADDGUI 65536
71 #define SHCNE_RENAMEFOLDER 0x20000
72 #define SHCNE_FREESPACE 0x40000
73 #define SHCNE_ASSOCCHANGED 0x8000000
74 #define SHCNE_DISKEVENTS 0x2381F
75 #define SHCNE_GLOBALEVENTS 0xC0581E0
76 #define SHCNE_ALLEVENTS 0x7FFFFFFF
77 #define SHCNE_INTERRUPT 0x80000000
78 #define SHCNF_IDLIST 0
80 #define SHCNF_PRINTERA 2
83 #define SHCNF_PRINTERW 6
84 #define SHCNF_TYPE 0xFF
85 #define SHCNF_FLUSH 0x1000
86 #define SHCNF_FLUSHNOWAIT 0x2000
88 #define SHCNF_PATH SHCNF_PATHW
89 #define SHCNF_PRINTER SHCNF_PRINTERW
91 #define SHCNF_PATH SHCNF_PATHA
92 #define SHCNF_PRINTER SHCNF_PRINTERA
94 #define SFGAO_CANCOPY DROPEFFECT_COPY
95 #define SFGAO_CANMOVE DROPEFFECT_MOVE
96 #define SFGAO_CANLINK DROPEFFECT_LINK
97 #define SFGAO_CANRENAME 0x00000010L
98 #define SFGAO_CANDELETE 0x00000020L
99 #define SFGAO_HASPROPSHEET 0x00000040L
100 #define SFGAO_DROPTARGET 0x00000100L
101 #define SFGAO_CAPABILITYMASK 0x00000177L
102 #define SFGAO_GHOSTED 0x00008000L
103 #define SFGAO_LINK 0x00010000L
104 #define SFGAO_SHARE 0x00020000L
105 #define SFGAO_READONLY 0x00040000L
106 #define SFGAO_HIDDEN 0x00080000L
107 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
108 #define SFGAO_FILESYSANCESTOR 0x10000000L
109 #define SFGAO_FOLDER 0x20000000L
110 #define SFGAO_FILESYSTEM 0x40000000L
111 #define SFGAO_HASSUBFOLDER 0x80000000L
112 #define SFGAO_CONTENTSMASK 0x80000000L
113 #define SFGAO_VALIDATE 0x01000000L
114 #define SFGAO_REMOVABLE 0x02000000L
115 #define SFGAO_COMPRESSED 0x04000000L
116 #define STRRET_WSTR 0
117 #define STRRET_OFFSET 1
118 #define STRRET_CSTR 2
119 #define SHGDFIL_FINDDATA 1
120 #define SHGDFIL_NETRESOURCE 2
121 #define SHGDFIL_DESCRIPTIONID 3
122 #define SHDID_ROOT_REGITEM 1
123 #define SHDID_FS_FILE 2
124 #define SHDID_FS_DIRECTORY 3
125 #define SHDID_FS_OTHER 4
126 #define SHDID_COMPUTER_DRIVE35 5
127 #define SHDID_COMPUTER_DRIVE525 6
128 #define SHDID_COMPUTER_REMOVABLE 7
129 #define SHDID_COMPUTER_FIXED 8
130 #define SHDID_COMPUTER_NETDRIVE 9
131 #define SHDID_COMPUTER_CDROM 10
132 #define SHDID_COMPUTER_RAMDISK 11
133 #define SHDID_COMPUTER_OTHER 12
134 #define SHDID_NET_DOMAIN 13
135 #define SHDID_NET_SERVER 14
136 #define SHDID_NET_SHARE 15
137 #define SHDID_NET_RESTOFNET 16
138 #define SHDID_NET_OTHER 17
139 #ifndef REGSTR_PATH_EXPLORER
140 #define REGSTR_PATH_EXPLORER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer")
142 #define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")
143 #define CSIDL_DESKTOP 0
144 #define CSIDL_INTERNET 1
145 #define CSIDL_PROGRAMS 2
146 #define CSIDL_CONTROLS 3
147 #define CSIDL_PRINTERS 4
148 #define CSIDL_PERSONAL 5
149 #define CSIDL_FAVORITES 6
150 #define CSIDL_STARTUP 7
151 #define CSIDL_RECENT 8
152 #define CSIDL_SENDTO 9
153 #define CSIDL_BITBUCKET 10
154 #define CSIDL_STARTMENU 11
155 #define CSIDL_DESKTOPDIRECTORY 16
156 #define CSIDL_DRIVES 17
157 #define CSIDL_NETWORK 18
158 #define CSIDL_NETHOOD 19
159 #define CSIDL_FONTS 20
160 #define CSIDL_TEMPLATES 21
161 #define CSIDL_COMMON_STARTMENU 22
162 #define CSIDL_COMMON_PROGRAMS 23
163 #define CSIDL_COMMON_STARTUP 24
164 #define CSIDL_COMMON_DESKTOPDIRECTORY 25
165 #define CSIDL_APPDATA 26
166 #define CSIDL_PRINTHOOD 27
167 #define CSIDL_LOCAL_APPDATA 28
168 #define CSIDL_ALTSTARTUP 29
169 #define CSIDL_COMMON_ALTSTARTUP 30
170 #define CSIDL_COMMON_FAVORITES 31
171 #define CSIDL_INTERNET_CACHE 32
172 #define CSIDL_COOKIES 33
173 #define CSIDL_HISTORY 34
174 #define CSIDL_COMMON_APPDATA 35
175 #define CSIDL_WINDOWS 36
176 #define CSIDL_SYSTEM 37
177 #define CSIDL_PROGRAM_FILES 38
178 #define CSIDL_MYPICTURES 39
179 #define CSIDL_PROFILE 40
180 #define CSIDL_SYSTEMX86 41
181 #define CSIDL_PROGRAM_FILESX86 42
182 #define CSIDL_PROGRAM_FILES_COMMON 43
183 #define CSIDL_PROGRAM_FILES_COMMONX86 44
184 #define CSIDL_COMMON_TEMPLATES 45
185 #define CSIDL_COMMON_DOCUMENTS 46
186 #define CSIDL_COMMON_ADMINTOOLS 47
187 #define CSIDL_ADMINTOOLS 48
188 #define CSIDL_CONNECTIONS 49
189 #define CSIDL_COMMON_MUSIC 53
190 #define CSIDL_COMMON_PICTURES 54
191 #define CSIDL_COMMON_VIDEO 55
192 #define CSIDL_RESOURCES 56
193 #define CSIDL_RESOURCES_LOCALIZED 57
194 #define CSIDL_COMMON_OEM_LINKS 58
195 #define CSIDL_CDBURN_AREA 59
196 #define CSIDL_COMPUTERSNEARME 61
197 #define CSIDL_FLAG_DONT_VERIFY 0x4000
198 #define CSIDL_FLAG_CREATE 0x8000
199 #define CSIDL_FLAG_MASK 0xFF00
200 #define CFSTR_SHELLIDLIST TEXT("Shell IDList Array")
201 #define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets")
202 #define CFSTR_NETRESOURCES TEXT("Net Resource")
203 #define CFSTR_FILECONTENTS TEXT("FileContents")
204 #define CFSTR_FILENAMEA TEXT("FileName")
205 #define CFSTR_FILENAMEMAPA TEXT("FileNameMap")
206 #define CFSTR_FILEDESCRIPTORA TEXT("FileGroupDescriptor")
207 #define CFSTR_INETURLA TEXT("UniformResourceLocator")
208 #define CFSTR_SHELLURL CFSTR_INETURLA
209 #define CFSTR_FILENAMEW TEXT("FileNameW")
210 #define CFSTR_FILENAMEMAPW TEXT("FileNameMapW")
211 #define CFSTR_FILEDESCRIPTORW TEXT("FileGroupDescriptorW")
212 #define CFSTR_INETURLW TEXT("UniformResourceLocatorW")
214 #define CFSTR_FILENAME CFSTR_FILENAMEW
215 #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPW
216 #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORW
217 #define CFSTR_INETURL CFSTR_INETURLW
219 #define CFSTR_FILENAME CFSTR_FILENAMEA
220 #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPA
221 #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORA
222 #define CFSTR_INETURL CFSTR_INETURLA
224 #define CFSTR_PRINTERGROUP TEXT("PrinterFriendlyName")
225 #define CFSTR_INDRAGLOOP TEXT("InShellDragLoop")
226 #define CFSTR_PASTESUCCEEDED TEXT("Paste Succeeded")
227 #define CFSTR_PERFORMEDDROPEFFECT TEXT("Performed DropEffect")
228 #define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect")
230 #define CMF_DEFAULTONLY 1
231 #define CMF_VERBSONLY 2
232 #define CMF_EXPLORE 4
233 #define CMF_NOVERBS 8
234 #define CMF_CANRENAME 16
235 #define CMF_NODEFAULT 32
236 #define CMF_INCLUDESTATIC 64
237 #define CMF_RESERVED 0xffff0000
239 #define GCS_HELPTEXTA 1
240 #define GCS_VALIDATEA 2
242 #define GCS_HELPTEXTW 5
243 #define GCS_VALIDATEW 6
244 #define GCS_UNICODE 4
246 #define GCS_VERB GCS_VERBW
247 #define GCS_HELPTEXT GCS_HELPTEXTW
248 #define GCS_VALIDATE GCS_VALIDATEW
250 #define GCS_VERB GCS_VERBA
251 #define GCS_HELPTEXT GCS_HELPTEXTA
252 #define GCS_VALIDATE GCS_VALIDATEA
254 #define CMDSTR_NEWFOLDERA "NewFolder"
255 #define CMDSTR_VIEWLISTA "ViewList"
256 #define CMDSTR_VIEWDETAILSA "ViewDetails"
257 #define CMDSTR_NEWFOLDERW L"NewFolder"
258 #define CMDSTR_VIEWLISTW L"ViewList"
259 #define CMDSTR_VIEWDETAILSW L"ViewDetails"
261 #define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDERW
262 #define CMDSTR_VIEWLIST CMDSTR_VIEWLISTW
263 #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSW
265 #define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDER
266 #define CMDSTR_VIEWLIST CMDSTR_VIEWLIST
267 #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILS
269 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
270 #define CMIC_MASK_ICON SEE_MASK_ICON
271 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
272 #define CMIC_MASK_MODAL 0x80000000
273 #define CMIC_VALID_SEE_FLAGS SEE_VALID_CMIC_FLAGS
274 #define GIL_OPENICON 1
275 #define GIL_FORSHELL 2
277 #define GIL_DEFAULTICON 64
278 #define GIL_FORSHORTCUT 128
279 #define GIL_SIMULATEDOC 1
280 #define GIL_PERINSTANCE 2
281 #define GIL_PERCLASS 4
282 #define GIL_NOTFILENAME 8
283 #define GIL_DONTCACHE 16
285 #define FVSIF_PINNED 2
286 #define FVSIF_NEWFAILED 0x8000000
287 #define FVSIF_NEWFILE 0x80000000
288 #define FVSIF_CANVIEWIT 0x40000000
289 #define CDBOSC_SETFOCUS 0
290 #define CDBOSC_KILLFOCUS 1
291 #define CDBOSC_SELCHANGE 2
292 #define CDBOSC_RENAME 3
293 #define FCIDM_SHVIEWFIRST 0
294 #define FCIDM_SHVIEWLAST 0x7fff
295 #define FCIDM_BROWSERFIRST 0xa000
296 #define FCIDM_BROWSERLAST 0xbf00
297 #define FCIDM_GLOBALFIRST 0x8000
298 #define FCIDM_GLOBALLAST 0x9fff
299 #define FCIDM_MENU_FILE FCIDM_GLOBALFIRST
300 #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040)
301 #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080)
302 #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081)
303 #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0)
304 #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1)
305 #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100)
306 #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140)
307 #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150)
308 #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170)
309 #define FCIDM_TOOLBAR FCIDM_BROWSERFIRST
310 #define FCIDM_STATUS (FCIDM_BROWSERFIRST+1)
311 #define SBSP_DEFBROWSER 0
312 #define SBSP_SAMEBROWSER 1
313 #define SBSP_NEWBROWSER 2
314 #define SBSP_DEFMODE 0
315 #define SBSP_OPENMODE 16
316 #define SBSP_EXPLOREMODE 32
317 #define SBSP_ABSOLUTE 0
318 #define SBSP_HELPMODE 0x40
319 #define SBSP_NOTRANSFERHIST 0x80
320 #define SBSP_RELATIVE 0x1000
321 #define SBSP_PARENT 0x2000
322 #define SBSP_NAVIGATEBACK 0x4000
323 #define SBSP_NAVIGATEFORWARD 0x8000
324 #define SBSP_ALLOW_AUTONAVIGATE 0x10000
325 #define SBSP_NOAUTOSELECT 0x4000000
326 #define SBSP_WRITENOHISTORY 0x8000000
327 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
328 #define SBSP_REDIRECT 0x40000000
330 #define FCW_TOOLBAR 2
333 #define FCT_CONFIGABLE 2
334 #define FCT_ADDTOEND 4
335 #define SVSI_DESELECT 0
336 #define SVSI_SELECT 1
338 #define SVSI_DESELECTOTHERS 4
339 #define SVSI_ENSUREVISIBLE 8
340 #define SVSI_FOCUSED 16
341 #define SVGIO_BACKGROUND 0
342 #define SVGIO_SELECTION 1
343 #define SVGIO_ALLVIEW 2
344 #define SV2GV_CURRENTVIEW ((UINT)-1)
345 #define SV2GV_DEFAULTVIEW ((UINT)-2)
346 #define SHCNE_RENAMEITEM 0x00000001
347 #define SHCNE_CREATE 0x00000002
348 #define SHCNE_DELETE 0x00000004
349 #define SHCNE_MKDIR 0x00000008
350 #define SHCNE_RMDIR 0x00000010
351 #define SHCNE_MEDIAINSERTED 0x00000020
352 #define SHCNE_MEDIAREMOVED 0x00000040
353 #define SHCNE_DRIVEREMOVED 0x00000080
354 #define SHCNE_DRIVEADD 0x00000100
355 #define SHCNE_NETSHARE 0x00000200
356 #define SHCNE_NETUNSHARE 0x00000400
357 #define SHCNE_ATTRIBUTES 0x00000800
358 #define SHCNE_UPDATEDIR 0x00001000
359 #define SHCNE_UPDATEITEM 0x00002000
360 #define SHCNE_SERVERDISCONNECT 0x00004000
361 #define SHCNE_UPDATEIMAGE 0x00008000
362 #define SHCNE_DRIVEADDGUI 0x00010000
363 #define SHCNE_RENAMEFOLDER 0x00020000
364 #define SHCNE_FREESPACE 0x00040000
365 #define SHCNE_EXTENDED_EVENT 0x04000000
366 #define SHCNE_ASSOCCHANGED 0x08000000
367 #define SHCNE_DISKEVENTS 0x0002381F
368 #define SHCNE_GLOBALEVENTS 0x0C0581E0
369 #define SHCNE_ALLEVENTS 0x7FFFFFFF
370 #define SHCNE_INTERRUPT 0x80000000
371 #define SHCNEE_ORDERCHANGED 0x0002L
372 #define SHCNEE_MSI_CHANGE 0x0004L
373 #define SHCNEE_MSI_UNINSTALL 0x0005L
374 #define SHCNF_IDLIST 0x0000
375 #define SHCNF_PATHA 0x0001
376 #define SHCNF_PRINTERA 0x0002
377 #define SHCNF_DWORD 0x0003
378 #define SHCNF_PATHW 0x0005
379 #define SHCNF_PRINTERW 0x0006
380 #define SHCNF_TYPE 0x00FF
381 #define SHCNF_FLUSH 0x1000
382 #define SHCNF_FLUSHNOWAIT 0x2000
384 #define SHCNF_PATH SHCNF_PATHW
385 #define SHCNF_PRINTER SHCNF_PRINTERW
387 #define SHCNF_PATH SHCNF_PATHA
388 #define SHCNF_PRINTER SHCNF_PRINTERA
390 #define PCS_FATAL 0x80000000
391 #define PCS_REPLACEDCHAR 0x00000001
392 #define PCS_REMOVEDCHAR 0x00000002
393 #define PCS_TRUNCATED 0x00000004
394 #define PCS_PATHTOOLONG 0x00000008
395 #define SHFMT_ERROR 0xFFFFFFFFL
396 #define SHFMT_CANCEL 0xFFFFFFFEL
397 #define SHFMT_NOFORMAT 0xFFFFFFFDL
398 #define EXP_SZ_LINK_SIG 0xa0000001
399 #define NT_CONSOLE_PROPS_SIG 0xa0000002
400 #define NT_FE_CONSOLE_PROPS_SIG 0xa0000004
401 #define EXP_SPECIAL_FOLDER_SIG 0xa0000005
402 #define EXP_DARWIN_ID_SIG 0xa0000006
403 #define EXP_LOGO3_ID_SIG 0xa0000007
404 #define EXP_SZ_ICON_SIG 0xa0000007
405 #define SHOP_PRINTERNAME 0x01
406 #define SHOP_FILEPATH 0x02
407 #define SHOP_VOLUMEGUID 0x04
409 typedef ULONG SFGAOF
;
410 typedef DWORD SHGDNF
;
412 typedef struct _IDA
{
416 typedef int (CALLBACK
* BFFCALLBACK
)(HWND
,UINT
,LPARAM
,LPARAM
);
417 typedef struct _browseinfoA
{
419 LPCITEMIDLIST pidlRoot
;
420 LPSTR pszDisplayName
;
426 } BROWSEINFOA
,*PBROWSEINFOA
,*LPBROWSEINFOA
;
427 typedef struct _browseinfoW
{
429 LPCITEMIDLIST pidlRoot
;
430 LPWSTR pszDisplayName
;
436 } BROWSEINFOW
,*PBROWSEINFOW
,*LPBROWSEINFOW
;
437 typedef struct _CMInvokeCommandInfo
{
447 } CMINVOKECOMMANDINFO
,*LPCMINVOKECOMMANDINFO
;
448 typedef struct _DROPFILES
{
453 } DROPFILES
,*LPDROPFILES
;
454 typedef enum tagSHGDN
{
457 SHGDN_FOREDITING
=0x1000,
458 SHGDN_INCLUDE_NONFILESYS
=0x2000,
459 SHGDN_FORADDRESSBAR
=0x4000,
460 SHGDN_FORPARSING
=0x8000
463 SHGFP_TYPE_CURRENT
= 0,
464 SHGFP_TYPE_DEFAULT
= 1
466 typedef enum tagSHCONTF
{
467 SHCONTF_FOLDERS
= 32,
468 SHCONTF_NONFOLDERS
= 64,
469 SHCONTF_INCLUDEHIDDEN
= 128,
470 SHCONTF_INIT_ON_FIRST_NEXT
= 256,
471 SHCONTF_NETPRINTERSRCH
= 512,
472 SHCONTF_SHAREABLE
= 1024,
473 SHCONTF_STORAGE
= 2048
476 FD_CLSID
=1,FD_SIZEPOINT
=2,FD_ATTRIBUTES
=4,FD_CREATETIME
=8,FD_ACCESSTIME
=16,
477 FD_WRITESTIME
=32,FD_FILESIZE
=64,FD_LINKUI
=0x8000
479 typedef struct _FILEDESCRIPTOR
{
484 DWORD dwFileAttributes
;
485 FILETIME ftCreationTime
;
486 FILETIME ftLastAccessTime
;
487 FILETIME ftLastWriteTime
;
490 CHAR cFileName
[MAX_PATH
];
491 } FILEDESCRIPTOR
,*LPFILEDESCRIPTOR
;
492 typedef struct _FILEGROUPDESCRIPTOR
{
494 FILEDESCRIPTOR fgd
[1];
495 } FILEGROUPDESCRIPTOR
,*LPFILEGROUPDESCRIPTOR
;
510 typedef PBYTE LPVIEWSETTINGS
;
512 FWF_AUTOARRANGE
=1,FWF_ABBREVIATEDNAMES
=2,FWF_SNAPTOGRID
=4,FWF_OWNERDATA
=8,
513 FWF_BESTFITWINDOW
=16,FWF_DESKTOP
=32,FWF_SINGLESEL
=64,FWF_NOSUBFOLDERS
=128,
514 FWF_TRANSPARENT
=256,FWF_NOCLIENTEDGE
=512,FWF_NOSCROLL
=0x400,FWF_ALIGNLEFT
=0x800,
515 FWF_SINGLECLICKACTIVATE
=0x8000
526 } FOLDERSETTINGS
,*LPFOLDERSETTINGS
;
527 typedef const FOLDERSETTINGS
*LPCFOLDERSETTINGS
;
535 OLECHAR strNewFile
[MAX_PATH
];
536 } FVSHOWINFO
,*LPFVSHOWINFO
;
537 typedef struct _NRESARRAY
{
540 } NRESARRAY
, *LPNRESARRAY
;
541 enum { SBSC_HIDE
,SBSC_SHOW
,SBSC_TOGGLE
,SBSC_QUERY
};
543 SBCMDID_ENABLESHOWTREE
,SBCMDID_SHOWCONTROL
,SBCMDID_CANCELNAVIGATION
,
544 SBCMDID_MAYSAVECHANGES
,SBCMDID_SETHLINKFRAME
,SBCMDID_ENABLESTOP
,SBCMDID_OPTIONS
547 SVUIA_DEACTIVATE
,SVUIA_ACTIVATE_NOFOCUS
,SVUIA_ACTIVATE_FOCUS
,
548 SVUIA_INPLACEACTIVATE
550 #if (_WIN32_IE >= 0x0500)
551 typedef struct tagEXTRASEARCH
554 WCHAR wszFriendlyName
[80];
556 } EXTRASEARCH
, *LPEXTRASEARCH
;
557 typedef DWORD SHCOLSTATEF
;
562 } SHCOLUMNID
, *LPSHCOLUMNID
;
563 typedef const SHCOLUMNID
*LPCSHCOLUMNID
;
566 LPITEMIDLIST pidlTargetFolder
;
567 WCHAR szTargetParsingName
[MAX_PATH
];
568 WCHAR szNetworkProvider
[MAX_PATH
];
571 } PERSIST_FOLDER_TARGET_INFO
;
573 typedef struct _SHChangeNotifyEntry
577 } SHChangeNotifyEntry
;
584 POINT pts
[NUM_POINTS
];
585 DWORD dwTimes
[NUM_POINTS
];
591 BOOL fFullPathTitle
:1;
592 BOOL fSaveLocalView
:1;
594 BOOL fSimpleDefault
:1;
595 BOOL fDontShowDescBar
:1;
596 BOOL fNewWindowMode
:1;
597 BOOL fShowCompColor
:1;
598 BOOL fDontPrettyNames
:1;
599 BOOL fAdminsCreateCommonGroups
:1;
601 UINT fMenuEnumFilter
;
602 } CABINETSTATE
, *LPCABINETSTATE
;
603 typedef enum RESTRICTIONS
605 REST_NONE
= 0x00000000,
606 REST_NORUN
= 0x00000001,
607 REST_NOCLOSE
= 0x00000002,
608 REST_NOSAVESET
= 0x00000004,
609 REST_NOFILEMENU
= 0x00000008,
610 REST_NOSETFOLDERS
= 0x00000010,
611 REST_NOSETTASKBAR
= 0x00000020,
612 REST_NODESKTOP
= 0x00000040,
613 REST_NOFIND
= 0x00000080,
614 REST_NODRIVES
= 0x00000100,
615 REST_NODRIVEAUTORUN
= 0x00000200,
616 REST_NODRIVETYPEAUTORUN
= 0x00000400,
617 REST_NONETHOOD
= 0x00000800,
618 REST_STARTBANNER
= 0x00001000,
619 REST_RESTRICTRUN
= 0x00002000,
620 REST_NOPRINTERTABS
= 0x00004000,
621 REST_NOPRINTERDELETE
= 0x00008000,
622 REST_NOPRINTERADD
= 0x00010000,
623 REST_NOSTARTMENUSUBFOLDERS
= 0x00020000,
624 REST_MYDOCSONNET
= 0x00040000,
625 REST_NOEXITTODOS
= 0x00080000,
626 REST_ENFORCESHELLEXTSECURITY
= 0x00100000,
627 REST_LINKRESOLVEIGNORELINKINFO
= 0x00200000,
628 REST_NOCOMMONGROUPS
= 0x00400000,
629 REST_SEPARATEDESKTOPPROCESS
= 0x00800000,
630 REST_NOWEB
= 0x01000000,
631 REST_NOTRAYCONTEXTMENU
= 0x02000000,
632 REST_NOVIEWCONTEXTMENU
= 0x04000000,
633 REST_NONETCONNECTDISCONNECT
= 0x08000000,
634 REST_STARTMENULOGOFF
= 0x10000000,
635 REST_NOSETTINGSASSIST
= 0x20000000,
636 REST_NOINTERNETICON
= 0x40000001,
637 REST_NORECENTDOCSHISTORY
,
638 REST_NORECENTDOCSMENU
,
639 REST_NOACTIVEDESKTOP
,
640 REST_NOACTIVEDESKTOPCHANGES
,
641 REST_NOFAVORITESMENU
,
642 REST_CLEARRECENTDOCSONEXIT
,
644 REST_NOCUSTOMIZEWEBVIEW
,
646 REST_NOHTMLWALLPAPER
= 0x40000010,
647 REST_NOCHANGINGWALLPAPER
,
651 REST_NOCLOSEDESKCOMP
,
652 REST_NOCLOSE_DRAGDROPBAND
,
655 REST_NORESOLVESEARCH
,
657 REST_FORCECOPYACLWITHFILE
,
658 REST_NOLOGO3CHANNELNOTIFY
,
659 REST_NOFORGETSOFTWAREUPDATE
,
660 REST_NOSETACTIVEDESKTOP
,
661 REST_NOUPDATEWINDOWS
,
662 REST_NOCHANGESTARMENU
, /* 0x40000020 */
663 REST_NOFOLDEROPTIONS
,
664 REST_HASFINDCOMPUTERS
,
666 REST_RUNDLGMEMCHECKBOX
,
667 REST_ARP_ShowPostSetup
,
672 REST_ARP_NOREMOVEPAGE
,
674 REST_ARP_NOWINSETUPPAGE
,
676 REST_NOCHANGEMAPPEDDRIVELABEL
,
677 REST_NOCHANGEMAPPEDDRIVECOMMENT
,
678 REST_MaxRecentDocs
, /* 0x40000030 */
679 REST_NONETWORKCONNECTIONS
,
680 REST_FORCESTARTMENULOGOFF
,
682 REST_NOCUSTOMIZETHISFOLDER
,
685 REST_ALLOWFRENCHENCRYPTION
, /* not documented */
687 REST_DONTSHOWSUPERHIDDEN
,
688 REST_NOSHELLSEARCHBUTTON
,
690 REST_NORUNASINSTALLPROMPT
,
691 REST_PROMPTRUNASINSTALLNETPATH
,
692 REST_NOMANAGEMYCOMPUTERVERB
,
693 REST_NORECENTDOCSNETHOOD
,
695 REST_NOWELCOMESCREEN
,
696 REST_RESTRICTCPL
, /* 0x40000040 */
701 REST_NOENCRYPTONMOVE
,
702 REST_NOLOCALMACHINERUN
,
703 REST_NOCURRENTUSERRUN
,
704 REST_NOLOCALMACHINERUNONCE
,
705 REST_NOCURRENTUSERRUNONCE
,
706 REST_FORCEACTIVEDESKTOPON
,
707 REST_NOCOMPUTERSNEARME
,
710 REST_NOSHAREDDOCUMENTS
,
712 REST_NOSMMYPICS
, /* 0x40000050 */
713 REST_ALLOWBITBUCKDRIVES
,
714 REST_NONLEGACYSHELLMODE
,
715 REST_NOCONTROLPANELBARRICADE
,
717 REST_NOAUTOTRAYNOTIFY
,
723 REST_NODISPLAYAPPEARANCEPAGE
,
725 REST_NOVISUALSTYLECHOICE
,
728 REST_SETVISUALSTYLE
, /* 0x40000060 */
729 REST_STARTRUNNOHOMEPATH
,
730 REST_NOUSERNAMEINSTARTPANEL
,
731 REST_NOMYCOMPUTERICON
,
732 REST_NOSMNETWORKPLACES
,
736 REST_NOSMMOREPROGRAMS
,
737 REST_NOSMMFUPROGRAMS
,
738 REST_NOTRAYITEMSDISPLAY
,
739 REST_NOTOOLBARSONTASKBAR
,
743 REST_NOSMCONFIGUREPROGRAMS
= 0x4000006F,
744 REST_HIDECLOCK
, /* 0x40000070 */
745 REST_NOLOWDISKSPACECHECKS
,
746 REST_NOENTIRENETWORK
,
747 REST_NODESKTOPCLEANUP
,
748 REST_BITBUCKNUKEONDELETE
,
749 REST_BITBUCKCONFIRMDELETE
,
751 REST_NODISPBACKGROUND
,
752 REST_NODISPSCREENSAVEPG
,
753 REST_NODISPSETTINGSPG
,
754 REST_NODISPSCREENSAVEPREVIEW
,
757 REST_NOTHUMBNAILCACHE
,
758 REST_NOSTRCMPLOGICAL
,
759 REST_NOPUBLISHWIZARD
,
760 REST_NOONLINEPRINTSWIZARD
, /* 0x40000080 */
762 REST_ALLOWUNHASHEDWEBVIEW
,
763 REST_ALLOWLEGACYWEBVIEW
,
764 REST_REVERTWEBVIEWSECURITY
,
766 REST_INHERITCONSOLEHANDLES
= 0x40000086,
768 REST_NODISCONNECT
= 0x41000001,
770 REST_NOFILEASSOCIATE
, /* 0x41000003 */
774 SLDF_HAS_ID_LIST
= 0x00000001,
775 SLDF_HAS_LINK_INFO
= 0x00000002,
776 SLDF_HAS_NAME
= 0x00000004,
777 SLDF_HAS_RELPATH
= 0x00000008,
778 SLDF_HAS_WORKINGDIR
= 0x00000010,
779 SLDF_HAS_ARGS
= 0x00000020,
780 SLDF_HAS_ICONLOCATION
= 0x00000040,
781 SLDF_UNICODE
= 0x00000080,
782 SLDF_FORCE_NO_LINKINFO
= 0x00000100,
783 SLDF_HAS_EXP_SZ
= 0x00000200,
784 SLDF_RUN_IN_SEPERATE
= 0x00000400,
785 SLDF_HAS_LOGO3ID
= 0x00000800,
786 SLDF_HAS_DARWINID
= 0x00001000,
787 SLDF_RUNAS_USER
= 0x00002000,
788 SLDF_HAS_EXP_ICON_SZ
= 0x00004000,
789 SLDF_NO_PIDL_ALIAS
= 0x00008000,
790 SLDF_FORCE_UNCNAME
= 0x00010000,
791 SLDF_RUN_WITH_SHIMLAYER
= 0x00020000,
792 SLDF_RESERVED
= 0x80000000,
793 } SHELL_LINK_DATA_FLAGS
;
795 typedef struct tagDATABLOCKHEADER
799 } DATABLOCK_HEADER
, *LPDATABLOCK_HEADER
, *LPDBLIST
;
802 DATABLOCK_HEADER dbh
;
803 CHAR szDarwinID
[MAX_PATH
];
804 WCHAR szwDarwinID
[MAX_PATH
];
805 } EXP_DARWIN_LINK
, *LPEXP_DARWIN_LINK
;
807 DECLARE_ENUMERATOR_(IEnumIDList
,LPITEMIDLIST
);
808 typedef IEnumIDList
*LPENUMIDLIST
;
811 #define IEnumIDList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
812 #define IEnumIDList_Release(T) (T)->lpVtbl->AddRef(T)
813 #define IEnumIDList_AddRef(T) (T)->lpVtbl->Release(T)
814 #define IEnumIDList_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
815 #define IEnumIDList_Skip(T,a) (T)->lpVtbl->Skip(T,a)
816 #define IEnumIDList_Reset(T) (T)->lpVtbl->Reset(T)
817 #define IEnumIDList_Clone(T,a) (T)->lpVtbl->Clone(T,a)
820 #define INTERFACE IContextMenu
821 DECLARE_INTERFACE_(IContextMenu
,IUnknown
)
823 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
824 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
825 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
826 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
827 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
828 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
830 typedef IContextMenu
*LPCONTEXTMENU
;
833 #define IContextMenu_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
834 #define IContextMenu_AddRef(T) (T)->lpVtbl->AddRef(T)
835 #define IContextMenu_Release(T) (T)->lpVtbl->Release(T)
836 #define IContextMenu_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
837 #define IContextMenu_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
838 #define IContextMenu_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
841 #define INTERFACE IContextMenu2
842 DECLARE_INTERFACE_(IContextMenu2
,IContextMenu
)
844 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
845 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
846 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
847 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
848 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
849 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
850 STDMETHOD(HandleMenuMsg
)(THIS_ UINT
,WPARAM
,LPARAM
) PURE
;
853 typedef IContextMenu2
*LPCONTEXTMENU2
;
855 #if (_WIN32_IE >= 0x0500)
860 WCHAR wszFolder
[MAX_PATH
];
861 } SHCOLUMNINIT
,*LPSHCOLUMNINIT
;
862 typedef const SHCOLUMNINIT
* LPCSHCOLUMNINIT
;
865 DWORD dwFileAttributes
;
868 WCHAR wszFile
[MAX_PATH
];
869 } SHCOLUMNDATA
,*LPSHCOLUMNDATA
;
870 typedef const SHCOLUMNDATA
* LPCSHCOLUMNDATA
;
873 #define MAX_COLUMN_NAME_LEN 80
874 #define MAX_COLUMN_DESC_LEN 128
883 WCHAR wszTitle
[MAX_COLUMN_NAME_LEN
];
884 WCHAR wszDescription
[MAX_COLUMN_DESC_LEN
];
885 } SHCOLUMNINFO
,*LPSHCOLUMNINFO
;
886 typedef const SHCOLUMNINFO
* LPCSHCOLUMNINFO
;
890 SHCOLSTATE_TYPE_STR
= 0x00000001,
891 SHCOLSTATE_TYPE_INT
= 0x00000002,
892 SHCOLSTATE_TYPE_DATE
= 0x00000003,
893 SHCOLSTATE_TYPEMASK
= 0x0000000f,
894 SHCOLSTATE_ONBYDEFAULT
= 0x00000010,
895 SHCOLSTATE_SLOW
= 0x00000020,
896 SHCOLSTATE_EXTENDED
= 0x00000040,
897 SHCOLSTATE_SECONDARYUI
= 0x00000080,
898 SHCOLSTATE_HIDDEN
= 0x00000100,
899 SHCOLSTATE_PREFER_VARCMP
= 0x00000200
903 #define IContextMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
904 #define IContextMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
905 #define IContextMenu2_Release(T) (T)->lpVtbl->Release(T)
906 #define IContextMenu2_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
907 #define IContextMenu2_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
908 #define IContextMenu2_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
909 #define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)
912 #define INTERFACE IColumnProvider
913 DECLARE_INTERFACE_(IColumnProvider
,IUnknown
)
915 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
916 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
917 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
918 STDMETHOD(Initialize
)(THIS_ LPCSHCOLUMNINIT
) PURE
;
919 STDMETHOD(GetColumnInfo
)(THIS_ DWORD
,SHCOLUMNINFO
*) PURE
;
920 STDMETHOD(GetItemData
)(THIS_ LPCSHCOLUMNID
,LPCSHCOLUMNDATA
,VARIANT
*) PURE
;
923 #endif /* _WIN32_IE >= 0x0500 */
925 #define INTERFACE IQueryInfo
926 DECLARE_INTERFACE_(IQueryInfo
,IUnknown
)
928 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
929 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
930 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
931 STDMETHOD(GetInfoTip
)(THIS_ DWORD
,WCHAR
**) PURE
;
932 STDMETHOD(GetInfoFlags
)(THIS_ DWORD
*) PURE
;
936 #if !defined(__cplusplus) || defined(CINTERFACE)
937 /*** IUnknown methods ***/
938 #define IQueryInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
939 #define IQueryInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
940 #define IQueryInfo_Release(p) (p)->lpVtbl->Release(p)
941 /*** IQueryInfo methods ***/
942 #define IQueryInfo_GetInfoTip(p,a,b) (p)->lpVtbl->GetInfoTip(p,a,b)
943 #define IQueryInfo_GetInfoFlags(p,a) (p)->lpVtbl->GetInfoFlags(p,a)
946 #define INTERFACE IShellExtInit
947 DECLARE_INTERFACE_(IShellExtInit
, IUnknown
)
949 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
950 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
951 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
952 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
,LPDATAOBJECT
,HKEY
) PURE
;
955 typedef IShellExtInit
*LPSHELLEXTINIT
;
957 #define INTERFACE IShellPropSheetExt
958 DECLARE_INTERFACE_(IShellPropSheetExt
, IUnknown
)
960 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
961 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
962 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
963 STDMETHOD(AddPages
)(THIS_ LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
964 STDMETHOD(ReplacePage
)(THIS_ UINT
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
967 typedef IShellPropSheetExt
*LPSHELLPROPSHEETEXT
;
969 #define INTERFACE IExtractIconA
970 DECLARE_INTERFACE_(IExtractIconA
, IUnknown
)
972 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
973 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
974 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
975 STDMETHOD(GetIconLocation
)(THIS_ UINT
,LPSTR
,UINT
,int*,PUINT
) PURE
;
976 STDMETHOD(Extract
)(THIS_ LPCSTR
,UINT
,HICON
*,HICON
*,UINT
) PURE
;
979 typedef IExtractIconA
*LPEXTRACTICONA
;
982 #define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
983 #define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T)
984 #define IExtractIconA_Release(T) (T)->lpVtbl->Release(T)
985 #define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
986 #define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
989 #define INTERFACE IExtractIconW
990 DECLARE_INTERFACE_(IExtractIconW
, IUnknown
)
992 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
993 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
994 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
995 STDMETHOD(GetIconLocation
)(THIS_ UINT
,LPWSTR
,UINT
,int*,PUINT
) PURE
;
996 STDMETHOD(Extract
)(THIS_ LPCWSTR
,UINT
,HICON
*,HICON
*,UINT
) PURE
;
999 typedef IExtractIconW
*LPEXTRACTICONW
;
1002 #define IExtractIconW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1003 #define IExtractIconW_AddRef(T) (T)->lpVtbl->AddRef(T)
1004 #define IExtractIconW_Release(T) (T)->lpVtbl->Release(T)
1005 #define IExtractIconW_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
1006 #define IExtractIconW_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
1010 #define IExtractIcon IExtractIconW
1011 #define LPEXTRACTICON LPEXTRACTICONW
1013 #define IExtractIcon IExtractIconA
1014 #define LPEXTRACTICON LPEXTRACTICONA
1017 #define INTERFACE IShellLinkA
1018 DECLARE_INTERFACE_(IShellLinkA
, IUnknown
)
1020 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1021 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1022 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1023 STDMETHOD(GetPath
)(THIS_ LPSTR
,int,WIN32_FIND_DATAA
*,DWORD
) PURE
;
1024 STDMETHOD(GetIDList
)(THIS_ LPITEMIDLIST
*) PURE
;
1025 STDMETHOD(SetIDList
)(THIS_ LPCITEMIDLIST
) PURE
;
1026 STDMETHOD(GetDescription
)(THIS_ LPSTR
,int) PURE
;
1027 STDMETHOD(SetDescription
)(THIS_ LPCSTR
) PURE
;
1028 STDMETHOD(GetWorkingDirectory
)(THIS_ LPSTR
,int) PURE
;
1029 STDMETHOD(SetWorkingDirectory
)(THIS_ LPCSTR
) PURE
;
1030 STDMETHOD(GetArguments
)(THIS_ LPSTR
,int) PURE
;
1031 STDMETHOD(SetArguments
)(THIS_ LPCSTR
) PURE
;
1032 STDMETHOD(GetHotkey
)(THIS_ PWORD
) PURE
;
1033 STDMETHOD(SetHotkey
)(THIS_ WORD
) PURE
;
1034 STDMETHOD(GetShowCmd
)(THIS_
int*) PURE
;
1035 STDMETHOD(SetShowCmd
)(THIS_
int) PURE
;
1036 STDMETHOD(GetIconLocation
)(THIS_ LPSTR
,int,int*) PURE
;
1037 STDMETHOD(SetIconLocation
)(THIS_ LPCSTR
,int) PURE
;
1038 STDMETHOD(SetRelativePath
)(THIS_ LPCSTR
,DWORD
) PURE
;
1039 STDMETHOD(Resolve
)(THIS_ HWND
,DWORD
) PURE
;
1040 STDMETHOD(SetPath
)(THIS_ LPCSTR
) PURE
;
1045 #define IShellLinkA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1046 #define IShellLinkA_AddRef(T) (T)->lpVtbl->AddRef(T)
1047 #define IShellLinkA_Release(T) (T)->lpVtbl->Release(T)
1048 #define IShellLinkA_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
1049 #define IShellLinkA_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
1050 #define IShellLinkA_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
1051 #define IShellLinkA_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
1052 #define IShellLinkA_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
1053 #define IShellLinkA_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
1054 #define IShellLinkA_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
1055 #define IShellLinkA_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
1056 #define IShellLinkA_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
1057 #define IShellLinkA_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
1058 #define IShellLinkA_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
1059 #define IShellLinkA_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
1060 #define IShellLinkA_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
1061 #define IShellLinkA_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
1062 #define IShellLinkA_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
1063 #define IShellLinkA_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
1064 #define IShellLinkA_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
1065 #define IShellLinkA_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
1068 #define INTERFACE IShellLinkW
1069 DECLARE_INTERFACE_(IShellLinkW
, IUnknown
)
1071 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1072 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1073 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1074 STDMETHOD(GetPath
)(THIS_ LPWSTR
,int,WIN32_FIND_DATAW
*,DWORD
) PURE
;
1075 STDMETHOD(GetIDList
)(THIS_ LPITEMIDLIST
*) PURE
;
1076 STDMETHOD(SetIDList
)(THIS_ LPCITEMIDLIST
) PURE
;
1077 STDMETHOD(GetDescription
)(THIS_ LPWSTR
,int) PURE
;
1078 STDMETHOD(SetDescription
)(THIS_ LPCWSTR
) PURE
;
1079 STDMETHOD(GetWorkingDirectory
)(THIS_ LPWSTR
,int) PURE
;
1080 STDMETHOD(SetWorkingDirectory
)(THIS_ LPCWSTR
) PURE
;
1081 STDMETHOD(GetArguments
)(THIS_ LPWSTR
,int) PURE
;
1082 STDMETHOD(SetArguments
)(THIS_ LPCWSTR
) PURE
;
1083 STDMETHOD(GetHotkey
)(THIS_ PWORD
) PURE
;
1084 STDMETHOD(SetHotkey
)(THIS_ WORD
) PURE
;
1085 STDMETHOD(GetShowCmd
)(THIS_
int*) PURE
;
1086 STDMETHOD(SetShowCmd
)(THIS_
int) PURE
;
1087 STDMETHOD(GetIconLocation
)(THIS_ LPWSTR
,int,int*) PURE
;
1088 STDMETHOD(SetIconLocation
)(THIS_ LPCWSTR
,int) PURE
;
1089 STDMETHOD(SetRelativePath
)(THIS_ LPCWSTR
,DWORD
) PURE
;
1090 STDMETHOD(Resolve
)(THIS_ HWND
,DWORD
) PURE
;
1091 STDMETHOD(SetPath
)(THIS_ LPCWSTR
) PURE
;
1096 #define IShellLinkW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1097 #define IShellLinkW_AddRef(T) (T)->lpVtbl->AddRef(T)
1098 #define IShellLinkW_Release(T) (T)->lpVtbl->Release(T)
1099 #define IShellLinkW_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
1100 #define IShellLinkW_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
1101 #define IShellLinkW_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
1102 #define IShellLinkW_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
1103 #define IShellLinkW_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
1104 #define IShellLinkW_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
1105 #define IShellLinkW_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
1106 #define IShellLinkW_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
1107 #define IShellLinkW_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
1108 #define IShellLinkW_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
1109 #define IShellLinkW_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
1110 #define IShellLinkW_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
1111 #define IShellLinkW_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
1112 #define IShellLinkW_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
1113 #define IShellLinkW_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
1114 #define IShellLinkW_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
1115 #define IShellLinkW_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
1116 #define IShellLinkW_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
1119 #define INTERFACE IShellFolder
1120 DECLARE_INTERFACE_(IShellFolder
, IUnknown
)
1122 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1123 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1124 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1125 STDMETHOD(ParseDisplayName
)(THIS_ HWND
,LPBC
,LPOLESTR
,PULONG
,LPITEMIDLIST
*,PULONG
) PURE
;
1126 STDMETHOD(EnumObjects
)(THIS_ HWND
,DWORD
,LPENUMIDLIST
*) PURE
;
1127 STDMETHOD(BindToObject
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
1128 STDMETHOD(BindToStorage
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
1129 STDMETHOD(CompareIDs
)(THIS_ LPARAM
,LPCITEMIDLIST
,LPCITEMIDLIST
) PURE
;
1130 STDMETHOD(CreateViewObject
)(THIS_ HWND
,REFIID
,PVOID
*) PURE
;
1131 STDMETHOD(GetAttributesOf
)(THIS_ UINT
,LPCITEMIDLIST
*,PULONG
) PURE
;
1132 STDMETHOD(GetUIObjectOf
)(THIS_ HWND
,UINT
,LPCITEMIDLIST
*,REFIID
,PUINT
,PVOID
*) PURE
;
1133 STDMETHOD(GetDisplayNameOf
)(THIS_ LPCITEMIDLIST
,DWORD
,LPSTRRET
) PURE
;
1134 STDMETHOD(SetNameOf
)(THIS_ HWND
,LPCITEMIDLIST
,LPCOLESTR
,DWORD
,LPITEMIDLIST
*) PURE
;
1137 typedef IShellFolder
*LPSHELLFOLDER
;
1140 #define IShellFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1141 #define IShellFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
1142 #define IShellFolder_Release(T) (T)->lpVtbl->Release(T)
1143 #define IShellFolder_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
1144 #define IShellFolder_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
1145 #define IShellFolder_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
1146 #define IShellFolder_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
1147 #define IShellFolder_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
1148 #define IShellFolder_CreateViewObject(T,a,b,c) (T)->lpVtbl->CreateViewObject(T,a,b,c)
1149 #define IShellFolder_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
1150 #define IShellFolder_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
1151 #define IShellFolder_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
1152 #define IShellFolder_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
1155 #if (_WIN32_IE >= 0x0500)
1157 DECLARE_ENUMERATOR_(IEnumExtraSearch
,LPEXTRASEARCH
);
1158 typedef IEnumExtraSearch
*LPENUMEXTRASEARCH
;
1160 #define INTERFACE IShellFolder2
1161 DECLARE_INTERFACE_(IShellFolder2
, IShellFolder
)
1163 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1164 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1165 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1166 STDMETHOD(ParseDisplayName
)(THIS_ HWND
,LPBC
,LPOLESTR
,PULONG
,LPITEMIDLIST
*,PULONG
) PURE
;
1167 STDMETHOD(EnumObjects
)(THIS_ HWND
,DWORD
,LPENUMIDLIST
*) PURE
;
1168 STDMETHOD(BindToObject
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
1169 STDMETHOD(BindToStorage
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
1170 STDMETHOD(CompareIDs
)(THIS_ LPARAM
,LPCITEMIDLIST
,LPCITEMIDLIST
) PURE
;
1171 STDMETHOD(CreateViewObject
)(THIS_ HWND
,REFIID
,PVOID
*) PURE
;
1172 STDMETHOD(GetAttributesOf
)(THIS_ UINT
,LPCITEMIDLIST
*,PULONG
) PURE
;
1173 STDMETHOD(GetUIObjectOf
)(THIS_ HWND
,UINT
,LPCITEMIDLIST
*,REFIID
,PUINT
,PVOID
*) PURE
;
1174 STDMETHOD(GetDisplayNameOf
)(THIS_ LPCITEMIDLIST
,DWORD
,LPSTRRET
) PURE
;
1175 STDMETHOD(SetNameOf
)(THIS_ HWND
,LPCITEMIDLIST
,LPCOLESTR
,DWORD
,LPITEMIDLIST
*) PURE
;
1176 STDMETHOD(GetDefaultSearchGUID
)(THIS_ GUID
*) PURE
;
1177 STDMETHOD(EnumSearches
)(THIS_ IEnumExtraSearch
**) PURE
;
1178 STDMETHOD(GetDefaultColumn
)(THIS_ DWORD
,ULONG
*,ULONG
*) PURE
;
1179 STDMETHOD(GetDefaultColumnState
)(THIS_ UINT
,SHCOLSTATEF
*) PURE
;
1180 STDMETHOD(GetDetailsEx
)(THIS_ LPCITEMIDLIST
,const SHCOLUMNID
*,VARIANT
*) PURE
;
1181 STDMETHOD(GetDetailsOf
)(THIS_ LPCITEMIDLIST
,UINT
,SHELLDETAILS
*) PURE
;
1182 STDMETHOD(MapColumnToSCID
)(THIS_ UINT
,SHCOLUMNID
*) PURE
;
1185 typedef IShellFolder2
*LPSHELLFOLDER2
;
1188 #define IShellFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1189 #define IShellFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
1190 #define IShellFolder2_Release(T) (T)->lpVtbl->Release(T)
1191 #define IShellFolder2_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
1192 #define IShellFolder2_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
1193 #define IShellFolder2_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
1194 #define IShellFolder2_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
1195 #define IShellFolder2_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
1196 #define IShellFolder2_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
1197 #define IShellFolder2_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
1198 #define IShellFolder2_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
1199 #define IShellFolder2_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
1200 #define IShellFolder2_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
1201 #define IShellFolder2_GetDefaultSearchGUID(T,a) (T)->lpVtbl->GetDefaultSearchGUID(T,a)
1202 #define IShellFolder2_EnumSearches(T,a) (T)->lpVtbl->EnumSearches(T,a)
1203 #define IShellFolder2_GetDefaultColumn(T,a,b,c) (T)->lpVtbl->GetDefaultColumn(T,a,b,c)
1204 #define IShellFolder2_GetDefaultColumnState(T,a,b) (T)->lpVtbl->GetDefaultColumnState(T,a,b)
1205 #define IShellFolder2_GetDetailsEx(T,a,b,c) (T)->lpVtbl->GetDetailsEx(T,a,b,c)
1206 #define IShellFolder2_GetDetailsOf(T,a,b,c) (T)->lpVtbl->GetDetailsOf(T,a,b,c)
1207 #define IShellFolder2_MapColumnToSCID(T,a,b) (T)->lpVtbl->MapColumnToSCID(T,a,b)
1210 #endif /* _WIN32_IE >= 0x0500 */
1211 #define INTERFACE ICopyHook
1212 DECLARE_INTERFACE_(ICopyHook
, IUnknown
)
1214 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1215 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1216 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1217 STDMETHOD_(UINT
,CopyCallback
)(THIS_ HWND
,UINT
,UINT
,LPCSTR
,DWORD
,LPCSTR
,DWORD
) PURE
;
1220 typedef ICopyHook
*LPCOPYHOOK
;
1222 #define INTERFACE IFileViewerSite
1223 DECLARE_INTERFACE(IFileViewerSite
)
1225 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1226 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1227 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1228 STDMETHOD(SetPinnedWindow
)(THIS_ HWND
) PURE
;
1229 STDMETHOD(GetPinnedWindow
)(THIS_ HWND
*) PURE
;
1232 typedef IFileViewerSite
*LPFILEVIEWERSITE
;
1234 #define INTERFACE IFileViewer
1235 DECLARE_INTERFACE(IFileViewer
)
1237 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1238 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1239 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1240 STDMETHOD(ShowInitialize
)(THIS_ LPFILEVIEWERSITE
) PURE
;
1241 STDMETHOD(Show
)(THIS_ LPFVSHOWINFO
) PURE
;
1242 STDMETHOD(PrintTo
)(THIS_ LPSTR
,BOOL
) PURE
;
1245 typedef IFileViewer
*LPFILEVIEWER
;
1247 #define INTERFACE IFileSystemBindData
1248 DECLARE_INTERFACE_(IFileSystemBindData
, IUnknown
)
1250 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1251 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1252 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1253 STDMETHOD(SetFindData
)(THIS_
const WIN32_FIND_DATAW
*) PURE
;
1254 STDMETHOD(GetFindData
)(THIS_ WIN32_FIND_DATAW
*) PURE
;
1258 #define INTERFACE IPersistFolder
1259 DECLARE_INTERFACE_(IPersistFolder
,IPersist
)
1261 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1262 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1263 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1264 STDMETHOD(GetClassID
)(THIS_ CLSID
*) PURE
;
1265 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
1268 typedef IPersistFolder
*LPPERSISTFOLDER
;
1271 #define IPersistFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1272 #define IPersistFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
1273 #define IPersistFolder_Release(T) (T)->lpVtbl->Release(T)
1274 #define IPersistFolder_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
1275 #define IPersistFolder_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
1278 #if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500)
1280 #define INTERFACE IPersistFolder2
1281 DECLARE_INTERFACE_(IPersistFolder2
,IPersistFolder
)
1283 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1284 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1285 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1286 STDMETHOD(GetClassID
)(THIS_ CLSID
*) PURE
;
1287 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
1288 STDMETHOD(GetCurFolder
)(THIS_ LPITEMIDLIST
*) PURE
;
1291 typedef IPersistFolder2
*LPPERSISTFOLDER2
;
1294 #define IPersistFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1295 #define IPersistFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
1296 #define IPersistFolder2_Release(T) (T)->lpVtbl->Release(T)
1297 #define IPersistFolder2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
1298 #define IPersistFolder2_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
1299 #define IPersistFolder2_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
1302 #endif /* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */
1304 #if (_WIN32_IE >= 0x0500)
1306 #define INTERFACE IPersistFolder3
1307 DECLARE_INTERFACE_(IPersistFolder3
,IPersistFolder2
)
1309 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1310 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1311 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1312 STDMETHOD(GetClassID
)(THIS_ CLSID
*) PURE
;
1313 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
1314 STDMETHOD(GetCurFolder
)(THIS_ LPITEMIDLIST
*) PURE
;
1315 STDMETHOD(InitializeEx
)(THIS_ IBindCtx
*,LPCITEMIDLIST
,const PERSIST_FOLDER_TARGET_INFO
*) PURE
;
1316 STDMETHOD(GetFolderTargetInfo
)(THIS_ PERSIST_FOLDER_TARGET_INFO
*) PURE
;
1319 typedef IPersistFolder3
*LPPERSISTFOLDER3
;
1322 #define IPersistFolder3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1323 #define IPersistFolder3_AddRef(T) (T)->lpVtbl->AddRef(T)
1324 #define IPersistFolder3_Release(T) (T)->lpVtbl->Release(T)
1325 #define IPersistFolder3_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
1326 #define IPersistFolder3_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
1327 #define IPersistFolder3_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
1328 #define IPersistFolder3_InitializeEx(T,a,b,c) (T)->lpVtbl->InitializeEx(T,a,b,c)
1329 #define IPersistFolder3_GetFolderTargetInfo(T,a) (T)->lpVtbl->GetFolderTargetInfo(T,a)
1332 #endif /* _WIN32_IE >= 0x0500 */
1334 typedef interface IShellBrowser
*LPSHELLBROWSER
;
1335 typedef interface IShellView
*LPSHELLVIEW
;
1337 #define INTERFACE IShellBrowser
1338 DECLARE_INTERFACE_(IShellBrowser
,IOleWindow
)
1340 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1341 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1342 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1343 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
1344 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
1345 STDMETHOD(InsertMenusSB
)(THIS_ HMENU
,LPOLEMENUGROUPWIDTHS
) PURE
;
1346 STDMETHOD(SetMenuSB
)(THIS_ HMENU
,HOLEMENU
,HWND
) PURE
;
1347 STDMETHOD(RemoveMenusSB
)(THIS_ HMENU
) PURE
;
1348 STDMETHOD(SetStatusTextSB
)(THIS_ LPCOLESTR
) PURE
;
1349 STDMETHOD(EnableModelessSB
)(THIS_ BOOL
) PURE
;
1350 STDMETHOD(TranslateAcceleratorSB
) (THIS_ LPMSG
,WORD
) PURE
;
1351 STDMETHOD(BrowseObject
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
1352 STDMETHOD(GetViewStateStream
)(THIS_ DWORD
,LPSTREAM
*) PURE
;
1353 STDMETHOD(GetControlWindow
)(THIS_ UINT
,HWND
*) PURE
;
1354 STDMETHOD(SendControlMsg
)(THIS_ UINT
,UINT
,WPARAM
,LPARAM
,LRESULT
*) PURE
;
1355 STDMETHOD(QueryActiveShellView
)(THIS_ LPSHELLVIEW
*) PURE
;
1356 STDMETHOD(OnViewWindowActive
)(THIS_ LPSHELLVIEW
) PURE
;
1357 STDMETHOD(SetToolbarItems
)(THIS_ LPTBBUTTON
,UINT
,UINT
) PURE
;
1362 #define IShellBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1363 #define IShellBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
1364 #define IShellBrowser_Release(T) (T)->lpVtbl->Release(T)
1365 #define IShellBrowser_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
1366 #define IShellBrowser_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
1367 #define IShellBrowser_InsertMenusSB(T,a,b) (T)->lpVtbl->InsertMenusSB(T,a,b)
1368 #define IShellBrowser_SetMenuSB(T,a,b,c) (T)->lpVtbl->SetMenuSB(T,a,b,c)
1369 #define IShellBrowser_RemoveMenusSB(T,a) (T)->lpVtbl->RemoveMenusSB(T,a)
1370 #define IShellBrowser_SetStatusTextSB(T,a) (T)->lpVtbl->SetStatusTextSB(T,a)
1371 #define IShellBrowser_EnableModelessSB(T,a) (T)->lpVtbl->EnableModelessSB(T,a)
1372 #define IShellBrowser_TranslateAcceleratorSB(T,a,b) (T)->lpVtbl->TranslateAcceleratorSB(T,a,b)
1373 #define IShellBrowser_BrowseObject(T,a,b) (T)->lpVtbl->BrowseObject(T,a,b)
1374 #define IShellBrowser_GetViewStateStream(T,a,b) (T)->lpVtbl->GetViewStateStream(T,a,b)
1375 #define IShellBrowser_GetControlWindow(T,a,b) (T)->lpVtbl->GetControlWindow(T,a,b)
1376 #define IShellBrowser_SendControlMsg(T,a,b,c,d,e) (T)->lpVtbl->SendControlMsg(T,a,b,c,d,e)
1377 #define IShellBrowser_QueryActiveShellView(T,a) (T)->lpVtbl->QueryActiveShellView(T,a)
1378 #define IShellBrowser_OnViewWindowActive(T,a) (T)->lpVtbl->OnViewWindowActive(T,a)
1379 #define IShellBrowser_SetToolbarItems(T,a,b,c) (T)->lpVtbl->SetToolbarItems(T,a,b,c)
1382 #define INTERFACE IShellView
1383 DECLARE_INTERFACE_(IShellView
,IOleWindow
)
1385 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1386 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1387 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1388 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
1389 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
1390 STDMETHOD(TranslateAccelerator
) (THIS_ LPMSG
) PURE
;
1391 #ifdef _FIX_ENABLEMODELESS_CONFLICT
1392 STDMETHOD(EnableModelessSV
)(THIS_ BOOL
) PURE
;
1394 STDMETHOD(EnableModeless
)(THIS_ BOOL
) PURE
;
1396 STDMETHOD(UIActivate
)(THIS_ UINT
) PURE
;
1397 STDMETHOD(Refresh
) (THIS
) PURE
;
1398 STDMETHOD(CreateViewWindow
)(THIS_ IShellView
*,LPCFOLDERSETTINGS
,LPSHELLBROWSER
,RECT
*,HWND
*) PURE
;
1399 STDMETHOD(DestroyViewWindow
)(THIS
) PURE
;
1400 STDMETHOD(GetCurrentInfo
)(THIS_ LPFOLDERSETTINGS
) PURE
;
1401 STDMETHOD(AddPropertySheetPages
)(THIS_ DWORD
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
1402 STDMETHOD(SaveViewState
)(THIS
) PURE
;
1403 STDMETHOD(SelectItem
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
1404 STDMETHOD(GetItemObject
)(THIS_ UINT
,REFIID
,PVOID
*) PURE
;
1409 #define IShellView_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1410 #define IShellView_AddRef(T) (T)->lpVtbl->AddRef(T)
1411 #define IShellView_Release(T) (T)->lpVtbl->Release(T)
1412 #define IShellView_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
1413 #define IShellView_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
1414 #define IShellView_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a)
1415 #ifdef _FIX_ENABLEMODELESS_CONFLICT
1416 #define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a)
1418 #define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
1420 #define IShellView_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a)
1421 #define IShellView_Refresh(T) (T)->lpVtbl->Refresh(T)
1422 #define IShellView_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e)
1423 #define IShellView_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T)
1424 #define IShellView_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a)
1425 #define IShellView_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c)
1426 #define IShellView_SaveViewState(T) (T)->lpVtbl->SaveViewState(T)
1427 #define IShellView_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b)
1428 #define IShellView_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c)
1431 #define INTERFACE ICommDlgBrowser
1432 DECLARE_INTERFACE_(ICommDlgBrowser
,IUnknown
)
1434 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1435 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1436 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1437 STDMETHOD(OnDefaultCommand
)(THIS_ IShellView
*) PURE
;
1438 STDMETHOD(OnStateChange
)(THIS_ IShellView
*,ULONG
) PURE
;
1439 STDMETHOD(IncludeObject
)(THIS_ IShellView
*,LPCITEMIDLIST
) PURE
;
1442 typedef ICommDlgBrowser
*LPCOMMDLGBROWSER
;
1445 #define ICommDlgBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1446 #define ICommDlgBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
1447 #define ICommDlgBrowser_Release(T) (T)->lpVtbl->Release(T)
1448 #define ICommDlgBrowser_OnDefaultCommand(T,a) (T)->lpVtbl->OnDefaultCommand(T,a)
1449 #define ICommDlgBrowser_OnStateChange(T,a,b) (T)->lpVtbl->OnStateChange(T,a,b)
1450 #define ICommDlgBrowser_IncludeObject(T,a,b) (T)->lpVtbl->IncludeObject(T,a,b)
1453 typedef GUID SHELLVIEWID
;
1454 typedef struct _SV2CVW2_PARAMS
{
1456 IShellView
*psvPrev
;
1457 FOLDERSETTINGS
const *pfs
;
1458 IShellBrowser
*psbOwner
;
1460 SHELLVIEWID
const *pvid
;
1462 } SV2CVW2_PARAMS
,*LPSV2CVW2_PARAMS
;
1463 #define INTERFACE IShellView2
1464 DECLARE_INTERFACE_(IShellView2
,IShellView
)
1467 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1468 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1469 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1470 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
1471 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
1472 STDMETHOD(TranslateAccelerator
) (THIS_ LPMSG
) PURE
;
1473 #ifdef _FIX_ENABLEMODELESS_CONFLICT
1474 STDMETHOD(EnableModelessSV
)(THIS_ BOOL
) PURE
;
1476 STDMETHOD(EnableModeless
)(THIS_ BOOL
) PURE
;
1478 STDMETHOD(UIActivate
)(THIS_ UINT
) PURE
;
1479 STDMETHOD(Refresh
) (THIS
) PURE
;
1480 STDMETHOD(CreateViewWindow
)(THIS_ IShellView
*,LPCFOLDERSETTINGS
,LPSHELLBROWSER
,RECT
*,HWND
*) PURE
;
1481 STDMETHOD(DestroyViewWindow
)(THIS
) PURE
;
1482 STDMETHOD(GetCurrentInfo
)(THIS_ LPFOLDERSETTINGS
) PURE
;
1483 STDMETHOD(AddPropertySheetPages
)(THIS_ DWORD
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
1484 STDMETHOD(SaveViewState
)(THIS
) PURE
;
1485 STDMETHOD(SelectItem
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
1486 STDMETHOD(GetItemObject
)(THIS_ UINT
,REFIID
,PVOID
*) PURE
;
1487 STDMETHOD(GetView
)(THIS_ SHELLVIEWID
*,ULONG
) PURE
;
1488 STDMETHOD(CreateViewWindow2
)(THIS_ LPSV2CVW2_PARAMS
) PURE
;
1492 #define INTERFACE IShellExecuteHookA
1493 DECLARE_INTERFACE_(IShellExecuteHookA
,IUnknown
)
1495 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1496 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1497 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1498 STDMETHOD(Execute
)(THIS_ LPSHELLEXECUTEINFOA
) PURE
;
1502 #define INTERFACE IShellExecuteHookW
1503 DECLARE_INTERFACE_(IShellExecuteHookW
,IUnknown
)
1505 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1506 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1507 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1508 STDMETHOD(Execute
)(THIS_ LPSHELLEXECUTEINFOW
) PURE
;
1512 #define INTERFACE IShellIcon
1513 DECLARE_INTERFACE_(IShellIcon
,IUnknown
)
1515 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1516 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1517 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1518 STDMETHOD(GetIconOf
)(THIS_ LPCITEMIDLIST
,UINT
,PINT
) PURE
;
1521 typedef IShellIcon
*LPSHELLICON
;
1524 BOOL fShowAllObjects
: 1;
1525 BOOL fShowExtensions
: 1;
1526 BOOL fNoConfirmRecycle
: 1;
1527 BOOL fShowSysFiles
: 1;
1528 BOOL fShowCompColor
: 1;
1529 BOOL fDoubleClickInWebView
: 1;
1530 BOOL fDesktopHTML
: 1;
1531 BOOL fWin95Classic
: 1;
1532 BOOL fDontPrettyPath
: 1;
1533 BOOL fShowAttribCol
: 1;
1534 BOOL fMapNetDrvBtn
: 1;
1535 BOOL fShowInfoTip
: 1;
1536 BOOL fHideIcons
: 1;
1537 UINT fRestFlags
: 3;
1538 } SHELLFLAGSTATE
, * LPSHELLFLAGSTATE
;
1540 #define SSF_SHOWALLOBJECTS 0x1
1541 #define SSF_SHOWEXTENSIONS 0x2
1542 #define SSF_SHOWCOMPCOLOR 0x8
1543 #define SSF_SHOWSYSFILES 0x20
1544 #define SSF_DOUBLECLICKINWEBVIEW 0x80
1545 #define SSF_SHOWATTRIBCOL 0x100
1546 #define SSF_DESKTOPHTML 0x200
1547 #define SSF_WIN95CLASSIC 0x400
1548 #define SSF_DONTPRETTYPATH 0x800
1549 #define SSF_MAPNETDRVBUTTON 0x1000
1550 #define SSF_SHOWINFOTIP 0x2000
1551 #define SSF_HIDEICONS 0x4000
1552 #define SSF_NOCONFIRMRECYCLE 0x8000
1555 #define INTERFACE IShellIconOverlayIdentifier
1556 DECLARE_INTERFACE_(IShellIconOverlayIdentifier
,IUnknown
)
1558 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1559 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1560 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1561 STDMETHOD(IsMemberOf
)(THIS_ LPCWSTR
,DWORD
) PURE
;
1562 STDMETHOD(GetOverlayInfo
)(THIS_ LPWSTR
,int,int*,DWORD
*) PURE
;
1563 STDMETHOD(GetPriority
)(THIS_
int*) PURE
;
1566 #define ISIOI_ICONFILE 0x00000001
1567 #define ISIOI_ICONINDEX 0x00000002
1569 #if (_WIN32_WINNT >= 0x0500) /* W2K */
1571 BOOL fShowAllObjects
: 1;
1572 BOOL fShowExtensions
: 1;
1573 BOOL fNoConfirmRecycle
: 1;
1574 BOOL fShowSysFiles
: 1;
1575 BOOL fShowCompColor
: 1;
1576 BOOL fDoubleClickInWebView
: 1;
1577 BOOL fDesktopHTML
: 1;
1578 BOOL fWin95Classic
: 1;
1579 BOOL fDontPrettyPath
: 1;
1580 BOOL fShowAttribCol
: 1;
1581 BOOL fMapNetDrvBtn
: 1;
1582 BOOL fShowInfoTip
: 1;
1583 BOOL fHideIcons
: 1;
1586 BOOL fShowSuperHidden
: 1;
1587 BOOL fNoNetCrawling
: 1;
1588 DWORD dwWin95Unused
;
1594 BOOL fSepProcess
: 1;
1595 BOOL fStartPanelOn
: 1;
1596 BOOL fShowStartPage
: 1;
1597 UINT fSpareFlags
: 13;
1598 } SHELLSTATE
, *LPSHELLSTATE
;
1599 #endif /* _WIN32_WINNT >= 0x0500 */
1601 #if (_WIN32_IE >= 0x0500)
1602 #pragma pack(push,8)
1607 HBITMAP hbmpDragImage
;
1608 COLORREF crColorKey
;
1609 } SHDRAGIMAGE
, *LPSHDRAGIMAGE
;
1612 #define INTERFACE IDragSourceHelper
1613 DECLARE_INTERFACE_(IDragSourceHelper
, IUnknown
)
1615 STDMETHOD (QueryInterface
)(THIS_ REFIID riid
, void **ppv
) PURE
;
1616 STDMETHOD_(ULONG
, AddRef
) (THIS
) PURE
;
1617 STDMETHOD_(ULONG
, Release
) (THIS
) PURE
;
1618 STDMETHOD (InitializeFromBitmap
)(THIS_ LPSHDRAGIMAGE pshdi
, IDataObject
* pDataObject
) PURE
;
1619 STDMETHOD (InitializeFromWindow
)(THIS_ HWND hwnd
, POINT
* ppt
, IDataObject
* pDataObject
) PURE
;
1623 #define INTERFACE IDropTargetHelper
1624 DECLARE_INTERFACE_(IDropTargetHelper
, IUnknown
)
1626 STDMETHOD (QueryInterface
)(THIS_ REFIID riid
, void** ppv
) PURE
;
1627 STDMETHOD_(ULONG
, AddRef
) (THIS
) PURE
;
1628 STDMETHOD_(ULONG
, Release
) (THIS
) PURE
;
1629 STDMETHOD (DragEnter
)(THIS_ HWND hwndTarget
, IDataObject
* pDataObject
, POINT
* ppt
, DWORD dwEffect
) PURE
;
1630 STDMETHOD (DragLeave
)(THIS
) PURE
;
1631 STDMETHOD (DragOver
)(THIS_ POINT
* ppt
, DWORD dwEffect
) PURE
;
1632 STDMETHOD (Drop
)(THIS_ IDataObject
* pDataObject
, POINT
* ppt
, DWORD dwEffect
) PURE
;
1633 STDMETHOD (Show
)(THIS_ BOOL fShow
) PURE
;
1636 #endif /* _WIN32_IE >= 0x0500 */
1638 #define INTERFACE IInputObject
1639 DECLARE_INTERFACE_(IInputObject
,IUnknown
)
1641 /*** IUnknown methods ***/
1642 STDMETHOD(QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
1643 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1644 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1645 /*** IInputObject methods ***/
1646 STDMETHOD(UIActivateIO
)(THIS_ BOOL bActivating
, LPMSG lpMsg
) PURE
;
1647 STDMETHOD(HasFocusIO
)(THIS
) PURE
;
1648 STDMETHOD(TranslateAcceleratorIO
)(THIS_ LPMSG lpMsg
) PURE
;
1652 #if defined(COBJMACROS)
1653 /*** IUnknown methods ***/
1654 #define IInputObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1655 #define IInputObject_AddRef(p) (p)->lpVtbl->AddRef(p)
1656 #define IInputObject_Release(p) (p)->lpVtbl->Release(p)
1657 /*** IInputObject methods ***/
1658 #define IInputObject_UIActivateIO(p,a,b) (p)->lpVtbl->UIActivateIO(p,a,b)
1659 #define IInputObject_HasFocusIO(p) (p)->lpVtbl->HasFocusIO(p)
1660 #define IInputObject_TranslateAcceleratorIO(p,a) (p)->lpVtbl->TranslateAcceleratorIO(p,a)
1663 #define INTERFACE IInputObjectSite
1664 DECLARE_INTERFACE_(IInputObjectSite
,IUnknown
)
1666 /*** IUnknown methods ***/
1667 STDMETHOD_(HRESULT
,QueryInterface
) (THIS_ REFIID riid
, void** ppvObject
) PURE
;
1668 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
1669 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
1670 /*** IInputObjectSite methods ***/
1671 STDMETHOD(OnFocusChangeIS
)(THIS_ LPUNKNOWN lpUnknown
, BOOL bFocus
) PURE
;
1675 #if defined(COBJMACROS)
1676 /*** IUnknown methods ***/
1677 #define IInputObjectSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1678 #define IInputObjectSite_AddRef(p) (p)->lpVtbl->AddRef(p)
1679 #define IInputObjectSite_Release(p) (p)->lpVtbl->Release(p)
1680 /*** IInputObject methods ***/
1681 #define IInputObjectSite_OnFocusChangeIS(p,a,b) (p)->lpVtbl->OnFocusChangeIS(p,a,b)
1684 typedef HRESULT (CALLBACK
*LPFNVIEWCALLBACK
)(
1691 typedef struct _CSFV
1695 IShellView
* psvOuter
;
1696 LPCITEMIDLIST pidlFolder
;
1698 LPFNVIEWCALLBACK pfnCallback
;
1702 void WINAPI
SHAddToRecentDocs(UINT
,PCVOID
);
1703 LPITEMIDLIST WINAPI
SHBrowseForFolderA(PBROWSEINFOA
);
1704 LPITEMIDLIST WINAPI
SHBrowseForFolderW(PBROWSEINFOW
);
1705 DWORD WINAPI
SHCLSIDFromStringA(LPCSTR
,CLSID
*);
1706 DWORD WINAPI
SHCLSIDFromStringW(LPCWSTR
,CLSID
*);
1707 HRESULT WINAPI
SHCreateShellFolderViewEx(LPCSFV pshfvi
, IShellView
**ppshv
);
1708 void WINAPI
SHChangeNotify(LONG
,UINT
,PCVOID
,PCVOID
);
1709 HRESULT WINAPI
SHGetDataFromIDListA(LPSHELLFOLDER
,LPCITEMIDLIST
,int,PVOID
,int);
1710 HRESULT WINAPI
SHGetDataFromIDListW(LPSHELLFOLDER
,LPCITEMIDLIST
,int,PVOID
,int);
1711 HRESULT WINAPI
SHGetDesktopFolder(LPSHELLFOLDER
*);
1712 HRESULT WINAPI
SHGetInstanceExplorer(IUnknown
**);
1713 HRESULT WINAPI
SHGetMalloc(LPMALLOC
*);
1714 BOOL WINAPI
SHGetPathFromIDListA(LPCITEMIDLIST
,LPSTR
);
1715 BOOL WINAPI
SHGetPathFromIDListW(LPCITEMIDLIST
,LPWSTR
);
1716 HRESULT WINAPI
SHGetSpecialFolderLocation(HWND
,int,LPITEMIDLIST
*);
1717 HRESULT WINAPI
SHLoadInProc(REFCLSID
);
1718 #if (_WIN32_IE >= 0x0400)
1719 BOOL WINAPI
SHGetSpecialFolderPathA(HWND
,LPSTR
,int,BOOL
);
1720 BOOL WINAPI
SHGetSpecialFolderPathW(HWND
,LPWSTR
,int,BOOL
);
1722 /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */
1723 HRESULT WINAPI
SHGetFolderPathA(HWND
,int,HANDLE
,DWORD
,LPSTR
);
1724 HRESULT WINAPI
SHGetFolderPathW(HWND
,int,HANDLE
,DWORD
,LPWSTR
);
1725 #if (_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500) /* ME or W2K */
1726 HRESULT WINAPI
SHGetFolderLocation(HWND
,int,HANDLE
,DWORD
,LPITEMIDLIST
*);
1728 #if (_WIN32_WINNT >= 0x0500)
1729 INT WINAPI
SHCreateDirectoryExA(HWND
,LPCSTR
,LPSECURITY_ATTRIBUTES
);
1730 INT WINAPI
SHCreateDirectoryExW(HWND
,LPCWSTR
,LPSECURITY_ATTRIBUTES
);
1731 HRESULT WINAPI
SHBindToParent(LPCITEMIDLIST
,REFIID
,VOID
**,LPCITEMIDLIST
*);
1733 #if (_WIN32_WINNT >= 0x0501) /* XP */
1734 HRESULT WINAPI
SHGetFolderPathAndSubDirA(HWND
,int,HANDLE
,DWORD
,LPCSTR
,LPSTR
);
1735 HRESULT WINAPI
SHGetFolderPathAndSubDirW(HWND
,int,HANDLE
,DWORD
,LPCWSTR
,LPWSTR
);
1737 void WINAPI
SHGetSettings(LPSHELLFLAGSTATE
,DWORD
);
1738 #if (_WIN32_WINNT >= 0x0500) /* W2K */
1739 void WINAPI
SHGetSetSettings(LPSHELLSTATE
,DWORD
,BOOL
);
1742 #if (_WIN32_WINNT >= 0x0500) /* W2K */
1743 BOOL WINAPI
ILIsEqual(LPCITEMIDLIST
, LPCITEMIDLIST
);
1744 BOOL WINAPI
ILIsParent(LPCITEMIDLIST
, LPCITEMIDLIST
, BOOL
);
1745 BOOL WINAPI
ILRemoveLastID(LPITEMIDLIST
);
1746 HRESULT WINAPI
ILLoadFromStream(IStream
*, LPITEMIDLIST
*);
1747 HRESULT WINAPI
ILSaveToStream(IStream
*, LPCITEMIDLIST
);
1748 LPITEMIDLIST WINAPI
ILAppendID(LPITEMIDLIST
, LPCSHITEMID
, BOOL
);
1749 LPITEMIDLIST WINAPI
ILClone(LPCITEMIDLIST
);
1750 LPITEMIDLIST WINAPI
ILCloneFirst(LPCITEMIDLIST
);
1751 LPITEMIDLIST WINAPI
ILCombine(LPCITEMIDLIST
, LPCITEMIDLIST
);
1752 LPITEMIDLIST WINAPI
ILFindChild(LPCITEMIDLIST
, LPCITEMIDLIST
);
1753 LPITEMIDLIST WINAPI
ILFindLastID(LPCITEMIDLIST
);
1754 LPITEMIDLIST WINAPI
ILGetNext(LPCITEMIDLIST
);
1755 UINT WINAPI
ILGetSize(LPCITEMIDLIST
);
1756 void WINAPI
ILFree(LPITEMIDLIST
);
1758 HRESULT WINAPI
SHCoCreateInstance(LPCWSTR
,REFCLSID
,IUnknown
*,REFIID
,void**);
1759 BOOL WINAPI
SHObjectProperties(HWND
,DWORD
,LPCWSTR
,LPCWSTR
);
1762 int WINAPI
RestartDialog(HWND
,LPCWSTR
,DWORD
);
1763 int WINAPI
RestartDialogEx(HWND
,LPCWSTR
,DWORD
,DWORD
);
1765 ULONG WINAPI
SHChangeNotifyRegister(HWND
,int,LONG
,UINT
,int,SHChangeNotifyEntry
*);
1766 BOOL WINAPI
SHChangeNotifyDeregister(ULONG
);
1769 typedef IShellExecuteHookW IShellExecuteHook
;
1770 typedef IShellLinkW IShellLink
;
1771 typedef BROWSEINFOW BROWSEINFO
,*PBROWSEINFO
,*LPBROWSEINFO
;
1772 #define SHBrowseForFolder SHBrowseForFolderW
1773 #define SHCLSIDFromString SHCLSIDFromStringW
1774 #define SHGetDataFromIDList SHGetDataFromIDListW
1775 #define SHGetPathFromIDList SHGetPathFromIDListW
1776 #if (_WIN32_IE >= 0x0400)
1777 #define SHGetSpecialFolderPath SHGetSpecialFolderPathW
1779 #define SHGetFolderPath SHGetFolderPathW
1780 #if (_WIN32_WINNT >= 0x0500)
1781 #define SHCreateDirectoryEx SHCreateDirectoryExW
1783 #if (_WIN32_WINNT >= 0x0501)
1784 #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW
1788 typedef IShellExecuteHookA IShellExecuteHook
;
1789 typedef IShellLinkA IShellLink
;
1790 typedef BROWSEINFOA BROWSEINFO
,*PBROWSEINFO
,*LPBROWSEINFO
;
1791 #define SHBrowseForFolder SHBrowseForFolderA
1792 #define SHCLSIDFromString SHCLSIDFromStringA
1793 #define SHGetDataFromIDList SHGetDataFromIDListA
1794 #define SHGetPathFromIDList SHGetPathFromIDListA
1795 #if (_WIN32_IE >= 0x0400)
1796 #define SHGetSpecialFolderPath SHGetSpecialFolderPathA
1798 #define SHGetFolderPath SHGetFolderPathA
1799 #if (_WIN32_WINNT >= 0x0500)
1800 #define SHCreateDirectoryEx SHCreateDirectoryExA
1802 #if (_WIN32_WINNT >= 0x0501)
1803 #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA
1805 #endif /* UNICODE */
1813 #endif /* _SHLOBJ_H */