Jacek Caban : urlmon:
Added PARSE_CANONICALIZE implementation in CoInternetParseUrl.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jul 20 06:20:35 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: e8617b9f1aaf100268e467c80ae4038c7e3b3dfa
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e8617b9f1aaf100268e467c80ae4038c7e3b3dfa
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jul 19 23:40:07 2006 +0200
urlmon: Added PARSE_CANONICALIZE implementation in CoInternetParseUrl.
---
dlls/urlmon/internet.c | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c
index 8ae22e0..9b2f24d 100644
--- a/dlls/urlmon/internet.c
+++ b/dlls/urlmon/internet.c
@@ -61,6 +61,31 @@ static HRESULT parse_schema(LPCWSTR url,
return S_OK;
}
+static HRESULT parse_canonicalize_url(LPCWSTR url, DWORD flags, LPWSTR result,
+ DWORD size, DWORD *rsize)
+{
+ IInternetProtocolInfo *protocol_info;
+ DWORD prsize = size;
+ HRESULT hres;
+
+ TRACE("(%s %08lx %p %ld %p)\n", debugstr_w(url), flags, result, size, rsize);
+
+ protocol_info = get_protocol_info(url);
+
+ if(protocol_info) {
+ hres = IInternetProtocolInfo_ParseUrl(protocol_info, url, PARSE_CANONICALIZE,
+ flags, result, size, rsize, 0);
+ if(SUCCEEDED(hres))
+ return hres;
+ }
+
+ hres = UrlCanonicalizeW(url, result, &prsize, flags);
+
+ if(rsize)
+ *rsize = prsize;
+ return hres;
+}
+
static HRESULT parse_security_url(LPCWSTR url, DWORD flags, LPWSTR result, DWORD size, DWORD *rsize)
{
IInternetProtocolInfo *protocol_info;
@@ -160,6 +185,8 @@ HRESULT WINAPI CoInternetParseUrl(LPCWST
WARN("dwReserved = %ld\n", dwReserved);
switch(ParseAction) {
+ case PARSE_CANONICALIZE:
+ return parse_canonicalize_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
case PARSE_SECURITY_URL:
return parse_security_url(pwzUrl, dwFlags, pszResult, cchResult, pcchResult);
case PARSE_ENCODE:
More information about the wine-cvs
mailing list