- Stub routines for _164, _208, _210, _211, _239, _356, _413, _437,
ColorRGBToHLS
- Implement routines for _172, _174, _176, _199, _215, _219, _236, _377,
_378, UrlCompare{A|W}, UrlApplyScheme{A|W}.
- Fix routines _217, _169, _240, _276, _342, _376.
diff --git a/include/shlwapi.h b/include/shlwapi.h
index 46b854c..3cbdbc4 100644
--- a/include/shlwapi.h
+++ b/include/shlwapi.h
@@ -39,6 +39,40 @@
URLIS_HASQUERY,
} URLIS;
+/* This is used by the UrlApplyScheme... routines */
+#define URL_APPLY_FORCEAPPLY 0x00000008
+#define URL_APPLY_GUESSFILE 0x00000004
+#define URL_APPLY_GUESSSCHEME 0x00000002
+#define URL_APPLY_DEFAULT 0x00000001
+
+/* This is used by shlwapi ordinal.1 & .2 */
+typedef enum {
+ URL_SCHEME_INVALID = -1,
+ URL_SCHEME_UNKNOWN = 0,
+ URL_SCHEME_FTP,
+ URL_SCHEME_HTTP,
+ URL_SCHEME_GOPHER,
+ URL_SCHEME_MAILTO,
+ URL_SCHEME_NEWS,
+ URL_SCHEME_NNTP,
+ URL_SCHEME_TELNET,
+ URL_SCHEME_WAIS,
+ URL_SCHEME_FILE,
+ URL_SCHEME_MK,
+ URL_SCHEME_HTTPS,
+ URL_SCHEME_SHELL,
+ URL_SCHEME_SNEWS,
+ URL_SCHEME_LOCAL,
+ URL_SCHEME_JAVASCRIPT,
+ URL_SCHEME_VBSCRIPT,
+ URL_SCHEME_ABOUT,
+ URL_SCHEME_RES,
+ URL_SCHEME_MAXVALUE
+} URL_SCHEME;
+
+/* The following are used by UrlEscape..., UrlUnEscape...,
+ * UrlCanonicalize..., and UrlCombine... routines
+ */
#define URL_WININET_COMPATIBILITY 0x80000000
#define URL_PLUGGABLE_PROTOCOL 0x40000000
#define URL_ESCAPE_UNSAFE 0x20000000
@@ -169,6 +203,10 @@
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath);
#define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec)
+BOOL WINAPI PathRenameExtensionA(LPSTR pszPath, LPCSTR pszExt);
+BOOL WINAPI PathRenameExtensionW(LPWSTR pszPath, LPCWSTR pszExt);
+#define PathRenameExtension WINELIB_NAME_AW(PathRenameExtension)
+
BOOL WINAPI PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR pszPath);
BOOL WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR pszPath);
#define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath)
@@ -186,6 +224,10 @@
#define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces)
+BOOL WINAPI ChrCmpIA (WORD w1, WORD w2);
+BOOL WINAPI ChrCmpIW (WCHAR w1, WCHAR w2);
+#define ChrCmpI WINELIB_NAME_AW(ChrCmpI)
+
INT WINAPI StrCSpnA(LPCSTR lpStr, LPCSTR lpSet);
INT WINAPI StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet);
#define StrCSpn WINELIB_NAME_AW(StrCSpn)
@@ -300,6 +342,8 @@
DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey);
#define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
+HKEY WINAPI SHRegDuplicateHKey(HKEY hKey);
+
DWORD WINAPI SHRegGetPathA(HKEY hKey, LPCSTR pcszSubKey,
LPCSTR pcszValue, LPSTR pszPath, DWORD dwFlags);
DWORD WINAPI SHRegGetPathW(HKEY hKey, LPCWSTR pcszSubKey,
@@ -409,6 +453,12 @@
/* Shell URL interfaces */
+HRESULT WINAPI UrlApplySchemeA(LPCSTR pszIn, LPSTR pszOut,
+ LPDWORD pcchOut, DWORD dwFlags);
+HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut,
+ LPDWORD pcchOut, DWORD dwFlags);
+#define UrlApplyScheme WINELIB_NAME_AW(UrlApplyScheme)
+
HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized,
LPDWORD pcchCanonicalized, DWORD dwFlags);
HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,
@@ -423,6 +473,10 @@
DWORD dwFlags);
#define UrlCombine WINELIB_NAME_AW(UrlCombine)
+INT WINAPI UrlCompareA(LPCSTR pszUrl1, LPCSTR pszUrl2, BOOL fIgnoreSlash);
+INT WINAPI UrlCompareW(LPCWSTR pszUrl1, LPCWSTR pszUrl2, BOOL fIgnoreSlash);
+#define UrlCompare WINELIB_NAME_AW(UrlCompare)
+
HRESULT WINAPI UrlEscapeA(LPCSTR pszUrl, LPSTR pszEscaped, LPDWORD pcchEscaped,
DWORD dwFlags);
HRESULT WINAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped,