14 #define BIF_RETURNONLYFSDIRS 1
15 #define BIF_DONTGOBELOWDOMAIN 2
16 #define BIF_STATUSTEXT 4
17 #define BIF_RETURNFSANCESTORS 8
18 #define BIF_EDITBOX 16
19 #define BIF_VALIDATE 32
20 #define BIF_NEWDIALOGSTYLE 64
21 #define BIF_BROWSEINCLUDEURLS 128
22 #define BIF_USENEWUI ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE )
23 #define BIF_BROWSEFORCOMPUTER 0x1000
24 #define BIF_BROWSEFORPRINTER 0x2000
25 #define BIF_BROWSEINCLUDEFILES 0x4000
26 #define BIF_SHAREABLE 0x8000
27 #define BFFM_INITIALIZED 1
28 #define BFFM_SELCHANGED 2
29 #define BFFM_SETSTATUSTEXT (WM_USER + 100)
30 #define BFFM_ENABLEOK (WM_USER + 101)
31 #define BFFM_SETSELECTION (WM_USER + 102)
32 #define DVASPECT_SHORTNAME 2
35 #define SHCNE_RENAMEITEM 1
36 #define SHCNE_CREATE 2
37 #define SHCNE_DELETE 4
39 #define SHCNE_RMDIR 16
40 #define SHCNE_MEDIAINSERTED 32
41 #define SHCNE_MEDIAREMOVED 64
42 #define SHCNE_DRIVEREMOVED 128
43 #define SHCNE_DRIVEADD 256
44 #define SHCNE_NETSHARE 512
45 #define SHCNE_NETUNSHARE 1024
46 #define SHCNE_ATTRIBUTES 2048
47 #define SHCNE_UPDATEDIR 4096
48 #define SHCNE_UPDATEITEM 8192
49 #define SHCNE_SERVERDISCONNECT 16384
50 #define SHCNE_UPDATEIMAGE 32768
51 #define SHCNE_DRIVEADDGUI 65536
52 #define SHCNE_RENAMEFOLDER 0x20000
53 #define SHCNE_FREESPACE 0x40000
54 #define SHCNE_ASSOCCHANGED 0x8000000
55 #define SHCNE_DISKEVENTS 0x2381F
56 #define SHCNE_GLOBALEVENTS 0xC0581E0
57 #define SHCNE_ALLEVENTS 0x7FFFFFFF
58 #define SHCNE_INTERRUPT 0x80000000
59 #define SHCNF_IDLIST 0
61 #define SHCNF_PRINTER 2
63 #define SHCNF_TYPE 0xFF
64 #define SHCNF_FLUSH 0x1000
65 #define SHCNF_FLUSHNOWAIT 0x2000
66 #define SFGAO_CANCOPY DROPEFFECT_COPY
67 #define SFGAO_CANMOVE DROPEFFECT_MOVE
68 #define SFGAO_CANLINK DROPEFFECT_LINK
69 #define SFGAO_CANRENAME 0x00000010L
70 #define SFGAO_CANDELETE 0x00000020L
71 #define SFGAO_HASPROPSHEET 0x00000040L
72 #define SFGAO_DROPTARGET 0x00000100L
73 #define SFGAO_CAPABILITYMASK 0x00000177L
74 #define SFGAO_LINK 0x00010000L
75 #define SFGAO_SHARE 0x00020000L
76 #define SFGAO_READONLY 0x00040000L
77 #define SFGAO_GHOSTED 0x00080000L
78 #define SFGAO_DISPLAYATTRMASK 0x000F0000L
79 #define SFGAO_FILESYSANCESTOR 0x10000000L
80 #define SFGAO_FOLDER 0x20000000L
81 #define SFGAO_FILESYSTEM 0x40000000L
82 #define SFGAO_HASSUBFOLDER 0x80000000L
83 #define SFGAO_CONTENTSMASK 0x80000000L
84 #define SFGAO_VALIDATE 0x01000000L
85 #define SFGAO_REMOVABLE 0x02000000L
87 #define STRRET_OFFSET 1
89 #define SHGDFIL_FINDDATA 1
90 #define SHGDFIL_NETRESOURCE 2
91 #define SHGDFIL_DESCRIPTIONID 3
92 #define SHDID_ROOT_REGITEM 1
93 #define SHDID_FS_FILE 2
94 #define SHDID_FS_DIRECTORY 3
95 #define SHDID_FS_OTHER 4
96 #define SHDID_COMPUTER_DRIVE35 5
97 #define SHDID_COMPUTER_DRIVE525 6
98 #define SHDID_COMPUTER_REMOVABLE 7
99 #define SHDID_COMPUTER_FIXED 8
100 #define SHDID_COMPUTER_NETDRIVE 9
101 #define SHDID_COMPUTER_CDROM 10
102 #define SHDID_COMPUTER_RAMDISK 11
103 #define SHDID_COMPUTER_OTHER 12
104 #define SHDID_NET_DOMAIN 13
105 #define SHDID_NET_SERVER 14
106 #define SHDID_NET_SHARE 15
107 #define SHDID_NET_RESTOFNET 16
108 #define SHDID_NET_OTHER 17
109 #ifndef REGSTR_PATH_EXPLORER
110 #define REGSTR_PATH_EXPLORER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer")
112 #define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")
113 #define CSIDL_DESKTOP 0
114 #define CSIDL_INTERNET 1
115 #define CSIDL_PROGRAMS 2
116 #define CSIDL_CONTROLS 3
117 #define CSIDL_PRINTERS 4
118 #define CSIDL_PERSONAL 5
119 #define CSIDL_FAVORITES 6
120 #define CSIDL_STARTUP 7
121 #define CSIDL_RECENT 8
122 #define CSIDL_SENDTO 9
123 #define CSIDL_BITBUCKET 10
124 #define CSIDL_STARTMENU 11
125 #define CSIDL_DESKTOPDIRECTORY 16
126 #define CSIDL_DRIVES 17
127 #define CSIDL_NETWORK 18
128 #define CSIDL_NETHOOD 19
129 #define CSIDL_FONTS 20
130 #define CSIDL_TEMPLATES 21
131 #define CSIDL_COMMON_STARTMENU 22
132 #define CSIDL_COMMON_PROGRAMS 23
133 #define CSIDL_COMMON_STARTUP 24
134 #define CSIDL_COMMON_DESKTOPDIRECTORY 25
135 #define CSIDL_APPDATA 26
136 #define CSIDL_PRINTHOOD 27
137 #define CSIDL_ALTSTARTUP 29
138 #define CSIDL_COMMON_ALTSTARTUP 30
139 #define CSIDL_COMMON_FAVORITES 31
140 #define CSIDL_INTERNET_CACHE 32
141 #define CSIDL_COOKIES 33
142 #define CSIDL_HISTORY 34
143 #define CFSTR_SHELLIDLIST TEXT("Shell IDList Array")
144 #define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets")
145 #define CFSTR_NETRESOURCES TEXT("Net Resource")
146 #define CFSTR_FILEDESCRIPTOR TEXT("FileGroupDescriptor")
147 #define CFSTR_FILECONTENTS TEXT("FileContents")
148 #define CFSTR_FILENAME TEXT("FileName")
149 #define CFSTR_PRINTERGROUP TEXT("PrinterFriendlyName")
150 #define CFSTR_FILENAMEMAP TEXT("FileNameMap")
151 #define CFSTR_INDRAGLOOP TEXT("InShellDragLoop")
152 #define CFSTR_PASTESUCCEEDED TEXT("Paste Succeeded")
153 #define CFSTR_PERFORMEDDROPEFFECT TEXT("Performed DropEffect")
154 #define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect")
155 #define CFSTR_SHELLURL TEXT("UniformResourceLocator")
157 #define CMF_DEFAULTONLY 1
158 #define CMF_VERBSONLY 2
159 #define CMF_EXPLORE 4
160 #define CMF_RESERVED 0xffff0000
162 #define GCS_HELPTEXTA 1
163 #define GCS_VALIDATEA 2
165 #define GCS_HELPTEXTW 5
166 #define GCS_VALIDATEW 6
167 #define GCS_UNICODE 4
169 #define GCS_VERB GCS_VERBW
170 #define GCS_HELPTEXT GCS_HELPTEXTW
171 #define GCS_VALIDATE GCS_VALIDATEW
173 #define GCS_VERB GCS_VERBA
174 #define GCS_HELPTEXT GCS_HELPTEXTA
175 #define GCS_VALIDATE GCS_VALIDATEA
177 #define CMDSTR_NEWFOLDER TEXT("NewFolder")
178 #define CMDSTR_VIEWLIST TEXT("ViewList")
179 #define CMDSTR_VIEWDETAILS TEXT("ViewDetails")
180 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
181 #define CMIC_MASK_ICON SEE_MASK_ICON
182 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
183 #define CMIC_MASK_MODAL 0x80000000
184 #define CMIC_VALID_SEE_FLAGS SEE_VALID_CMIC_FLAGS
185 #define GIL_OPENICON 1
186 #define GIL_FORSHELL 2
187 #define GIL_SIMULATEDOC 1
188 #define GIL_PERINSTANCE 2
189 #define GIL_PERCLASS 4
190 #define GIL_NOTFILENAME 8
191 #define GIL_DONTCACHE 16
193 #define FVSIF_PINNED 2
194 #define FVSIF_NEWFAILED 0x8000000
195 #define FVSIF_NEWFILE 0x80000000
196 #define FVSIF_CANVIEWIT 0x40000000
197 #define CDBOSC_SETFOCUS 0
198 #define CDBOSC_KILLFOCUS 1
199 #define CDBOSC_SELCHANGE 2
200 #define CDBOSC_RENAME 3
201 #define FCIDM_SHVIEWFIRST 0
202 #define FCIDM_SHVIEWLAST 0x7fff
203 #define FCIDM_BROWSERFIRST 0xa000
204 #define FCIDM_BROWSERLAST 0xbf00
205 #define FCIDM_GLOBALFIRST 0x8000
206 #define FCIDM_GLOBALLAST 0x9fff
207 #define FCIDM_MENU_FILE FCIDM_GLOBALFIRST
208 #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040)
209 #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080)
210 #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081)
211 #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0)
212 #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1)
213 #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100)
214 #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140)
215 #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150)
216 #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170)
217 #define FCIDM_TOOLBAR FCIDM_BROWSERFIRST
218 #define FCIDM_STATUS (FCIDM_BROWSERFIRST+1)
219 #define SBSP_DEFBROWSER 0
220 #define SBSP_SAMEBROWSER 1
221 #define SBSP_NEWBROWSER 2
222 #define SBSP_DEFMODE 0
223 #define SBSP_OPENMODE 16
224 #define SBSP_EXPLOREMODE 32
225 #define SBSP_ABSOLUTE 0
226 #define SBSP_RELATIVE 0x1000
227 #define SBSP_PARENT 0x2000
228 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
229 #define SBSP_REDIRECT 0x40000000
231 #define FCW_TOOLBAR 2
234 #define FCT_CONFIGABLE 2
235 #define FCT_ADDTOEND 4
236 #define SVSI_DESELECT 0
237 #define SVSI_SELECT 1
239 #define SVSI_DESELECTOTHERS 4
240 #define SVSI_ENSUREVISIBLE 8
241 #define SVSI_FOCUSED 16
242 #define SVGIO_BACKGROUND 0
243 #define SVGIO_SELECTION 1
244 #define SVGIO_ALLVIEW 2
245 #define SV2GV_CURRENTVIEW ((UINT)-1)
246 #define SV2GV_DEFAULTVIEW ((UINT)-2)
248 typedef struct _IDA
{
252 typedef struct _SHITEMID
{
255 } SHITEMID
, * LPSHITEMID
;
256 typedef const SHITEMID
*LPCSHITEMID
;
257 typedef struct _ITEMIDLIST
{
259 } ITEMIDLIST
,*LPITEMIDLIST
;
260 typedef const ITEMIDLIST
*LPCITEMIDLIST
;
261 typedef int (CALLBACK
* BFFCALLBACK
)(HWND
,UINT
,LPARAM
,LPARAM
);
262 typedef struct _browseinfoA
{
264 LPCITEMIDLIST pidlRoot
;
265 LPSTR pszDisplayName
;
271 } BROWSEINFOA
,*PBROWSEINFOA
,*LPBROWSEINFOA
;
272 typedef struct _browseinfoW
{
274 LPCITEMIDLIST pidlRoot
;
275 LPWSTR pszDisplayName
;
281 } BROWSEINFOW
,*PBROWSEINFOW
,*LPBROWSEINFOW
;
282 typedef struct _CMInvokeCommandInfo
{
292 } CMINVOKECOMMANDINFO
,*LPCMINVOKECOMMANDINFO
;
293 typedef struct _DROPFILES
{
298 } DROPFILES
,*LPDROPFILES
;
299 typedef enum tagSHGDN
{
302 SHGDN_FORPARSING
=0x8000
304 typedef enum tagSHCONTF
{
306 SHCONTF_NONFOLDERS
=64,
307 SHCONTF_INCLUDEHIDDEN
=128
309 typedef struct _STRRET
{
311 _ANONYMOUS_UNION
union {
318 FD_CLSID
=1,FD_SIZEPOINT
=2,FD_ATTRIBUTES
=4,FD_CREATETIME
=8,FD_ACCESSTIME
=16,
319 FD_WRITESTIME
=32,FD_FILESIZE
=64,FD_LINKUI
=0x8000
321 typedef struct _FILEDESCRIPTOR
{
326 DWORD dwFileAttributes
;
327 FILETIME ftCreationTime
;
328 FILETIME ftLastAccessTime
;
329 FILETIME ftLastWriteTime
;
332 CHAR cFileName
[MAX_PATH
];
333 } FILEDESCRIPTOR
,*LPFILEDESCRIPTOR
;
334 typedef struct _FILEGROUPDESCRIPTOR
{
336 FILEDESCRIPTOR fgd
[1];
337 } FILEGROUPDESCRIPTOR
,*LPFILEGROUPDESCRIPTOR
;
352 typedef PBYTE LPVIEWSETTINGS
;
354 FWF_AUTOARRANGE
=1,FWF_ABBREVIATEDNAMES
=2,FWF_SNAPTOGRID
=4,FWF_OWNERDATA
=8,
355 FWF_BESTFITWINDOW
=16,FWF_DESKTOP
=32,FWF_SINGLESEL
=64,FWF_NOSUBFOLDERS
=128,
356 FWF_TRANSPARENT
=256,FWF_NOCLIENTEDGE
=512,FWF_NOSCROLL
=0x400,FWF_ALIGNLEFT
=0x800,
357 FWF_SINGLECLICKACTIVATE
=0x8000
368 } FOLDERSETTINGS
,*LPFOLDERSETTINGS
;
369 typedef const FOLDERSETTINGS
*LPCFOLDERSETTINGS
;
377 OLECHAR strNewFile
[MAX_PATH
];
378 } FVSHOWINFO
,*LPFVSHOWINFO
;
379 typedef struct _NRESARRAY
{
382 } NRESARRAY
, *LPNRESARRAY
;
383 enum { SBSC_HIDE
,SBSC_SHOW
,SBSC_TOGGLE
,SBSC_QUERY
};
385 SBCMDID_ENABLESHOWTREE
,SBCMDID_SHOWCONTROL
,SBCMDID_CANCELNAVIGATION
,
386 SBCMDID_MAYSAVECHANGES
,SBCMDID_SETHLINKFRAME
,SBCMDID_ENABLESTOP
,SBCMDID_OPTIONS
389 SVUIA_DEACTIVATE
,SVUIA_ACTIVATE_NOFOCUS
,SVUIA_ACTIVATE_FOCUS
,
390 SVUIA_INPLACEACTIVATE
393 DECLARE_ENUMERATOR_(IEnumIDList
,LPITEMIDLIST
);
394 typedef IEnumIDList
*LPENUMIDLIST
;
397 #define INTERFACE IContextMenu
398 DECLARE_INTERFACE_(IContextMenu
,IUnknown
)
400 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
401 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
402 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
403 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
404 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
405 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
407 typedef IContextMenu
*LPCONTEXTMENU
;
410 #define INTERFACE IContextMenu2
411 DECLARE_INTERFACE_(IContextMenu2
,IUnknown
)
413 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
414 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
415 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
416 STDMETHOD(QueryContextMenu
)(THIS_ HMENU
,UINT
,UINT
,UINT
,UINT
) PURE
;
417 STDMETHOD(HandleMenuMsg
)(THIS_ UINT
,WPARAM
,LPARAM
) PURE
;
418 STDMETHOD(InvokeCommand
)(THIS_ LPCMINVOKECOMMANDINFO
) PURE
;
419 STDMETHOD(GetCommandString
)(THIS_ UINT
,UINT
,PUINT
,LPSTR
,UINT
) PURE
;
421 typedef IContextMenu2
*LPCONTEXTMENU2
;
424 #define INTERFACE IShellExtInit
425 DECLARE_INTERFACE_(IShellExtInit
, IUnknown
)
427 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
428 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
429 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
430 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
,LPDATAOBJECT
,HKEY
) PURE
;
432 typedef IShellExtInit
*LPSHELLEXTINIT
;
435 #define INTERFACE IShellPropSheetExt
436 DECLARE_INTERFACE_(IShellPropSheetExt
, IUnknown
)
438 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
439 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
440 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
441 STDMETHOD(AddPages
)(THIS_ LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
442 STDMETHOD(ReplacePage
)(THIS_ UINT
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
444 typedef IShellPropSheetExt
*LPSHELLPROPSHEETEXT
;
447 #define INTERFACE IExtractIcon
448 DECLARE_INTERFACE_(IExtractIcon
, IUnknown
) /* exic */
450 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
451 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
452 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
453 STDMETHOD(GetIconLocation
)(THIS_ UINT
,LPSTR
,UINT
,int*,PUINT
) PURE
;
454 STDMETHOD(Extract
)(THIS_ LPCSTR
,UINT
,HICON
*,HICON
*,UINT
) PURE
;
456 typedef IExtractIcon
*LPEXTRACTICON
;
459 #define INTERFACE IShellLinkA
460 DECLARE_INTERFACE_(IShellLinkA
, IUnknown
)
462 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
463 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
464 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
465 STDMETHOD(GetPath
)(THIS_ LPSTR
,int,WIN32_FIND_DATAA
*,DWORD
) PURE
;
466 STDMETHOD(GetIDList
)(THIS_ LPITEMIDLIST
*) PURE
;
467 STDMETHOD(SetIDList
)(THIS_ LPCITEMIDLIST
) PURE
;
468 STDMETHOD(GetDescription
)(THIS_ LPSTR
,int) PURE
;
469 STDMETHOD(SetDescription
)(THIS_ LPCSTR
) PURE
;
470 STDMETHOD(GetWorkingDirectory
)(THIS_ LPSTR
,int) PURE
;
471 STDMETHOD(SetWorkingDirectory
)(THIS_ LPCSTR
) PURE
;
472 STDMETHOD(GetArguments
)(THIS_ LPSTR
,int) PURE
;
473 STDMETHOD(SetArguments
)(THIS_ LPCSTR
) PURE
;
474 STDMETHOD(GetHotkey
)(THIS_ PWORD
) PURE
;
475 STDMETHOD(SetHotkey
)(THIS_ WORD
) PURE
;
476 STDMETHOD(GetShowCmd
)(THIS_
int*) PURE
;
477 STDMETHOD(SetShowCmd
)(THIS_
int) PURE
;
478 STDMETHOD(GetIconLocation
)(THIS_ LPSTR
,int,int*) PURE
;
479 STDMETHOD(SetIconLocation
)(THIS_ LPCSTR
,int) PURE
;
480 STDMETHOD(SetRelativePath
)(THIS_ LPCSTR
,DWORD
) PURE
;
481 STDMETHOD(Resolve
)(THIS_ HWND
,DWORD
) PURE
;
482 STDMETHOD(SetPath
)(THIS_ LPCSTR
) PURE
;
485 #define INTERFACE IShellLinkW
486 DECLARE_INTERFACE_(IShellLinkW
, IUnknown
)
488 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
489 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
490 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
491 STDMETHOD(GetPath
)(THIS_ LPSTR
,int,WIN32_FIND_DATAW
*,DWORD
) PURE
;
492 STDMETHOD(GetIDList
)(THIS_ LPITEMIDLIST
*) PURE
;
493 STDMETHOD(SetIDList
)(THIS_ LPCITEMIDLIST
) PURE
;
494 STDMETHOD(GetDescription
)(THIS_ LPWSTR
,int) PURE
;
495 STDMETHOD(SetDescription
)(THIS_ LPCWSTR
) PURE
;
496 STDMETHOD(GetWorkingDirectory
)(THIS_ LPWSTR
,int) PURE
;
497 STDMETHOD(SetWorkingDirectory
)(THIS_ LPCWSTR
) PURE
;
498 STDMETHOD(GetArguments
)(THIS_ LPWSTR
,int) PURE
;
499 STDMETHOD(SetArguments
)(THIS_ LPCWSTR
) PURE
;
500 STDMETHOD(GetHotkey
)(THIS_ PWORD
) PURE
;
501 STDMETHOD(SetHotkey
)(THIS_ WORD
) PURE
;
502 STDMETHOD(GetShowCmd
)(THIS_
int*) PURE
;
503 STDMETHOD(SetShowCmd
)(THIS_
int) PURE
;
504 STDMETHOD(GetIconLocation
)(THIS_ LPWSTR
,int,int*) PURE
;
505 STDMETHOD(SetIconLocation
)(THIS_ LPCWSTR
,int) PURE
;
506 STDMETHOD(SetRelativePath
)(THIS_ LPCWSTR
,DWORD
) PURE
;
507 STDMETHOD(Resolve
)(THIS_ HWND
,DWORD
) PURE
;
508 STDMETHOD(SetPath
)(THIS_ LPCWSTR
) PURE
;
512 #define INTERFACE IShellFolder
513 DECLARE_INTERFACE_(IShellFolder
, IUnknown
)
515 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
516 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
517 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
518 STDMETHOD(ParseDisplayName
)(THIS_ HWND
,LPBC
,LPOLESTR
,PULONG
,LPITEMIDLIST
*,PULONG
) PURE
;
519 STDMETHOD(EnumObjects
)(THIS_ HWND
,DWORD
,LPENUMIDLIST
*) PURE
;
520 STDMETHOD(BindToObject
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
521 STDMETHOD(BindToStorage
)(THIS_ LPCITEMIDLIST
,LPBC
,REFIID
,PVOID
*) PURE
;
522 STDMETHOD(CompareIDs
)(THIS_ LPARAM
,LPCITEMIDLIST
,LPCITEMIDLIST
) PURE
;
523 STDMETHOD(CreateViewObject
)(THIS_ HWND
,REFIID
,PVOID
*) PURE
;
524 STDMETHOD(GetAttributesOf
)(THIS_ UINT
,LPCITEMIDLIST
*,PULONG
) PURE
;
525 STDMETHOD(GetUIObjectOf
)(THIS_ HWND
,UINT
,LPCITEMIDLIST
*,REFIID
,PUINT
,PVOID
*) PURE
;
526 STDMETHOD(GetDisplayNameOf
)(THIS_ LPCITEMIDLIST
,DWORD
,LPSTRRET
) PURE
;
527 STDMETHOD(SetNameOf
)(THIS_ HWND
,LPCITEMIDLIST
,LPCOLESTR
,DWORD
,LPITEMIDLIST
*) PURE
;
529 typedef IShellFolder
*LPSHELLFOLDER
;
532 #define INTERFACE ICopyHook
533 DECLARE_INTERFACE_(ICopyHook
, IUnknown
)
535 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
536 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
537 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
538 STDMETHOD_(UINT
,CopyCallback
)(THIS_ HWND
,UINT
,UINT
,LPCSTR
,DWORD
,LPCSTR
,DWORD
) PURE
;
540 typedef ICopyHook
*LPCOPYHOOK
;
543 #define INTERFACE IFileViewerSite
544 DECLARE_INTERFACE(IFileViewerSite
)
546 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
547 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
548 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
549 STDMETHOD(SetPinnedWindow
)(THIS_ HWND
) PURE
;
550 STDMETHOD(GetPinnedWindow
)(THIS_ HWND
*) PURE
;
552 typedef IFileViewerSite
*LPFILEVIEWERSITE
;
555 #define INTERFACE IFileViewer
556 DECLARE_INTERFACE(IFileViewer
)
558 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
559 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
560 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
561 STDMETHOD(ShowInitialize
)(THIS_ LPFILEVIEWERSITE
) PURE
;
562 STDMETHOD(Show
)(THIS_ LPFVSHOWINFO
) PURE
;
563 STDMETHOD(PrintTo
)(THIS_ LPSTR
,BOOL
) PURE
;
565 typedef IFileViewer
*LPFILEVIEWER
;
568 #define INTERFACE ICommDlgBrowser
569 DECLARE_INTERFACE_(ICommDlgBrowser
,IUnknown
)
571 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
572 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
573 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
574 STDMETHOD(OnDefaultCommand
)(THIS
) PURE
;
575 STDMETHOD(OnStateChange
)(THIS_ ULONG
) PURE
;
576 STDMETHOD(IncludeObject
)(THIS_ LPCITEMIDLIST
) PURE
;
578 typedef ICommDlgBrowser
*LPCOMMDLGBROWSER
;
581 #define INTERFACE IPersistFolder
582 DECLARE_INTERFACE_(IPersistFolder
,IPersist
)
584 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
585 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
586 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
587 STDMETHOD(GetClassID
)(THIS_ CLSID
) PURE
;
588 STDMETHOD(Initialize
)(THIS_ LPCITEMIDLIST
) PURE
;
590 typedef IPersistFolder
*LPPERSISTFOLDER
;
592 typedef interface IShellBrowser
*LPSHELLBROWSER
;
593 typedef interface IShellView
*LPSHELLVIEW
;
596 #define INTERFACE IShellBrowser
597 DECLARE_INTERFACE_(IShellBrowser
,IOleWindow
)
599 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
600 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
601 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
602 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
603 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
604 STDMETHOD(InsertMenusSB
)(THIS_ HMENU
,LPOLEMENUGROUPWIDTHS
) PURE
;
605 STDMETHOD(SetMenuSB
)(THIS_ HMENU
,HOLEMENU
,HWND
) PURE
;
606 STDMETHOD(RemoveMenusSB
)(THIS_ HMENU
) PURE
;
607 STDMETHOD(SetStatusTextSB
) (THIS_ LPCOLESTR
) PURE
;
608 STDMETHOD(EnableModelessSB
) (THIS_ BOOL
) PURE
;
609 STDMETHOD(TranslateAcceleratorSB
) (THIS_ LPMSG
,WORD
) PURE
;
610 STDMETHOD(BrowseObject
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
611 STDMETHOD(GetViewStateStream
)(THIS_ DWORD
,LPSTREAM
*) PURE
;
612 STDMETHOD(GetControlWindow
)(THIS_ UINT
,HWND
*) PURE
;
613 STDMETHOD(SendControlMsg
)(THIS_ UINT
,UINT
,WPARAM
,LPARAM
,LRESULT
*) PURE
;
614 STDMETHOD(QueryActiveShellView
)(THIS_ LPSHELLVIEW
*) PURE
;
615 STDMETHOD(OnViewWindowActive
)(THIS_ LPSHELLVIEW
) PURE
;
616 STDMETHOD(SetToolbarItems
)(THIS_ LPTBBUTTON
,UINT
,UINT
) PURE
;
620 #define INTERFACE IShellView
621 DECLARE_INTERFACE_(IShellView
,IOleWindow
)
624 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
625 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
626 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
627 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
628 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
629 STDMETHOD(TranslateAccelerator
) (THIS_ LPMSG
) PURE
;
630 #ifdef _FIX_ENABLEMODELESS_CONFLICT
631 STDMETHOD(EnableModelessSV
)(THIS_ BOOL
) PURE
;
633 STDMETHOD(EnableModeless
)(THIS_ BOOL
) PURE
;
635 STDMETHOD(UIActivate
)(THIS_ UINT
) PURE
;
636 STDMETHOD(Refresh
) (THIS
) PURE
;
637 STDMETHOD(CreateViewWindow
)(THIS_ IShellView
*,LPCFOLDERSETTINGS
,LPSHELLBROWSER
,RECT
*,HWND
*) PURE
;
638 STDMETHOD(DestroyViewWindow
)(THIS
) PURE
;
639 STDMETHOD(GetCurrentInfo
)(THIS_ LPFOLDERSETTINGS
) PURE
;
640 STDMETHOD(AddPropertySheetPages
)(THIS_ DWORD
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
641 STDMETHOD(SaveViewState
)(THIS
) PURE
;
642 STDMETHOD(SelectItem
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
643 STDMETHOD(GetItemObject
)(THIS_ UINT
,REFIID
,PVOID
*) PURE
;
645 typedef GUID SHELLVIEWID
;
646 typedef struct _SV2CVW2_PARAMS
{
649 FOLDERSETTINGS
const *pfs
;
650 IShellBrowser
*psbOwner
;
652 SHELLVIEWID
const *pvid
;
654 } SV2CVW2_PARAMS
,*LPSV2CVW2_PARAMS
;
656 #define INTERFACE IShellView2
657 DECLARE_INTERFACE_(IShellView2
,IShellView
)
660 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
661 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
662 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
663 STDMETHOD(GetWindow
)(THIS_ HWND
*) PURE
;
664 STDMETHOD(ContextSensitiveHelp
)(THIS_ BOOL
) PURE
;
665 STDMETHOD(TranslateAccelerator
) (THIS_ LPMSG
) PURE
;
666 #ifdef _FIX_ENABLEMODELESS_CONFLICT
667 STDMETHOD(EnableModelessSV
)(THIS_ BOOL
) PURE
;
669 STDMETHOD(EnableModeless
)(THIS_ BOOL
) PURE
;
671 STDMETHOD(UIActivate
)(THIS_ UINT
) PURE
;
672 STDMETHOD(Refresh
) (THIS
) PURE
;
673 STDMETHOD(CreateViewWindow
)(THIS_ IShellView
*,LPCFOLDERSETTINGS
,LPSHELLBROWSER
,RECT
*,HWND
*) PURE
;
674 STDMETHOD(DestroyViewWindow
)(THIS
) PURE
;
675 STDMETHOD(GetCurrentInfo
)(THIS_ LPFOLDERSETTINGS
) PURE
;
676 STDMETHOD(AddPropertySheetPages
)(THIS_ DWORD
,LPFNADDPROPSHEETPAGE
,LPARAM
) PURE
;
677 STDMETHOD(SaveViewState
)(THIS
) PURE
;
678 STDMETHOD(SelectItem
)(THIS_ LPCITEMIDLIST
,UINT
) PURE
;
679 STDMETHOD(GetItemObject
)(THIS_ UINT
,REFIID
,PVOID
*) PURE
;
680 STDMETHOD(GetView
)(THIS_ SHELLVIEWID
*,ULONG
) PURE
;
681 STDMETHOD(CreateViewWindow2
)(THIS_ LPSV2CVW2_PARAMS
) PURE
;
685 #define INTERFACE IShellExecuteHookA
686 DECLARE_INTERFACE_(IShellExecuteHookA
,IUnknown
)
688 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
689 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
690 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
691 STDMETHOD(Execute
)(THIS_ LPSHELLEXECUTEINFOA
) PURE
;
694 #define INTERFACE IShellExecuteHookW
695 DECLARE_INTERFACE_(IShellExecuteHookW
,IUnknown
)
697 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
698 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
699 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
700 STDMETHOD(Execute
)(THIS_ LPSHELLEXECUTEINFOW
) PURE
;
704 #define INTERFACE IShellIcon
705 DECLARE_INTERFACE_(IShellIcon
,IUnknown
)
707 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
708 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
709 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
710 STDMETHOD(GetIconOf
)(THIS_ LPCITEMIDLIST
,UINT
,PINT
) PURE
;
712 typedef IShellIcon
*LPSHELLICON
;
714 void WINAPI
SHAddToRecentDocs(UINT
,PCVOID
);
715 LPITEMIDLIST WINAPI
SHBrowseForFolderA(PBROWSEINFOA
);
716 LPITEMIDLIST WINAPI
SHBrowseForFolderW(PBROWSEINFOW
);
717 void WINAPI
SHChangeNotify(LONG
,UINT
,PCVOID
,PCVOID
);
718 HRESULT WINAPI
SHGetDataFromIDListA(LPSHELLFOLDER
,LPCITEMIDLIST
,int,PVOID
,int);
719 HRESULT WINAPI
SHGetDataFromIDListW(LPSHELLFOLDER
,LPCITEMIDLIST
,int,PVOID
,int);
720 HRESULT WINAPI
SHGetDesktopFolder(LPSHELLFOLDER
*);
721 HRESULT WINAPI
SHGetInstanceExplorer(LPUNKNOWN
);
722 HRESULT WINAPI
SHGetMalloc(LPMALLOC
*);
723 BOOL WINAPI
SHGetPathFromIDListA(LPCITEMIDLIST
,LPSTR
);
724 BOOL WINAPI
SHGetPathFromIDListW(LPCITEMIDLIST
,LPWSTR
);
725 HRESULT WINAPI
SHGetSpecialFolderLocation(HWND
,int,LPITEMIDLIST
*);
726 HRESULT WINAPI
SHLoadInProc(REFCLSID
);
727 /* FIXME/TODO: Only valid for _WIN32_IE >= 400? */
728 BOOL WINAPI
SHGetSpecialFolderPathA(HWND
,LPSTR
,int,BOOL
);
729 BOOL WINAPI
SHGetSpecialFolderPathW(HWND
,LPSTR
,int,BOOL
);
732 typedef IShellExecuteHookW IShellExecuteHook
;
733 typedef IShellLinkW IShellLink
;
734 typedef BROWSEINFOW BROWSEINFO
,*PBROWSEINFO
,*LPBROWSEINFO
;
735 #define SHBrowseForFolder SHBrowseForFolderW
736 #define SHGetDataFromIDList SHGetDataFromIDListW
737 #define SHGetPathFromIDList SHGetPathFromIDListW
738 /* FIXME/TODO: Only valid for _WIN32_IE >= 400? */
739 #define SHGetSpecialFolderPath SHGetSpecialFolderPathW
741 typedef IShellExecuteHookA IShellExecuteHook
;
742 typedef IShellLinkA IShellLink
;
743 typedef BROWSEINFOA BROWSEINFO
,*PBROWSEINFO
,*LPBROWSEINFO
;
744 #define SHBrowseForFolder SHBrowseForFolderA
745 #define SHGetDataFromIDList SHGetDataFromIDListA
746 #define SHGetPathFromIDList SHGetPathFromIDListA
747 /* FIXME/TODO: Only valid for _WIN32_IE >= 400? */
748 #define SHGetSpecialFolderPath SHGetSpecialFolderPathA
757 #endif /* _SHLOBJ_H */