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
34 #endif /* defined(__cplusplus) */
36 /****************************************************************************
39 LPITEMIDLIST WINAPI
ILClone (LPCITEMIDLIST pidl
);
40 LPITEMIDLIST WINAPI
ILCloneFirst(LPCITEMIDLIST pidl
);
42 LPITEMIDLIST WINAPI
ILCombine(
46 DWORD WINAPI
ILGetSize(LPCITEMIDLIST pidl
);
48 LPITEMIDLIST WINAPI
ILGetNext(LPCITEMIDLIST pidl
);
49 LPITEMIDLIST WINAPI
ILFindLastID(LPCITEMIDLIST pidl
);
50 BOOL WINAPI
ILRemoveLastID(LPCITEMIDLIST pidl
);
52 LPITEMIDLIST WINAPI
ILFindChild(
56 LPITEMIDLIST WINAPI
ILAppendID(
61 BOOL WINAPI
ILIsEqual(
65 BOOL WINAPI
ILIsParent(
66 LPCITEMIDLIST pidlParent
,
67 LPCITEMIDLIST pidlChild
,
70 BOOL WINAPI
ILGetDisplayName(
74 /* type parameter for ILGetDisplayNameEx() */
75 #define ILGDN_FORPARSING 0
76 #define ILGDN_NORMAL 1
77 #define ILGDN_INFOLDER 2
79 BOOL WINAPI
ILGetDisplayNameEx(
85 DWORD WINAPI
ILFree(LPITEMIDLIST pidl
);
87 HRESULT WINAPI
ILSaveToStream(
91 HRESULT WINAPI
ILLoadFromStream(
95 LPITEMIDLIST WINAPI
ILGlobalClone(LPCITEMIDLIST pidl
);
96 void WINAPI
ILGlobalFree(LPITEMIDLIST pidl
);
98 LPITEMIDLIST WINAPI
SHSimpleIDListFromPathA (LPCSTR lpszPath
);
99 LPITEMIDLIST WINAPI
SHSimpleIDListFromPathW (LPCWSTR lpszPath
);
100 LPITEMIDLIST WINAPI
SHSimpleIDListFromPathAW (LPCVOID lpszPath
);
102 HRESULT WINAPI
SHILCreateFromPathA (
104 LPITEMIDLIST
* ppidl
,
107 HRESULT WINAPI
SHILCreateFromPathW (
109 LPITEMIDLIST
* ppidl
,
112 HRESULT WINAPI
SHILCreateFromPathAW (
114 LPITEMIDLIST
* ppidl
,
117 LPITEMIDLIST WINAPI
ILCreateFromPathA(LPCSTR path
);
118 LPITEMIDLIST WINAPI
ILCreateFromPathW(LPCWSTR path
);
119 LPITEMIDLIST WINAPI
ILCreateFromPathAW(LPCVOID path
);
124 HRESULT WINAPI
StrRetToStrNA (
128 const ITEMIDLIST
*pidl
);
130 HRESULT WINAPI
StrRetToStrNW (
134 const ITEMIDLIST
*pidl
);
136 HRESULT WINAPI
StrRetToStrNAW (
140 const ITEMIDLIST
*pidl
);
143 /****************************************************************************
144 * SHChangeNotifyRegister API
146 #define SHCNRF_InterruptLevel 0x0001
147 #define SHCNRF_ShellLevel 0x0002
148 #define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */
149 #define SHCNRF_NewDelivery 0x8000 /* Messages use shared memory */
153 LPITEMIDLIST pidlPath
;
155 } NOTIFYREGISTER
, *LPNOTIFYREGISTER
;
157 typedef const LPNOTIFYREGISTER LPCNOTIFYREGISTER
;
166 HANDLE WINAPI
SHChangeNotifyRegister(
172 LPNOTIFYREGISTER lpItems
);
174 BOOL WINAPI
SHChangeNotifyDeregister(HANDLE hNotify
);
176 HANDLE WINAPI
SHChangeNotification_Lock(
179 LPCITEMIDLIST
**lppidls
,
182 BOOL WINAPI
SHChangeNotification_Unlock(HANDLE hLock
);
184 /****************************************************************************
185 * Shell Common Dialogs
188 BOOL WINAPI
PickIconDlg(
192 LPDWORD lpdwIconIndex
);
194 /* RunFileDlg flags */
195 #define RFF_NOBROWSE 0x01
196 #define RFF_NODEFAULT 0x02
197 #define RFF_CALCDIRECTORY 0x04
198 #define RFF_NOLABEL 0x08
199 #define RFF_NOSEPARATEMEM 0x20 /* NT only */
201 /* RunFileFlg notification structure */
208 } NM_RUNFILEDLG
, * LPNM_RUNFILEDLG
;
210 /* RunFileDlg notification return values */
212 #define RF_CANCEL 0x01
213 #define RF_RETRY 0x02
215 void WINAPI
RunFileDlg(
218 LPCSTR lpstrDirectory
,
220 LPCSTR lpstrDescription
,
223 void WINAPI
ExitWindowsDialog(HWND hwndOwner
);
225 int WINAPI
RestartDialog(
230 BOOL WINAPI
GetFileNameFromBrowse(
234 LPCSTR lpstrInitialDir
,
239 BOOL WINAPI
SHFindFiles(
240 LPCITEMIDLIST pidlRoot
,
241 LPCITEMIDLIST pidlSavedSearch
);
243 BOOL WINAPI
SHFindComputer(
244 LPCITEMIDLIST pidlRoot
,
245 LPCITEMIDLIST pidlSavedSearch
);
247 /* SHObjectProperties flags */
248 #define OPF_PRINTERNAME 0x01
249 #define OPF_PATHNAME 0x02
251 BOOL WINAPI
SHObjectProperties(
255 LPCSTR lpstrParameters
);
257 void WINAPI
SHHandleDiskFull(HWND hwndOwner
,
260 int WINAPI
SHOutOfMemoryMessageBox(
265 DWORD WINAPI
SHNetConnectionDialog(
267 LPCSTR lpstrRemoteName
,
270 int WINAPIV
ShellMessageBoxA(
278 int WINAPIV
ShellMessageBoxW(
286 #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
288 /****************************************************************************
292 LPVOID WINAPI
SHAlloc(ULONG cb
);
293 void WINAPI
SHFree(LPVOID pv
);
295 HANDLE WINAPI
SHAllocShared(
300 BOOL WINAPI
SHFreeShared(
304 LPVOID WINAPI
SHLockShared(
308 BOOL WINAPI
SHUnlockShared(LPVOID pv
);
310 /****************************************************************************
311 * Cabinet Window Messages
314 #define CWM_SETPATH (WM_USER + 2)
315 #define CWM_WANTIDLE (WM_USER + 3)
316 #define CWM_GETSETCURRENTINFO (WM_USER + 4)
317 #define CWM_SELECTITEM (WM_USER + 5)
318 #define CWM_SELECTITEMSTR (WM_USER + 6)
319 #define CWM_GETISHELLBROWSER (WM_USER + 7)
320 #define CWM_TESTPATH (WM_USER + 9)
321 #define CWM_STATECHANGE (WM_USER + 10)
322 #define CWM_GETPATH (WM_USER + 12)
324 /* CWM_TESTPATH types */
325 #define CWTP_ISEQUAL 0
326 #define CWTP_ISCHILD 1
328 /* CWM_TESTPATH structure */
333 } CWTESTPATHSTRUCT
,* LPCWTESTPATHSTRUCT
;
335 /****************************************************************************
336 * System Imagelist Routines
339 int WINAPI
Shell_GetCachedImageIndex(
344 BOOL WINAPI
Shell_GetImageLists(
345 HIMAGELIST
*lphimlLarge
,
346 HIMAGELIST
*lphimlSmall
);
348 HICON WINAPI
SHGetFileIcon(
351 DWORD dwFileAttributes
,
354 int WINAPI
SHMapPIDLToSystemImageListIndex(
359 BOOL WINAPI
FileIconInit(BOOL bFullInit
);
361 /****************************************************************************
364 /* FileMenu_Create nSelHeight constants */
365 #define FM_DEFAULT_SELHEIGHT -1
366 #define FM_FULL_SELHEIGHT 0
368 /* FileMenu_Create flags */
369 #define FMF_SMALL_ICONS 0x00
370 #define FMF_LARGE_ICONS 0x08
371 #define FMF_NO_COLUMN_BREAK 0x10
373 HMENU WINAPI
FileMenu_Create(
374 COLORREF crBorderColor
,
380 void WINAPI
FileMenu_Destroy(HMENU hMenu
);
382 /* FileMenu_AppendItem constants */
383 #define FM_SEPARATOR (LPCSTR)1
384 #define FM_BLANK_ICON -1
385 #define FM_DEFAULT_HEIGHT 0
387 BOOL WINAPI
FileMenu_AppendItem(
395 /* FileMenu_InsertUsingPidl flags */
396 #define FMF_NO_EMPTY_ITEM 0x01
397 #define FMF_NO_PROGRAM_GROUPS 0x04
399 /* FileMenu_InsertUsingPidl callback function */
400 typedef void (CALLBACK
*LPFNFMCALLBACK
)(LPCITEMIDLIST pidlFolder
, LPCITEMIDLIST pidlFile
);
402 int WINAPI
FileMenu_InsertUsingPidl(
408 LPFNFMCALLBACK lpfnCallback
);
410 int WINAPI
FileMenu_ReplaceUsingPidl(
415 LPFNFMCALLBACK lpfnCallback
);
417 void WINAPI
FileMenu_Invalidate(HMENU hMenu
);
419 HMENU WINAPI
FileMenu_FindSubMenuByPidl(
423 BOOL WINAPI
FileMenu_TrackPopupMenuEx(
431 BOOL WINAPI
FileMenu_GetLastSelectedItemPidls(
433 LPCITEMIDLIST
*ppidlFolder
,
434 LPCITEMIDLIST
*ppidlItem
);
436 LRESULT WINAPI
FileMenu_MeasureItem(
438 LPMEASUREITEMSTRUCT lpmis
);
440 LRESULT WINAPI
FileMenu_DrawItem(
442 LPDRAWITEMSTRUCT lpdis
);
444 BOOL WINAPI
FileMenu_InitMenuPopup(HMENU hMenu
);
446 void WINAPI
FileMenu_AbortInitMenu(void);
448 LRESULT WINAPI
FileMenu_HandleMenuChar(
452 BOOL WINAPI
FileMenu_DeleteAllItems(HMENU hMenu
);
454 BOOL WINAPI
FileMenu_DeleteItemByCmd(
458 BOOL WINAPI
FileMenu_DeleteItemByIndex(
462 BOOL WINAPI
FileMenu_DeleteMenuItemByFirstID(
466 BOOL WINAPI
FileMenu_DeleteSeparator(HMENU hMenu
);
468 BOOL WINAPI
FileMenu_EnableItemByCmd(
473 DWORD WINAPI
FileMenu_GetItemExtent(
477 int WINAPI
FileMenu_AppendFilesForPidl(
482 int WINAPI
FileMenu_AddFilesForPidl(
489 LPFNFMCALLBACK lpfnCallback
);
491 /****************************************************************************
492 * Drag And Drop Routines
494 HRESULT WINAPI
SHLoadOLE(DWORD dwFlags
);
496 HRESULT WINAPI
SHRegisterDragDrop(
498 LPDROPTARGET lpDropTarget
);
500 HRESULT WINAPI
SHRevokeDragDrop(HWND hWnd
);
502 HRESULT WINAPI
SHDoDragDrop(
504 LPDATAOBJECT lpDataObject
,
505 LPDROPSOURCE lpDropSource
,
509 BOOL WINAPI
DAD_DragEnter(HWND hWnd
);
511 BOOL WINAPI
DAD_DragEnterEx(
515 BOOL WINAPI
DAD_DragMove(POINT pt
);
517 /* DAD_AutoScroll return values */
518 #define DAD_SCROLL_UP 1
519 #define DAD_SCROLL_DOWN 2
520 #define DAD_SCROLL_LEFT 4
521 #define DAD_SCROLL_RIGHT 8
523 /* DAD_AutoScroll sample structure */
529 POINT aptPositions
[3];
531 } SCROLLSAMPLES
, *LPSCROLLSAMPLES
;
533 DWORD WINAPI
DAD_AutoScroll(HWND hWnd
,
534 LPSCROLLSAMPLES lpSamples
,
537 BOOL WINAPI
DAD_DragLeave();
539 BOOL WINAPI
DAD_SetDragImageFromListView(
543 BOOL WINAPI
DAD_SetDragImage(
544 HIMAGELIST himlTrack
,
547 BOOL WINAPI
DAD_ShowDragImage(BOOL bShow
);
549 HRESULT WINAPI
SHCreateStdEnumFmtEtc(
551 const FORMATETC
*lpFormats
,
552 LPENUMFORMATETC
*ppenumFormatetc
);
554 HRESULT WINAPI
CIDLData_CreateFromIDArray(
555 LPCITEMIDLIST pidlFolder
,
557 LPCITEMIDLIST
*lppidlFiles
,
558 LPDATAOBJECT
*ppdataObject
);
560 /****************************************************************************
561 * Path Manipulation Routines
564 BOOL WINAPI
PathAppendAW(LPVOID lpszPath1
, LPCVOID lpszPath2
);
566 LPVOID WINAPI
PathCombineAW(LPVOID szDest
, LPCVOID lpszDir
, LPCVOID lpszFile
);
568 LPVOID WINAPI
PathAddBackslashAW(LPVOID path
);
570 LPVOID WINAPI
PathBuildRootAW(LPVOID lpszPath
, int drive
);
572 LPVOID WINAPI
PathFindExtensionAW(LPCVOID path
);
574 LPVOID WINAPI
PathFindFileNameAW(LPCVOID path
);
576 LPVOID WINAPI
PathGetExtensionAW(LPCVOID lpszPath
, DWORD void1
, DWORD void2
);
578 LPVOID WINAPI
PathGetArgsAW(LPVOID lpszPath
);
580 BOOL WINAPI
PathRemoveFileSpecAW(LPVOID lpszPath
);
582 LPVOID WINAPI
PathGetShortPathAW(LPVOID lpszPath
);
584 void WINAPI
PathRemoveBlanksAW(LPVOID lpszPath
);
586 VOID WINAPI
PathQuoteSpacesAW(LPVOID path
);
588 void WINAPI
PathUnquoteSpacesAW(LPVOID lpszPath
);
590 BOOL WINAPI
PathIsUNCAW(LPCVOID lpszPath
);
592 BOOL WINAPI
PathIsRelativeAW(LPCVOID lpszPath
);
594 BOOL WINAPI
PathIsRootAW(LPCVOID x
);
596 BOOL WINAPI
PathIsExeAW(LPCVOID lpszPath
);
598 BOOL WINAPI
PathIsDirectoryAW(LPCVOID lpszPath
);
600 BOOL WINAPI
PathFileExistsAW(LPCVOID lpszPath
);
602 BOOL WINAPI
PathMatchSpecAW(LPVOID lpszPath
, LPVOID lpszSpec
);
604 BOOL WINAPI
PathMakeUniqueNameAW(
607 LPCVOID lpszShortName
,
608 LPCVOID lpszLongName
,
609 LPCVOID lpszPathName
);
611 BOOL WINAPI
PathYetAnotherMakeUniqueNameA(
614 LPCSTR lpszShortName
,
615 LPCSTR lpszLongName
);
617 /* PathCleanupSpec return values */
618 #define PCS_REPLACEDCHARS 0x00000001
619 #define PCS_REMOVEDCHARS 0x00000002
620 #define PCS_SHORTENED 0x00000004
621 #define PCS_PATHTOOLONG 0x80000008
623 DWORD WINAPI
PathCleanupSpecAW(LPCVOID lpszPath
, LPVOID lpszFile
);
625 BOOL WINAPI
PathQualifyA(LPCSTR path
);
626 BOOL WINAPI
PathQualifyW(LPCWSTR path
);
627 #define PathQualify WINELIB_NAME_AW(PathQualify)
628 BOOL WINAPI
PathQualifyAW(LPCVOID path
);
631 /* PathResolve flags */
632 #define PRF_CHECKEXISTANCE 0x01
633 #define PRF_EXECUTABLE 0x02
634 #define PRF_QUALIFYONPATH 0x04
635 #define PRF_WINDOWS31 0x08
637 BOOL WINAPI
PathResolveAW(LPVOID lpszPath
, LPCVOID
*alpszPaths
, DWORD dwFlags
);
639 VOID WINAPI
PathSetDlgItemPathAW(HWND hDlg
, int nIDDlgItem
, LPCVOID lpszPath
);
641 /* PathProcessCommand flags */
642 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
643 #define PPCF_INCLUDEARGS 0x02
644 #define PPCF_NODIRECTORIES 0x10
645 #define PPCF_DONTRESOLVE 0x20
646 #define PPCF_PATHISRELATIVE 0x40
648 HRESULT WINAPI
PathProcessCommandAW(LPCVOID lpszPath
, LPVOID lpszBuff
,
649 DWORD dwBuffSize
, DWORD dwFlags
);
651 void WINAPI
PathStripPathAW(LPVOID lpszPath
);
653 BOOL WINAPI
PathStripToRootAW(LPVOID lpszPath
);
655 void WINAPI
PathRemoveArgsAW(LPVOID lpszPath
);
657 void WINAPI
PathRemoveExtensionAW(LPVOID lpszPath
);
659 int WINAPI
PathParseIconLocationAW(LPVOID lpszPath
);
661 BOOL WINAPI
PathIsSameRootAW(LPCVOID lpszPath1
, LPCVOID lpszPath2
);
663 BOOL WINAPI
PathFindOnPathAW(LPVOID sFile
, LPCVOID sOtherDirs
);
665 /****************************************************************************
666 * Shell Namespace Routines
669 /* SHCreateShellFolderViewEx callback function */
670 typedef HRESULT (CALLBACK
*LPFNSFVCALLBACK
)(
678 /* SHCreateShellFolderViewEx structure */
684 LPCITEMIDLIST pidlFolder
;
686 LPFNSFVCALLBACK lpfnCallback
;
688 } SHELLFOLDERVIEWINFO
, * LPSHELLFOLDERVIEWINFO
;
689 typedef const SHELLFOLDERVIEWINFO
* LPCSHELLFOLDERVIEWINFO
;
691 HRESULT WINAPI
SHCreateShellFolderViewEx(
692 LPCSHELLFOLDERVIEWINFO pshfvi
,
695 /* SHCreateShellFolderViewEx callback messages */
696 #define SFVCB_ADDTOMENU 0x0001
697 #define SFVCB_INVOKECOMMAND 0x0002
698 #define SFVCB_GETMENUHELP 0x0003
699 #define SFVCB_GETTOOLBARTIP 0x0004
700 #define SFVCB_GETTOOLBARINFO 0x0005
701 #define SFVCB_ADDTOOLBARITEMS 0x0006
702 #define SFVCB_INITMENUPOPUP 0x0007
703 #define SFVCB_SELECTIONCHANGED 0x0008
704 #define SFVCB_DRAWMENUITEM 0x0009
705 #define SFVCB_MEASUREMENUITEM 0x000A
706 #define SFVCB_EXITMENULOOP 0x000B
707 #define SFVCB_VIEWRELEASE 0x000C
708 #define SFVCB_GETNAMELENGTH 0x000D
709 #define SFVCB_CHANGENOTIFY 0x000E
710 #define SFVCB_WINDOWCREATED 0x000F
711 #define SFVCB_WINDOWCLOSING 0x0010
712 #define SFVCB_LISTREFRESHED 0x0011
713 #define SFVCB_WINDOWFOCUSED 0x0012
714 #define SFVCB_REGISTERCOPYHOOK 0x0014
715 #define SFVCB_COPYHOOKCALLBACK 0x0015
716 #define SFVCB_GETDETAILSOF 0x0017
717 #define SFVCB_COLUMNCLICK 0x0018
718 #define SFVCB_GETCHANGENOTIFYPIDL 0x0019
719 #define SFVCB_GETESTIMATEDCOUNT 0x001A
720 #define SFVCB_ADJUSTVIEWMODE 0x001B
721 #define SFVCB_REMOVEFROMMENU 0x001C
722 #define SFVCB_ADDINGOBJECT 0x001D
723 #define SFVCB_REMOVINGOBJECT 0x001E
724 #define SFVCB_UPDATESTATUSBAR 0x001F
725 #define SFVCB_ISSLOWREFRESH 0x0020
726 #define SFVCB_GETCOMMANDDIR 0x0021
727 #define SFVCB_GETCOLUMNSTREAM 0x0022
728 #define SFVCB_CANSELECTALL 0x0023
729 #define SFVCB_DRAGSUCCEEDED 0x0024
730 #define SFVCB_ISSTRICTREFRESH 0x0025
731 #define SFVCB_ISCHILDOBJECT 0x0026
733 /* Generic structure used by several messages */
740 } SFVCBINFO
, * LPSFVCBINFO
;
741 typedef const SFVCBINFO
* LPCSFVCBINFO
;
743 /* SFVCB_ADDTOMENU structure */
750 } SFVMENUINFO
, * LPSFVMENUINFO
;
752 /* SFVCB_GETTOOLBARINFO structure */
757 } SFVTOOLBARINFO
, * LPSFVTOOLBARINFO
;
759 /* SFVTOOLBARINFO flags */
763 SFVTI_ADDTOFRONT
= 1,
767 /* SFVCB_SELECTIONCHANGED structure */
774 } SFVSELECTSTATE
, * LPSFVSELECTSTATE
;
775 typedef const SFVSELECTSTATE
* LPCSFVSELECTSTATE
;
777 /* SFVCB_COPYHOOKCALLBACK structure */
787 } SFVCOPYHOOKINFO
, * LPSFVCOPYHOOKINFO
;
788 typedef const SFVCOPYHOOKINFO
* LPCSFVCOPYHOOKINFO
;
790 /* SFVCB_GETDETAILSOF structure */
797 } SFVCOLUMNINFO
, * LPSFVCOLUMNINFO
;
799 int WINAPI
SHShellFolderView_Message(
804 /* SHShellFolderView_Message messages */
805 #define SFVM_REARRANGE 0x0001
806 #define SFVM_GETARRANGECOLUMN 0x0002
807 #define SFVM_ADDOBJECT 0x0003
808 #define SFVM_GETITEMCOUNT 0x0004
809 #define SFVM_GETITEMPIDL 0x0005
810 #define SFVM_REMOVEOBJECT 0x0006
811 #define SFVM_UPDATEOBJECT 0x0007
812 #define SFVM_SETREDRAW 0x0008
813 #define SFVM_GETSELECTEDOBJECTS 0x0009
814 #define SFVM_ISDROPONSOURCE 0x000A
815 #define SFVM_MOVEICONS 0x000B
816 #define SFVM_GETDRAGPOINT 0x000C
817 #define SFVM_GETDROPPOINT 0x000D
818 #define SFVM_SETOBJECTPOS 0x000E
819 #define SFVM_ISDROPONBACKGROUND 0x000F
820 #define SFVM_CUTOBJECTS 0x0010
821 #define SFVM_TOGGLEAUTOARRANGE 0x0011
822 #define SFVM_LINEUPICONS 0x0012
823 #define SFVM_GETAUTOARRANGE 0x0013
824 #define SFVM_GETSELECTEDCOUNT 0x0014
825 #define SFVM_GETITEMSPACING 0x0015
826 #define SFVM_REFRESHOBJECT 0x0016
827 #define SFVM_SETCLIPBOARDPOINTS 0x0017
829 /****************************************************************************
833 /* SHWaitForFileToOpen flags */
834 #define SHWFF_ADD 0x01
835 #define SHWFF_REMOVE 0x02
836 #define SHWFF_WAIT 0x04
838 BOOL WINAPI
SHWaitForFileToOpen(
843 WORD WINAPI
ArrangeWindows(
848 CONST HWND
* lpKids
);
850 /* RegisterShellHook types */
851 #define RSH_DEREGISTER 0
852 #define RSH_REGISTER 1
853 #define RSH_REGISTER_PROGMAN 2
854 #define RSH_REGISTER_TASKMAN 3
856 BOOL WINAPI
RegisterShellHook(
860 /* SHCreateDefClassObject callback function */
861 typedef HRESULT (CALLBACK
*LPFNCDCOCALLBACK
)(
866 HRESULT WINAPI
SHCreateDefClassObject(
869 LPFNCDCOCALLBACK lpfnCallback
,
873 DWORD WINAPI
SHCLSIDFromStringA (LPCSTR clsid
, CLSID
*id
);
874 DWORD WINAPI
SHCLSIDFromStringW (LPWSTR clsid
, CLSID
*id
);
876 HRESULT WINAPI
SHCoCreateInstance(
883 void WINAPI
SHFreeUnusedLibraries();
885 /* SHCreateLinks flags */
886 #define SHCLF_PREFIXNAME 0x01
887 #define SHCLF_CREATEONDESKTOP 0x02
889 HRESULT WINAPI
SHCreateLinks(
892 LPDATAOBJECT lpDataObject
,
894 LPITEMIDLIST
*lppidlLinks
);
896 /* SHGetNewLinkInfo flags */
897 #define SHGNLI_PIDL 0x01
898 #define SHGNLI_PREFIXNAME 0x02
899 #define SHGNLI_NOUNIQUE 0x04
901 BOOL WINAPI
SHGetNewLinkInfoA(
908 BOOL WINAPI
SHGetNewLinkInfoW(
914 #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
916 DWORD WINAPI
CheckEscapesA(LPSTR string
, DWORD len
);
917 DWORD WINAPI
CheckEscapesW(LPWSTR string
, DWORD len
);
919 /* policy functions */
920 BOOL WINAPI
SHInitRestricted(LPCVOID unused
, LPCVOID inpRegKey
);
921 DWORD WINAPI
SHRestricted (DWORD policy
);
923 /* cabinet functions */
925 #include "pshpack1.h"
930 BOOL fFullPathTitle
:1;
931 BOOL fSaveLocalView
:1;
933 BOOL fSimpleDefault
:1;
934 BOOL fDontShowDescBar
:1;
935 BOOL fNewWindowMode
:1;
936 BOOL fShowCompColor
:1;
937 BOOL fDontPrettyNames
:1;
938 BOOL fAdminsCreateCommonGroups
:1;
940 UINT fMenuEnumFilter
;
945 BOOL WINAPI
ReadCabinetState(CABINETSTATE
*, int);
946 BOOL WINAPI
WriteCabinetState(CABINETSTATE
*);
950 #endif /* defined(__cplusplus) */
952 #endif /* __WINE_UNDOCSHELL_H */