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 */
151 /****************************************************************************
152 * Shell Common Dialogs
155 BOOL WINAPI
PickIconDlg(
159 LPDWORD lpdwIconIndex
);
161 /* RunFileDlg flags */
162 #define RFF_NOBROWSE 0x01
163 #define RFF_NODEFAULT 0x02
164 #define RFF_CALCDIRECTORY 0x04
165 #define RFF_NOLABEL 0x08
166 #define RFF_NOSEPARATEMEM 0x20 /* NT only */
168 /* RunFileFlg notification structure */
175 } NM_RUNFILEDLG
, * LPNM_RUNFILEDLG
;
177 /* RunFileDlg notification return values */
179 #define RF_CANCEL 0x01
180 #define RF_RETRY 0x02
182 void WINAPI
RunFileDlg(
185 LPCSTR lpstrDirectory
,
187 LPCSTR lpstrDescription
,
190 void WINAPI
ExitWindowsDialog(HWND hwndOwner
);
192 int WINAPI
RestartDialog(
197 BOOL WINAPI
GetFileNameFromBrowse(
201 LPCSTR lpstrInitialDir
,
206 BOOL WINAPI
SHFindFiles(
207 LPCITEMIDLIST pidlRoot
,
208 LPCITEMIDLIST pidlSavedSearch
);
210 BOOL WINAPI
SHFindComputer(
211 LPCITEMIDLIST pidlRoot
,
212 LPCITEMIDLIST pidlSavedSearch
);
214 /* SHObjectProperties flags */
215 #define OPF_PRINTERNAME 0x01
216 #define OPF_PATHNAME 0x02
218 BOOL WINAPI
SHObjectProperties(
222 LPCSTR lpstrParameters
);
224 void WINAPI
SHHandleDiskFull(HWND hwndOwner
,
227 int WINAPI
SHOutOfMemoryMessageBox(
232 DWORD WINAPI
SHNetConnectionDialog(
234 LPCSTR lpstrRemoteName
,
237 int WINAPIV
ShellMessageBoxA(
245 int WINAPIV
ShellMessageBoxW(
253 #define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
255 /****************************************************************************
259 LPVOID WINAPI
SHAlloc(ULONG cb
);
260 void WINAPI
SHFree(LPVOID pv
);
262 HANDLE WINAPI
SHAllocShared(
267 BOOL WINAPI
SHFreeShared(
271 LPVOID WINAPI
SHLockShared(
275 BOOL WINAPI
SHUnlockShared(LPVOID pv
);
277 /****************************************************************************
278 * Cabinet Window Messages
281 #define CWM_SETPATH (WM_USER + 2)
282 #define CWM_WANTIDLE (WM_USER + 3)
283 #define CWM_GETSETCURRENTINFO (WM_USER + 4)
284 #define CWM_SELECTITEM (WM_USER + 5)
285 #define CWM_SELECTITEMSTR (WM_USER + 6)
286 #define CWM_GETISHELLBROWSER (WM_USER + 7)
287 #define CWM_TESTPATH (WM_USER + 9)
288 #define CWM_STATECHANGE (WM_USER + 10)
289 #define CWM_GETPATH (WM_USER + 12)
291 /* CWM_TESTPATH types */
292 #define CWTP_ISEQUAL 0
293 #define CWTP_ISCHILD 1
295 /* CWM_TESTPATH structure */
300 } CWTESTPATHSTRUCT
,* LPCWTESTPATHSTRUCT
;
302 /****************************************************************************
303 * System Imagelist Routines
306 int WINAPI
Shell_GetCachedImageIndex(
311 BOOL WINAPI
Shell_GetImageLists(
312 HIMAGELIST
*lphimlLarge
,
313 HIMAGELIST
*lphimlSmall
);
315 HICON WINAPI
SHGetFileIcon(
318 DWORD dwFileAttributes
,
321 int WINAPI
SHMapPIDLToSystemImageListIndex(
326 BOOL WINAPI
FileIconInit(BOOL bFullInit
);
328 /****************************************************************************
331 /* FileMenu_Create nSelHeight constants */
332 #define FM_DEFAULT_SELHEIGHT -1
333 #define FM_FULL_SELHEIGHT 0
335 /* FileMenu_Create flags */
336 #define FMF_SMALL_ICONS 0x00
337 #define FMF_LARGE_ICONS 0x08
338 #define FMF_NO_COLUMN_BREAK 0x10
340 HMENU WINAPI
FileMenu_Create(
341 COLORREF crBorderColor
,
347 void WINAPI
FileMenu_Destroy(HMENU hMenu
);
349 /* FileMenu_AppendItem constants */
350 #define FM_SEPARATOR (LPCSTR)1
351 #define FM_BLANK_ICON -1
352 #define FM_DEFAULT_HEIGHT 0
354 BOOL WINAPI
FileMenu_AppendItem(
362 /* FileMenu_InsertUsingPidl flags */
363 #define FMF_NO_EMPTY_ITEM 0x01
364 #define FMF_NO_PROGRAM_GROUPS 0x04
366 /* FileMenu_InsertUsingPidl callback function */
367 typedef void (CALLBACK
*LPFNFMCALLBACK
)(LPCITEMIDLIST pidlFolder
, LPCITEMIDLIST pidlFile
);
369 int WINAPI
FileMenu_InsertUsingPidl(
375 LPFNFMCALLBACK lpfnCallback
);
377 int WINAPI
FileMenu_ReplaceUsingPidl(
382 LPFNFMCALLBACK lpfnCallback
);
384 void WINAPI
FileMenu_Invalidate(HMENU hMenu
);
386 HMENU WINAPI
FileMenu_FindSubMenuByPidl(
390 BOOL WINAPI
FileMenu_TrackPopupMenuEx(
398 BOOL WINAPI
FileMenu_GetLastSelectedItemPidls(
400 LPCITEMIDLIST
*ppidlFolder
,
401 LPCITEMIDLIST
*ppidlItem
);
403 LRESULT WINAPI
FileMenu_MeasureItem(
405 LPMEASUREITEMSTRUCT lpmis
);
407 LRESULT WINAPI
FileMenu_DrawItem(
409 LPDRAWITEMSTRUCT lpdis
);
411 BOOL WINAPI
FileMenu_InitMenuPopup(HMENU hMenu
);
413 void WINAPI
FileMenu_AbortInitMenu(void);
415 LRESULT WINAPI
FileMenu_HandleMenuChar(
419 BOOL WINAPI
FileMenu_DeleteAllItems(HMENU hMenu
);
421 BOOL WINAPI
FileMenu_DeleteItemByCmd(
425 BOOL WINAPI
FileMenu_DeleteItemByIndex(
429 BOOL WINAPI
FileMenu_DeleteMenuItemByFirstID(
433 BOOL WINAPI
FileMenu_DeleteSeparator(HMENU hMenu
);
435 BOOL WINAPI
FileMenu_EnableItemByCmd(
440 DWORD WINAPI
FileMenu_GetItemExtent(
444 int WINAPI
FileMenu_AppendFilesForPidl(
449 int WINAPI
FileMenu_AddFilesForPidl(
456 LPFNFMCALLBACK lpfnCallback
);
458 /****************************************************************************
459 * Drag And Drop Routines
461 HRESULT WINAPI
SHLoadOLE(DWORD dwFlags
);
463 HRESULT WINAPI
SHRegisterDragDrop(
465 LPDROPTARGET lpDropTarget
);
467 HRESULT WINAPI
SHRevokeDragDrop(HWND hWnd
);
469 HRESULT WINAPI
SHDoDragDrop(
471 LPDATAOBJECT lpDataObject
,
472 LPDROPSOURCE lpDropSource
,
476 BOOL WINAPI
DAD_DragEnter(HWND hWnd
);
478 BOOL WINAPI
DAD_DragEnterEx(
482 BOOL WINAPI
DAD_DragMove(POINT pt
);
484 /* DAD_AutoScroll return values */
485 #define DAD_SCROLL_UP 1
486 #define DAD_SCROLL_DOWN 2
487 #define DAD_SCROLL_LEFT 4
488 #define DAD_SCROLL_RIGHT 8
490 /* DAD_AutoScroll sample structure */
496 POINT aptPositions
[3];
498 } SCROLLSAMPLES
, *LPSCROLLSAMPLES
;
500 DWORD WINAPI
DAD_AutoScroll(HWND hWnd
,
501 LPSCROLLSAMPLES lpSamples
,
504 BOOL WINAPI
DAD_DragLeave();
506 BOOL WINAPI
DAD_SetDragImageFromListView(
510 BOOL WINAPI
DAD_SetDragImage(
511 HIMAGELIST himlTrack
,
514 BOOL WINAPI
DAD_ShowDragImage(BOOL bShow
);
516 HRESULT WINAPI
SHCreateStdEnumFmtEtc(
518 const FORMATETC
*lpFormats
,
519 LPENUMFORMATETC
*ppenumFormatetc
);
521 HRESULT WINAPI
CIDLData_CreateFromIDArray(
522 LPCITEMIDLIST pidlFolder
,
524 LPCITEMIDLIST
*lppidlFiles
,
525 LPDATAOBJECT
*ppdataObject
);
527 /****************************************************************************
528 * Path Manipulation Routines
531 BOOL WINAPI
PathAppendAW(LPVOID lpszPath1
, LPCVOID lpszPath2
);
533 LPVOID WINAPI
PathCombineAW(LPVOID szDest
, LPCVOID lpszDir
, LPCVOID lpszFile
);
535 LPVOID WINAPI
PathAddBackslashAW(LPVOID path
);
537 LPVOID WINAPI
PathBuildRootAW(LPVOID lpszPath
, int drive
);
539 LPVOID WINAPI
PathFindExtensionAW(LPCVOID path
);
541 LPVOID WINAPI
PathFindFileNameAW(LPCVOID path
);
543 LPVOID WINAPI
PathGetExtensionAW(LPCVOID lpszPath
, DWORD void1
, DWORD void2
);
545 LPVOID WINAPI
PathGetArgsAW(LPVOID lpszPath
);
547 BOOL WINAPI
PathRemoveFileSpecAW(LPVOID lpszPath
);
549 LPVOID WINAPI
PathGetShortPathAW(LPVOID lpszPath
);
551 void WINAPI
PathRemoveBlanksAW(LPVOID lpszPath
);
553 VOID WINAPI
PathQuoteSpacesAW(LPVOID path
);
555 void WINAPI
PathUnquoteSpacesAW(LPVOID lpszPath
);
557 BOOL WINAPI
PathIsUNCAW(LPCVOID lpszPath
);
559 BOOL WINAPI
PathIsRelativeAW(LPCVOID lpszPath
);
561 BOOL WINAPI
PathIsRootAW(LPCVOID x
);
563 BOOL WINAPI
PathIsExeAW(LPCVOID lpszPath
);
565 BOOL WINAPI
PathIsDirectoryAW(LPCVOID lpszPath
);
567 BOOL WINAPI
PathFileExistsAW(LPCVOID lpszPath
);
569 BOOL WINAPI
PathMatchSpecAW(LPVOID lpszPath
, LPVOID lpszSpec
);
571 BOOL WINAPI
PathMakeUniqueNameAW(
574 LPCVOID lpszShortName
,
575 LPCVOID lpszLongName
,
576 LPCVOID lpszPathName
);
578 BOOL WINAPI
PathYetAnotherMakeUniqueNameA(
581 LPCSTR lpszShortName
,
582 LPCSTR lpszLongName
);
584 /* PathCleanupSpec return values */
585 #define PCS_REPLACEDCHARS 0x00000001
586 #define PCS_REMOVEDCHARS 0x00000002
587 #define PCS_SHORTENED 0x00000004
588 #define PCS_PATHTOOLONG 0x80000008
590 DWORD WINAPI
PathCleanupSpecAW(LPCVOID lpszPath
, LPVOID lpszFile
);
592 BOOL WINAPI
PathQualifyA(LPCSTR path
);
593 BOOL WINAPI
PathQualifyW(LPCWSTR path
);
594 #define PathQualify WINELIB_NAME_AW(PathQualify)
595 BOOL WINAPI
PathQualifyAW(LPCVOID path
);
598 /* PathResolve flags */
599 #define PRF_CHECKEXISTANCE 0x01
600 #define PRF_EXECUTABLE 0x02
601 #define PRF_QUALIFYONPATH 0x04
602 #define PRF_WINDOWS31 0x08
604 BOOL WINAPI
PathResolveAW(LPVOID lpszPath
, LPCVOID
*alpszPaths
, DWORD dwFlags
);
606 VOID WINAPI
PathSetDlgItemPathAW(HWND hDlg
, int nIDDlgItem
, LPCVOID lpszPath
);
608 /* PathProcessCommand flags */
609 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
610 #define PPCF_INCLUDEARGS 0x02
611 #define PPCF_NODIRECTORIES 0x10
612 #define PPCF_DONTRESOLVE 0x20
613 #define PPCF_PATHISRELATIVE 0x40
615 HRESULT WINAPI
PathProcessCommandAW(LPCVOID lpszPath
, LPVOID lpszBuff
,
616 DWORD dwBuffSize
, DWORD dwFlags
);
618 void WINAPI
PathStripPathAW(LPVOID lpszPath
);
620 BOOL WINAPI
PathStripToRootAW(LPVOID lpszPath
);
622 void WINAPI
PathRemoveArgsAW(LPVOID lpszPath
);
624 void WINAPI
PathRemoveExtensionAW(LPVOID lpszPath
);
626 int WINAPI
PathParseIconLocationAW(LPVOID lpszPath
);
628 BOOL WINAPI
PathIsSameRootAW(LPCVOID lpszPath1
, LPCVOID lpszPath2
);
630 BOOL WINAPI
PathFindOnPathAW(LPVOID sFile
, LPCVOID sOtherDirs
);
632 /****************************************************************************
633 * Shell Namespace Routines
636 /* SHCreateShellFolderViewEx callback function */
637 typedef HRESULT (CALLBACK
*LPFNSFVCALLBACK
)(
645 /* SHCreateShellFolderViewEx structure */
651 LPCITEMIDLIST pidlFolder
;
653 LPFNSFVCALLBACK lpfnCallback
;
655 } SHELLFOLDERVIEWINFO
, * LPSHELLFOLDERVIEWINFO
;
656 typedef const SHELLFOLDERVIEWINFO
* LPCSHELLFOLDERVIEWINFO
;
658 HRESULT WINAPI
SHCreateShellFolderViewEx(
659 LPCSHELLFOLDERVIEWINFO pshfvi
,
662 /* SHCreateShellFolderViewEx callback messages */
663 #define SFVCB_ADDTOMENU 0x0001
664 #define SFVCB_INVOKECOMMAND 0x0002
665 #define SFVCB_GETMENUHELP 0x0003
666 #define SFVCB_GETTOOLBARTIP 0x0004
667 #define SFVCB_GETTOOLBARINFO 0x0005
668 #define SFVCB_ADDTOOLBARITEMS 0x0006
669 #define SFVCB_INITMENUPOPUP 0x0007
670 #define SFVCB_SELECTIONCHANGED 0x0008
671 #define SFVCB_DRAWMENUITEM 0x0009
672 #define SFVCB_MEASUREMENUITEM 0x000A
673 #define SFVCB_EXITMENULOOP 0x000B
674 #define SFVCB_VIEWRELEASE 0x000C
675 #define SFVCB_GETNAMELENGTH 0x000D
676 #define SFVCB_CHANGENOTIFY 0x000E
677 #define SFVCB_WINDOWCREATED 0x000F
678 #define SFVCB_WINDOWCLOSING 0x0010
679 #define SFVCB_LISTREFRESHED 0x0011
680 #define SFVCB_WINDOWFOCUSED 0x0012
681 #define SFVCB_REGISTERCOPYHOOK 0x0014
682 #define SFVCB_COPYHOOKCALLBACK 0x0015
683 #define SFVCB_GETDETAILSOF 0x0017
684 #define SFVCB_COLUMNCLICK 0x0018
685 #define SFVCB_GETCHANGENOTIFYPIDL 0x0019
686 #define SFVCB_GETESTIMATEDCOUNT 0x001A
687 #define SFVCB_ADJUSTVIEWMODE 0x001B
688 #define SFVCB_REMOVEFROMMENU 0x001C
689 #define SFVCB_ADDINGOBJECT 0x001D
690 #define SFVCB_REMOVINGOBJECT 0x001E
691 #define SFVCB_UPDATESTATUSBAR 0x001F
692 #define SFVCB_ISSLOWREFRESH 0x0020
693 #define SFVCB_GETCOMMANDDIR 0x0021
694 #define SFVCB_GETCOLUMNSTREAM 0x0022
695 #define SFVCB_CANSELECTALL 0x0023
696 #define SFVCB_DRAGSUCCEEDED 0x0024
697 #define SFVCB_ISSTRICTREFRESH 0x0025
698 #define SFVCB_ISCHILDOBJECT 0x0026
700 /* Generic structure used by several messages */
707 } SFVCBINFO
, * LPSFVCBINFO
;
708 typedef const SFVCBINFO
* LPCSFVCBINFO
;
710 /* SFVCB_ADDTOMENU structure */
717 } SFVMENUINFO
, * LPSFVMENUINFO
;
719 /* SFVCB_GETTOOLBARINFO structure */
724 } SFVTOOLBARINFO
, * LPSFVTOOLBARINFO
;
726 /* SFVTOOLBARINFO flags */
730 SFVTI_ADDTOFRONT
= 1,
734 /* SFVCB_SELECTIONCHANGED structure */
741 } SFVSELECTSTATE
, * LPSFVSELECTSTATE
;
742 typedef const SFVSELECTSTATE
* LPCSFVSELECTSTATE
;
744 /* SFVCB_COPYHOOKCALLBACK structure */
754 } SFVCOPYHOOKINFO
, * LPSFVCOPYHOOKINFO
;
755 typedef const SFVCOPYHOOKINFO
* LPCSFVCOPYHOOKINFO
;
757 /* SFVCB_GETDETAILSOF structure */
764 } SFVCOLUMNINFO
, * LPSFVCOLUMNINFO
;
766 int WINAPI
SHShellFolderView_Message(
771 /* SHShellFolderView_Message messages */
772 #define SFVM_REARRANGE 0x0001
773 #define SFVM_GETARRANGECOLUMN 0x0002
774 #define SFVM_ADDOBJECT 0x0003
775 #define SFVM_GETITEMCOUNT 0x0004
776 #define SFVM_GETITEMPIDL 0x0005
777 #define SFVM_REMOVEOBJECT 0x0006
778 #define SFVM_UPDATEOBJECT 0x0007
779 #define SFVM_SETREDRAW 0x0008
780 #define SFVM_GETSELECTEDOBJECTS 0x0009
781 #define SFVM_ISDROPONSOURCE 0x000A
782 #define SFVM_MOVEICONS 0x000B
783 #define SFVM_GETDRAGPOINT 0x000C
784 #define SFVM_GETDROPPOINT 0x000D
785 #define SFVM_SETOBJECTPOS 0x000E
786 #define SFVM_ISDROPONBACKGROUND 0x000F
787 #define SFVM_CUTOBJECTS 0x0010
788 #define SFVM_TOGGLEAUTOARRANGE 0x0011
789 #define SFVM_LINEUPICONS 0x0012
790 #define SFVM_GETAUTOARRANGE 0x0013
791 #define SFVM_GETSELECTEDCOUNT 0x0014
792 #define SFVM_GETITEMSPACING 0x0015
793 #define SFVM_REFRESHOBJECT 0x0016
794 #define SFVM_SETCLIPBOARDPOINTS 0x0017
796 /****************************************************************************
800 /* SHWaitForFileToOpen flags */
801 #define SHWFF_ADD 0x01
802 #define SHWFF_REMOVE 0x02
803 #define SHWFF_WAIT 0x04
805 BOOL WINAPI
SHWaitForFileToOpen(
810 WORD WINAPI
ArrangeWindows(
815 CONST HWND
* lpKids
);
817 /* RegisterShellHook types */
818 #define RSH_DEREGISTER 0
819 #define RSH_REGISTER 1
820 #define RSH_REGISTER_PROGMAN 2
821 #define RSH_REGISTER_TASKMAN 3
823 BOOL WINAPI
RegisterShellHook(
827 /* SHCreateDefClassObject callback function */
828 typedef HRESULT (CALLBACK
*LPFNCDCOCALLBACK
)(
833 HRESULT WINAPI
SHCreateDefClassObject(
836 LPFNCDCOCALLBACK lpfnCallback
,
840 DWORD WINAPI
SHCLSIDFromStringA (LPCSTR clsid
, CLSID
*id
);
841 DWORD WINAPI
SHCLSIDFromStringW (LPWSTR clsid
, CLSID
*id
);
843 HRESULT WINAPI
SHCoCreateInstance(
850 void WINAPI
SHFreeUnusedLibraries();
852 /* SHCreateLinks flags */
853 #define SHCLF_PREFIXNAME 0x01
854 #define SHCLF_CREATEONDESKTOP 0x02
856 HRESULT WINAPI
SHCreateLinks(
859 LPDATAOBJECT lpDataObject
,
861 LPITEMIDLIST
*lppidlLinks
);
863 /* SHGetNewLinkInfo flags */
864 #define SHGNLI_PIDL 0x01
865 #define SHGNLI_PREFIXNAME 0x02
866 #define SHGNLI_NOUNIQUE 0x04
868 BOOL WINAPI
SHGetNewLinkInfoA(
875 BOOL WINAPI
SHGetNewLinkInfoW(
881 #define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
883 DWORD WINAPI
CheckEscapesA(LPSTR string
, DWORD len
);
884 DWORD WINAPI
CheckEscapesW(LPWSTR string
, DWORD len
);
886 /* policy functions */
887 BOOL WINAPI
SHInitRestricted(LPCVOID unused
, LPCVOID inpRegKey
);
888 DWORD WINAPI
SHRestricted (DWORD policy
);
890 /* cabinet functions */
892 #include "pshpack1.h"
897 BOOL fFullPathTitle
:1;
898 BOOL fSaveLocalView
:1;
900 BOOL fSimpleDefault
:1;
901 BOOL fDontShowDescBar
:1;
902 BOOL fNewWindowMode
:1;
903 BOOL fShowCompColor
:1;
904 BOOL fDontPrettyNames
:1;
905 BOOL fAdminsCreateCommonGroups
:1;
907 UINT fMenuEnumFilter
;
912 BOOL WINAPI
ReadCabinetState(CABINETSTATE
*, int);
913 BOOL WINAPI
WriteCabinetState(CABINETSTATE
*);
917 #endif /* defined(__cplusplus) */
919 #endif /* __WINE_UNDOCSHELL_H */