Added unicode MDI client window proc.
[wine] / include / shlwapi.h
1 #ifndef __WINE_SHLWAPI_H
2 #define __WINE_SHLWAPI_H
3
4 #include "objbase.h"
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif /* defined(__cplusplus) */
9
10
11 /*
12  * The URL_ defines were determined by trial and error.  If they become
13  * documented please check them and add the missing ones including:
14  *
15  * URL_ESCAPE_PERCENT
16  * URL_PLUGGABLE_PROTOCOL
17  * URL_DONT_ESCAPE_EXTRA_INFO
18  * URL_ESCAPE_SEGMENT_ONLY
19  */
20
21 #define URL_UNESCAPE_INPLACE         0x00100000
22 #define URL_DONT_UNESCAPE_EXTRA_INFO 0x02000000
23  
24 #define URL_ESCAPE_SPACES_ONLY       0x04000000
25
26 #define URL_UNESCAPE                 0x10000000
27 #define URL_ESCAPE_UNSAFE            0x20000000
28 #define URL_DONT_SIMPLIFY            0x40000000
29
30 LPSTR  WINAPI PathAddBackslashA(LPSTR path);    
31 LPWSTR WINAPI PathAddBackslashW(LPWSTR path);   
32 #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
33
34 BOOL WINAPI PathAddExtensionA(LPSTR pszPath, LPCSTR pszExt);
35 BOOL WINAPI PathAddExtensionW(LPWSTR pszPath, LPCWSTR pszExt);
36 #define PathAddExtension WINELIB_NAME_AW(PathAddExtension)
37
38 BOOL WINAPI PathAppendA(LPSTR lpszPath1,LPCSTR lpszPath2);
39 BOOL WINAPI PathAppendW(LPWSTR lpszPath1,LPCWSTR lpszPath2);
40 #define PathAppend WINELIB_NAME_AW(PathAppend)
41
42 LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive);
43 LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive);
44 #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot)
45
46 BOOL WINAPI PathCanonicalizeA(LPSTR lpszDst, LPCSTR lpszSrc);
47 BOOL WINAPI PathCanonicalizeW(LPWSTR lpszDst, LPCWSTR lpszSrc);
48 #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize)
49
50 LPSTR  WINAPI PathCombineA(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile);
51 LPWSTR WINAPI PathCombineW(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile);
52 #define PathCombine WINELIB_NAME_AW(PathCombine)
53
54 BOOL WINAPI PathFileExistsA(LPCSTR lpszPath);
55 BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath);
56 #define PathFileExists WINELIB_NAME_AW(PathFileExists)
57
58 LPSTR WINAPI PathFindExtensionA(LPCSTR path);
59 LPWSTR WINAPI PathFindExtensionW(LPCWSTR path);
60 #define PathFindExtension WINELIB_NAME_AW(PathFindExtension)
61
62 LPSTR WINAPI PathFindFileNameA(LPCSTR pPath);
63 LPWSTR WINAPI PathFindFileNameW(LPCWSTR pPath);
64 #define PathFindFileName WINELIB_NAME_AW(PathFindFileName)
65
66 LPSTR WINAPI PathFindNextComponentA(LPCSTR pszPath);
67 LPWSTR WINAPI PathFindNextComponentW(LPCWSTR pszPath);
68 #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent)
69
70 BOOL WINAPI PathFindOnPathA(LPSTR sFile, LPCSTR sOtherDirs);
71 BOOL WINAPI PathFindOnPathW(LPWSTR sFile, LPCWSTR sOtherDirs);
72 #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
73
74 LPSTR WINAPI PathGetArgsA(LPCSTR lpszPath);
75 LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath);
76 #define PathGetArgs WINELIB_NAME_AW(PathGetArgs)
77
78 int WINAPI PathGetDriveNumberA(LPCSTR lpszPath);
79 int WINAPI PathGetDriveNumberW(LPCWSTR lpszPath);
80 #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber)
81
82 BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath);
83 BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath);
84 #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory)
85
86 BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath);
87 BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath);
88 #define PathIsRelative WINELIB_NAME_AW(PathIsRelative)
89
90 BOOL WINAPI PathIsRootA(LPCSTR x);
91 BOOL WINAPI PathIsRootW(LPCWSTR x);
92 #define PathIsRoot WINELIB_NAME_AW(PathIsRoot)
93
94 BOOL WINAPI PathIsSameRootA(LPCSTR lpszPath1, LPCSTR lpszPath2);
95 BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2);
96 #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot)
97
98 BOOL WINAPI PathIsUNCA(LPCSTR lpszPath);
99 BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath);
100 #define PathIsUNC WINELIB_NAME_AW(PathIsUNC)
101
102 BOOL WINAPI PathIsURLA(LPCSTR pszPath);
103 BOOL WINAPI PathIsURLW(LPCWSTR pszPath);
104 #define PathIsURL WINELIB_NAME_AW(PathIsURL)
105
106 BOOL WINAPI PathMatchSpecA(LPCSTR lpszPath, LPCSTR lpszSpec);
107 BOOL WINAPI PathMatchSpecW(LPCWSTR lpszPath, LPCWSTR lpszSpec);
108 #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
109
110 int WINAPI PathParseIconLocationA(LPSTR lpszPath);
111 int WINAPI PathParseIconLocationW(LPWSTR lpszPath);
112 #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation)
113
114 LPSTR  WINAPI PathQuoteSpacesA(LPSTR path);     
115 LPWSTR WINAPI PathQuoteSpacesW(LPWSTR path);    
116 #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
117
118 void WINAPI PathRemoveArgsA(LPSTR lpszPath);
119 void WINAPI PathRemoveArgsW(LPWSTR lpszPath);
120 #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs)
121
122 LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath);
123 LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath);
124 #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash)
125
126 void WINAPI PathRemoveBlanksA(LPSTR lpszPath);
127 void WINAPI PathRemoveBlanksW(LPWSTR lpszPath);
128 #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
129
130 void WINAPI PathRemoveExtensionA(LPSTR lpszPath);
131 void WINAPI PathRemoveExtensionW(LPWSTR lpszPath);
132 #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension)
133
134 BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath);
135 BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath);
136 #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec)
137
138 BOOL WINAPI PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR pszPath);
139 BOOL WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR pszPath);
140 #define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath)
141
142 void WINAPI PathStripPathA(LPSTR lpszPath);
143 void WINAPI PathStripPathW(LPWSTR lpszPath);
144 #define PathStripPath WINELIB_NAME_AW(PathStripPath)
145
146 BOOL WINAPI PathStripToRootA(LPSTR pszPath);
147 BOOL WINAPI PathStripToRootW(LPWSTR pszPath);
148 #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot)
149
150 void WINAPI PathUnquoteSpacesA(LPSTR str);
151 void WINAPI PathUnquoteSpacesW(LPWSTR str);
152 #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces)
153
154
155 INT WINAPI StrCSpnA(LPCSTR lpStr, LPCSTR lpSet);
156 INT WINAPI StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet);
157 #define StrCSpn WINELIB_NAME_AW(StrCSpn)
158
159 INT WINAPI StrCSpnIA(LPCSTR lpStr, LPCSTR lpSet);
160 INT WINAPI StrCSpnIW(LPCWSTR lpStr, LPCWSTR lpSet);
161 #define StrCSpnI WINELIB_NAME_AW(StrCSpnI)
162
163 #define StrCatA lstrcatA
164 LPWSTR WINAPI StrCatW(LPWSTR front, LPCWSTR back);
165 #define StrCat WINELIB_NAME_AW(StrCat)
166
167 LPSTR WINAPI StrCatBuffA(LPSTR front, LPCSTR back, INT size);
168 LPWSTR WINAPI StrCatBuffW(LPWSTR front, LPCWSTR back, INT size);
169 #define StrCatBuff WINELIB_NAME_AW(StrCatBuff)
170
171 LPSTR WINAPI StrChrA(LPCSTR lpStart, WORD wMatch);
172 LPWSTR WINAPI StrChrW(LPCWSTR lpStart, WCHAR wMatch); 
173 #define StrChr WINELIB_NAME_AW(StrChr)
174
175 LPSTR WINAPI StrChrIA(LPCSTR lpStart, WORD wMatch);
176 LPWSTR WINAPI StrChrIW(LPCWSTR lpStart, WCHAR wMatch); 
177 #define StrChrI WINELIB_NAME_AW(StrChrI)
178
179 INT WINAPI StrCmpNA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
180 INT WINAPI StrCmpNW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar);
181 #define StrCmpN WINELIB_NAME_AW(StrCmpN)
182
183 INT WINAPI StrCmpNIA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
184 INT WINAPI StrCmpNIW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar);
185 #define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
186
187 LPSTR WINAPI StrDupA(LPCSTR lpSrc);
188 LPWSTR WINAPI StrDupW(LPCWSTR lpSrc);
189 #define StrDup WINELIB_NAME_AW(StrDup)
190
191 LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
192 LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf );
193 #define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
194
195
196
197 struct _STRRET;
198 struct _ITEMIDLIST;
199 HRESULT WINAPI StrRetToBufA(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPSTR dest, DWORD len);
200 HRESULT WINAPI StrRetToBufW(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPWSTR dest, DWORD len);
201 #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
202
203 HRESULT WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey);
204 HRESULT WINAPI SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey);
205 #define  SHDeleteKey WINELIB_NAME_AW(SHDeleteKey)
206
207 DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey);
208 DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey);
209 #define  SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
210
211 HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized, 
212                                 LPDWORD pcchCanonicalized, DWORD dwFlags);
213 HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, 
214                                 LPDWORD pcchCanonicalized, DWORD dwFlags);
215 #define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize)
216
217 HRESULT WINAPI UrlEscapeA(LPCSTR pszUrl, LPSTR pszEscaped, LPDWORD pcchEscaped,
218                           DWORD dwFlags);
219 HRESULT WINAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped,
220                           LPDWORD pcchEscaped, DWORD dwFlags);
221 #define UrlEscape WINELIB_NAME_AW(UrlEscape)
222
223 HRESULT WINAPI UrlUnescapeA(LPCSTR pszUrl, LPSTR pszUnescaped,
224                             LPDWORD pcchUnescaped, DWORD dwFlags);
225 HRESULT WINAPI UrlUnescapeW(LPCWSTR pszUrl, LPWSTR pszUnescaped,
226                             LPDWORD pcchUnescaped, DWORD dwFlags);
227 #define UrlUnescape WINELIB_AW_NAME(UrlUnescape)
228
229 typedef struct _DllVersionInfo {
230     DWORD cbSize;
231     DWORD dwMajorVersion;
232     DWORD dwMinorVersion;
233     DWORD dwBuildNumber;
234     DWORD dwPlatformID;
235 } DLLVERSIONINFO;
236
237 #define DLLVER_PLATFORM_WINDOWS         0x00000001      // Windows 9x
238 #define DLLVER_PLATFORM_NT              0x00000002      // Windows NT
239
240 typedef HRESULT CALLBACK (*DLLGETVERSIONPROC)(DLLVERSIONINFO *);
241
242 #ifdef __cplusplus
243 } /* extern "C" */
244 #endif /* defined(__cplusplus) */
245
246 #endif /* __WINE_SHLWAPI_H */