Jacek Caban : urlmon: Reimplement CoInternetCombineUrl to use pluggable protocol.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jan 11 14:34:29 CST 2006


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

Author: Jacek Caban <jacek at 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);




More information about the wine-cvs mailing list