4 #pragma GCC system_header
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)
42 #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTW
43 #define BFFM_SETSELECTION BFFM_SETSELECTIONW
44 #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW
46 #define BFFM_SETSTATUSTEXT BFFM_SETSTATUSTEXTA
47 #define BFFM_SETSELECTION BFFM_SETSELECTIONA
48 #define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA
50 #define DVASPECT_SHORTNAME 2
53 #define SHCNE_RENAMEITEM 1
54 #define SHCNE_CREATE 2
55 #define SHCNE_DELETE 4
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
79 #define SHCNF_PRINTERA 2
82 #define SHCNF_PRINTERW 6
83 #define SHCNF_TYPE 0xFF
84 #define SHCNF_FLUSH 0x1000
85 #define SHCNF_FLUSHNOWAIT 0x2000
87 #define SHCNF_PATH SHCNF_PATHW
88 #define SHCNF_PRINTER SHCNF_PRINTERW
90 #define SHCNF_PATH SHCNF_PATHA
91 #define SHCNF_PRINTER SHCNF_PRINTERA
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_ISSLOW 0x00004000L
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 (SFGAO_ISSLOW \
113 #define SFGAO_FILESYSANCESTOR 0x10000000L
114 #define SFGAO_FOLDER 0x20000000L
115 #define SFGAO_FILESYSTEM 0x40000000L
116 #define SFGAO_HASSUBFOLDER 0x80000000L
117 #define SFGAO_CONTENTSMASK 0x80000000L
118 #define SFGAO_VALIDATE 0x01000000L
119 #define SFGAO_REMOVABLE 0x02000000L
120 #define SFGAO_COMPRESSED 0x04000000L
121 #define STRRET_WSTR 0
122 #define STRRET_OFFSET 1
123 #define STRRET_CSTR 2
124 #define SHGDFIL_FINDDATA 1
125 #define SHGDFIL_NETRESOURCE 2
126 #define SHGDFIL_DESCRIPTIONID 3
127 #define SHDID_ROOT_REGITEM 1
128 #define SHDID_FS_FILE 2
129 #define SHDID_FS_DIRECTORY 3
130 #define SHDID_FS_OTHER 4
131 #define SHDID_COMPUTER_DRIVE35 5
132 #define SHDID_COMPUTER_DRIVE525 6
133 #define SHDID_COMPUTER_REMOVABLE 7
134 #define SHDID_COMPUTER_FIXED 8
135 #define SHDID_COMPUTER_NETDRIVE 9
136 #define SHDID_COMPUTER_CDROM 10
137 #define SHDID_COMPUTER_RAMDISK 11
138 #define SHDID_COMPUTER_OTHER 12
139 #define SHDID_NET_DOMAIN 13
140 #define SHDID_NET_SERVER 14
141 #define SHDID_NET_SHARE 15
142 #define SHDID_NET_RESTOFNET 16
143 #define SHDID_NET_OTHER 17
144 #ifndef REGSTR_PATH_EXPLORER
145 #define REGSTR_PATH_EXPLORER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer")
147 #define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")
148 #define CSIDL_DESKTOP 0
149 #define CSIDL_INTERNET 1
150 #define CSIDL_PROGRAMS 2
151 #define CSIDL_CONTROLS 3
152 #define CSIDL_PRINTERS 4
153 #define CSIDL_PERSONAL 5
154 #define CSIDL_FAVORITES 6
155 #define CSIDL_STARTUP 7
156 #define CSIDL_RECENT 8
157 #define CSIDL_SENDTO 9
158 #define CSIDL_BITBUCKET 10
159 #define CSIDL_STARTMENU 11
160 #define CSIDL_DESKTOPDIRECTORY 16
161 #define CSIDL_DRIVES 17
162 #define CSIDL_NETWORK 18
163 #define CSIDL_NETHOOD 19
164 #define CSIDL_FONTS 20
165 #define CSIDL_TEMPLATES 21
166 #define CSIDL_COMMON_STARTMENU 22
167 #define CSIDL_COMMON_PROGRAMS 23
168 #define CSIDL_COMMON_STARTUP 24
169 #define CSIDL_COMMON_DESKTOPDIRECTORY 25
170 #define CSIDL_APPDATA 26
171 #define CSIDL_PRINTHOOD 27
172 #define CSIDL_LOCAL_APPDATA 28
173 #define CSIDL_ALTSTARTUP 29
174 #define CSIDL_COMMON_ALTSTARTUP 30
175 #define CSIDL_COMMON_FAVORITES 31
176 #define CSIDL_INTERNET_CACHE 32
177 #define CSIDL_COOKIES 33
178 #define CSIDL_HISTORY 34
179 #define CSIDL_COMMON_APPDATA 35
180 #define CSIDL_WINDOWS 36
181 #define CSIDL_SYSTEM 37
182 #define CSIDL_PROGRAM_FILES 38
183 #define CSIDL_MYPICTURES 39
184 #define CSIDL_PROFILE 40
185 #define CSIDL_SYSTEMX86 41
186 #define CSIDL_PROGRAM_FILESX86 42
187 #define CSIDL_PROGRAM_FILES_COMMON 43
188 #define CSIDL_PROGRAM_FILES_COMMONX86 44
189 #define CSIDL_COMMON_TEMPLATES 45
190 #define CSIDL_COMMON_DOCUMENTS 46
191 #define CSIDL_COMMON_ADMINTOOLS 47
192 #define CSIDL_ADMINTOOLS 48
193 #define CSIDL_CONNECTIONS 49
194 #define CSIDL_COMMON_MUSIC 53
195 #define CSIDL_COMMON_PICTURES 54
196 #define CSIDL_COMMON_VIDEO 55
197 #define CSIDL_RESOURCES 56
198 #define CSIDL_RESOURCES_LOCALIZED 57
199 #define CSIDL_COMMON_OEM_LINKS 58
200 #define CSIDL_CDBURN_AREA 59
201 #define CSIDL_COMPUTERSNEARME 61
202 #define CSIDL_FLAG_DONT_VERIFY 0x4000
203 #define CSIDL_FLAG_CREATE 0x8000
204 #define CSIDL_FLAG_MASK 0xFF00
205 #define CFSTR_SHELLIDLIST TEXT("Shell IDList Array")
206 #define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets")
207 #define CFSTR_NETRESOURCES TEXT("Net Resource")
208 #define CFSTR_FILECONTENTS TEXT("FileContents")
209 #define CFSTR_FILENAMEA TEXT("FileName")
210 #define CFSTR_FILENAMEMAPA TEXT("FileNameMap")
211 #define CFSTR_FILEDESCRIPTORA TEXT("FileGroupDescriptor")
212 #define CFSTR_INETURLA TEXT("UniformResourceLocator")
213 #define CFSTR_SHELLURL CFSTR_INETURLA
214 #define CFSTR_FILENAMEW TEXT("FileNameW")
215 #define CFSTR_FILENAMEMAPW TEXT("FileNameMapW")
216 #define CFSTR_FILEDESCRIPTORW TEXT("FileGroupDescriptorW")
217 #define CFSTR_INETURLW TEXT("UniformResourceLocatorW")
219 #define CFSTR_FILENAME CFSTR_FILENAMEW
220 #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPW
221 #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORW
222 #define CFSTR_INETURL CFSTR_INETURLW
224 #define CFSTR_FILENAME CFSTR_FILENAMEA
225 #define CFSTR_FILENAMEMAP CFSTR_FILENAMEMAPA
226 #define CFSTR_FILEDESCRIPTOR CFSTR_FILEDESCRIPTORA
227 #define CFSTR_INETURL CFSTR_INETURLA
229 #define CFSTR_PRINTERGROUP TEXT("PrinterFriendlyName")
230 #define CFSTR_INDRAGLOOP TEXT("InShellDragLoop")
231 #define CFSTR_PASTESUCCEEDED TEXT("Paste Succeeded")
232 #define CFSTR_PERFORMEDDROPEFFECT TEXT("Performed DropEffect")
233 #define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect")
235 #define CMF_DEFAULTONLY 1
236 #define CMF_VERBSONLY 2
237 #define CMF_EXPLORE 4
238 #define CMF_NOVERBS 8
239 #define CMF_CANRENAME 16
240 #define CMF_NODEFAULT 32
241 #define CMF_INCLUDESTATIC 64
242 #define CMF_RESERVED 0xffff0000
244 #define GCS_HELPTEXTA 1
245 #define GCS_VALIDATEA 2
247 #define GCS_HELPTEXTW 5
248 #define GCS_VALIDATEW 6
249 #define GCS_UNICODE 4
251 #define GCS_VERB GCS_VERBW
252 #define GCS_HELPTEXT GCS_HELPTEXTW
253 #define GCS_VALIDATE GCS_VALIDATEW
255 #define GCS_VERB GCS_VERBA
256 #define GCS_HELPTEXT GCS_HELPTEXTA
257 #define GCS_VALIDATE GCS_VALIDATEA
259 #define CMDSTR_NEWFOLDERA "NewFolder"
260 #define CMDSTR_VIEWLISTA "ViewList"
261 #define CMDSTR_VIEWDETAILSA "ViewDetails"
262 #define CMDSTR_NEWFOLDERW L"NewFolder"
263 #define CMDSTR_VIEWLISTW L"ViewList"
264 #define CMDSTR_VIEWDETAILSW L"ViewDetails"
266 #define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDERW
267 #define CMDSTR_VIEWLIST CMDSTR_VIEWLISTW
268 #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSW
270 #define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDER
271 #define CMDSTR_VIEWLIST CMDSTR_VIEWLIST
272 #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILS
274 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
275 #define CMIC_MASK_ICON SEE_MASK_ICON
276 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
277 #define CMIC_MASK_MODAL 0x80000000
278 #define CMIC_VALID_SEE_FLAGS SEE_VALID_CMIC_FLAGS
279 #define GIL_OPENICON 1
280 #define GIL_FORSHELL 2
281 #define GIL_SIMULATEDOC 1
282 #define GIL_PERINSTANCE 2
283 #define GIL_PERCLASS 4
284 #define GIL_NOTFILENAME 8
285 #define GIL_DONTCACHE 16
287 #define FVSIF_PINNED 2
288 #define FVSIF_NEWFAILED 0x8000000
289 #define FVSIF_NEWFILE 0x80000000
290 #define FVSIF_CANVIEWIT 0x40000000
291 #define CDBOSC_SETFOCUS 0
292 #define CDBOSC_KILLFOCUS 1
293 #define CDBOSC_SELCHANGE 2
294 #define CDBOSC_RENAME 3
295 #define FCIDM_SHVIEWFIRST 0
296 #define FCIDM_SHVIEWLAST 0x7fff
297 #define FCIDM_BROWSERFIRST 0xa000
298 #define FCIDM_BROWSERLAST 0xbf00
299 #define FCIDM_GLOBALFIRST 0x8000
300 #define FCIDM_GLOBALLAST 0x9fff
301 #define FCIDM_MENU_FILE FCIDM_GLOBALFIRST
302 #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040)
303 #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080)
304 #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081)
305 #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0)
306 #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1)
307 #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100)
308 #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140)
309 #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150)
310 #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170)
311 #define FCIDM_TOOLBAR FCIDM_BROWSERFIRST
312 #define FCIDM_STATUS (FCIDM_BROWSERFIRST+1)
313 #define SBSP_DEFBROWSER 0
314 #define SBSP_SAMEBROWSER 1
315 #define SBSP_NEWBROWSER 2
316 #define SBSP_DEFMODE 0
317 #define SBSP_OPENMODE 16
318 #define SBSP_EXPLOREMODE 32
319 #define SBSP_ABSOLUTE 0
320 #define SBSP_RELATIVE 0x1000
321 #define SBSP_PARENT 0x2000
322 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
323 #define SBSP_REDIRECT 0x40000000
325 #define FCW_TOOLBAR 2
328 #define FCT_CONFIGABLE 2
329 #define FCT_ADDTOEND 4
330 #define SVSI_DESELECT 0
331 #define SVSI_SELECT 1
333 #define SVSI_DESELECTOTHERS 4
334 #define SVSI_ENSUREVISIBLE 8
335 #define SVSI_FOCUSED 16
336 #define SVGIO_BACKGROUND 0
337 #define SVGIO_SELECTION 1
338 #define SVGIO_ALLVIEW 2
339 #define SV2GV_CURRENTVIEW ((UINT)-1)
340 #define SV2GV_DEFAULTVIEW ((UINT)-2)
342 typedef ULONG SFGAOF
;
343 typedef DWORD SHGDNF
;
345 typedef struct _IDA
{
349 typedef struct _SHITEMID
{
352 } SHITEMID
, * LPSHITEMID
;
353 typedef const SHITEMID
*LPCSHITEMID
;
354 typedef struct _ITEMIDLIST
{
356 } ITEMIDLIST
,*LPITEMIDLIST
;
357 typedef const ITEMIDLIST
*LPCITEMIDLIST
;
358 typedef int (CALLBACK
* BFFCALLBACK
)(HWND
,UINT
,LPARAM
,LPARAM
);
359 typedef struct _browseinfoA
{
361 LPCITEMIDLIST pidlRoot
;
362 LPSTR pszDisplayName
;
368 } BROWSEINFOA
,*PBROWSEINFOA
,*LPBROWSEINFOA
;
369 typedef struct _browseinfoW
{
371 LPCITEMIDLIST pidlRoot
;
372 LPWSTR pszDisplayName
;
378 } BROWSEINFOW
,*PBROWSEINFOW
,*LPBROWSEINFOW
;
379 typedef struct _CMInvokeCommandInfo
{
389 } CMINVOKECOMMANDINFO
,*LPCMINVOKECOMMANDINFO
;
390 typedef struct _DROPFILES
{
395 } DROPFILES
,*LPDROPFILES
;
396 typedef enum tagSHGDN
{
399 SHGDN_FOREDITING
=0x1000,
400 SHGDN_INCLUDE_NONFILESYS
=0x2000,
401 SHGDN_FORADDRESSBAR
=0x4000,
402 SHGDN_FORPARSING
=0x8000
404 typedef enum tagSHCONTF
{
405 SHCONTF_FOLDERS
= 32,
406 SHCONTF_NONFOLDERS
= 64,
407 SHCONTF_INCLUDEHIDDEN
= 128,
408 SHCONTF_INIT_ON_FIRST_NEXT
= 256,
409 SHCONTF_NETPRINTERSRCH
= 512,
410 SHCONTF_SHAREABLE
= 1024,
411 SHCONTF_STORAGE
= 2048
413 typedef struct _STRRET
{
415 _ANONYMOUS_UNION
union {
422 FD_CLSID
=1,FD_SIZEPOINT
=2,FD_ATTRIBUTES
=4,FD_CREATETIME
=8,FD_ACCESSTIME
=16,
423 FD_WRITESTIME
=32,FD_FILESIZE
=64,FD_LINKUI
=0x8000
425 typedef struct _FILEDESCRIPTORA
{
430 DWORD dwFileAttributes
;
431 FILETIME ftCreationTime
;
432 FILETIME ftLastAccessTime
;
433 FILETIME ftLastWriteTime
;
436 CHAR cFileName
[MAX_PATH
];
437 } FILEDESCRIPTORA
,*LPFILEDESCRIPTORA
;
438 typedef struct _FILEDESCRIPTORW
{
443 DWORD dwFileAttributes
;
444 FILETIME ftCreationTime
;
445 FILETIME ftLastAccessTime
;
446 FILETIME ftLastWriteTime
;
449 WCHAR cFileName
[MAX_PATH
];
450 } FILEDESCRIPTORW
,*LPFILEDESCRIPTORW
;
451 typedef struct _FILEGROUPDESCRIPTORA
{
453 FILEDESCRIPTORA fgd
[1];
454 } FILEGROUPDESCRIPTORA
,*LPFILEGROUPDESCRIPTORA
;
455 typedef struct _FILEGROUPDESCRIPTORW
{
457 FILEDESCRIPTORW fgd
[1];
458 } FILEGROUPDESCRIPTORW
,*LPFILEGROUPDESCRIPTORW
;
474 typedef PBYTE LPVIEWSETTINGS
;
476 FWF_AUTOARRANGE
=1,FWF_ABBREVIATEDNAMES
=2,FWF_SNAPTOGRID
=4,FWF_OWNERDATA
=8,
477 FWF_BESTFITWINDOW
=16,FWF_DESKTOP
=32,FWF_SINGLESEL
=64,FWF_NOSUBFOLDERS
=128,
478 FWF_TRANSPARENT
=256,FWF_NOCLIENTEDGE
=512,FWF_NOSCROLL
=0x400,FWF_ALIGNLEFT
=0x800,
479 FWF_SINGLECLICKACTIVATE
=0x8000
490 } FOLDERSETTINGS
,*LPFOLDERSETTINGS
;
491 typedef const FOLDERSETTINGS
*LPCFOLDERSETTINGS
;
499 OLECHAR strNewFile
[MAX_PATH
];
500 } FVSHOWINFO
,*LPFVSHOWINFO
;
501 typedef struct _NRESARRAY
{
504 } NRESARRAY
, *LPNRESARRAY
;
505 enum { SBSC_HIDE
,SBSC_SHOW
,SBSC_TOGGLE
,SBSC_QUERY
};
507 SBCMDID_ENABLESHOWTREE
,SBCMDID_SHOWCONTROL
,SBCMDID_CANCELNAVIGATION
,
508 SBCMDID_MAYSAVECHANGES
,SBCMDID_SETHLINKFRAME
,SBCMDID_ENABLESTOP
,SBCMDID_OPTIONS
511 SVUIA_DEACTIVATE
,SVUIA_ACTIVATE_NOFOCUS
,SVUIA_ACTIVATE_FOCUS
,
512 SVUIA_INPLACEACTIVATE
514 #if (_WIN32_IE >= 0x0500)
515 typedef struct tagEXTRASEARCH
518 WCHAR wszFriendlyName
[80];
520 } EXTRASEARCH
, *LPEXTRASEARCH
;
521 typedef DWORD SHCOLSTATEF
;
526 } SHCOLUMNID
, *LPSHCOLUMNID
;
527 typedef const SHCOLUMNID
*LPCSHCOLUMNID
;
528 typedef struct _SHELLDETAILS
533 } SHELLDETAILS
, *LPSHELLDETAILS
;
536 LPITEMIDLIST pidlTargetFolder
;
537 WCHAR szTargetParsingName
[MAX_PATH
];
538 WCHAR szNetworkProvider
[MAX_PATH
];
541 } PERSIST_FOLDER_TARGET_INFO
;
544 SHGFP_TYPE_CURRENT
= 0,
545 SHGFP_TYPE_DEFAULT
= 1,
550 DECLARE_ENUMERATOR_(IEnumIDList
,LPITEMIDLIST
);
551 typedef IEnumIDList
*LPENUMIDLIST
;
554 #define IEnumIDList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
555 #define IEnumIDList_Release(T) (T)->lpVtbl->AddRef(T)
556 #define IEnumIDList_AddRef(T) (T)->lpVtbl->Release(T)
557 #define IEnumIDList_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
558 #define IEnumIDList_Skip(T,a) (T)->lpVtbl->Skip(T,a)
559 #define IEnumIDList_Reset(T) (T)->lpVtbl->Reset(T)
560 #define IEnumIDList_Clone(T,a) (T)->lpVtbl->Clone(T,a)
563 #define INTERFACE IObjMgr
564 DECLARE_INTERFACE_(IObjMgr
, IUnknown
)
566 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
567 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
568 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
569 STDMETHOD(Append
)(THIS_ IUnknown
*) PURE
;
570 STDMETHOD(Remove
)(THIS_ IUnknown
*) PURE
;
574 #define INTERFACE IContextMenu
575 DECLARE_INTERFACE_(IContextMenu
,IUnknown
)
577 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
578 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
579 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
580 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
581 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
582 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
585 typedef IContextMenu
*LPCONTEXTMENU
;
588 #define IContextMenu_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
589 #define IContextMenu_AddRef(T) (T)->lpVtbl->AddRef(T)
590 #define IContextMenu_Release(T) (T)->lpVtbl->Release(T)
591 #define IContextMenu_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
592 #define IContextMenu_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
593 #define IContextMenu_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
596 #define INTERFACE IContextMenu2
597 DECLARE_INTERFACE_(IContextMenu2
,IContextMenu
)
599 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
600 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
601 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
602 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
603 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
604 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
605 STDMETHOD(HandleMenuMsg
)(THIS_ UINT
,WPARAM
,LPARAM
) PURE
;
608 typedef IContextMenu2
*LPCONTEXTMENU2
;
610 #define INTERFACE IContextMenu3
611 DECLARE_INTERFACE_(IContextMenu3
,IContextMenu2
)
613 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
614 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
615 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
616 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
617 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
618 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
619 STDMETHOD(HandleMenuMsg
)(THIS_ UINT
,WPARAM
,LPARAM
) PURE
;
620 STDMETHOD(HandleMenuMsg2
)(THIS_ UINT
,WPARAM
,LPARAM
,LRESULT
*) PURE
;
623 typedef IContextMenu3
*LPCONTEXTMENU3
;
625 #if (_WIN32_IE >= 0x0500)
630 WCHAR wszFolder
[MAX_PATH
];
631 } SHCOLUMNINIT
,*LPSHCOLUMNINIT
;
632 typedef const SHCOLUMNINIT
* LPCSHCOLUMNINIT
;
635 DWORD dwFileAttributes
;
638 WCHAR wszFile
[MAX_PATH
];
639 } SHCOLUMNDATA
,*LPSHCOLUMNDATA
;
640 typedef const SHCOLUMNDATA
* LPCSHCOLUMNDATA
;
643 #define MAX_COLUMN_NAME_LEN 80
644 #define MAX_COLUMN_DESC_LEN 128
653 WCHAR wszTitle
[MAX_COLUMN_NAME_LEN
];
654 WCHAR wszDescription
[MAX_COLUMN_DESC_LEN
];
655 } SHCOLUMNINFO
,*LPSHCOLUMNINFO
;
656 typedef const SHCOLUMNINFO
* LPCSHCOLUMNINFO
;
660 SHCOLSTATE_TYPE_STR
= 0x00000001,
661 SHCOLSTATE_TYPE_INT
= 0x00000002,
662 SHCOLSTATE_TYPE_DATE
= 0x00000003,
663 SHCOLSTATE_TYPEMASK
= 0x0000000f,
664 SHCOLSTATE_ONBYDEFAULT
= 0x00000010,
665 SHCOLSTATE_SLOW
= 0x00000020,
666 SHCOLSTATE_EXTENDED
= 0x00000040,
667 SHCOLSTATE_SECONDARYUI
= 0x00000080,
668 SHCOLSTATE_HIDDEN
= 0x00000100,
669 SHCOLSTATE_PREFER_VARCMP
= 0x00000200
673 #define IContextMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
674 #define IContextMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
675 #define IContextMenu2_Release(T) (T)->lpVtbl->Release(T)
676 #define IContextMenu2_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
677 #define IContextMenu2_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
678 #define IContextMenu2_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
679 #define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)
683 #define IContextMenu3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
684 #define IContextMenu3_AddRef(T) (T)->lpVtbl->AddRef(T)
685 #define IContextMenu3_Release(T) (T)->lpVtbl->Release(T)
686 #define IContextMenu3_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
687 #define IContextMenu3_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
688 #define IContextMenu3_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
689 #define IContextMenu3_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)
690 #define IContextMenu3_HandleMenuMsg2(T,a,b,c,d) (T)->lpVtbl->HandleMenuMsg(T,a,b,c,d)
693 #define INTERFACE IColumnProvider
694 DECLARE_INTERFACE_(IColumnProvider
,IUnknown
)
696 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
697 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
698 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
699 STDMETHOD(Initialize
)(THIS_ LPCSHCOLUMNINIT
) PURE
;
700 STDMETHOD(GetColumnInfo
)(THIS_ DWORD
,SHCOLUMNINFO
*) PURE
;
701 STDMETHOD(GetItemData
)(THIS_ LPCSHCOLUMNID
,LPCSHCOLUMNDATA
,VARIANT
*) PURE
;
704 #endif /* _WIN32_IE >= 0x0500 */
706 #define INTERFACE IQueryInfo
707 DECLARE_INTERFACE_(IQueryInfo
,IUnknown
)
709 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
710 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
711 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
712 STDMETHOD(GetInfoTip
)(THIS_ DWORD
,WCHAR
**) PURE
;
713 STDMETHOD(GetInfoFlags
)(THIS_ DWORD
*) PURE
;
717 #define INTERFACE IShellExtInit
718 DECLARE_INTERFACE_(IShellExtInit
, IUnknown
)
720 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
721 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
722 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
723 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
,LPDATAOBJECT
,HKEY
) PURE
;
726 typedef IShellExtInit
*LPSHELLEXTINIT
;
728 #define INTERFACE IShellPropSheetExt
729 DECLARE_INTERFACE_(IShellPropSheetExt
, IUnknown
)
731 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
732 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
733 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
734 STDMETHOD(AddPages
)(THIS_ LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
735 STDMETHOD(ReplacePage
)(THIS_ UINT
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
738 typedef IShellPropSheetExt
*LPSHELLPROPSHEETEXT
;
740 #define INTERFACE IExtractIconA
741 DECLARE_INTERFACE_(IExtractIconA
, IUnknown
)
743 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
744 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
745 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
746 STDMETHOD(GetIconLocation
)(THIS_ UINT
,LPSTR
,UINT
,int*,PUINT
) PURE
;
747 STDMETHOD(Extract
)(THIS_ LPCSTR
,UINT
,HICON
*,HICON
*,UINT
) PURE
;
750 typedef IExtractIconA
*LPEXTRACTICONA
;
753 #define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
754 #define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T)
755 #define IExtractIconA_Release(T) (T)->lpVtbl->Release(T)
756 #define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
757 #define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
760 #define INTERFACE IExtractIconW
761 DECLARE_INTERFACE_(IExtractIconW
, IUnknown
)
763 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
764 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
765 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
766 STDMETHOD(GetIconLocation
)(THIS_ UINT
,LPWSTR
,UINT
,int*,PUINT
) PURE
;
767 STDMETHOD(Extract
)(THIS_ LPCWSTR
,UINT
,HICON
*,HICON
*,UINT
) PURE
;
770 typedef IExtractIconW
*LPEXTRACTICONW
;
773 #define IExtractIconW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
774 #define IExtractIconW_AddRef(T) (T)->lpVtbl->AddRef(T)
775 #define IExtractIconW_Release(T) (T)->lpVtbl->Release(T)
776 #define IExtractIconW_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
777 #define IExtractIconW_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
781 #define IExtractIcon IExtractIconW
782 #define LPEXTRACTICON LPEXTRACTICONW
784 #define IExtractIcon IExtractIconA
785 #define LPEXTRACTICON LPEXTRACTICONA
788 #define INTERFACE IShellLinkA
789 DECLARE_INTERFACE_(IShellLinkA
, IUnknown
)
791 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
792 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
793 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
794 STDMETHOD(GetPath
)(THIS_ LPSTR
,int,WIN32_FIND_DATAA
*,DWORD
) PURE
;
795 STDMETHOD(GetIDList
)(THIS_ LPITEMIDLIST
*) PURE
;
796 STDMETHOD(SetIDList
)(THIS_ LPCITEMIDLIST
) PURE
;
797 STDMETHOD(GetDescription
)(THIS_ LPSTR
,int) PURE
;
798 STDMETHOD(SetDescription
)(THIS_ LPCSTR
) PURE
;
799 STDMETHOD(GetWorkingDirectory
)(THIS_ LPSTR
,int) PURE
;
800 STDMETHOD(SetWorkingDirectory
)(THIS_ LPCSTR
) PURE
;
801 STDMETHOD(GetArguments
)(THIS_ LPSTR
,int) PURE
;
802 STDMETHOD(SetArguments
)(THIS_ LPCSTR
) PURE
;
803 STDMETHOD(GetHotkey
)(THIS_ PWORD
) PURE
;
804 STDMETHOD(SetHotkey
)(THIS_ WORD
) PURE
;
805 STDMETHOD(GetShowCmd
)(THIS_
int*) PURE
;
806 STDMETHOD(SetShowCmd
)(THIS_
int) PURE
;
807 STDMETHOD(GetIconLocation
)(THIS_ LPSTR
,int,int*) PURE
;
808 STDMETHOD(SetIconLocation
)(THIS_ LPCSTR
,int) PURE
;
809 STDMETHOD(SetRelativePath
)(THIS_ LPCSTR
,DWORD
) PURE
;
810 STDMETHOD(Resolve
)(THIS_ HWND
,DWORD
) PURE
;
811 STDMETHOD(SetPath
)(THIS_ LPCSTR
) PURE
;
816 #define IShellLinkA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
817 #define IShellLinkA_AddRef(T) (T)->lpVtbl->AddRef(T)
818 #define IShellLinkA_Release(T) (T)->lpVtbl->Release(T)
819 #define IShellLinkA_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
820 #define IShellLinkA_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
821 #define IShellLinkA_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
822 #define IShellLinkA_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
823 #define IShellLinkA_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
824 #define IShellLinkA_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
825 #define IShellLinkA_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
826 #define IShellLinkA_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
827 #define IShellLinkA_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
828 #define IShellLinkA_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
829 #define IShellLinkA_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
830 #define IShellLinkA_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
831 #define IShellLinkA_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
832 #define IShellLinkA_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
833 #define IShellLinkA_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
834 #define IShellLinkA_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
835 #define IShellLinkA_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
836 #define IShellLinkA_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
839 #define INTERFACE IShellLinkW
840 DECLARE_INTERFACE_(IShellLinkW
, IUnknown
)
842 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
843 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
844 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
845 STDMETHOD(GetPath
)(THIS_ LPWSTR
,int,WIN32_FIND_DATAW
*,DWORD
) PURE
;
846 STDMETHOD(GetIDList
)(THIS_ LPITEMIDLIST
*) PURE
;
847 STDMETHOD(SetIDList
)(THIS_ LPCITEMIDLIST
) PURE
;
848 STDMETHOD(GetDescription
)(THIS_ LPWSTR
,int) PURE
;
849 STDMETHOD(SetDescription
)(THIS_ LPCWSTR
) PURE
;
850 STDMETHOD(GetWorkingDirectory
)(THIS_ LPWSTR
,int) PURE
;
851 STDMETHOD(SetWorkingDirectory
)(THIS_ LPCWSTR
) PURE
;
852 STDMETHOD(GetArguments
)(THIS_ LPWSTR
,int) PURE
;
853 STDMETHOD(SetArguments
)(THIS_ LPCWSTR
) PURE
;
854 STDMETHOD(GetHotkey
)(THIS_ PWORD
) PURE
;
855 STDMETHOD(SetHotkey
)(THIS_ WORD
) PURE
;
856 STDMETHOD(GetShowCmd
)(THIS_
int*) PURE
;
857 STDMETHOD(SetShowCmd
)(THIS_
int) PURE
;
858 STDMETHOD(GetIconLocation
)(THIS_ LPWSTR
,int,int*) PURE
;
859 STDMETHOD(SetIconLocation
)(THIS_ LPCWSTR
,int) PURE
;
860 STDMETHOD(SetRelativePath
)(THIS_ LPCWSTR
,DWORD
) PURE
;
861 STDMETHOD(Resolve
)(THIS_ HWND
,DWORD
) PURE
;
862 STDMETHOD(SetPath
)(THIS_ LPCWSTR
) PURE
;
867 #define IShellLinkW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
868 #define IShellLinkW_AddRef(T) (T)->lpVtbl->AddRef(T)
869 #define IShellLinkW_Release(T) (T)->lpVtbl->Release(T)
870 #define IShellLinkW_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
871 #define IShellLinkW_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
872 #define IShellLinkW_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
873 #define IShellLinkW_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
874 #define IShellLinkW_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
875 #define IShellLinkW_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
876 #define IShellLinkW_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
877 #define IShellLinkW_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
878 #define IShellLinkW_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
879 #define IShellLinkW_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
880 #define IShellLinkW_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
881 #define IShellLinkW_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
882 #define IShellLinkW_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
883 #define IShellLinkW_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
884 #define IShellLinkW_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
885 #define IShellLinkW_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
886 #define IShellLinkW_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
887 #define IShellLinkW_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
890 #define INTERFACE IShellFolder
891 DECLARE_INTERFACE_(IShellFolder
, IUnknown
)
893 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
894 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
895 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
896 STDMETHOD(ParseDisplayName
)(THIS_ HWND
,LPBC
,LPOLESTR
,PULONG
,LPITEMIDLIST
*,PULONG
) PURE
;
897 STDMETHOD(EnumObjects
)(THIS_ HWND
,DWORD
,LPENUMIDLIST
*) PURE
;
898 STDMETHOD(BindToObject
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
899 STDMETHOD(BindToStorage
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
900 STDMETHOD(CompareIDs
)(THIS_ LPARAM
,LPCITEMIDLIST
,LPCITEMIDLIST
) PURE
;
901 STDMETHOD(CreateViewObject
)(THIS_ HWND
,REFIID
,PVOID
*) PURE
;
902 STDMETHOD(GetAttributesOf
)(THIS_ UINT
,LPCITEMIDLIST
*,PULONG
) PURE
;
903 STDMETHOD(GetUIObjectOf
)(THIS_ HWND
,UINT
,LPCITEMIDLIST
*,REFIID
,PUINT
,PVOID
*) PURE
;
904 STDMETHOD(GetDisplayNameOf
)(THIS_ LPCITEMIDLIST
,DWORD
,LPSTRRET
) PURE
;
905 STDMETHOD(SetNameOf
)(THIS_ HWND
,LPCITEMIDLIST
,LPCOLESTR
,DWORD
,LPITEMIDLIST
*) PURE
;
908 typedef IShellFolder
*LPSHELLFOLDER
;
911 #define IShellFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
912 #define IShellFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
913 #define IShellFolder_Release(T) (T)->lpVtbl->Release(T)
914 #define IShellFolder_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
915 #define IShellFolder_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
916 #define IShellFolder_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
917 #define IShellFolder_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
918 #define IShellFolder_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
919 #define IShellFolder_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
920 #define IShellFolder_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
921 #define IShellFolder_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
922 #define IShellFolder_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
923 #define IShellFolder_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
926 #if (_WIN32_IE >= 0x0500)
928 DECLARE_ENUMERATOR_(IEnumExtraSearch
,LPEXTRASEARCH
);
929 typedef IEnumExtraSearch
*LPENUMEXTRASEARCH
;
931 #define INTERFACE IShellFolder2
932 DECLARE_INTERFACE_(IShellFolder2
, IShellFolder
)
934 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
935 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
936 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
937 STDMETHOD(ParseDisplayName
)(THIS_ HWND
,LPBC
,LPOLESTR
,PULONG
,LPITEMIDLIST
*,PULONG
) PURE
;
938 STDMETHOD(EnumObjects
)(THIS_ HWND
,DWORD
,LPENUMIDLIST
*) PURE
;
939 STDMETHOD(BindToObject
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
940 STDMETHOD(BindToStorage
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
941 STDMETHOD(CompareIDs
)(THIS_ LPARAM
,LPCITEMIDLIST
,LPCITEMIDLIST
) PURE
;
942 STDMETHOD(CreateViewObject
)(THIS_ HWND
,REFIID
,PVOID
*) PURE
;
943 STDMETHOD(GetAttributesOf
)(THIS_ UINT
,LPCITEMIDLIST
*,PULONG
) PURE
;
944 STDMETHOD(GetUIObjectOf
)(THIS_ HWND
,UINT
,LPCITEMIDLIST
*,REFIID
,PUINT
,PVOID
*) PURE
;
945 STDMETHOD(GetDisplayNameOf
)(THIS_ LPCITEMIDLIST
,DWORD
,LPSTRRET
) PURE
;
946 STDMETHOD(SetNameOf
)(THIS_ HWND
,LPCITEMIDLIST
,LPCOLESTR
,DWORD
,LPITEMIDLIST
*) PURE
;
947 STDMETHOD(GetDefaultSearchGUID
)(THIS_ GUID
*) PURE
;
948 STDMETHOD(EnumSearches
)(THIS_ IEnumExtraSearch
**) PURE
;
949 STDMETHOD(GetDefaultColumn
)(THIS_ DWORD
,ULONG
*,ULONG
*) PURE
;
950 STDMETHOD(GetDefaultColumnState
)(THIS_ UINT
,SHCOLSTATEF
*) PURE
;
951 STDMETHOD(GetDetailsEx
)(THIS_ LPCITEMIDLIST
,const SHCOLUMNID
*,VARIANT
*) PURE
;
952 STDMETHOD(GetDetailsOf
)(THIS_ LPCITEMIDLIST
,UINT
,SHELLDETAILS
*) PURE
;
953 STDMETHOD(MapColumnToSCID
)(THIS_ UINT
,SHCOLUMNID
*) PURE
;
956 typedef IShellFolder2
*LPSHELLFOLDER2
;
959 #define IShellFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
960 #define IShellFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
961 #define IShellFolder2_Release(T) (T)->lpVtbl->Release(T)
962 #define IShellFolder2_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
963 #define IShellFolder2_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
964 #define IShellFolder2_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
965 #define IShellFolder2_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
966 #define IShellFolder2_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
967 #define IShellFolder2_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
968 #define IShellFolder2_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
969 #define IShellFolder2_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
970 #define IShellFolder2_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
971 #define IShellFolder2_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
972 #define IShellFolder2_GetDefaultSearchGUID(T,a) (T)->lpVtbl->GetDefaultSearchGUID(T,a)
973 #define IShellFolder2_EnumSearches(T,a) (T)->lpVtbl->EnumSearches(T,a)
974 #define IShellFolder2_GetDefaultColumn(T,a,b,c) (T)->lpVtbl->GetDefaultColumn(T,a,b,c)
975 #define IShellFolder2_GetDefaultColumnState(T,a,b) (T)->lpVtbl->GetDefaultColumnState(T,a,b)
976 #define IShellFolder2_GetDetailsEx(T,a,b,c) (T)->lpVtbl->GetDetailsEx(T,a,b,c)
977 #define IShellFolder2_GetDetailsOf(T,a,b,c) (T)->lpVtbl->GetDetailsOf(T,a,b,c)
978 #define IShellFolder2_MapColumnToSCID(T,a,b) (T)->lpVtbl->MapColumnToSCID(T,a,b)
981 #endif /* _WIN32_IE >= 0x0500 */
982 #define INTERFACE ICopyHook
983 DECLARE_INTERFACE_(ICopyHook
, IUnknown
)
985 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
986 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
987 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
988 STDMETHOD_(UINT
,CopyCallback
)(THIS_ HWND
,UINT
,UINT
,LPCSTR
,DWORD
,LPCSTR
,DWORD
) PURE
;
991 typedef ICopyHook
*LPCOPYHOOK
;
993 #define INTERFACE IFileViewerSite
994 DECLARE_INTERFACE(IFileViewerSite
)
996 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
997 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
998 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
999 STDMETHOD(SetPinnedWindow
)(THIS_ HWND
) PURE
;
1000 STDMETHOD(GetPinnedWindow
)(THIS_ HWND
*) PURE
;
1003 typedef IFileViewerSite
*LPFILEVIEWERSITE
;
1005 #define INTERFACE IFileViewer
1006 DECLARE_INTERFACE(IFileViewer
)
1008 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1009 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1010 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1011 STDMETHOD(ShowInitialize
)(THIS_ LPFILEVIEWERSITE
) PURE
;
1012 STDMETHOD(Show
)(THIS_ LPFVSHOWINFO
) PURE
;
1013 STDMETHOD(PrintTo
)(THIS_ LPSTR
,BOOL
) PURE
;
1016 typedef IFileViewer
*LPFILEVIEWER
;
1018 #define INTERFACE IFileSystemBindData
1019 DECLARE_INTERFACE_(IFileSystemBindData
, IUnknown
)
1021 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1022 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1023 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1024 STDMETHOD(SetFindData
)(THIS_
const WIN32_FIND_DATAW
*) PURE
;
1025 STDMETHOD(GetFindData
)(THIS_ WIN32_FIND_DATAW
*) PURE
;
1029 #define INTERFACE IPersistFolder
1030 DECLARE_INTERFACE_(IPersistFolder
,IPersist
)
1032 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1033 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1034 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1035 STDMETHOD(GetClassID
)(THIS_ CLSID
*) PURE
;
1036 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
1039 typedef IPersistFolder
*LPPERSISTFOLDER
;
1042 #define IPersistFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1043 #define IPersistFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
1044 #define IPersistFolder_Release(T) (T)->lpVtbl->Release(T)
1045 #define IPersistFolder_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
1046 #define IPersistFolder_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
1049 #if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500)
1051 #define INTERFACE IPersistFolder2
1052 DECLARE_INTERFACE_(IPersistFolder2
,IPersistFolder
)
1054 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1055 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1056 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1057 STDMETHOD(GetClassID
)(THIS_ CLSID
*) PURE
;
1058 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
1059 STDMETHOD(GetCurFolder
)(THIS_ LPITEMIDLIST
*) PURE
;
1062 typedef IPersistFolder2
*LPPERSISTFOLDER2
;
1065 #define IPersistFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1066 #define IPersistFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
1067 #define IPersistFolder2_Release(T) (T)->lpVtbl->Release(T)
1068 #define IPersistFolder2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
1069 #define IPersistFolder2_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
1070 #define IPersistFolder2_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
1073 #endif /* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */
1075 #if (_WIN32_IE >= 0x0500)
1077 #define INTERFACE IPersistFolder3
1078 DECLARE_INTERFACE_(IPersistFolder3
,IPersistFolder2
)
1080 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1081 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1082 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1083 STDMETHOD(GetClassID
)(THIS_ CLSID
*) PURE
;
1084 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
1085 STDMETHOD(GetCurFolder
)(THIS_ LPITEMIDLIST
*) PURE
;
1086 STDMETHOD(InitializeEx
)(THIS_ IBindCtx
*,LPCITEMIDLIST
,const PERSIST_FOLDER_TARGET_INFO
*) PURE
;
1087 STDMETHOD(GetFolderTargetInfo
)(THIS_ PERSIST_FOLDER_TARGET_INFO
*) PURE
;
1090 typedef IPersistFolder3
*LPPERSISTFOLDER3
;
1093 #define IPersistFolder3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1094 #define IPersistFolder3_AddRef(T) (T)->lpVtbl->AddRef(T)
1095 #define IPersistFolder3_Release(T) (T)->lpVtbl->Release(T)
1096 #define IPersistFolder3_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
1097 #define IPersistFolder3_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
1098 #define IPersistFolder3_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
1099 #define IPersistFolder3_InitializeEx(T,a,b,c) (T)->lpVtbl->InitializeEx(T,a,b,c)
1100 #define IPersistFolder3_GetFolderTargetInfo(T,a) (T)->lpVtbl->GetFolderTargetInfo(T,a)
1103 #endif /* _WIN32_IE >= 0x0500 */
1105 typedef _COM_interface IShellBrowser
*LPSHELLBROWSER
;
1106 typedef _COM_interface IShellView
*LPSHELLVIEW
;
1108 #define INTERFACE IShellBrowser
1109 DECLARE_INTERFACE_(IShellBrowser
,IOleWindow
)
1111 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1112 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1113 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1114 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
1115 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
1116 STDMETHOD(InsertMenusSB
)(THIS_ HMENU
,LPOLEMENUGROUPWIDTHS
) PURE
;
1117 STDMETHOD(SetMenuSB
)(THIS_ HMENU
,HOLEMENU
,HWND
) PURE
;
1118 STDMETHOD(RemoveMenusSB
)(THIS_ HMENU
) PURE
;
1119 STDMETHOD(SetStatusTextSB
)(THIS_ LPCOLESTR
) PURE
;
1120 STDMETHOD(EnableModelessSB
)(THIS_ BOOL
) PURE
;
1121 STDMETHOD(TranslateAcceleratorSB
) (THIS_ LPMSG
,WORD
) PURE
;
1122 STDMETHOD(BrowseObject
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
1123 STDMETHOD(GetViewStateStream
)(THIS_ DWORD
,LPSTREAM
*) PURE
;
1124 STDMETHOD(GetControlWindow
)(THIS_ UINT
,HWND
*) PURE
;
1125 STDMETHOD(SendControlMsg
)(THIS_ UINT
,UINT
,WPARAM
,LPARAM
,LRESULT
*) PURE
;
1126 STDMETHOD(QueryActiveShellView
)(THIS_ LPSHELLVIEW
*) PURE
;
1127 STDMETHOD(OnViewWindowActive
)(THIS_ LPSHELLVIEW
) PURE
;
1128 STDMETHOD(SetToolbarItems
)(THIS_ LPTBBUTTON
,UINT
,UINT
) PURE
;
1133 #define IShellBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1134 #define IShellBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
1135 #define IShellBrowser_Release(T) (T)->lpVtbl->Release(T)
1136 #define IShellBrowser_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
1137 #define IShellBrowser_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
1138 #define IShellBrowser_InsertMenusSB(T,a,b) (T)->lpVtbl->InsertMenusSB(T,a,b)
1139 #define IShellBrowser_SetMenuSB(T,a,b,c) (T)->lpVtbl->SetMenuSB(T,a,b,c)
1140 #define IShellBrowser_RemoveMenusSB(T,a) (T)->lpVtbl->RemoveMenusSB(T,a)
1141 #define IShellBrowser_SetStatusTextSB(T,a) (T)->lpVtbl->SetStatusTextSB(T,a)
1142 #define IShellBrowser_EnableModelessSB(T,a) (T)->lpVtbl->EnableModelessSB(T,a)
1143 #define IShellBrowser_TranslateAcceleratorSB(T,a,b) (T)->lpVtbl->TranslateAcceleratorSB(T,a,b)
1144 #define IShellBrowser_BrowseObject(T,a,b) (T)->lpVtbl->BrowseObject(T,a,b)
1145 #define IShellBrowser_GetViewStateStream(T,a,b) (T)->lpVtbl->GetViewStateStream(T,a,b)
1146 #define IShellBrowser_GetControlWindow(T,a,b) (T)->lpVtbl->GetControlWindow(T,a,b)
1147 #define IShellBrowser_SendControlMsg(T,a,b,c,d,e) (T)->lpVtbl->SendControlMsg(T,a,b,c,d,e)
1148 #define IShellBrowser_QueryActiveShellView(T,a) (T)->lpVtbl->QueryActiveShellView(T,a)
1149 #define IShellBrowser_OnViewWindowActive(T,a) (T)->lpVtbl->OnViewWindowActive(T,a)
1150 #define IShellBrowser_SetToolbarItems(T,a,b,c) (T)->lpVtbl->SetToolbarItems(T,a,b,c)
1153 #define INTERFACE IShellView
1154 DECLARE_INTERFACE_(IShellView
,IOleWindow
)
1156 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1157 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1158 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1159 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
1160 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
1161 STDMETHOD(TranslateAccelerator
) (THIS_ LPMSG
) PURE
;
1162 #ifdef _FIX_ENABLEMODELESS_CONFLICT
1163 STDMETHOD(EnableModelessSV
)(THIS_ BOOL
) PURE
;
1165 STDMETHOD(EnableModeless
)(THIS_ BOOL
) PURE
;
1167 STDMETHOD(UIActivate
)(THIS_ UINT
) PURE
;
1168 STDMETHOD(Refresh
) (THIS
) PURE
;
1169 STDMETHOD(CreateViewWindow
)(THIS_ IShellView
*,LPCFOLDERSETTINGS
,LPSHELLBROWSER
,RECT
*,HWND
*) PURE
;
1170 STDMETHOD(DestroyViewWindow
)(THIS
) PURE
;
1171 STDMETHOD(GetCurrentInfo
)(THIS_ LPFOLDERSETTINGS
) PURE
;
1172 STDMETHOD(AddPropertySheetPages
)(THIS_ DWORD
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
1173 STDMETHOD(SaveViewState
)(THIS
) PURE
;
1174 STDMETHOD(SelectItem
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
1175 STDMETHOD(GetItemObject
)(THIS_ UINT
,REFIID
,PVOID
*) PURE
;
1180 #define IShellView_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1181 #define IShellView_AddRef(T) (T)->lpVtbl->AddRef(T)
1182 #define IShellView_Release(T) (T)->lpVtbl->Release(T)
1183 #define IShellView_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
1184 #define IShellView_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
1185 #define IShellView_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a)
1186 #ifdef _FIX_ENABLEMODELESS_CONFLICT
1187 #define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a)
1189 #define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
1191 #define IShellView_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a)
1192 #define IShellView_Refresh(T) (T)->lpVtbl->Refresh(T)
1193 #define IShellView_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e)
1194 #define IShellView_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T)
1195 #define IShellView_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a)
1196 #define IShellView_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c)
1197 #define IShellView_SaveViewState(T) (T)->lpVtbl->SaveViewState(T)
1198 #define IShellView_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b)
1199 #define IShellView_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c)
1202 #define INTERFACE ICommDlgBrowser
1203 DECLARE_INTERFACE_(ICommDlgBrowser
,IUnknown
)
1205 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1206 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1207 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1208 STDMETHOD(OnDefaultCommand
)(THIS_ IShellView
*) PURE
;
1209 STDMETHOD(OnStateChange
)(THIS_ IShellView
*,ULONG
) PURE
;
1210 STDMETHOD(IncludeObject
)(THIS_ IShellView
*,LPCITEMIDLIST
) PURE
;
1213 typedef ICommDlgBrowser
*LPCOMMDLGBROWSER
;
1216 #define ICommDlgBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1217 #define ICommDlgBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
1218 #define ICommDlgBrowser_Release(T) (T)->lpVtbl->Release(T)
1219 #define ICommDlgBrowser_OnDefaultCommand(T,a) (T)->lpVtbl->OnDefaultCommand(T,a)
1220 #define ICommDlgBrowser_OnStateChange(T,a,b) (T)->lpVtbl->OnStateChange(T,a,b)
1221 #define ICommDlgBrowser_IncludeObject(T,a,b) (T)->lpVtbl->IncludeObject(T,a,b)
1224 typedef GUID SHELLVIEWID
;
1225 typedef struct _SV2CVW2_PARAMS
{
1227 IShellView
*psvPrev
;
1228 FOLDERSETTINGS
const *pfs
;
1229 IShellBrowser
*psbOwner
;
1231 SHELLVIEWID
const *pvid
;
1233 } SV2CVW2_PARAMS
,*LPSV2CVW2_PARAMS
;
1234 #define INTERFACE IShellView2
1235 DECLARE_INTERFACE_(IShellView2
,IShellView
)
1238 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1239 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1240 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1241 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
1242 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
1243 STDMETHOD(TranslateAccelerator
) (THIS_ LPMSG
) PURE
;
1244 #ifdef _FIX_ENABLEMODELESS_CONFLICT
1245 STDMETHOD(EnableModelessSV
)(THIS_ BOOL
) PURE
;
1247 STDMETHOD(EnableModeless
)(THIS_ BOOL
) PURE
;
1249 STDMETHOD(UIActivate
)(THIS_ UINT
) PURE
;
1250 STDMETHOD(Refresh
) (THIS
) PURE
;
1251 STDMETHOD(CreateViewWindow
)(THIS_ IShellView
*,LPCFOLDERSETTINGS
,LPSHELLBROWSER
,RECT
*,HWND
*) PURE
;
1252 STDMETHOD(DestroyViewWindow
)(THIS
) PURE
;
1253 STDMETHOD(GetCurrentInfo
)(THIS_ LPFOLDERSETTINGS
) PURE
;
1254 STDMETHOD(AddPropertySheetPages
)(THIS_ DWORD
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
1255 STDMETHOD(SaveViewState
)(THIS
) PURE
;
1256 STDMETHOD(SelectItem
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
1257 STDMETHOD(GetItemObject
)(THIS_ UINT
,REFIID
,PVOID
*) PURE
;
1258 STDMETHOD(GetView
)(THIS_ SHELLVIEWID
*,ULONG
) PURE
;
1259 STDMETHOD(CreateViewWindow2
)(THIS_ LPSV2CVW2_PARAMS
) PURE
;
1263 #define INTERFACE IShellExecuteHookA
1264 DECLARE_INTERFACE_(IShellExecuteHookA
,IUnknown
)
1266 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1267 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1268 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1269 STDMETHOD(Execute
)(THIS_ LPSHELLEXECUTEINFOA
) PURE
;
1273 #define INTERFACE IShellExecuteHookW
1274 DECLARE_INTERFACE_(IShellExecuteHookW
,IUnknown
)
1276 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1277 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1278 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1279 STDMETHOD(Execute
)(THIS_ LPSHELLEXECUTEINFOW
) PURE
;
1283 #define INTERFACE IShellIcon
1284 DECLARE_INTERFACE_(IShellIcon
,IUnknown
)
1286 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1287 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1288 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1289 STDMETHOD(GetIconOf
)(THIS_ LPCITEMIDLIST
,UINT
,PINT
) PURE
;
1292 typedef IShellIcon
*LPSHELLICON
;
1295 BOOL fShowAllObjects
: 1;
1296 BOOL fShowExtensions
: 1;
1297 BOOL fNoConfirmRecycle
: 1;
1298 BOOL fShowSysFiles
: 1;
1299 BOOL fShowCompColor
: 1;
1300 BOOL fDoubleClickInWebView
: 1;
1301 BOOL fDesktopHTML
: 1;
1302 BOOL fWin95Classic
: 1;
1303 BOOL fDontPrettyPath
: 1;
1304 BOOL fShowAttribCol
: 1;
1305 BOOL fMapNetDrvBtn
: 1;
1306 BOOL fShowInfoTip
: 1;
1307 BOOL fHideIcons
: 1;
1308 UINT fRestFlags
: 3;
1309 } SHELLFLAGSTATE
, * LPSHELLFLAGSTATE
;
1311 #define SSF_SHOWALLOBJECTS 0x1
1312 #define SSF_SHOWEXTENSIONS 0x2
1313 #define SSF_SHOWCOMPCOLOR 0x8
1314 #define SSF_SHOWSYSFILES 0x20
1315 #define SSF_DOUBLECLICKINWEBVIEW 0x80
1316 #define SSF_SHOWATTRIBCOL 0x100
1317 #define SSF_DESKTOPHTML 0x200
1318 #define SSF_WIN95CLASSIC 0x400
1319 #define SSF_DONTPRETTYPATH 0x800
1320 #define SSF_MAPNETDRVBUTTON 0x1000
1321 #define SSF_SHOWINFOTIP 0x2000
1322 #define SSF_HIDEICONS 0x4000
1323 #define SSF_NOCONFIRMRECYCLE 0x8000
1325 #define INTERFACE IShellIconOverlayIdentifier
1326 DECLARE_INTERFACE_(IShellIconOverlayIdentifier
,IUnknown
)
1328 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
1329 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
1330 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
1331 STDMETHOD(IsMemberOf
)(THIS_ LPCWSTR
,DWORD
) PURE
;
1332 STDMETHOD(GetOverlayInfo
)(THIS_ LPWSTR
,int,int*,DWORD
*) PURE
;
1333 STDMETHOD(GetPriority
)(THIS_
int*) PURE
;
1337 #define ISIOI_ICONFILE 0x00000001
1338 #define ISIOI_ICONINDEX 0x00000002
1340 #if (_WIN32_WINNT >= 0x0500) /* W2K */
1342 BOOL fShowAllObjects
: 1;
1343 BOOL fShowExtensions
: 1;
1344 BOOL fNoConfirmRecycle
: 1;
1345 BOOL fShowSysFiles
: 1;
1346 BOOL fShowCompColor
: 1;
1347 BOOL fDoubleClickInWebView
: 1;
1348 BOOL fDesktopHTML
: 1;
1349 BOOL fWin95Classic
: 1;
1350 BOOL fDontPrettyPath
: 1;
1351 BOOL fShowAttribCol
: 1;
1352 BOOL fMapNetDrvBtn
: 1;
1353 BOOL fShowInfoTip
: 1;
1354 BOOL fHideIcons
: 1;
1357 BOOL fShowSuperHidden
: 1;
1358 BOOL fNoNetCrawling
: 1;
1359 DWORD dwWin95Unused
;
1365 BOOL fSepProcess
: 1;
1366 BOOL fStartPanelOn
: 1;
1367 BOOL fShowStartPage
: 1;
1368 UINT fSpareFlags
: 13;
1369 } SHELLSTATE
, *LPSHELLSTATE
;
1370 #endif /* _WIN32_WINNT >= 0x0500 */
1372 #if (_WIN32_IE >= 0x0500)
1373 #pragma pack(push,8)
1378 HBITMAP hbmpDragImage
;
1379 COLORREF crColorKey
;
1380 } SHDRAGIMAGE
, *LPSHDRAGIMAGE
;
1383 #define INTERFACE IDragSourceHelper
1384 DECLARE_INTERFACE_(IDragSourceHelper
, IUnknown
)
1386 STDMETHOD (QueryInterface
)(THIS_ REFIID riid
, void **ppv
) PURE
;
1387 STDMETHOD_(ULONG
, AddRef
) (THIS
) PURE
;
1388 STDMETHOD_(ULONG
, Release
) (THIS
) PURE
;
1389 STDMETHOD (InitializeFromBitmap
)(THIS_ LPSHDRAGIMAGE pshdi
, IDataObject
* pDataObject
) PURE
;
1390 STDMETHOD (InitializeFromWindow
)(THIS_ HWND hwnd
, POINT
* ppt
, IDataObject
* pDataObject
) PURE
;
1394 #define INTERFACE IDropTargetHelper
1395 DECLARE_INTERFACE_(IDropTargetHelper
, IUnknown
)
1397 STDMETHOD (QueryInterface
)(THIS_ REFIID riid
, void** ppv
) PURE
;
1398 STDMETHOD_(ULONG
, AddRef
) (THIS
) PURE
;
1399 STDMETHOD_(ULONG
, Release
) (THIS
) PURE
;
1400 STDMETHOD (DragEnter
)(THIS_ HWND hwndTarget
, IDataObject
* pDataObject
, POINT
* ppt
, DWORD dwEffect
) PURE
;
1401 STDMETHOD (DragLeave
)(THIS
) PURE
;
1402 STDMETHOD (DragOver
)(THIS_ POINT
* ppt
, DWORD dwEffect
) PURE
;
1403 STDMETHOD (Drop
)(THIS_ IDataObject
* pDataObject
, POINT
* ppt
, DWORD dwEffect
) PURE
;
1404 STDMETHOD (Show
)(THIS_ BOOL fShow
) PURE
;
1407 #endif /* _WIN32_IE >= 0x0500 */
1409 #if (_WIN32_WINNT >= 0x0500)
1410 BOOL WINAPI
PathResolve(LPWSTR
, LPCWSTR
*, UINT
);
1411 #define PRF_VERIFYEXISTS 0x0001
1412 #define PRF_TRYPROGRAMEXTENSIONS (0x0002 | PRF_VERIFYEXISTS)
1413 #define PRF_FIRSTDIRDEF 0x0004
1414 #define PRF_DONTFINDLNK 0x0008
1417 void WINAPI
SHAddToRecentDocs(UINT
,PCVOID
);
1418 LPITEMIDLIST WINAPI
SHBrowseForFolderA(PBROWSEINFOA
);
1419 LPITEMIDLIST WINAPI
SHBrowseForFolderW(PBROWSEINFOW
);
1420 void WINAPI
SHChangeNotify(LONG
,UINT
,PCVOID
,PCVOID
);
1421 HRESULT WINAPI
SHGetDataFromIDListA(LPSHELLFOLDER
,LPCITEMIDLIST
,int,PVOID
,int);
1422 HRESULT WINAPI
SHGetDataFromIDListW(LPSHELLFOLDER
,LPCITEMIDLIST
,int,PVOID
,int);
1423 HRESULT WINAPI
SHGetDesktopFolder(LPSHELLFOLDER
*);
1424 HRESULT WINAPI
SHGetInstanceExplorer(IUnknown
**);
1425 HRESULT WINAPI
SHGetMalloc(LPMALLOC
*);
1426 BOOL WINAPI
SHGetPathFromIDListA(LPCITEMIDLIST
,LPSTR
);
1427 BOOL WINAPI
SHGetPathFromIDListW(LPCITEMIDLIST
,LPWSTR
);
1428 HRESULT WINAPI
SHGetSpecialFolderLocation(HWND
,int,LPITEMIDLIST
*);
1429 HRESULT WINAPI
SHLoadInProc(REFCLSID
);
1430 #if (_WIN32_IE >= 0x0400)
1431 BOOL WINAPI
SHGetSpecialFolderPathA(HWND
,LPSTR
,int,BOOL
);
1432 BOOL WINAPI
SHGetSpecialFolderPathW(HWND
,LPWSTR
,int,BOOL
);
1434 /* SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K */
1435 HRESULT WINAPI
SHGetFolderPathA(HWND
,int,HANDLE
,DWORD
,LPSTR
);
1436 HRESULT WINAPI
SHGetFolderPathW(HWND
,int,HANDLE
,DWORD
,LPWSTR
);
1437 #if (_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500) /* ME or W2K */
1438 HRESULT WINAPI
SHGetFolderLocation(HWND
,int,HANDLE
,DWORD
,LPITEMIDLIST
*);
1440 #if (_WIN32_WINNT >= 0x0500)
1441 INT WINAPI
SHCreateDirectoryExA(HWND
,LPCSTR
,LPSECURITY_ATTRIBUTES
);
1442 INT WINAPI
SHCreateDirectoryExW(HWND
,LPCWSTR
,LPSECURITY_ATTRIBUTES
);
1443 HRESULT WINAPI
SHBindToParent(LPCITEMIDLIST
,REFIID
,VOID
**,LPCITEMIDLIST
*);
1445 #if (_WIN32_WINNT >= 0x0501) /* XP */
1446 HRESULT WINAPI
SHGetFolderPathAndSubDirA(HWND
,int,HANDLE
,DWORD
,LPCSTR
,LPSTR
);
1447 HRESULT WINAPI
SHGetFolderPathAndSubDirW(HWND
,int,HANDLE
,DWORD
,LPCWSTR
,LPWSTR
);
1449 void WINAPI
SHGetSettings(LPSHELLFLAGSTATE
,DWORD
);
1450 #if (_WIN32_WINNT >= 0x0500) /* W2K */
1451 void WINAPI
SHGetSetSettings(LPSHELLSTATE
,DWORD
,BOOL
);
1454 #if (_WIN32_WINNT >= 0x0500) /* W2K */
1455 BOOL WINAPI
ILIsEqual(LPCITEMIDLIST
, LPCITEMIDLIST
);
1456 BOOL WINAPI
ILIsParent(LPCITEMIDLIST
, LPCITEMIDLIST
, BOOL
);
1457 BOOL WINAPI
ILRemoveLastID(LPITEMIDLIST
);
1458 HRESULT WINAPI
ILLoadFromStream(IStream
*, LPITEMIDLIST
*);
1459 HRESULT WINAPI
ILSaveToStream(IStream
*, LPCITEMIDLIST
);
1460 LPITEMIDLIST WINAPI
ILAppendID(LPITEMIDLIST
, LPCSHITEMID
, BOOL
);
1461 LPITEMIDLIST WINAPI
ILClone(LPCITEMIDLIST
);
1462 LPITEMIDLIST WINAPI
ILCloneFirst(LPCITEMIDLIST
);
1463 LPITEMIDLIST WINAPI
ILCombine(LPCITEMIDLIST
, LPCITEMIDLIST
);
1464 LPITEMIDLIST WINAPI
ILFindChild(LPCITEMIDLIST
, LPCITEMIDLIST
);
1465 LPITEMIDLIST WINAPI
ILFindLastID(LPCITEMIDLIST
);
1466 LPITEMIDLIST WINAPI
ILGetNext(LPCITEMIDLIST
);
1467 UINT WINAPI
ILGetSize(LPCITEMIDLIST
);
1468 void WINAPI
ILFree(LPITEMIDLIST
);
1470 HRESULT WINAPI
SHCoCreateInstance(LPCWSTR
,REFCLSID
,IUnknown
*,REFIID
,void**);
1474 typedef IShellExecuteHookW IShellExecuteHook
;
1475 typedef IShellLinkW IShellLink
;
1476 typedef BROWSEINFOW BROWSEINFO
,*PBROWSEINFO
,*LPBROWSEINFO
;
1477 #define SHBrowseForFolder SHBrowseForFolderW
1478 #define SHGetDataFromIDList SHGetDataFromIDListW
1479 #define SHGetPathFromIDList SHGetPathFromIDListW
1480 #if (_WIN32_IE >= 0x0400)
1481 #define SHGetSpecialFolderPath SHGetSpecialFolderPathW
1483 #define SHGetFolderPath SHGetFolderPathW
1484 #if (_WIN32_WINNT >= 0x0500)
1485 #define SHCreateDirectoryEx SHCreateDirectoryExW
1487 #if (_WIN32_WINNT >= 0x0501)
1488 #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW
1490 #define FILEDESCRIPTOR FILEDESCRIPTORW
1491 #define LPFILEDESCRIPTOR LPFILEDESCRIPTORW
1492 #define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORW
1493 #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORW
1496 typedef IShellExecuteHookA IShellExecuteHook
;
1497 typedef IShellLinkA IShellLink
;
1498 typedef BROWSEINFOA BROWSEINFO
,*PBROWSEINFO
,*LPBROWSEINFO
;
1499 #define SHBrowseForFolder SHBrowseForFolderA
1500 #define SHGetDataFromIDList SHGetDataFromIDListA
1501 #define SHGetPathFromIDList SHGetPathFromIDListA
1502 #if (_WIN32_IE >= 0x0400)
1503 #define SHGetSpecialFolderPath SHGetSpecialFolderPathA
1505 #define SHGetFolderPath SHGetFolderPathA
1506 #if (_WIN32_WINNT >= 0x0500)
1507 #define SHCreateDirectoryEx SHCreateDirectoryExA
1509 #if (_WIN32_WINNT >= 0x0501)
1510 #define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA
1512 #define FILEDESCRIPTOR FILEDESCRIPTORA
1513 #define LPFILEDESCRIPTOR LPFILEDESCRIPTORA
1514 #define FILEGROUPDESCRIPTOR FILEGROUPDESCRIPTORA
1515 #define LPFILEGROUPDESCRIPTOR LPFILEGROUPDESCRIPTORA
1516 #endif /* UNICODE */
1518 DWORD WINAPI
SHFormatDrive(HWND
,UINT
,UINT
,UINT
);
1520 #define SHFMT_ID_DEFAULT 0xFFFF
1521 #define SHFMT_OPT_FULL 1
1522 #define SHFMT_OPT_SYSONLY 2
1523 #define SHFMT_ERROR 0xFFFFFFFF
1524 #define SHFMT_CANCEL 0xFFFFFFFE
1525 #define SHFMT_NOFORMAT 0xFFFFFFFD
1533 #endif /* _SHLOBJ_H */