blob: a3531c8006d08bd8c5a2ebf83d2cf14746fccb59 [file] [log] [blame]
Juergen Schmied51c74d82000-04-28 20:23:46 +00001#ifndef __WINE_SHLWAPI_H
2#define __WINE_SHLWAPI_H
3
Alexandre Julliard74af67e2000-09-26 00:00:55 +00004#include "objbase.h"
Juergen Schmied51c74d82000-04-28 20:23:46 +00005
6#ifdef __cplusplus
7extern "C" {
8#endif /* defined(__cplusplus) */
9
Patrik Stridvalld7742bd2000-07-28 22:22:03 +000010BOOL WINAPI PathAppendA(LPSTR lpszPath1,LPCSTR lpszPath2);
11BOOL WINAPI PathAppendW(LPWSTR lpszPath1,LPCWSTR lpszPath2);
12
13LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive);
14LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive);
15
16LPSTR WINAPI PathGetArgsA(LPCSTR lpszPath);
17LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath);
18
19BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath);
20BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath);
21
22void WINAPI PathStripPathA(LPSTR lpszPath);
23void WINAPI PathStripPathW(LPWSTR lpszPath);
24
25void WINAPI PathRemoveArgsA(LPSTR lpszPath);
26void WINAPI PathRemoveArgsW(LPWSTR lpszPath);
27
28void WINAPI PathRemoveExtensionA(LPSTR lpszPath);
29void WINAPI PathRemoveExtensionW(LPWSTR lpszPath);
30
31void WINAPI PathUnquoteSpacesA(LPSTR str);
32void WINAPI PathUnquoteSpacesW(LPWSTR str);
33
34int WINAPI PathParseIconLocationA(LPSTR lpszPath);
35int WINAPI PathParseIconLocationW(LPWSTR lpszPath);
36
Patrik Stridvalld7742bd2000-07-28 22:22:03 +000037BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath);
38BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath);
39
40BOOL WINAPI PathFileExistsA(LPCSTR lpszPath);
41BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath);
42
43BOOL WINAPI PathIsSameRootA(LPCSTR lpszPath1, LPCSTR lpszPath2);
44BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2);
45
46BOOL WINAPI PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR pszPath);
47BOOL WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR pszPath);
48
Juergen Schmied51c74d82000-04-28 20:23:46 +000049LPSTR WINAPI PathFindFileNameA(LPCSTR pPath);
50LPWSTR WINAPI PathFindFileNameW(LPCWSTR pPath);
51#define PathFindFileName WINELIB_NAME_AW(PathFindFileName)
52LPVOID WINAPI PathFindFileNameAW(LPCVOID path);
53
54int WINAPI PathGetDriveNumberA(LPCSTR lpszPath);
55int WINAPI PathGetDriveNumberW(LPCWSTR lpszPath);
56#define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber)
57
58BOOL WINAPI PathCanonicalizeA(LPSTR lpszDst, LPCSTR lpszSrc);
59BOOL WINAPI PathCanonicalizeW(LPWSTR lpszDst, LPCWSTR lpszSrc);
60#define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize)
61
62LPSTR WINAPI PathFindNextComponentA(LPCSTR pszPath);
63LPWSTR WINAPI PathFindNextComponentW(LPCWSTR pszPath);
64#define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent)
65
66BOOL WINAPI PathIsURLA(LPCSTR pszPath);
67BOOL WINAPI PathIsURLW(LPCWSTR pszPath);
68#define PathIsURL WINELIB_NAME_AW(PathIsURL)
69
Juergen Schmied0d18aad2000-06-01 23:25:44 +000070BOOL WINAPI PathAddExtensionA(LPSTR pszPath, LPCSTR pszExt);
71BOOL WINAPI PathAddExtensionW(LPWSTR pszPath, LPCWSTR pszExt);
72#define PathAddExtension WINELIB_NAME_AW(PathAddExtension)
73
74BOOL WINAPI PathStripToRootA(LPSTR pszPath);
75BOOL WINAPI PathStripToRootW(LPWSTR pszPath);
76#define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot)
77
Huw D M Davies52b2d2c2000-09-13 20:28:31 +000078INT WINAPI StrCSpnA(LPCSTR lpStr, LPCSTR lpSet);
79INT WINAPI StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet);
80#define StrCSpn WINELIB_NAME_AW(StrCSpn)
81
82INT WINAPI StrCSpnIA(LPCSTR lpStr, LPCSTR lpSet);
83INT WINAPI StrCSpnIW(LPCWSTR lpStr, LPCWSTR lpSet);
84#define StrCSpnI WINELIB_NAME_AW(StrCSpnI)
85
86#define StrCatA lstrcatA
87LPWSTR WINAPI StrCatW(LPWSTR front, LPCWSTR back);
88#define StrCat WINELIB_NAME_AW(StrCat)
89
90LPSTR WINAPI StrCatBuffA(LPSTR front, LPCSTR back, INT size);
91LPWSTR WINAPI StrCatBuffW(LPWSTR front, LPCWSTR back, INT size);
92#define StrCatBuff WINELIB_NAME_AW(StrCatBuff)
93
Juergen Schmied13d74c52000-06-13 03:45:52 +000094LPSTR WINAPI StrChrA(LPCSTR lpStart, WORD wMatch);
95LPWSTR WINAPI StrChrW(LPCWSTR lpStart, WCHAR wMatch);
96#define StrChr WINELIB_NAME_AW(StrChr)
97
Huw D M Davies52b2d2c2000-09-13 20:28:31 +000098LPSTR WINAPI StrChrIA(LPCSTR lpStart, WORD wMatch);
99LPWSTR WINAPI StrChrIW(LPCWSTR lpStart, WCHAR wMatch);
100#define StrChrI WINELIB_NAME_AW(StrChrI)
101
102INT WINAPI StrCmpNA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
103INT WINAPI StrCmpNW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar);
104#define StrCmpN WINELIB_NAME_AW(StrCmpN)
105
106INT WINAPI StrCmpNIA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
107INT WINAPI StrCmpNIW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar);
108#define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
109
110LPSTR WINAPI StrDupA(LPCSTR lpSrc);
111LPWSTR WINAPI StrDupW(LPCWSTR lpSrc);
112#define StrDup WINELIB_NAME_AW(StrDup)
113
Alexandre Julliard74af67e2000-09-26 00:00:55 +0000114struct _STRRET;
115struct _ITEMIDLIST;
116HRESULT WINAPI StrRetToBufA(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPSTR dest, DWORD len);
117HRESULT WINAPI StrRetToBufW(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPWSTR dest, DWORD len);
Huw D M Davies52b2d2c2000-09-13 20:28:31 +0000118#define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
119
Juergen Schmied1dbf403d2000-06-24 12:56:08 +0000120void WINAPI PathRemoveBlanksA(LPSTR lpszPath);
121void WINAPI PathRemoveBlanksW(LPWSTR lpszPath);
122#define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks)
123void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
124
Mike McCormack3112fd22000-09-29 00:25:56 +0000125HRESULT WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey);
126HRESULT WINAPI SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey);
127#define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey)
128
129DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey);
130DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey);
131#define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
132
Francois Gouget8aa79fb2000-09-29 01:03:30 +0000133typedef struct _DllVersionInfo {
134 DWORD cbSize;
135 DWORD dwMajorVersion;
136 DWORD dwMinorVersion;
137 DWORD dwBuildNumber;
138 DWORD dwPlatformID;
139} DLLVERSIONINFO;
140
141#define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 9x
142#define DLLVER_PLATFORM_NT 0x00000002 // Windows NT
143
144typedef HRESULT (CALLBACK* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
145
Juergen Schmied51c74d82000-04-28 20:23:46 +0000146#ifdef __cplusplus
147} /* extern "C" */
148#endif /* defined(__cplusplus) */
149
150#endif /* __WINE_SHLWAPI_H */