2 * Copyright 1999, 2000 Juergen Schmied
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_UNDOCSHELL_H
20 #define __WINE_UNDOCSHELL_H
28 #endif /* defined(__cplusplus) */
30 /****************************************************************************
33 LPITEMIDLIST WINAPI ILClone (LPCITEMIDLIST pidl);
34 LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl);
36 LPITEMIDLIST WINAPI ILCombine(
40 DWORD WINAPI ILGetSize(LPITEMIDLIST pidl);
42 LPITEMIDLIST WINAPI ILGetNext(LPITEMIDLIST pidl);
43 LPITEMIDLIST WINAPI ILFindLastID(LPITEMIDLIST pidl);
44 BOOL WINAPI ILRemoveLastID(LPCITEMIDLIST pidl);
46 LPITEMIDLIST WINAPI ILFindChild(
50 LPITEMIDLIST WINAPI ILAppendID(
55 BOOL WINAPI ILIsEqual(
59 BOOL WINAPI ILIsParent(
60 LPCITEMIDLIST pidlParent,
61 LPCITEMIDLIST pidlChild,
64 BOOL WINAPI ILGetDisplayName(
68 /* type parameter for ILGetDisplayNameEx() */
69 #define ILGDN_FORPARSING 0
70 #define ILGDN_NORMAL 1
71 #define ILGDN_INFOLDER 2
73 BOOL WINAPI ILGetDisplayNameEx(
79 DWORD WINAPI ILFree(LPITEMIDLIST pidl);
81 HRESULT WINAPI ILSaveToStream(
85 HRESULT WINAPI ILLoadFromStream(
89 LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl);
90 void WINAPI ILGlobalFree(LPCITEMIDLIST pidl);
92 LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath);
93 LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath);
94 LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPCVOID lpszPath);
96 HRESULT WINAPI SHILCreateFromPathA (
101 HRESULT WINAPI SHILCreateFromPathW (
103 LPITEMIDLIST * ppidl,
106 HRESULT WINAPI SHILCreateFromPathAW (
108 LPITEMIDLIST * ppidl,
111 LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path);
112 LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path);
113 LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path);
118 HRESULT WINAPI StrRetToStrNA (
122 const ITEMIDLIST *pidl);
124 HRESULT WINAPI StrRetToStrNW (
128 const ITEMIDLIST *pidl);
130 HRESULT WINAPI StrRetToStrNAW (
134 const ITEMIDLIST *pidl);
137 /****************************************************************************
138 * SHChangeNotifyRegister API
140 #define SHCNF_ACCEPT_INTERRUPTS 0x0001
141 #define SHCNF_ACCEPT_NON_INTERRUPTS 0x0002
142 #define SHCNF_NO_PROXY 0x8001
146 LPCITEMIDLIST pidlPath;
148 } NOTIFYREGISTER, *LPNOTIFYREGISTER;
150 typedef const LPNOTIFYREGISTER LPCNOTIFYREGISTER;
159 HANDLE WINAPI SHChangeNotifyRegister(
165 LPCNOTIFYREGISTER lpItems);
167 BOOL WINAPI SHChangeNotifyDeregister(HANDLE hNotify);
169 HANDLE WINAPI SHChangeNotification_Lock(
172 LPCITEMIDLIST **lppidls,
175 BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock);
177 /****************************************************************************
178 * Shell Common Dialogs
181 BOOL WINAPI PickIconDlg(
185 LPDWORD lpdwIconIndex);
187 /* RunFileDlg flags */
188 #define RFF_NOBROWSE 0x01
189 #define RFF_NODEFAULT 0x02
190 #define RFF_CALCDIRECTORY 0x04
191 #define RFF_NOLABEL 0x08
192 #define RFF_NOSEPARATEMEM 0x20 /* NT only */
194 /* RunFileFlg notification structure */
201 } NM_RUNFILEDLG, * LPNM_RUNFILEDLG;
203 /* RunFileDlg notification return values */
205 #define RF_CANCEL 0x01
206 #define RF_RETRY 0x02
208 void WINAPI RunFileDlg(
211 LPCSTR lpstrDirectory,
213 LPCSTR lpstrDescription,
216 void WINAPI ExitWindowsDialog(HWND hwndOwner);
218 int WINAPI RestartDialog(
223 BOOL WINAPI GetFileNameFromBrowse(
227 LPCSTR lpstrInitialDir,
232 BOOL WINAPI SHFindFiles(
233 LPCITEMIDLIST pidlRoot,
234 LPCITEMIDLIST pidlSavedSearch);
236 BOOL WINAPI SHFindComputer(
237 LPCITEMIDLIST pidlRoot,
238 LPCITEMIDLIST pidlSavedSearch);
240 /* SHObjectProperties flags */
241 #define OPF_PRINTERNAME 0x01
242 #define OPF_PATHNAME 0x02
244 BOOL WINAPI SHObjectProperties(
248 LPCSTR lpstrParameters);
250 void WINAPI SHHandleDiskFull(HWND hwndOwner,
253 int WINAPI SHOutOfMemoryMessageBox(
258 DWORD WINAPI SHNetConnectionDialog(
260 LPCSTR lpstrRemoteName,
263 int WINAPIV ShellMessageBoxA(
271 int WINAPIV ShellMessageBoxW(
279 #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
281 /****************************************************************************
285 LPVOID WINAPI SHAlloc(ULONG cb);
286 void WINAPI SHFree(LPVOID pv);
288 HANDLE WINAPI SHAllocShared(
293 BOOL WINAPI SHFreeShared(
297 LPVOID WINAPI SHLockShared(
301 BOOL WINAPI SHUnlockShared(LPVOID pv);
303 /****************************************************************************
304 * Cabinet Window Messages
307 #define CWM_SETPATH (WM_USER + 2)
308 #define CWM_WANTIDLE (WM_USER + 3)
309 #define CWM_GETSETCURRENTINFO (WM_USER + 4)
310 #define CWM_SELECTITEM (WM_USER + 5)
311 #define CWM_SELECTITEMSTR (WM_USER + 6)
312 #define CWM_GETISHELLBROWSER (WM_USER + 7)
313 #define CWM_TESTPATH (WM_USER + 9)
314 #define CWM_STATECHANGE (WM_USER + 10)
315 #define CWM_GETPATH (WM_USER + 12)
317 /* CWM_TESTPATH types */
318 #define CWTP_ISEQUAL 0
319 #define CWTP_ISCHILD 1
321 /* CWM_TESTPATH structure */
326 } CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT;
328 /****************************************************************************
329 * System Imagelist Routines
332 int WINAPI Shell_GetCachedImageIndex(
337 BOOL WINAPI Shell_GetImageLists(
338 HIMAGELIST *lphimlLarge,
339 HIMAGELIST *lphimlSmall);
341 HICON WINAPI SHGetFileIcon(
344 DWORD dwFileAttributes,
347 int WINAPI SHMapPIDLToSystemImageListIndex(
352 BOOL WINAPI FileIconInit(BOOL bFullInit);
354 /****************************************************************************
357 /* FileMenu_Create nSelHeight constants */
358 #define FM_DEFAULT_SELHEIGHT -1
359 #define FM_FULL_SELHEIGHT 0
361 /* FileMenu_Create flags */
362 #define FMF_SMALL_ICONS 0x00
363 #define FMF_LARGE_ICONS 0x08
364 #define FMF_NO_COLUMN_BREAK 0x10
366 HMENU WINAPI FileMenu_Create(
367 COLORREF crBorderColor,
373 void WINAPI FileMenu_Destroy(HMENU hMenu);
375 /* FileMenu_AppendItem constants */
376 #define FM_SEPARATOR (LPCSTR)1
377 #define FM_BLANK_ICON -1
378 #define FM_DEFAULT_HEIGHT 0
380 BOOL WINAPI FileMenu_AppendItem(
388 /* FileMenu_InsertUsingPidl flags */
389 #define FMF_NO_EMPTY_ITEM 0x01
390 #define FMF_NO_PROGRAM_GROUPS 0x04
392 /* FileMenu_InsertUsingPidl callback function */
393 typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
395 int WINAPI FileMenu_InsertUsingPidl(
401 LPFNFMCALLBACK lpfnCallback);
403 int WINAPI FileMenu_ReplaceUsingPidl(
408 LPFNFMCALLBACK lpfnCallback);
410 void WINAPI FileMenu_Invalidate(HMENU hMenu);
412 HMENU WINAPI FileMenu_FindSubMenuByPidl(
416 BOOL WINAPI FileMenu_TrackPopupMenuEx(
424 BOOL WINAPI FileMenu_GetLastSelectedItemPidls(
426 LPITEMIDLIST *ppidlFolder,
427 LPITEMIDLIST *ppidlItem);
429 LRESULT WINAPI FileMenu_MeasureItem(
431 LPMEASUREITEMSTRUCT lpmis);
433 LRESULT WINAPI FileMenu_DrawItem(
435 LPDRAWITEMSTRUCT lpdis);
437 BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu);
439 void WINAPI FileMenu_AbortInitMenu(void);
441 LRESULT WINAPI FileMenu_HandleMenuChar(
445 BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu);
447 BOOL WINAPI FileMenu_DeleteItemByCmd(
451 BOOL WINAPI FileMenu_DeleteItemByIndex(
455 BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(
459 BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu);
461 BOOL WINAPI FileMenu_EnableItemByCmd(
466 DWORD WINAPI FileMenu_GetItemExtent(
470 int WINAPI FileMenu_AppendFilesForPidl(
475 int WINAPI FileMenu_AddFilesForPidl(
482 LPFNFMCALLBACK lpfnCallback);
484 /****************************************************************************
485 * Drag And Drop Routines
487 HRESULT WINAPI SHLoadOLE(DWORD dwFlags);
489 HRESULT WINAPI SHRegisterDragDrop(
491 LPDROPTARGET lpDropTarget);
493 HRESULT WINAPI SHRevokeDragDrop(HWND hWnd);
495 HRESULT WINAPI SHDoDragDrop(
497 LPDATAOBJECT lpDataObject,
498 LPDROPSOURCE lpDropSource,
502 BOOL WINAPI DAD_DragEnter(HWND hWnd);
504 BOOL WINAPI DAD_DragEnterEx(
508 BOOL WINAPI DAD_DragMove(POINT pt);
510 /* DAD_AutoScroll return values */
511 #define DAD_SCROLL_UP 1
512 #define DAD_SCROLL_DOWN 2
513 #define DAD_SCROLL_LEFT 4
514 #define DAD_SCROLL_RIGHT 8
516 /* DAD_AutoScroll sample structure */
522 POINT aptPositions[3];
524 } SCROLLSAMPLES, *LPSCROLLSAMPLES;
526 DWORD WINAPI DAD_AutoScroll(HWND hWnd,
527 LPSCROLLSAMPLES lpSamples,
530 BOOL WINAPI DAD_DragLeave();
532 BOOL WINAPI DAD_SetDragImageFromListView(
536 BOOL WINAPI DAD_SetDragImage(
537 HIMAGELIST himlTrack,
540 BOOL WINAPI DAD_ShowDragImage(BOOL bShow);
542 HRESULT WINAPI SHCreateStdEnumFmtEtc(
544 const FORMATETC *lpFormats,
545 LPENUMFORMATETC *ppenumFormatetc);
547 HRESULT WINAPI CIDLData_CreateFromIDArray(
548 LPCITEMIDLIST pidlFolder,
550 LPCITEMIDLIST *lppidlFiles,
551 LPDATAOBJECT *ppdataObject);
553 /****************************************************************************
554 * Path Manipulation Routines
557 BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2);
559 LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
561 LPVOID WINAPI PathAddBackslashAW(LPVOID path);
563 LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive);
565 LPVOID WINAPI PathFindExtensionAW(LPCVOID path);
567 LPVOID WINAPI PathFindFileNameAW(LPCVOID path);
569 LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2);
571 LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath);
573 BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath);
575 LPVOID WINAPI PathGetShortPathAW(LPVOID lpszPath);
577 void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
579 VOID WINAPI PathQuoteSpacesAW(LPVOID path);
581 void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath);
583 BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath);
585 BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath);
587 BOOL WINAPI PathIsRootAW(LPCVOID x);
589 BOOL WINAPI PathIsExeAW(LPCVOID lpszPath);
591 BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath);
593 BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath);
595 BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
597 BOOL WINAPI PathMakeUniqueNameAW(
600 LPCVOID lpszShortName,
601 LPCVOID lpszLongName,
602 LPCVOID lpszPathName);
604 BOOL WINAPI PathYetAnotherMakeUniqueNameA(
607 LPCSTR lpszShortName,
608 LPCSTR lpszLongName);
610 /* PathCleanupSpec return values */
611 #define PCS_REPLACEDCHARS 0x00000001
612 #define PCS_REMOVEDCHARS 0x00000002
613 #define PCS_SHORTENED 0x00000004
614 #define PCS_PATHTOOLONG 0x80000008
616 DWORD WINAPI PathCleanupSpecAW(LPCVOID lpszPath, LPVOID lpszFile);
618 BOOL WINAPI PathQualifyA(LPCSTR path);
619 BOOL WINAPI PathQualifyW(LPCWSTR path);
620 #define PathQualify WINELIB_NAME_AW(PathQualify)
621 BOOL WINAPI PathQualifyAW(LPCVOID path);
624 /* PathResolve flags */
625 #define PRF_CHECKEXISTANCE 0x01
626 #define PRF_EXECUTABLE 0x02
627 #define PRF_QUALIFYONPATH 0x04
628 #define PRF_WINDOWS31 0x08
630 BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags);
632 VOID WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath);
634 /* PathProcessCommand flags */
635 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
636 #define PPCF_INCLUDEARGS 0x02
637 #define PPCF_NODIRECTORIES 0x10
638 #define PPCF_DONTRESOLVE 0x20
639 #define PPCF_PATHISRELATIVE 0x40
641 HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff,
642 DWORD dwBuffSize, DWORD dwFlags);
644 void WINAPI PathStripPathAW(LPVOID lpszPath);
646 BOOL WINAPI PathStripToRootAW(LPVOID lpszPath);
648 void WINAPI PathRemoveArgsAW(LPVOID lpszPath);
650 void WINAPI PathRemoveExtensionAW(LPVOID lpszPath);
652 int WINAPI PathParseIconLocationAW(LPVOID lpszPath);
654 BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2);
656 BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs);
658 /****************************************************************************
659 * Shell Namespace Routines
662 /* SHCreateShellFolderViewEx callback function */
663 typedef HRESULT (CALLBACK *LPFNSFVCALLBACK)(
671 /* SHCreateShellFolderViewEx structure */
677 LPCITEMIDLIST pidlFolder;
679 LPFNSFVCALLBACK lpfnCallback;
681 } SHELLFOLDERVIEWINFO, * LPSHELLFOLDERVIEWINFO;
682 typedef const SHELLFOLDERVIEWINFO * LPCSHELLFOLDERVIEWINFO;
684 HRESULT WINAPI SHCreateShellFolderViewEx(
685 LPCSHELLFOLDERVIEWINFO pshfvi,
688 /* SHCreateShellFolderViewEx callback messages */
689 #define SFVCB_ADDTOMENU 0x0001
690 #define SFVCB_INVOKECOMMAND 0x0002
691 #define SFVCB_GETMENUHELP 0x0003
692 #define SFVCB_GETTOOLBARTIP 0x0004
693 #define SFVCB_GETTOOLBARINFO 0x0005
694 #define SFVCB_ADDTOOLBARITEMS 0x0006
695 #define SFVCB_INITMENUPOPUP 0x0007
696 #define SFVCB_SELECTIONCHANGED 0x0008
697 #define SFVCB_DRAWMENUITEM 0x0009
698 #define SFVCB_MEASUREMENUITEM 0x000A
699 #define SFVCB_EXITMENULOOP 0x000B
700 #define SFVCB_VIEWRELEASE 0x000C
701 #define SFVCB_GETNAMELENGTH 0x000D
702 #define SFVCB_CHANGENOTIFY 0x000E
703 #define SFVCB_WINDOWCREATED 0x000F
704 #define SFVCB_WINDOWCLOSING 0x0010
705 #define SFVCB_LISTREFRESHED 0x0011
706 #define SFVCB_WINDOWFOCUSED 0x0012
707 #define SFVCB_REGISTERCOPYHOOK 0x0014
708 #define SFVCB_COPYHOOKCALLBACK 0x0015
709 #define SFVCB_GETDETAILSOF 0x0017
710 #define SFVCB_COLUMNCLICK 0x0018
711 #define SFVCB_GETCHANGENOTIFYPIDL 0x0019
712 #define SFVCB_GETESTIMATEDCOUNT 0x001A
713 #define SFVCB_ADJUSTVIEWMODE 0x001B
714 #define SFVCB_REMOVEFROMMENU 0x001C
715 #define SFVCB_ADDINGOBJECT 0x001D
716 #define SFVCB_REMOVINGOBJECT 0x001E
717 #define SFVCB_UPDATESTATUSBAR 0x001F
718 #define SFVCB_ISSLOWREFRESH 0x0020
719 #define SFVCB_GETCOMMANDDIR 0x0021
720 #define SFVCB_GETCOLUMNSTREAM 0x0022
721 #define SFVCB_CANSELECTALL 0x0023
722 #define SFVCB_DRAGSUCCEEDED 0x0024
723 #define SFVCB_ISSTRICTREFRESH 0x0025
724 #define SFVCB_ISCHILDOBJECT 0x0026
726 /* Generic structure used by several messages */
733 } SFVCBINFO, * LPSFVCBINFO;
734 typedef const SFVCBINFO * LPCSFVCBINFO;
736 /* SFVCB_ADDTOMENU structure */
743 } SFVMENUINFO, * LPSFVMENUINFO;
745 /* SFVCB_GETTOOLBARINFO structure */
750 } SFVTOOLBARINFO, * LPSFVTOOLBARINFO;
752 /* SFVTOOLBARINFO flags */
756 SFVTI_ADDTOFRONT = 1,
760 /* SFVCB_SELECTIONCHANGED structure */
767 } SFVSELECTSTATE, * LPSFVSELECTSTATE;
768 typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
770 /* SFVCB_COPYHOOKCALLBACK structure */
780 } SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
781 typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
783 /* SFVCB_GETDETAILSOF structure */
790 } SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
792 int WINAPI SHShellFolderView_Message(
797 /* SHShellFolderView_Message messages */
798 #define SFVM_REARRANGE 0x0001
799 #define SFVM_GETARRANGECOLUMN 0x0002
800 #define SFVM_ADDOBJECT 0x0003
801 #define SFVM_GETITEMCOUNT 0x0004
802 #define SFVM_GETITEMPIDL 0x0005
803 #define SFVM_REMOVEOBJECT 0x0006
804 #define SFVM_UPDATEOBJECT 0x0007
805 #define SFVM_SETREDRAW 0x0008
806 #define SFVM_GETSELECTEDOBJECTS 0x0009
807 #define SFVM_ISDROPONSOURCE 0x000A
808 #define SFVM_MOVEICONS 0x000B
809 #define SFVM_GETDRAGPOINT 0x000C
810 #define SFVM_GETDROPPOINT 0x000D
811 #define SFVM_SETOBJECTPOS 0x000E
812 #define SFVM_ISDROPONBACKGROUND 0x000F
813 #define SFVM_CUTOBJECTS 0x0010
814 #define SFVM_TOGGLEAUTOARRANGE 0x0011
815 #define SFVM_LINEUPICONS 0x0012
816 #define SFVM_GETAUTOARRANGE 0x0013
817 #define SFVM_GETSELECTEDCOUNT 0x0014
818 #define SFVM_GETITEMSPACING 0x0015
819 #define SFVM_REFRESHOBJECT 0x0016
820 #define SFVM_SETCLIPBOARDPOINTS 0x0017
822 /****************************************************************************
826 /* SHWaitForFileToOpen flags */
827 #define SHWFF_ADD 0x01
828 #define SHWFF_REMOVE 0x02
829 #define SHWFF_WAIT 0x04
831 BOOL WINAPI SHWaitForFileToOpen(
836 WORD WINAPI ArrangeWindows(
841 CONST HWND * lpKids);
843 /* RegisterShellHook types */
844 #define RSH_DEREGISTER 0
845 #define RSH_REGISTER 1
846 #define RSH_REGISTER_PROGMAN 2
847 #define RSH_REGISTER_TASKMAN 3
849 BOOL WINAPI RegisterShellHook(
853 /* SHCreateDefClassObject callback function */
854 typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)(
859 HRESULT WINAPI SHCreateDefClassObject(
862 LPFNCDCOCALLBACK lpfnCallback,
866 DWORD WINAPI SHCLSIDFromStringA (LPCSTR clsid, CLSID *id);
867 DWORD WINAPI SHCLSIDFromStringW (LPWSTR clsid, CLSID *id);
869 HRESULT WINAPI SHCoCreateInstance(
876 void WINAPI SHFreeUnusedLibraries();
878 /* SHCreateLinks flags */
879 #define SHCLF_PREFIXNAME 0x01
880 #define SHCLF_CREATEONDESKTOP 0x02
882 HRESULT WINAPI SHCreateLinks(
885 LPDATAOBJECT lpDataObject,
887 LPITEMIDLIST *lppidlLinks);
889 /* SHGetNewLinkInfo flags */
890 #define SHGNLI_PIDL 0x01
891 #define SHGNLI_PREFIXNAME 0x02
892 #define SHGNLI_NOUNIQUE 0x04
894 BOOL WINAPI SHGetNewLinkInfoA(
901 BOOL WINAPI SHGetNewLinkInfoW(
907 #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
909 DWORD WINAPI CheckEscapesA(LPSTR string, DWORD len);
910 DWORD WINAPI CheckEscapesW(LPWSTR string, DWORD len);
912 /* policy functions */
913 BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey);
914 DWORD WINAPI SHRestricted (DWORD policy);
916 /* cabinet functions */
918 #include "pshpack1.h"
923 BOOL fFullPathTitle:1;
924 BOOL fSaveLocalView:1;
926 BOOL fSimpleDefault:1;
927 BOOL fDontShowDescBar:1;
928 BOOL fNewWindowMode:1;
929 BOOL fShowCompColor:1;
930 BOOL fDontPrettyNames:1;
931 BOOL fAdminsCreateCommonGroups:1;
933 UINT fMenuEnumFilter;
938 BOOL WINAPI ReadCabinetState(CABINETSTATE *, int);
939 BOOL WINAPI WriteCabinetState(CABINETSTATE *);
943 #endif /* defined(__cplusplus) */
945 #endif /* __WINE_UNDOCSHELL_H */