Module: wine Branch: refs/heads/master Commit: e8617b9f1aaf100268e467c80ae4038c7e3b3dfa URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e8617b9f1aaf100268e467c8...
Author: Jacek Caban jacek@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: