2 * Shell Library definitions
11 #endif /* defined(__cplusplus) */
13 /****************************************************************************
16 extern void SHELL_LoadRegistry(void);
17 extern void SHELL_SaveRegistry(void);
18 extern void SHELL_Init(void);
20 /* global functions used from shell32 */
21 extern HINSTANCE
SHELL_FindExecutable(LPCSTR
,LPCSTR
,LPSTR
);
22 extern HGLOBAL16 WINAPI
InternalExtractIcon16(HINSTANCE16
,LPCSTR
,UINT16
,WORD
);
24 /****************************************************************************
27 /****************************************************************************
30 #define SHELL_ERROR_SUCCESS 0L
31 #define SHELL_ERROR_BADDB 1L
32 #define SHELL_ERROR_BADKEY 2L
33 #define SHELL_ERROR_CANTOPEN 3L
34 #define SHELL_ERROR_CANTREAD 4L
35 #define SHELL_ERROR_CANTWRITE 5L
36 #define SHELL_ERROR_OUTOFMEMORY 6L
37 #define SHELL_ERROR_INVALID_PARAMETER 7L
38 #define SHELL_ERROR_ACCESS_DENIED 8L
40 /****************************************************************************
41 * common shell file structures
43 /******************************
46 typedef struct { /* structure for dropped files */
49 BOOL16 fInNonClientArea
;
50 /* memory block with filenames follows */
51 } DROPFILESTRUCT16
, *LPDROPFILESTRUCT16
;
53 typedef struct { /* structure for dropped files */
56 BOOL fInNonClientArea
;
58 /* memory block with filenames follows */
59 } DROPFILESTRUCT
, *LPDROPFILESTRUCT
;
62 /****************************************************************************
63 * SHITEMID, ITEMIDLIST, PIDL API
67 { WORD cb
; /* nr of bytes in this item */
68 BYTE abID
[1];/* first byte in this item */
69 } SHITEMID
,*LPSHITEMID
;
72 { SHITEMID mkid
; /* first itemid in list */
73 } ITEMIDLIST
,*LPITEMIDLIST
,*LPCITEMIDLIST
;
76 BOOL WINAPI
SHGetPathFromIDListA (LPCITEMIDLIST pidl
,LPSTR pszPath
);
77 BOOL WINAPI
SHGetPathFromIDListW (LPCITEMIDLIST pidl
,LPWSTR pszPath
);
78 #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
82 /****************************************************************************
83 * SHChangeNotifyRegister API
90 DWORD WINAPI
SHChangeNotifyRegister(HWND hwnd
,LONG events1
,LONG events2
,DWORD msg
,int count
,IDSTRUCT
*idlist
);
91 DWORD WINAPI
SHChangeNotifyDeregister(LONG x1
);
93 /****************************************************************************
94 * SHAddToRecentDocs API
96 #define SHARD_PIDL 0x00000001L
97 #define SHARD_PATH 0x00000002L
99 DWORD WINAPI
SHAddToRecentDocs(UINT uFlags
, LPCVOID pv
);
101 /****************************************************************************
102 * SHGetSpecialFolderLocation API
104 HRESULT WINAPI
SHGetSpecialFolderLocation(HWND
, INT
, LPITEMIDLIST
*);
105 /****************************************************************************
106 * string and path functions
108 BOOL WINAPI
PathIsRootA(LPCSTR x
);
109 BOOL WINAPI
PathIsRootW(LPCWSTR x
);
110 #define PathIsRoot WINELIB_NAME_AW(PathIsRoot)
111 BOOL WINAPI
PathIsRootAW(LPCVOID x
);
113 LPSTR WINAPI
PathAddBackslashA(LPSTR path
);
114 LPWSTR WINAPI
PathAddBackslashW(LPWSTR path
);
115 #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
116 LPVOID WINAPI
PathAddBackslashAW(LPVOID path
);
118 BOOL WINAPI
PathQualifyA(LPCSTR path
);
119 BOOL WINAPI
PathQualifyW(LPCWSTR path
);
120 #define PathQualify WINELIB_NAME_AW(PathQualify)
121 BOOL WINAPI
PathQualifyAW(LPCVOID path
);
123 LPSTR WINAPI
PathQuoteSpacesA(LPCSTR path
);
124 LPWSTR WINAPI
PathQuoteSpacesW(LPCWSTR path
);
125 #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
126 LPVOID WINAPI
PathQuoteSpacesAW(LPCVOID path
);
128 LPSTR WINAPI
PathCombineA(LPSTR szDest
, LPCSTR lpszDir
, LPCSTR lpszFile
);
129 LPWSTR WINAPI
PathCombineW(LPWSTR szDest
, LPCWSTR lpszDir
, LPCWSTR lpszFile
);
130 #define PathCombine WINELIB_NAME_AW(PathCombine)
131 LPVOID WINAPI
PathCombineAW(LPVOID szDest
, LPCVOID lpszDir
, LPCVOID lpszFile
);
133 LPCSTR WINAPI
PathFindExtensionA(LPCSTR path
);
134 LPCWSTR WINAPI
PathFindExtensionW(LPCWSTR path
);
135 #define PathFindExtension WINELIB_NAME_AW(PathFindExtension)
136 LPCVOID WINAPI
PathFindExtensionAW(LPCVOID path
);
138 LPCSTR WINAPI
PathGetExtensionA(LPCSTR path
, DWORD y
, DWORD x
);
139 LPCWSTR WINAPI
PathGetExtensionW(LPCWSTR path
, DWORD y
, DWORD x
);
140 #define PathGetExtension WINELIB_NAME_AW(PathGetExtension)
141 LPCVOID WINAPI
PathGetExtensionAW(LPCVOID path
, DWORD y
, DWORD x
);
143 LPCSTR WINAPI
PathFindFilenameA(LPCSTR path
);
144 LPCWSTR WINAPI
PathFindFilenameW(LPCWSTR path
);
145 #define PathFindFilename WINELIB_NAME_AW(PathFindFilename)
146 LPCVOID WINAPI
PathFindFilenameAW(LPCVOID path
);
148 BOOL WINAPI
PathMatchSpecA(LPCSTR x
, LPCSTR y
);
149 BOOL WINAPI
PathMatchSpecW(LPCWSTR x
, LPCWSTR y
);
150 #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
151 BOOL WINAPI
PathMatchSpecAW(LPVOID x
, LPVOID y
);
153 LPSTR WINAPI
PathRemoveBlanksA(LPSTR str
);
154 LPWSTR WINAPI
PathRemoveBlanksW(LPWSTR str
);
155 #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
156 LPVOID WINAPI
PathRemoveBlanksAW(LPVOID str
);
158 BOOL WINAPI
PathIsRelativeA(LPCSTR str
);
159 BOOL WINAPI
PathIsRelativeW(LPCWSTR str
);
160 #define PathIsRelative WINELIB_NAME_AW(PathIsRelative)
161 BOOL WINAPI
PathIsRelativeAW(LPCVOID str
);
163 BOOL WINAPI
PathIsUNCA(LPCSTR str
);
164 BOOL WINAPI
PathIsUNCW(LPCWSTR str
);
165 #define PathIsUNC WINELIB_NAME_AW(PathIsUNC)
166 BOOL WINAPI
PathIsUNCAW(LPCVOID str
);
168 BOOL WINAPI
PathFindOnPathA(LPSTR sFile
, LPCSTR sOtherDirs
);
169 BOOL WINAPI
PathFindOnPathW(LPWSTR sFile
, LPCWSTR sOtherDirs
);
170 #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
171 BOOL WINAPI
PathFindOnPathAW(LPVOID sFile
, LPCVOID sOtherDirs
);
173 LPSTR WINAPI
StrFormatByteSizeA ( DWORD dw
, LPSTR pszBuf
, UINT cchBuf
);
174 LPWSTR WINAPI
StrFormatByteSizeW ( DWORD dw
, LPWSTR pszBuf
, UINT cchBuf
);
175 #define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
177 DWORD WINAPI
PathCleanupSpecA(LPSTR x
, LPSTR y
);
178 DWORD WINAPI
PathCleanupSpecW(LPWSTR x
, LPWSTR y
);
179 #define PathCleanupSpec WINELIB_NAME_AW(PathCleanupSpec)
181 /****************************************************************************
185 LPVOID WINAPI
SHAlloc(DWORD len
);
186 DWORD WINAPI
SHFree(LPVOID x
);
188 #define CSIDL_DESKTOP 0x0000
189 #define CSIDL_PROGRAMS 0x0002
190 #define CSIDL_CONTROLS 0x0003
191 #define CSIDL_PRINTERS 0x0004
192 #define CSIDL_PERSONAL 0x0005
193 #define CSIDL_FAVORITES 0x0006
194 #define CSIDL_STARTUP 0x0007
195 #define CSIDL_RECENT 0x0008
196 #define CSIDL_SENDTO 0x0009
197 #define CSIDL_BITBUCKET 0x000a
198 #define CSIDL_STARTMENU 0x000b
199 #define CSIDL_DESKTOPDIRECTORY 0x0010
200 #define CSIDL_DRIVES 0x0011
201 #define CSIDL_NETWORK 0x0012
202 #define CSIDL_NETHOOD 0x0013
203 #define CSIDL_FONTS 0x0014
204 #define CSIDL_TEMPLATES 0x0015
205 #define CSIDL_COMMON_STARTMENU 0x0016
206 #define CSIDL_COMMON_PROGRAMS 0X0017
207 #define CSIDL_COMMON_STARTUP 0x0018
208 #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019
209 #define CSIDL_APPDATA 0x001a
210 #define CSIDL_PRINTHOOD 0x001b
211 #define CSIDL_ALTSTARTUP 0x001d
212 #define CSIDL_COMMON_ALTSTARTUP 0x001e
213 #define CSIDL_COMMON_FAVORITES 0x001f
214 #define CSIDL_INTERNET_CACHE 0x0020
215 #define CSIDL_COOKIES 0x0021
216 #define CSIDL_HISTORY 0x0022
220 #endif /* defined(__cplusplus) */
222 #endif /* __WINE_SHELL_H */