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 DWORD WINAPI
ILFree(LPITEMIDLIST pidl
);
70 HRESULT WINAPI
ILSaveToStream(
74 HRESULT WINAPI
ILLoadFromStream(
78 LPITEMIDLIST WINAPI
ILGlobalClone(LPCITEMIDLIST pidl
);
79 void WINAPI
ILGlobalFree(LPCITEMIDLIST pidl
);
81 LPITEMIDLIST WINAPI
SHSimpleIDListFromPathA (LPCSTR lpszPath
);
82 LPITEMIDLIST WINAPI
SHSimpleIDListFromPathW (LPCWSTR lpszPath
);
83 LPITEMIDLIST WINAPI
SHSimpleIDListFromPathAW (LPCVOID lpszPath
);
85 HRESULT WINAPI
SHILCreateFromPathA (
90 HRESULT WINAPI
SHILCreateFromPathW (
95 HRESULT WINAPI
SHILCreateFromPathAW (
100 LPITEMIDLIST WINAPI
ILCreateFromPathA(LPCSTR path
);
101 LPITEMIDLIST WINAPI
ILCreateFromPathW(LPCWSTR path
);
102 LPITEMIDLIST WINAPI
ILCreateFromPathAW(LPCVOID path
);
107 HRESULT WINAPI
StrRetToStrNA (
111 const ITEMIDLIST
*pidl
);
113 HRESULT WINAPI
StrRetToStrNW (
117 const ITEMIDLIST
*pidl
);
119 HRESULT WINAPI
StrRetToStrNAW (
123 const ITEMIDLIST
*pidl
);
126 /****************************************************************************
127 * SHChangeNotifyRegister API
129 #define SHCNF_ACCEPT_INTERRUPTS 0x0001
130 #define SHCNF_ACCEPT_NON_INTERRUPTS 0x0002
131 #define SHCNF_NO_PROXY 0x8001
135 LPCITEMIDLIST pidlPath
;
137 } NOTIFYREGISTER
, *LPNOTIFYREGISTER
;
139 typedef const LPNOTIFYREGISTER LPCNOTIFYREGISTER
;
148 HANDLE WINAPI
SHChangeNotifyRegister(
154 LPCNOTIFYREGISTER lpItems
);
156 BOOL WINAPI
SHChangeNotifyDeregister(HANDLE hNotify
);
158 HANDLE WINAPI
SHChangeNotification_Lock(
161 LPCITEMIDLIST
**lppidls
,
164 BOOL WINAPI
SHChangeNotification_Unlock(HANDLE hLock
);
166 /****************************************************************************
167 * Shell Common Dialogs
170 BOOL WINAPI
PickIconDlg(
174 LPDWORD lpdwIconIndex
);
176 /* RunFileDlg flags */
177 #define RFF_NOBROWSE 0x01
178 #define RFF_NODEFAULT 0x02
179 #define RFF_CALCDIRECTORY 0x04
180 #define RFF_NOLABEL 0x08
181 #define RFF_NOSEPARATEMEM 0x20 /* NT only */
183 /* RunFileFlg notification structure */
190 } NM_RUNFILEDLG
, * LPNM_RUNFILEDLG
;
192 /* RunFileDlg notification return values */
194 #define RF_CANCEL 0x01
195 #define RF_RETRY 0x02
197 void WINAPI
RunFileDlg(
200 LPCSTR lpstrDirectory
,
202 LPCSTR lpstrDescription
,
205 void WINAPI
ExitWindowsDialog(HWND hwndOwner
);
207 int WINAPI
RestartDialog(
212 BOOL WINAPI
GetFileNameFromBrowse(
216 LPCSTR lpstrInitialDir
,
221 BOOL WINAPI
SHFindFiles(
222 LPCITEMIDLIST pidlRoot
,
223 LPCITEMIDLIST pidlSavedSearch
);
225 BOOL WINAPI
SHFindComputer(
226 LPCITEMIDLIST pidlRoot
,
227 LPCITEMIDLIST pidlSavedSearch
);
229 /* SHObjectProperties flags */
230 #define OPF_PRINTERNAME 0x01
231 #define OPF_PATHNAME 0x02
233 BOOL WINAPI
SHObjectProperties(
237 LPCSTR lpstrParameters
);
239 void WINAPI
SHHandleDiskFull(HWND hwndOwner
,
242 int WINAPI
SHOutOfMemoryMessageBox(
247 DWORD WINAPI
SHNetConnectionDialog(
249 LPCSTR lpstrRemoteName
,
252 int WINAPIV
ShellMessageBoxA(
260 int WINAPIV
ShellMessageBoxW(
268 #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
270 /****************************************************************************
274 LPVOID WINAPI
SHAlloc(ULONG cb
);
275 void WINAPI
SHFree(LPVOID pv
);
277 HANDLE WINAPI
SHAllocShared(
282 BOOL WINAPI
SHFreeShared(
286 LPVOID WINAPI
SHLockShared(
290 BOOL WINAPI
SHUnlockShared(LPVOID pv
);
292 /****************************************************************************
293 * Cabinet Window Messages
296 #define CWM_SETPATH (WM_USER + 2)
297 #define CWM_WANTIDLE (WM_USER + 3)
298 #define CWM_GETSETCURRENTINFO (WM_USER + 4)
299 #define CWM_SELECTITEM (WM_USER + 5)
300 #define CWM_SELECTITEMSTR (WM_USER + 6)
301 #define CWM_GETISHELLBROWSER (WM_USER + 7)
302 #define CWM_TESTPATH (WM_USER + 9)
303 #define CWM_STATECHANGE (WM_USER + 10)
304 #define CWM_GETPATH (WM_USER + 12)
306 /* CWM_TESTPATH types */
307 #define CWTP_ISEQUAL 0
308 #define CWTP_ISCHILD 1
310 /* CWM_TESTPATH structure */
315 } CWTESTPATHSTRUCT
,* LPCWTESTPATHSTRUCT
;
317 /****************************************************************************
318 * System Imagelist Routines
321 int WINAPI
Shell_GetCachedImageIndex(
326 BOOL WINAPI
Shell_GetImageLists(
327 HIMAGELIST
*lphimlLarge
,
328 HIMAGELIST
*lphimlSmall
);
330 HICON WINAPI
SHGetFileIcon(
333 DWORD dwFileAttributes
,
336 int WINAPI
SHMapPIDLToSystemImageListIndex(
341 BOOL WINAPI
FileIconInit(BOOL bFullInit
);
343 /****************************************************************************
346 /* FileMenu_Create nSelHeight constants */
347 #define FM_DEFAULT_SELHEIGHT -1
348 #define FM_FULL_SELHEIGHT 0
350 /* FileMenu_Create flags */
351 #define FMF_SMALL_ICONS 0x00
352 #define FMF_LARGE_ICONS 0x08
353 #define FMF_NO_COLUMN_BREAK 0x10
355 HMENU WINAPI
FileMenu_Create(
356 COLORREF crBorderColor
,
362 void WINAPI
FileMenu_Destroy(HMENU hMenu
);
364 /* FileMenu_AppendItem constants */
365 #define FM_SEPARATOR (LPCSTR)1
366 #define FM_BLANK_ICON -1
367 #define FM_DEFAULT_HEIGHT 0
369 BOOL WINAPI
FileMenu_AppendItem(
377 /* FileMenu_InsertUsingPidl flags */
378 #define FMF_NO_EMPTY_ITEM 0x01
379 #define FMF_NO_PROGRAM_GROUPS 0x04
381 /* FileMenu_InsertUsingPidl callback function */
382 typedef void (CALLBACK
*LPFNFMCALLBACK
)(LPCITEMIDLIST pidlFolder
, LPCITEMIDLIST pidlFile
);
384 int WINAPI
FileMenu_InsertUsingPidl(
390 LPFNFMCALLBACK lpfnCallback
);
392 int WINAPI
FileMenu_ReplaceUsingPidl(
397 LPFNFMCALLBACK lpfnCallback
);
399 void WINAPI
FileMenu_Invalidate(HMENU hMenu
);
401 HMENU WINAPI
FileMenu_FindSubMenuByPidl(
405 BOOL WINAPI
FileMenu_TrackPopupMenuEx(
413 BOOL WINAPI
FileMenu_GetLastSelectedItemPidls(
415 LPITEMIDLIST
*ppidlFolder
,
416 LPITEMIDLIST
*ppidlItem
);
418 LRESULT WINAPI
FileMenu_MeasureItem(
420 LPMEASUREITEMSTRUCT lpmis
);
422 LRESULT WINAPI
FileMenu_DrawItem(
424 LPDRAWITEMSTRUCT lpdis
);
426 BOOL WINAPI
FileMenu_InitMenuPopup(HMENU hMenu
);
428 void WINAPI
FileMenu_AbortInitMenu(void);
430 LRESULT WINAPI
FileMenu_HandleMenuChar(
434 BOOL WINAPI
FileMenu_DeleteAllItems(HMENU hMenu
);
436 BOOL WINAPI
FileMenu_DeleteItemByCmd(
440 BOOL WINAPI
FileMenu_DeleteItemByIndex(
444 BOOL WINAPI
FileMenu_DeleteMenuItemByFirstID(
448 BOOL WINAPI
FileMenu_DeleteSeparator(HMENU hMenu
);
450 BOOL WINAPI
FileMenu_EnableItemByCmd(
455 DWORD WINAPI
FileMenu_GetItemExtent(
459 int WINAPI
FileMenu_AppendFilesForPidl(
464 int WINAPI
FileMenu_AddFilesForPidl(
471 LPFNFMCALLBACK lpfnCallback
);
473 /****************************************************************************
474 * Drag And Drop Routines
476 HRESULT WINAPI
SHLoadOLE(DWORD dwFlags
);
478 HRESULT WINAPI
SHRegisterDragDrop(
480 LPDROPTARGET lpDropTarget
);
482 HRESULT WINAPI
SHRevokeDragDrop(HWND hWnd
);
484 HRESULT WINAPI
SHDoDragDrop(
486 LPDATAOBJECT lpDataObject
,
487 LPDROPSOURCE lpDropSource
,
491 BOOL WINAPI
DAD_DragEnter(HWND hWnd
);
493 BOOL WINAPI
DAD_DragEnterEx(
497 BOOL WINAPI
DAD_DragMove(POINT pt
);
499 /* DAD_AutoScroll return values */
500 #define DAD_SCROLL_UP 1
501 #define DAD_SCROLL_DOWN 2
502 #define DAD_SCROLL_LEFT 4
503 #define DAD_SCROLL_RIGHT 8
505 /* DAD_AutoScroll sample structure */
511 POINT aptPositions
[3];
513 } SCROLLSAMPLES
, *LPSCROLLSAMPLES
;
515 DWORD WINAPI
DAD_AutoScroll(HWND hWnd
,
516 LPSCROLLSAMPLES lpSamples
,
519 BOOL WINAPI
DAD_DragLeave();
521 BOOL WINAPI
DAD_SetDragImageFromListView(
525 BOOL WINAPI
DAD_SetDragImage(
526 HIMAGELIST himlTrack
,
529 BOOL WINAPI
DAD_ShowDragImage(BOOL bShow
);
531 HRESULT WINAPI
SHCreateStdEnumFmtEtc(
533 const FORMATETC
*lpFormats
,
534 LPENUMFORMATETC
*ppenumFormatetc
);
536 HRESULT WINAPI
CIDLData_CreateFromIDArray(
537 LPCITEMIDLIST pidlFolder
,
539 LPCITEMIDLIST
*lppidlFiles
,
540 LPDATAOBJECT
*ppdataObject
);
542 /****************************************************************************
543 * Path Manipulation Routines
546 BOOL WINAPI
PathAppendAW(LPVOID lpszPath1
, LPCVOID lpszPath2
);
548 LPVOID WINAPI
PathCombineAW(LPVOID szDest
, LPCVOID lpszDir
, LPCVOID lpszFile
);
550 LPVOID WINAPI
PathAddBackslashAW(LPVOID path
);
552 LPVOID WINAPI
PathBuildRootAW(LPVOID lpszPath
, int drive
);
554 LPVOID WINAPI
PathFindExtensionAW(LPCVOID path
);
556 LPVOID WINAPI
PathFindFileNameAW(LPCVOID path
);
558 LPVOID WINAPI
PathGetExtensionAW(LPCVOID lpszPath
, DWORD void1
, DWORD void2
);
560 LPVOID WINAPI
PathGetArgsAW(LPVOID lpszPath
);
562 BOOL WINAPI
PathRemoveFileSpecAW(LPVOID lpszPath
);
564 LPVOID WINAPI
PathGetShortPathAW(LPVOID lpszPath
);
566 void WINAPI
PathRemoveBlanksAW(LPVOID lpszPath
);
568 VOID WINAPI
PathQuoteSpacesAW(LPVOID path
);
570 void WINAPI
PathUnquoteSpacesAW(LPVOID lpszPath
);
572 BOOL WINAPI
PathIsUNCAW(LPCVOID lpszPath
);
574 BOOL WINAPI
PathIsRelativeAW(LPCVOID lpszPath
);
576 BOOL WINAPI
PathIsRootAW(LPCVOID x
);
578 BOOL WINAPI
PathIsExeAW(LPCVOID lpszPath
);
580 BOOL WINAPI
PathIsDirectoryAW(LPCVOID lpszPath
);
582 BOOL WINAPI
PathFileExistsAW(LPCVOID lpszPath
);
584 BOOL WINAPI
PathMatchSpecAW(LPVOID lpszPath
, LPVOID lpszSpec
);
586 BOOL WINAPI
PathMakeUniqueNameAW(
589 LPCVOID lpszShortName
,
590 LPCVOID lpszLongName
,
591 LPCVOID lpszPathName
);
593 BOOL WINAPI
PathYetAnotherMakeUniqueNameA(
596 LPCSTR lpszShortName
,
597 LPCSTR lpszLongName
);
599 /* PathCleanupSpec return values */
600 #define PCS_REPLACEDCHARS 0x00000001
601 #define PCS_REMOVEDCHARS 0x00000002
602 #define PCS_SHORTENED 0x00000004
603 #define PCS_PATHTOOLONG 0x80000008
605 DWORD WINAPI
PathCleanupSpecAW(LPCVOID lpszPath
, LPVOID lpszFile
);
607 BOOL WINAPI
PathQualifyA(LPCSTR path
);
608 BOOL WINAPI
PathQualifyW(LPCWSTR path
);
609 #define PathQualify WINELIB_NAME_AW(PathQualify)
610 BOOL WINAPI
PathQualifyAW(LPCVOID path
);
613 /* PathResolve flags */
614 #define PRF_CHECKEXISTANCE 0x01
615 #define PRF_EXECUTABLE 0x02
616 #define PRF_QUALIFYONPATH 0x04
617 #define PRF_WINDOWS31 0x08
619 BOOL WINAPI
PathResolveAW(LPVOID lpszPath
, LPCVOID
*alpszPaths
, DWORD dwFlags
);
621 VOID WINAPI
PathSetDlgItemPathAW(HWND hDlg
, int nIDDlgItem
, LPCVOID lpszPath
);
623 /* PathProcessCommand flags */
624 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
625 #define PPCF_INCLUDEARGS 0x02
626 #define PPCF_NODIRECTORIES 0x10
627 #define PPCF_DONTRESOLVE 0x20
628 #define PPCF_PATHISRELATIVE 0x40
630 HRESULT WINAPI
PathProcessCommandAW(LPCVOID lpszPath
, LPVOID lpszBuff
,
631 DWORD dwBuffSize
, DWORD dwFlags
);
633 void WINAPI
PathStripPathAW(LPVOID lpszPath
);
635 BOOL WINAPI
PathStripToRootAW(LPVOID lpszPath
);
637 void WINAPI
PathRemoveArgsAW(LPVOID lpszPath
);
639 void WINAPI
PathRemoveExtensionAW(LPVOID lpszPath
);
641 int WINAPI
PathParseIconLocationAW(LPVOID lpszPath
);
643 BOOL WINAPI
PathIsSameRootAW(LPCVOID lpszPath1
, LPCVOID lpszPath2
);
645 BOOL WINAPI
PathFindOnPathAW(LPVOID sFile
, LPCVOID sOtherDirs
);
647 /****************************************************************************
648 * Shell Namespace Routines
651 /* SHCreateShellFolderViewEx callback function */
652 typedef HRESULT (CALLBACK
*LPFNSFVCALLBACK
)(
660 /* SHCreateShellFolderViewEx structure */
666 LPCITEMIDLIST pidlFolder
;
668 LPFNSFVCALLBACK lpfnCallback
;
670 } SHELLFOLDERVIEWINFO
, * LPSHELLFOLDERVIEWINFO
;
671 typedef const SHELLFOLDERVIEWINFO
* LPCSHELLFOLDERVIEWINFO
;
673 HRESULT WINAPI
SHCreateShellFolderViewEx(
674 LPCSHELLFOLDERVIEWINFO pshfvi
,
677 /* SHCreateShellFolderViewEx callback messages */
678 #define SFVCB_ADDTOMENU 0x0001
679 #define SFVCB_INVOKECOMMAND 0x0002
680 #define SFVCB_GETMENUHELP 0x0003
681 #define SFVCB_GETTOOLBARTIP 0x0004
682 #define SFVCB_GETTOOLBARINFO 0x0005
683 #define SFVCB_ADDTOOLBARITEMS 0x0006
684 #define SFVCB_INITMENUPOPUP 0x0007
685 #define SFVCB_SELECTIONCHANGED 0x0008
686 #define SFVCB_DRAWMENUITEM 0x0009
687 #define SFVCB_MEASUREMENUITEM 0x000A
688 #define SFVCB_EXITMENULOOP 0x000B
689 #define SFVCB_VIEWRELEASE 0x000C
690 #define SFVCB_GETNAMELENGTH 0x000D
691 #define SFVCB_CHANGENOTIFY 0x000E
692 #define SFVCB_WINDOWCREATED 0x000F
693 #define SFVCB_WINDOWCLOSING 0x0010
694 #define SFVCB_LISTREFRESHED 0x0011
695 #define SFVCB_WINDOWFOCUSED 0x0012
696 #define SFVCB_REGISTERCOPYHOOK 0x0014
697 #define SFVCB_COPYHOOKCALLBACK 0x0015
698 #define SFVCB_GETDETAILSOF 0x0017
699 #define SFVCB_COLUMNCLICK 0x0018
700 #define SFVCB_GETCHANGENOTIFYPIDL 0x0019
701 #define SFVCB_GETESTIMATEDCOUNT 0x001A
702 #define SFVCB_ADJUSTVIEWMODE 0x001B
703 #define SFVCB_REMOVEFROMMENU 0x001C
704 #define SFVCB_ADDINGOBJECT 0x001D
705 #define SFVCB_REMOVINGOBJECT 0x001E
706 #define SFVCB_UPDATESTATUSBAR 0x001F
707 #define SFVCB_ISSLOWREFRESH 0x0020
708 #define SFVCB_GETCOMMANDDIR 0x0021
709 #define SFVCB_GETCOLUMNSTREAM 0x0022
710 #define SFVCB_CANSELECTALL 0x0023
711 #define SFVCB_DRAGSUCCEEDED 0x0024
712 #define SFVCB_ISSTRICTREFRESH 0x0025
713 #define SFVCB_ISCHILDOBJECT 0x0026
715 /* Generic structure used by several messages */
722 } SFVCBINFO
, * LPSFVCBINFO
;
723 typedef const SFVCBINFO
* LPCSFVCBINFO
;
725 /* SFVCB_ADDTOMENU structure */
732 } SFVMENUINFO
, * LPSFVMENUINFO
;
734 /* SFVCB_GETTOOLBARINFO structure */
739 } SFVTOOLBARINFO
, * LPSFVTOOLBARINFO
;
741 /* SFVTOOLBARINFO flags */
745 SFVTI_ADDTOFRONT
= 1,
749 /* SFVCB_SELECTIONCHANGED structure */
756 } SFVSELECTSTATE
, * LPSFVSELECTSTATE
;
757 typedef const SFVSELECTSTATE
* LPCSFVSELECTSTATE
;
759 /* SFVCB_COPYHOOKCALLBACK structure */
769 } SFVCOPYHOOKINFO
, * LPSFVCOPYHOOKINFO
;
770 typedef const SFVCOPYHOOKINFO
* LPCSFVCOPYHOOKINFO
;
772 /* SFVCB_GETDETAILSOF structure */
779 } SFVCOLUMNINFO
, * LPSFVCOLUMNINFO
;
781 int WINAPI
SHShellFolderView_Message(
786 /* SHShellFolderView_Message messages */
787 #define SFVM_REARRANGE 0x0001
788 #define SFVM_GETARRANGECOLUMN 0x0002
789 #define SFVM_ADDOBJECT 0x0003
790 #define SFVM_GETITEMCOUNT 0x0004
791 #define SFVM_GETITEMPIDL 0x0005
792 #define SFVM_REMOVEOBJECT 0x0006
793 #define SFVM_UPDATEOBJECT 0x0007
794 #define SFVM_SETREDRAW 0x0008
795 #define SFVM_GETSELECTEDOBJECTS 0x0009
796 #define SFVM_ISDROPONSOURCE 0x000A
797 #define SFVM_MOVEICONS 0x000B
798 #define SFVM_GETDRAGPOINT 0x000C
799 #define SFVM_GETDROPPOINT 0x000D
800 #define SFVM_SETOBJECTPOS 0x000E
801 #define SFVM_ISDROPONBACKGROUND 0x000F
802 #define SFVM_CUTOBJECTS 0x0010
803 #define SFVM_TOGGLEAUTOARRANGE 0x0011
804 #define SFVM_LINEUPICONS 0x0012
805 #define SFVM_GETAUTOARRANGE 0x0013
806 #define SFVM_GETSELECTEDCOUNT 0x0014
807 #define SFVM_GETITEMSPACING 0x0015
808 #define SFVM_REFRESHOBJECT 0x0016
809 #define SFVM_SETCLIPBOARDPOINTS 0x0017
811 /****************************************************************************
815 /* SHWaitForFileToOpen flags */
816 #define SHWFF_ADD 0x01
817 #define SHWFF_REMOVE 0x02
818 #define SHWFF_WAIT 0x04
820 BOOL WINAPI
SHWaitForFileToOpen(
825 WORD WINAPI
ArrangeWindows(
830 CONST HWND
* lpKids
);
832 /* RegisterShellHook types */
833 #define RSH_DEREGISTER 0
834 #define RSH_REGISTER 1
835 #define RSH_REGISTER_PROGMAN 2
836 #define RSH_REGISTER_TASKMAN 3
838 BOOL WINAPI
RegisterShellHook(
842 /* SHCreateDefClassObject callback function */
843 typedef HRESULT (CALLBACK
*LPFNCDCOCALLBACK
)(
848 HRESULT WINAPI
SHCreateDefClassObject(
851 LPFNCDCOCALLBACK lpfnCallback
,
855 DWORD WINAPI
SHCLSIDFromStringA (LPCSTR clsid
, CLSID
*id
);
856 DWORD WINAPI
SHCLSIDFromStringW (LPWSTR clsid
, CLSID
*id
);
858 HRESULT WINAPI
SHCoCreateInstance(
865 void WINAPI
SHFreeUnusedLibraries();
867 /* SHCreateLinks flags */
868 #define SHCLF_PREFIXNAME 0x01
869 #define SHCLF_CREATEONDESKTOP 0x02
871 HRESULT WINAPI
SHCreateLinks(
874 LPDATAOBJECT lpDataObject
,
876 LPITEMIDLIST
*lppidlLinks
);
878 /* SHGetNewLinkInfo flags */
879 #define SHGNLI_PIDL 0x01
880 #define SHGNLI_PREFIXNAME 0x02
881 #define SHGNLI_NOUNIQUE 0x04
883 BOOL WINAPI
SHGetNewLinkInfoA(
890 BOOL WINAPI
SHGetNewLinkInfoW(
896 #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
898 DWORD WINAPI
CheckEscapesA(LPSTR string
, DWORD len
);
899 DWORD WINAPI
CheckEscapesW(LPWSTR string
, DWORD len
);
901 /* policy functions */
902 BOOL WINAPI
SHInitRestricted(LPCVOID unused
, LPCVOID inpRegKey
);
903 DWORD WINAPI
SHRestricted (DWORD policy
);
907 #endif /* defined(__cplusplus) */
909 #endif /* __WINE_UNDOCSHELL_H */