From 57ba0459c9566f3f24eff2fa5081fe05759be394 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 12 Aug 2006 18:43:16 +0200 Subject: [PATCH] mshtml: Return INET_E_USE_DEFAULT_PROTOCOLHANDLER in about protocol handler's CombineUrl. --- dlls/mshtml/protocol.c | 34 +++++++++++++--------------------- dlls/mshtml/tests/protocol.c | 21 +++++++++++++++++++++ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/dlls/mshtml/protocol.c b/dlls/mshtml/protocol.c index cf600044b15..04ecda02b40 100644 --- a/dlls/mshtml/protocol.c +++ b/dlls/mshtml/protocol.c @@ -91,6 +91,17 @@ static ULONG WINAPI InternetProtocolInfo_Release(IInternetProtocolInfo *iface) return 1; } +static HRESULT WINAPI InternetProtocolInfo_CombineUrl(IInternetProtocolInfo *iface, + LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, + DWORD cchResult, DWORD* pcchResult, DWORD dwReserved) +{ + TRACE("%p)->(%s %s %08lx %p %ld %p %ld)\n", iface, debugstr_w(pwzBaseUrl), + debugstr_w(pwzRelativeUrl), dwCombineFlags, pwzResult, cchResult, + pcchResult, dwReserved); + + return INET_E_USE_DEFAULT_PROTOCOLHANDLER; +} + #undef PROTOCOLINFO_THIS #define CLASSFACTORY_THIS(iface) DEFINE_THIS(ProtocolFactory, ClassFactory, iface) @@ -427,15 +438,6 @@ static HRESULT WINAPI AboutProtocolInfo_ParseUrl(IInternetProtocolInfo *iface, L return INET_E_DEFAULT_ACTION; } -static HRESULT WINAPI AboutProtocolInfo_CombineUrl(IInternetProtocolInfo *iface, LPCWSTR pwzBaseUrl, - LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, - DWORD* pcchResult, DWORD dwReserved) -{ - FIXME("%p)->(%s %s %08lx %p %ld %p %ld)\n", iface, debugstr_w(pwzBaseUrl), debugstr_w(pwzRelativeUrl), - dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved); - return E_NOTIMPL; -} - static HRESULT WINAPI AboutProtocolInfo_CompareUrl(IInternetProtocolInfo *iface, LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags) { @@ -457,7 +459,7 @@ static const IInternetProtocolInfoVtbl AboutProtocolInfoVtbl = { InternetProtocolInfo_AddRef, InternetProtocolInfo_Release, AboutProtocolInfo_ParseUrl, - AboutProtocolInfo_CombineUrl, + InternetProtocolInfo_CombineUrl, AboutProtocolInfo_CompareUrl, AboutProtocolInfo_QueryInfo }; @@ -837,16 +839,6 @@ static HRESULT WINAPI ResProtocolInfo_ParseUrl(IInternetProtocolInfo *iface, LPC return INET_E_DEFAULT_ACTION; } -static HRESULT WINAPI ResProtocolInfo_CombineUrl(IInternetProtocolInfo *iface, LPCWSTR pwzBaseUrl, - LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pwzResult, DWORD cchResult, - DWORD* pcchResult, DWORD dwReserved) -{ - TRACE("%p)->(%s %s %08lx %p %ld %p %ld)\n", iface, debugstr_w(pwzBaseUrl), debugstr_w(pwzRelativeUrl), - dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved); - - return INET_E_USE_DEFAULT_PROTOCOLHANDLER; -} - static HRESULT WINAPI ResProtocolInfo_CompareUrl(IInternetProtocolInfo *iface, LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags) { @@ -868,7 +860,7 @@ static const IInternetProtocolInfoVtbl ResProtocolInfoVtbl = { InternetProtocolInfo_AddRef, InternetProtocolInfo_Release, ResProtocolInfo_ParseUrl, - ResProtocolInfo_CombineUrl, + InternetProtocolInfo_CombineUrl, ResProtocolInfo_CompareUrl, ResProtocolInfo_QueryInfo }; diff --git a/dlls/mshtml/tests/protocol.c b/dlls/mshtml/tests/protocol.c index 845101981b5..65078198772 100644 --- a/dlls/mshtml/tests/protocol.c +++ b/dlls/mshtml/tests/protocol.c @@ -340,16 +340,19 @@ static void test_res_protocol(void) hres = IInternetProtocolInfo_CombineUrl(protocol_info, blank_url, test_part_url, 0, buf, sizeof(buf)/sizeof(buf[0]), &size, 0); ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, "CombineUrl failed: %08lx\n", hres); + ok(size == 0xdeadbeef, "size=%ld\n", size); size = 0xdeadbeef; hres = IInternetProtocolInfo_CombineUrl(protocol_info, blank_url, test_part_url, URL_FILE_USE_PATHURL, buf, sizeof(buf)/sizeof(buf[0]), &size, 0); ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, "CombineUrl failed: %08lx\n", hres); + ok(size == 0xdeadbeef, "size=%ld\n", size); size = 0xdeadbeef; hres = IInternetProtocolInfo_CombineUrl(protocol_info, NULL, NULL, URL_FILE_USE_PATHURL, NULL, 0xdeadbeef, NULL, 0); ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, "CombineUrl failed: %08lx\n", hres); + ok(size == 0xdeadbeef, "size=%ld\n", size); IInternetProtocolInfo_Release(protocol_info); } @@ -517,6 +520,24 @@ static void test_about_protocol(void) ok(hres == INET_E_DEFAULT_ACTION, "ParseUrl failed: %08lx, expected INET_E_DEFAULT_ACTION\n", hres); + size = 0xdeadbeef; + hres = IInternetProtocolInfo_CombineUrl(protocol_info, blank_url, test_url, + 0, buf, sizeof(buf)/sizeof(buf[0]), &size, 0); + ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, "CombineUrl failed: %08lx\n", hres); + ok(size == 0xdeadbeef, "size=%ld\n", size); + + size = 0xdeadbeef; + hres = IInternetProtocolInfo_CombineUrl(protocol_info, blank_url, test_url, + URL_FILE_USE_PATHURL, buf, sizeof(buf)/sizeof(buf[0]), &size, 0); + ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, "CombineUrl failed: %08lx\n", hres); + ok(size == 0xdeadbeef, "size=%ld\n", size); + + size = 0xdeadbeef; + hres = IInternetProtocolInfo_CombineUrl(protocol_info, NULL, NULL, + URL_FILE_USE_PATHURL, buf, sizeof(buf)/sizeof(buf[0]), &size, 0); + ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, "CombineUrl failed: %08lx\n", hres); + ok(size == 0xdeadbeef, "size=%ld\n", size); + IInternetProtocolInfo_Release(protocol_info); }