Module: wine Branch: refs/heads/master Commit: ab6adcb07798dacf62ce709ee716d9e8d02ff421 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=ab6adcb07798dacf62ce709e...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Jan 11 20:57:23 2006 +0100
urlmon: Reimplement CoInternetCombineUrl to use pluggable protocol.
---
dlls/urlmon/internet.c | 37 ++++++++++++++++++++++++++++++++++++- dlls/urlmon/urlmon_main.c | 13 ------------- 2 files changed, 36 insertions(+), 14 deletions(-)
diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c index 7f5253b..94b7330 100644 --- a/dlls/urlmon/internet.c +++ b/dlls/urlmon/internet.c @@ -166,7 +166,9 @@ static HRESULT parse_security_domain(LPC return E_FAIL; }
- +/************************************************************************** + * CoInternetParseUrl (URLMON.@) + */ HRESULT WINAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved) { @@ -190,3 +192,36 @@ HRESULT WINAPI CoInternetParseUrl(LPCWST
return E_NOTIMPL; } + +/************************************************************************** + * CoInternetCombineUrl (URLMON.@) + */ +HRESULT WINAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, + DWORD dwReserved) +{ + IInternetProtocolInfo *protocol_info; + DWORD size = cchResult; + HRESULT hres; + + TRACE("(%s,%s,0x%08lx,%p,%ld,%p,%ld)\n", debugstr_w(pwzBaseUrl), + debugstr_w(pwzRelativeUrl), dwCombineFlags, pwzResult, cchResult, pcchResult, + dwReserved); + + protocol_info = get_protocol_info(pwzBaseUrl); + + if(protocol_info) { + hres = IInternetProtocolInfo_CombineUrl(protocol_info, pwzBaseUrl, pwzRelativeUrl, + dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved); + if(SUCCEEDED(hres)) + return hres; + } + + + hres = UrlCombineW(pwzBaseUrl, pwzRelativeUrl, pwzResult, &size, dwCombineFlags); + + if(pcchResult) + *pcchResult = size; + + return hres; +} diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c index fa2e195..c94eb70 100644 --- a/dlls/urlmon/urlmon_main.c +++ b/dlls/urlmon/urlmon_main.c @@ -293,19 +293,6 @@ HRESULT WINAPI ObtainUserAgentString(DWO return S_OK; }
-HRESULT WINAPI CoInternetCombineUrl(LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, - LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved) -{ - HRESULT hres; - DWORD size = cchResult; - - TRACE("(%s,%s,0x%08lx,%p,%ld,%p,%ld)\n", debugstr_w(pwzBaseUrl), debugstr_w(pwzRelativeUrl), dwCombineFlags, - pwzResult, cchResult, pcchResult, dwReserved); - hres = UrlCombineW(pwzBaseUrl, pwzRelativeUrl, pwzResult, &size, dwCombineFlags); - if(pcchResult) *pcchResult = size; - return hres; -} - HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags) { TRACE("(%s,%s,%08lx)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags);