2 * Copyright (C) the Wine project
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef __WINE_SHLOBJ_H
20 #define __WINE_SHLOBJ_H
29 #endif /* defined(__cplusplus) */
37 BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath);
38 BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath);
39 #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
42 #include <wine/obj_shellfolder.h>
43 #include <wine/obj_contextmenu.h>
44 #include <wine/obj_extracticon.h>
45 #include <wine/obj_commdlgbrowser.h>
46 #include <wine/obj_dockingwindowframe.h>
47 #include <wine/obj_dragdrophelper.h>
49 /*****************************************************************************
50 * Predeclare interfaces
52 typedef struct IShellIcon IShellIcon, *LPSHELLICON;
55 /*****************************************************************************
56 * IContextMenu interface
60 /* DATAOBJECT_InitShellIDList*/
61 #define CFSTR_SHELLIDLIST "Shell IDList Array" /* CF_IDLIST */
63 extern UINT cfShellIDList;
70 #define CFSTR_SHELLIDLISTOFFSET "Shell Object Offsets" /* CF_OBJECTPOSITIONS */
71 #define CFSTR_NETRESOURCES "Net Resource" /* CF_NETRESOURCE */
73 /* DATAOBJECT_InitFileGroupDesc */
74 #define CFSTR_FILEDESCRIPTORA "FileGroupDescriptor" /* CF_FILEGROUPDESCRIPTORA */
75 extern UINT cfFileGroupDesc;
77 #define CFSTR_FILEDESCRIPTORW "FileGroupDescriptorW" /* CF_FILEGROUPDESCRIPTORW */
79 /* DATAOBJECT_InitFileContents*/
80 #define CFSTR_FILECONTENTS "FileContents" /* CF_FILECONTENTS */
81 extern UINT cfFileContents;
83 #define CFSTR_FILENAMEA "FileName" /* CF_FILENAMEA */
84 #define CFSTR_FILENAMEW "FileNameW" /* CF_FILENAMEW */
85 #define CFSTR_PRINTERGROUP "PrinterFriendlyName" /* CF_PRINTERS */
86 #define CFSTR_FILENAMEMAPA "FileNameMap" /* CF_FILENAMEMAPA */
87 #define CFSTR_FILENAMEMAPW "FileNameMapW" /* CF_FILENAMEMAPW */
88 #define CFSTR_SHELLURL "UniformResourceLocator"
89 #define CFSTR_PREFERREDDROPEFFECT "Preferred DropEffect"
90 #define CFSTR_PERFORMEDDROPEFFECT "Performed DropEffect"
91 #define CFSTR_PASTESUCCEEDED "Paste Succeeded"
92 #define CFSTR_INDRAGLOOP "InShellDragLoop"
94 #define CFSTR_FILENAME WINELIB_NAME_AW(CFSTR_FILENAME)
97 /************************************************************************
98 * IShellView interface
101 typedef GUID SHELLVIEWID;
102 #define SV_CLASS_NAME ("SHELLDLL_DefView")
104 #define FCIDM_SHVIEWFIRST 0x0000
106 #define FCIDM_SHVIEW_ARRANGE 0x7001
107 #define FCIDM_SHVIEW_DELETE 0x7011
108 #define FCIDM_SHVIEW_PROPERTIES 0x7013
109 #define FCIDM_SHVIEW_CUT 0x7018
110 #define FCIDM_SHVIEW_COPY 0x7019
111 #define FCIDM_SHVIEW_INSERT 0x701A
112 #define FCIDM_SHVIEW_UNDO 0x701B
113 #define FCIDM_SHVIEW_INSERTLINK 0x701C
114 #define FCIDM_SHVIEW_SELECTALL 0x7021
115 #define FCIDM_SHVIEW_INVERTSELECTION 0x7022
117 #define FCIDM_SHVIEW_BIGICON 0x7029
118 #define FCIDM_SHVIEW_SMALLICON 0x702A
119 #define FCIDM_SHVIEW_LISTVIEW 0x702B
120 #define FCIDM_SHVIEW_REPORTVIEW 0x702C
121 /* 0x7030-0x703f are used by the shellbrowser */
122 #define FCIDM_SHVIEW_AUTOARRANGE 0x7031
123 #define FCIDM_SHVIEW_SNAPTOGRID 0x7032
125 #define FCIDM_SHVIEW_HELP 0x7041
126 #define FCIDM_SHVIEW_RENAME 0x7050
127 #define FCIDM_SHVIEW_CREATELINK 0x7051
128 #define FCIDM_SHVIEW_NEWLINK 0x7052
129 #define FCIDM_SHVIEW_NEWFOLDER 0x7053
131 #define FCIDM_SHVIEW_REFRESH 0x7100 /* FIXME */
132 #define FCIDM_SHVIEW_EXPLORE 0x7101 /* FIXME */
133 #define FCIDM_SHVIEW_OPEN 0x7102 /* FIXME */
135 #define FCIDM_SHVIEWLAST 0x7fff
136 #define FCIDM_BROWSERFIRST 0xA000
137 /* undocumented toolbar items from stddlg's*/
138 #define FCIDM_TB_UPFOLDER 0xA001
139 #define FCIDM_TB_NEWFOLDER 0xA002
140 #define FCIDM_TB_SMALLICON 0xA003
141 #define FCIDM_TB_REPORTVIEW 0xA004
142 #define FCIDM_TB_DESKTOP 0xA005 /* FIXME */
144 #define FCIDM_BROWSERLAST 0xbf00
145 #define FCIDM_GLOBALFIRST 0x8000
146 #define FCIDM_GLOBALLAST 0x9fff
149 * Global submenu IDs and separator IDs
151 #define FCIDM_MENU_FILE (FCIDM_GLOBALFIRST+0x0000)
152 #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040)
153 #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080)
154 #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081)
155 #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0)
156 #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1)
157 #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100)
158 #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140)
159 #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150)
160 #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170)
162 /* control IDs known to the view */
163 #define FCIDM_TOOLBAR (FCIDM_BROWSERFIRST + 0)
164 #define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1)
167 /****************************************************************************
168 * IShellIcon interface
171 #define INTERFACE IShellIcon
172 #define IShellIcon_METHODS \
174 STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST pidl, UINT flags, LPINT lpIconIndex) PURE;
175 ICOM_DEFINE(IShellIcon, IUnknown)
179 /*** IUnknown methods ***/
180 #define IShellIcon_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
181 #define IShellIcon_AddRef(p) (p)->lpVtbl->AddRef(p)
182 #define IShellIcon_Release(p) (p)->lpVtbl->Release(p)
183 /*** IShellIcon methods ***/
184 #define IShellIcon_GetIconOf(p,a,b,c) (p)->lpVtbl->GetIconOf(p,a,b,c)
187 /****************************************************************************
188 * SHAddToRecentDocs API
190 #define SHARD_PIDL 0x00000001L
191 #define SHARD_PATHA 0x00000002L
192 #define SHARD_PATHW 0x00000003L
193 #define SHARD_PATH WINELIB_NAME_AW(SHARD_PATH)
195 DWORD WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv);
197 /****************************************************************************
200 #define SE_ERR_FNF 2 /* file not found */
201 #define SE_ERR_PNF 3 /* path not found */
202 #define SE_ERR_ACCESSDENIED 5 /* access denied */
203 #define SE_ERR_OOM 8 /* out of memory */
204 #define SE_ERR_DLLNOTFOUND 32
205 #define SE_ERR_SHARE 26
206 #define SE_ERR_ASSOCINCOMPLETE 27
207 #define SE_ERR_DDETIMEOUT 28
208 #define SE_ERR_DDEFAIL 29
209 #define SE_ERR_DDEBUSY 30
210 #define SE_ERR_NOASSOC 31
212 #define SEE_MASK_CLASSNAME 0x00000001
213 #define SEE_MASK_CLASSKEY 0x00000003
214 #define SEE_MASK_IDLIST 0x00000004
215 #define SEE_MASK_INVOKEIDLIST 0x0000000c
216 #define SEE_MASK_ICON 0x00000010
217 #define SEE_MASK_HOTKEY 0x00000020
218 #define SEE_MASK_NOCLOSEPROCESS 0x00000040
219 #define SEE_MASK_CONNECTNETDRV 0x00000080
220 #define SEE_MASK_FLAG_DDEWAIT 0x00000100
221 #define SEE_MASK_DOENVSUBST 0x00000200
222 #define SEE_MASK_FLAG_NO_UI 0x00000400
223 #define SEE_MASK_UNICODE 0x00004000
224 #define SEE_MASK_NO_CONSOLE 0x00008000
225 #define SEE_MASK_ASYNCOK 0x00100000
226 #define SEE_MASK_HMONITOR 0x00200000
228 typedef struct _SHELLEXECUTEINFOA
238 /* Optional fields */
248 } SHELLEXECUTEINFOA, *LPSHELLEXECUTEINFOA;
250 typedef struct _SHELLEXECUTEINFOW
256 LPCWSTR lpParameters;
270 } SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW;
272 #define SHELLEXECUTEINFO WINELIB_NAME_AW(SHELLEXECUTEINFO)
273 #define LPSHELLEXECUTEINFO WINELIB_NAME_AW(LPSHELLEXECUTEINFO)
275 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo);
276 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo);
277 #define ShellExecuteEx WINELIB_NAME_AW(ShellExecuteEx)
279 void WINAPI WinExecErrorA(HWND hwnd,INT error, LPCSTR lpstrFileName, LPCSTR lpstrTitle);
280 void WINAPI WinExecErrorW(HWND hwnd,INT error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle);
281 #define WinExecError WINELIB_NAME_AW(WinExecError)
285 /****************************************************************************
286 * SHBrowseForFolder API
288 typedef INT (CALLBACK *BFFCALLBACK)(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData);
290 typedef struct tagBROWSEINFOA {
292 LPCITEMIDLIST pidlRoot;
293 LPSTR pszDisplayName;
299 } BROWSEINFOA, *PBROWSEINFOA, *LPBROWSEINFOA;
301 typedef struct tagBROWSEINFOW {
303 LPCITEMIDLIST pidlRoot;
304 LPWSTR pszDisplayName;
310 } BROWSEINFOW, *PBROWSEINFOW, *LPBROWSEINFOW;
312 #define BROWSEINFO WINELIB_NAME_AW(BROWSEINFO)
313 #define PBROWSEINFO WINELIB_NAME_AW(PBROWSEINFO)
314 #define LPBROWSEINFO WINELIB_NAME_AW(LPBROWSEINFO)
316 /* Browsing for directory. */
317 #define BIF_RETURNONLYFSDIRS 0x0001
318 #define BIF_DONTGOBELOWDOMAIN 0x0002
319 #define BIF_STATUSTEXT 0x0004
320 #define BIF_RETURNFSANCESTORS 0x0008
321 #define BIF_EDITBOX 0x0010
322 #define BIF_VALIDATE 0x0020
323 #define BIF_NEWDIALOGSTYLE 0x0040
325 #define BIF_BROWSEFORCOMPUTER 0x1000
326 #define BIF_BROWSEFORPRINTER 0x2000
327 #define BIF_BROWSEINCLUDEFILES 0x4000
329 /* message from browser */
330 #define BFFM_INITIALIZED 1
331 #define BFFM_SELCHANGED 2
332 #define BFFM_VALIDATEFAILEDA 3 /* lParam:szPath ret:1(cont),0(EndDialog) */
333 #define BFFM_VALIDATEFAILEDW 4 /* lParam:wzPath ret:1(cont),0(EndDialog) */
335 /* messages to browser */
336 #define BFFM_SETSTATUSTEXTA (WM_USER+100)
337 #define BFFM_ENABLEOK (WM_USER+101)
338 #define BFFM_SETSELECTIONA (WM_USER+102)
339 #define BFFM_SETSELECTIONW (WM_USER+103)
340 #define BFFM_SETSTATUSTEXTW (WM_USER+104)
341 #define BFFM_SETOKTEXT (WM_USER+105)
342 #define BFFM_SETEXPANDED (WM_USER+106)
344 LPITEMIDLIST WINAPI SHBrowseForFolderA(LPBROWSEINFOA lpbi);
345 LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi);
346 #define SHBrowseForFolder WINELIB_NAME_AW(SHBrowseForFolder)
347 #define BFFM_SETSTATUSTEXT WINELIB_NAME_AW(BFFM_SETSTATUSTEXT)
348 #define BFFM_SETSELECTION WINELIB_NAME_AW(BFFM_SETSELECTION)
349 #define BFFM_VALIDATEFAILED WINELIB_NAME_AW(BFFM_VALIDATEFAILED)
351 /****************************************************************************
352 * SHGetDataFromIDList API
354 #define SHGDFIL_FINDDATA 1
355 #define SHGDFIL_NETRESOURCE 2
356 #define SHGDFIL_DESCRIPTIONID 3
358 #define SHDID_ROOT_REGITEM 1
359 #define SHDID_FS_FILE 2
360 #define SHDID_FS_DIRECTORY 3
361 #define SHDID_FS_OTHER 4
362 #define SHDID_COMPUTER_DRIVE35 5
363 #define SHDID_COMPUTER_DRIVE525 6
364 #define SHDID_COMPUTER_REMOVABLE 7
365 #define SHDID_COMPUTER_FIXED 8
366 #define SHDID_COMPUTER_NETDRIVE 9
367 #define SHDID_COMPUTER_CDROM 10
368 #define SHDID_COMPUTER_RAMDISK 11
369 #define SHDID_COMPUTER_OTHER 12
370 #define SHDID_NET_DOMAIN 13
371 #define SHDID_NET_SERVER 14
372 #define SHDID_NET_SHARE 15
373 #define SHDID_NET_RESTOFNET 16
374 #define SHDID_NET_OTHER 17
375 #define SHDID_COMPUTER_IMAGING 18
376 #define SHDID_COMPUTER_AUDIO 19
377 #define SHDID_COMPUTER_SHAREDDOCS 20
379 typedef struct _SHDESCRIPTIONID
380 { DWORD dwDescriptionId;
382 } SHDESCRIPTIONID, *LPSHDESCRIPTIONID;
384 HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb);
385 HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb);
386 #define SHGetDataFromIDList WINELIB_NAME_AW(SHGetDataFromIDList)
388 BOOL WINAPI SHGetSpecialFolderPathA (HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate);
389 BOOL WINAPI SHGetSpecialFolderPathW (HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate);
390 #define SHGetSpecialFolderPath WINELIB_NAME_AW(SHGetSpecialFolderPath)
392 /****************************************************************************
397 * IShellFolderViewCallback Callback
398 * This "callback" is called by the shells default IShellView implementation (that
399 * we got using SHCreateShellViewEx()), to notify us of the various things that
400 * are happening to the shellview (and ask for things too).
402 * You don't have to support anything here - anything you don't want to
403 * handle, the shell will do itself if you just return E_NOTIMPL. This parameters
404 * that the shell passes to this function are entirely undocumented.
406 * HOWEVER, as the cabview sample as originally written used this callback, the
407 * writers implemented the callback mechanism on top of their own IShellView.
408 * Look there for some clues on what to do here.
411 typedef HRESULT (CALLBACK *SHELLVIEWPROC)(DWORD dwUserParam,LPSHELLFOLDER psf,
412 HWND hwnd,UINT uMsg,UINT wParam,LPARAM lParam);
414 /* NF valid values for the "viewmode" item of the SHELLTEMPLATE*/
415 #define NF_INHERITVIEW 0x0000
416 #define NF_LOCALVIEW 0x0001
418 typedef struct _SHELLVIEWDATA /* idl */
420 LPSHELLFOLDER pShellFolder;
423 DWORD v3; /* always 0 */
424 SHELLVIEWPROC pCallBack;
425 DWORD viewmode; /* NF_* enum */
426 } SHELLVIEWDATA, * LPSHELLVIEWDATA;
428 HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal) ;
430 /**********************************************************************
431 * SHGetSetSettings ()
436 BOOL fShowAllObjects : 1;
437 BOOL fShowExtensions : 1;
438 BOOL fNoConfirmRecycle : 1;
440 BOOL fShowSysFiles : 1;
441 BOOL fShowCompColor : 1;
442 BOOL fDoubleClickInWebView : 1;
443 BOOL fDesktopHTML : 1;
444 BOOL fWin95Classic : 1;
445 BOOL fDontPrettyPath : 1;
446 BOOL fShowAttribCol : 1;
447 BOOL fMapNetDrvBtn : 1;
448 BOOL fShowInfoTip : 1;
452 BOOL fShowSuperHidden : 1;
453 BOOL fNoNetCrawling : 1;
462 BOOL fStartPanelOn: 1;
463 BOOL fShowStartPage: 1;
464 UINT fSpareFlags : 13;
465 } SHELLSTATE, *LPSHELLSTATE;
467 /**********************************************************************
471 { BOOL fShowAllObjects : 1;
472 BOOL fShowExtensions : 1;
473 BOOL fNoConfirmRecycle : 1;
474 BOOL fShowSysFiles : 1;
476 BOOL fShowCompColor : 1;
477 BOOL fDoubleClickInWebView : 1;
478 BOOL fDesktopHTML : 1;
479 BOOL fWin95Classic : 1;
481 BOOL fDontPrettyPath : 1;
482 BOOL fShowAttribCol : 1;
483 BOOL fMapNetDrvBtn : 1;
484 BOOL fShowInfoTip : 1;
488 } SHELLFLAGSTATE, * LPSHELLFLAGSTATE;
490 VOID WINAPI SHGetSettings(LPSHELLFLAGSTATE lpsfs, DWORD dwMask);
492 #define SSF_SHOWALLOBJECTS 0x0001
493 #define SSF_SHOWEXTENSIONS 0x0002
494 #define SSF_SHOWCOMPCOLOR 0x0008
495 #define SSF_SHOWSYSFILES 0x0020
496 #define SSF_DOUBLECLICKINWEBVIEW 0x0080
497 #define SSF_SHOWATTRIBCOL 0x0100
498 #define SSF_DESKTOPHTML 0x0200
499 #define SSF_WIN95CLASSIC 0x0400
500 #define SSF_DONTPRETTYPATH 0x0800
501 #define SSF_SHOWINFOTIP 0x2000
502 #define SSF_MAPNETDRVBUTTON 0x1000
503 #define SSF_NOCONFIRMRECYCLE 0x8000
504 #define SSF_HIDEICONS 0x4000
506 /**********************************************************************
509 #define SHCNE_RENAMEITEM 0x00000001
510 #define SHCNE_CREATE 0x00000002
511 #define SHCNE_DELETE 0x00000004
512 #define SHCNE_MKDIR 0x00000008
513 #define SHCNE_RMDIR 0x00000010
514 #define SHCNE_MEDIAINSERTED 0x00000020
515 #define SHCNE_MEDIAREMOVED 0x00000040
516 #define SHCNE_DRIVEREMOVED 0x00000080
517 #define SHCNE_DRIVEADD 0x00000100
518 #define SHCNE_NETSHARE 0x00000200
519 #define SHCNE_NETUNSHARE 0x00000400
520 #define SHCNE_ATTRIBUTES 0x00000800
521 #define SHCNE_UPDATEDIR 0x00001000
522 #define SHCNE_UPDATEITEM 0x00002000
523 #define SHCNE_SERVERDISCONNECT 0x00004000
524 #define SHCNE_UPDATEIMAGE 0x00008000
525 #define SHCNE_DRIVEADDGUI 0x00010000
526 #define SHCNE_RENAMEFOLDER 0x00020000
527 #define SHCNE_FREESPACE 0x00040000
529 #define SHCNE_EXTENDED_EVENT 0x04000000
530 #define SHCNE_ASSOCCHANGED 0x08000000
531 #define SHCNE_DISKEVENTS 0x0002381F
532 #define SHCNE_GLOBALEVENTS 0x0C0581E0
533 #define SHCNE_ALLEVENTS 0x7FFFFFFF
534 #define SHCNE_INTERRUPT 0x80000000
536 #define SHCNEE_ORDERCHANGED 0x00000002
538 #define SHCNF_IDLIST 0x0000
539 #define SHCNF_PATHA 0x0001
540 #define SHCNF_PRINTERA 0x0002
541 #define SHCNF_DWORD 0x0003
542 #define SHCNF_PATHW 0x0005
543 #define SHCNF_PRINTERW 0x0006
544 #define SHCNF_TYPE 0x00FF
545 #define SHCNF_FLUSH 0x1000
546 #define SHCNF_FLUSHNOWAIT 0x2000
548 void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2);
550 /****************************************************************************
551 * SHCreateDirectory API
553 DWORD WINAPI SHCreateDirectory(HWND, LPCVOID);
554 DWORD WINAPI SHCreateDirectoryExA(HWND, LPCSTR, LPSECURITY_ATTRIBUTES);
555 DWORD WINAPI SHCreateDirectoryExW(HWND, LPCWSTR, LPSECURITY_ATTRIBUTES);
557 /****************************************************************************
558 * SHGetSpecialFolderLocation API
560 HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder, LPITEMIDLIST * ppidl);
561 HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl);
563 #define CSIDL_DESKTOP 0x0000
564 #define CSIDL_INTERNET 0x0001
565 #define CSIDL_PROGRAMS 0x0002
566 #define CSIDL_CONTROLS 0x0003
567 #define CSIDL_PRINTERS 0x0004
568 #define CSIDL_PERSONAL 0x0005
569 #define CSIDL_FAVORITES 0x0006
570 #define CSIDL_STARTUP 0x0007
571 #define CSIDL_RECENT 0x0008
572 #define CSIDL_SENDTO 0x0009
573 #define CSIDL_BITBUCKET 0x000a
574 #define CSIDL_STARTMENU 0x000b
575 #define CSIDL_MYDOCUMENTS 0x000c
576 #define CSIDL_MYMUSIC 0x000d
577 #define CSIDL_MYVIDEO 0x000e
578 #define CSIDL_DESKTOPDIRECTORY 0x0010
579 #define CSIDL_DRIVES 0x0011
580 #define CSIDL_NETWORK 0x0012
581 #define CSIDL_NETHOOD 0x0013
582 #define CSIDL_FONTS 0x0014
583 #define CSIDL_TEMPLATES 0x0015
584 #define CSIDL_COMMON_STARTMENU 0x0016
585 #define CSIDL_COMMON_PROGRAMS 0X0017
586 #define CSIDL_COMMON_STARTUP 0x0018
587 #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019
588 #define CSIDL_APPDATA 0x001a
589 #define CSIDL_PRINTHOOD 0x001b
590 #define CSIDL_LOCAL_APPDATA 0x001c
591 #define CSIDL_ALTSTARTUP 0x001d
592 #define CSIDL_COMMON_ALTSTARTUP 0x001e
593 #define CSIDL_COMMON_FAVORITES 0x001f
594 #define CSIDL_INTERNET_CACHE 0x0020
595 #define CSIDL_COOKIES 0x0021
596 #define CSIDL_HISTORY 0x0022
597 #define CSIDL_COMMON_APPDATA 0x0023
598 #define CSIDL_WINDOWS 0x0024
599 #define CSIDL_SYSTEM 0x0025
600 #define CSIDL_PROGRAM_FILES 0x0026
601 #define CSIDL_MYPICTURES 0x0027
602 #define CSIDL_PROFILE 0x0028
603 #define CSIDL_SYSTEMX86 0x0029
604 #define CSIDL_PROGRAM_FILESX86 0x002a
605 #define CSIDL_PROGRAM_FILES_COMMON 0x002b
606 #define CSIDL_PROGRAM_FILES_COMMONX86 0x002c
607 #define CSIDL_COMMON_TEMPLATES 0x002d
608 #define CSIDL_COMMON_DOCUMENTS 0x002e
609 #define CSIDL_COMMON_ADMINTOOLS 0x002f
610 #define CSIDL_ADMINTOOLS 0x0030
611 #define CSIDL_CONNECTIONS 0x0031
612 #define CSIDL_COMMON_MUSIC 0x0035
613 #define CSIDL_COMMON_PICTURES 0x0036
614 #define CSIDL_COMMON_VIDEO 0x0037
615 #define CSIDL_RESOURCES 0x0038
616 #define CSIDL_RESOURCES_LOCALIZED 0x0039
617 #define CSIDL_COMMON_OEM_LINKS 0x003a
618 #define CSIDL_CDBURN_AREA 0x003b
619 #define CSIDL_COMPUTERSNEARME 0x003d
620 #define CSIDL_PROFILES 0x003e
621 #define CSIDL_FOLDER_MASK 0x00ff
622 #define CSIDL_FLAG_PER_USER_INIT 0x0800
623 #define CSIDL_FLAG_NO_ALIAS 0x1000
624 #define CSIDL_FLAG_DONT_VERIFY 0x4000
625 #define CSIDL_FLAG_CREATE 0x8000
627 #define CSIDL_FLAG_MASK 0xff00
629 /****************************************************************************
630 * SHGetDesktopFolder API
632 DWORD WINAPI SHGetDesktopFolder(IShellFolder * *);
634 /****************************************************************************
637 HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast);
639 /****************************************************************************
640 * SHDefExtractIcon API
642 HRESULT WINAPI SHDefExtractIconA(LPCSTR pszIconFile, int iIndex, UINT uFlags,
643 HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize);
644 HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags,
645 HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize);
646 #define SHDefExtractIcon WINELIB_NAME_AW(SHDefExtractIcon)
649 * DROPFILES for CF_HDROP and CF_PRINTERS
651 typedef struct _DROPFILES
657 } DROPFILES, *LPDROPFILES;
663 #endif /* defined(__cplusplus) */
665 #endif /* __WINE_SHLOBJ_H */