Jacek Caban : mshtml: Use CreateURLMonikerEx2 for creating URL moniker.

Alexandre Julliard julliard at winehq.org
Fri Jun 24 13:54:01 CDT 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jun 23 13:45:18 2011 +0200

mshtml: Use CreateURLMonikerEx2 for creating URL moniker.

---

 dlls/mshtml/nsio.c |   56 +++++++++++++++++++++++++++------------------------
 1 files changed, 30 insertions(+), 26 deletions(-)

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index b97dbe4..9473754 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -69,6 +69,32 @@ struct  nsWineURI {
     BOOL is_doc_uri;
 };
 
+static BOOL ensure_uri(nsWineURI *This)
+{
+    HRESULT hres;
+
+    if(This->uri)
+        return TRUE;
+
+    if(This->uri_builder) {
+        hres = IUriBuilder_CreateUriSimple(This->uri_builder, 0, 0, &This->uri);
+        if(FAILED(hres)) {
+            WARN("CreateUriSimple failed: %08x\n", hres);
+            return FALSE;
+        }
+
+        return TRUE;
+    }
+
+    hres = CreateUri(This->wine_url, 0, 0, &This->uri);
+    if(FAILED(hres)) {
+        WARN("CreateUri failed: %08x\n", hres);
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
 static nsresult create_uri(nsIURI*,HTMLWindow*,NSContainer*,nsWineURI**);
 
 static const char *debugstr_nsacstr(const nsACString *nsstr)
@@ -886,7 +912,7 @@ static nsresult async_open(nsChannel *This, HTMLWindow *window, BOOL is_doc_chan
     IMoniker *mon = NULL;
     HRESULT hres;
 
-    hres = CreateURLMoniker(NULL, This->uri->wine_url, &mon);
+    hres = CreateURLMonikerEx2(NULL, This->uri->uri, &mon, 0);
     if(FAILED(hres)) {
         WARN("CreateURLMoniker failed: %08x\n", hres);
         return NS_ERROR_UNEXPECTED;
@@ -927,6 +953,9 @@ static nsresult NSAPI nsChannel_AsyncOpen(nsIHttpChannel *iface, nsIStreamListen
 
     TRACE("(%p)->(%p %p) opening %s\n", This, aListener, aContext, debugstr_w(This->uri->wine_url));
 
+    if(!ensure_uri(This->uri))
+        return NS_ERROR_FAILURE;
+
     if(This->uri->is_doc_uri) {
         window = get_channel_window(This);
         if(window) {
@@ -1500,31 +1529,6 @@ static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = {
     nsHttpChannelInternal_SetChannelIsForDownload
 };
 
-static BOOL ensure_uri(nsWineURI *This)
-{
-    HRESULT hres;
-
-    if(This->uri)
-        return TRUE;
-
-    if(This->uri_builder) {
-        hres = IUriBuilder_CreateUriSimple(This->uri_builder, 0, 0, &This->uri);
-        if(FAILED(hres)) {
-            WARN("CreateUriSimple failed: %08x\n", hres);
-            return FALSE;
-        }
-
-        return TRUE;
-    }
-
-    hres = CreateUri(This->wine_url, 0, 0, &This->uri);
-    if(FAILED(hres)) {
-        WARN("CreateUri failed: %08x\n", hres);
-        return FALSE;
-    }
-
-    return TRUE;
-}
 
 static void invalidate_uri(nsWineURI *This)
 {




More information about the wine-cvs mailing list