Jacek Caban : urlmon: Use pluggable protocol in CoInternetCompareUrl.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Dec 13 10:03:49 CST 2006


Module: wine
Branch: master
Commit: bb52f14d59f7a6abf8a099bf7998798821640b98
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bb52f14d59f7a6abf8a099bf7998798821640b98

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Dec 12 21:54:47 2006 +0100

urlmon: Use pluggable protocol in CoInternetCompareUrl.

---

 dlls/urlmon/internet.c    |   21 +++++++++++++++++++++
 dlls/urlmon/tests/misc.c  |   15 +++++++++++++++
 dlls/urlmon/urlmon_main.c |    6 ------
 3 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c
index 0897e93..68692c1 100644
--- a/dlls/urlmon/internet.c
+++ b/dlls/urlmon/internet.c
@@ -236,3 +236,24 @@ HRESULT WINAPI CoInternetCombineUrl(LPCW
 
     return hres;
 }
+
+/**************************************************************************
+ *          CoInternetCompareUrl    (URLMON.@)
+ */
+HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
+{
+    IInternetProtocolInfo *protocol_info;
+    HRESULT hres;
+
+    TRACE("(%s,%s,%08x)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags);
+
+    protocol_info = get_protocol_info(pwzUrl1);
+
+    if(protocol_info) {
+        hres = IInternetProtocolInfo_CompareUrl(protocol_info, pwzUrl1, pwzUrl2, dwCompareFlags);
+        if(SUCCEEDED(hres))
+            return hres;
+    }
+
+    return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags) ? S_FALSE : S_OK;
+}
diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index 5a0b081..fedd15d 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -328,6 +328,20 @@ static void test_CoInternetParseUrl(void
     }
 }
 
+static void test_CoInternetCompareUrl(void)
+{
+    HRESULT hres;
+
+    hres = CoInternetCompareUrl(url1, url1, 0);
+    ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
+
+    hres = CoInternetCompareUrl(url1, url3, 0);
+    ok(hres == S_FALSE, "CoInternetParseUrl failed: %08x\n", hres);
+
+    hres = CoInternetCompareUrl(url3, url1, 0);
+    ok(hres == S_FALSE, "CoInternetParseUrl failed: %08x\n", hres);
+}
+
 static const WCHAR mimeTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
 static const WCHAR mimeTextPlain[] = {'t','e','x','t','/','p','l','a','i','n',0};
 static const WCHAR mimeAppOctetStream[] = {'a','p','p','l','i','c','a','t','i','o','n','/',
@@ -1081,6 +1095,7 @@ START_TEST(misc)
     test_CreateFormatEnum();
     test_RegisterFormatEnumerator();
     test_CoInternetParseUrl();
+    test_CoInternetCompareUrl();
     test_FindMimeFromData();
     test_SecurityManager();
     test_ZoneManager();
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index 8196f23..8ec8424 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -303,12 +303,6 @@ HRESULT WINAPI ObtainUserAgentString(DWO
     return S_OK;
 }
 
-HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCompareFlags)
-{
-    TRACE("(%s,%s,%08x)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags);
-    return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags)==0?S_OK:S_FALSE;
-}
-
 /**************************************************************************
  *                 IsValidURL (URLMON.@)
  * 




More information about the wine-cvs mailing list