Jacek Caban : mshtml: Load the page from moniker if we don' t have nsIChannel.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 9 10:37:22 CDT 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Aug  9 16:33:00 2006 +0200

mshtml: Load the page from moniker if we don't have nsIChannel.

---

 dlls/mshtml/mshtml_private.h |    5 +++++
 dlls/mshtml/nsio.c           |    3 +++
 dlls/mshtml/persist.c        |    2 +-
 3 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 79ac281..5f6bece 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -27,6 +27,9 @@ #endif
 
 #include "nsiface.h"
 
+#define GENERATE_MSHTML_NS_FAILURE(code) \
+    ((nsresult) ((PRUint32)(1<<31) | ((PRUint32)(0x45+6)<<16) | (PRUint32)(code)))
+
 #define NS_OK                     ((nsresult)0x00000000L)
 #define NS_ERROR_FAILURE          ((nsresult)0x80004005L)
 #define NS_NOINTERFACE            ((nsresult)0x80004002L)
@@ -35,6 +38,8 @@ #define NS_ERROR_INVALID_ARG      ((nsre
 #define NS_ERROR_UNEXPECTED       ((nsresult)0x8000ffffL)
 #define NS_ERROR_UNKNOWN_PROTOCOL ((nsresult)0x804b0012L)
 
+#define WINE_NS_LOAD_FROM_MONIKER GENERATE_MSHTML_NS_FAILURE(0)
+
 #define NS_FAILED(res) ((res) & 0x80000000)
 #define NS_SUCCEEDED(res) (!NS_FAILED(res))
 
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 8a1c9d3..fb578c4 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -596,6 +596,9 @@ static nsresult NSAPI nsChannel_AsyncOpe
             }
 
             nsIWebBrowserChrome_Release(NSWBCHROME(container));
+
+            if(!This->channel)
+                return WINE_NS_LOAD_FROM_MONIKER;
         }else {
             BOOL cont = before_async_open(This, container);
             nsIWebBrowserChrome_Release(NSWBCHROME(container));
diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c
index 9c34c4a..d935aaf 100644
--- a/dlls/mshtml/persist.c
+++ b/dlls/mshtml/persist.c
@@ -237,7 +237,7 @@ static HRESULT WINAPI PersistMoniker_Loa
             IBindStatusCallback_Release(STATUSCLB(bscallback));
             CoTaskMemFree(url);
             return S_OK;
-        }else {
+        }else if(nsres != WINE_NS_LOAD_FROM_MONIKER) {
             WARN("LoadURI failed: %08lx\n", nsres);
         }
     }




More information about the wine-cvs mailing list