[IEFRAME] Sync with Wine Staging 1.7.47. CORE-9924
authorAmine Khaldi <amine.khaldi@reactos.org>
Sun, 19 Jul 2015 13:24:09 +0000 (13:24 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sun, 19 Jul 2015 13:24:09 +0000 (13:24 +0000)
svn path=/trunk/; revision=68433

reactos/dll/win32/ieframe/ie.c
reactos/dll/win32/ieframe/iehtmlwnd.c
reactos/dll/win32/ieframe/intshcut.c
reactos/dll/win32/ieframe/navigate.c
reactos/dll/win32/ieframe/oleobject.c
reactos/dll/win32/ieframe/shellbrowser.c
reactos/media/doc/README.WINE

index 5b32fa1..dc8e329 100644 (file)
@@ -166,8 +166,8 @@ static HRESULT WINAPI InternetExplorer_Navigate(IWebBrowser2 *iface, BSTR szUrl,
 {
     InternetExplorer *This = impl_from_IWebBrowser2(iface);
 
-    TRACE("(%p)->(%s %p %p %p %p)\n", This, debugstr_w(szUrl), Flags, TargetFrameName,
-          PostData, Headers);
+    TRACE("(%p)->(%s %s %s %s %s)\n", This, debugstr_w(szUrl), debugstr_variant(Flags),
+          debugstr_variant(TargetFrameName), debugstr_variant(PostData), debugstr_variant(Headers));
 
     return navigate_url(&This->doc_host, szUrl, Flags, TargetFrameName, PostData, Headers);
 }
@@ -185,7 +185,7 @@ static HRESULT WINAPI InternetExplorer_Refresh2(IWebBrowser2 *iface, VARIANT *Le
 {
     InternetExplorer *This = impl_from_IWebBrowser2(iface);
 
-    TRACE("(%p)->(%p)\n", This, Level);
+    TRACE("(%p)->(%s)\n", This, debugstr_variant(Level));
 
     return refresh_document(&This->doc_host, Level);
 }
@@ -335,7 +335,7 @@ static HRESULT WINAPI InternetExplorer_ClientToWindow(IWebBrowser2 *iface, int *
 static HRESULT WINAPI InternetExplorer_PutProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT vtValue)
 {
     InternetExplorer *This = impl_from_IWebBrowser2(iface);
-    FIXME("(%p)->(%s)\n", This, debugstr_w(szProperty));
+    FIXME("(%p)->(%s %s)\n", This, debugstr_w(szProperty), debugstr_variant(&vtValue));
     return E_NOTIMPL;
 }
 
@@ -483,7 +483,8 @@ static HRESULT WINAPI InternetExplorer_Navigate2(IWebBrowser2 *iface, VARIANT *U
 {
     InternetExplorer *This = impl_from_IWebBrowser2(iface);
 
-    TRACE("(%p)->(%p %p %p %p %p)\n", This, URL, Flags, TargetFrameName, PostData, Headers);
+    TRACE("(%p)->(%s %s %s %s %s)\n", This, debugstr_variant(URL), debugstr_variant(Flags),
+        debugstr_variant(TargetFrameName), debugstr_variant(PostData), debugstr_variant(Headers));
 
     if(!URL)
         return S_OK;
@@ -507,7 +508,7 @@ static HRESULT WINAPI InternetExplorer_ExecWB(IWebBrowser2 *iface, OLECMDID cmdI
         OLECMDEXECOPT cmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 {
     InternetExplorer *This = impl_from_IWebBrowser2(iface);
-    FIXME("(%p)->(%d %d %p %p)\n", This, cmdID, cmdexecopt, pvaIn, pvaOut);
+    FIXME("(%p)->(%d %d %s %p)\n", This, cmdID, cmdexecopt, debugstr_variant(pvaIn), pvaOut);
     return E_NOTIMPL;
 }
 
@@ -515,7 +516,8 @@ static HRESULT WINAPI InternetExplorer_ShowBrowserBar(IWebBrowser2 *iface, VARIA
         VARIANT *pvarShow, VARIANT *pvarSize)
 {
     InternetExplorer *This = impl_from_IWebBrowser2(iface);
-    FIXME("(%p)->(%p %p %p)\n", This, pvaClsid, pvarShow, pvarSize);
+    FIXME("(%p)->(%s %s %s)\n", This, debugstr_variant(pvaClsid), debugstr_variant(pvarShow),
+        debugstr_variant(pvarSize));
     return E_NOTIMPL;
 }
 
index fc22096..9ab2e74 100644 (file)
@@ -103,7 +103,7 @@ static HRESULT WINAPI IEHTMLWindow2_Invoke(IHTMLWindow2 *iface, DISPID dispIdMem
 static HRESULT WINAPI IEHTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex, VARIANT *pvarResult)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(%p %p)\n", This, pvarIndex, pvarResult);
+    FIXME("(%p)->(%s %p)\n", This, debugstr_variant(pvarIndex), pvarResult);
     return E_NOTIMPL;
 }
 
@@ -153,7 +153,7 @@ static HRESULT WINAPI IEHTMLWindow2_setTimeout(IHTMLWindow2 *iface, BSTR express
         LONG msec, VARIANT *language, LONG *timerID)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(%s %d %p %p)\n", This, debugstr_w(expression), msec, language, timerID);
+    FIXME("(%p)->(%s %d %s %p)\n", This, debugstr_w(expression), msec, debugstr_variant(language), timerID);
     return E_NOTIMPL;
 }
 
@@ -223,7 +223,7 @@ static HRESULT WINAPI IEHTMLWindow2_close(IHTMLWindow2 *iface)
 static HRESULT WINAPI IEHTMLWindow2_put_opener(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -302,7 +302,7 @@ static HRESULT WINAPI IEHTMLWindow2_navigate(IHTMLWindow2 *iface, BSTR url)
 static HRESULT WINAPI IEHTMLWindow2_put_onfocus(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -316,7 +316,7 @@ static HRESULT WINAPI IEHTMLWindow2_get_onfocus(IHTMLWindow2 *iface, VARIANT *p)
 static HRESULT WINAPI IEHTMLWindow2_put_onblur(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -344,7 +344,7 @@ static HRESULT WINAPI IEHTMLWindow2_get_onload(IHTMLWindow2 *iface, VARIANT *p)
 static HRESULT WINAPI IEHTMLWindow2_put_onbeforeunload(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -358,7 +358,7 @@ static HRESULT WINAPI IEHTMLWindow2_get_onbeforeunload(IHTMLWindow2 *iface, VARI
 static HRESULT WINAPI IEHTMLWindow2_put_onunload(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -372,7 +372,7 @@ static HRESULT WINAPI IEHTMLWindow2_get_onunload(IHTMLWindow2 *iface, VARIANT *p
 static HRESULT WINAPI IEHTMLWindow2_put_onhelp(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -386,7 +386,7 @@ static HRESULT WINAPI IEHTMLWindow2_get_onhelp(IHTMLWindow2 *iface, VARIANT *p)
 static HRESULT WINAPI IEHTMLWindow2_put_onerror(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -414,7 +414,7 @@ static HRESULT WINAPI IEHTMLWindow2_get_onresize(IHTMLWindow2 *iface, VARIANT *p
 static HRESULT WINAPI IEHTMLWindow2_put_onscroll(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
@@ -450,7 +450,8 @@ static HRESULT WINAPI IEHTMLWindow2_showModalDialog(IHTMLWindow2 *iface, BSTR di
         VARIANT *varArgIn, VARIANT *varOptions, VARIANT *varArgOut)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(%s %p %p %p)\n", This, debugstr_w(dialog), varArgIn, varOptions, varArgOut);
+    FIXME("(%p)->(%s %s %s %p)\n", This, debugstr_w(dialog), debugstr_variant(varArgIn),
+        debugstr_variant(varOptions), varArgOut);
     return E_NOTIMPL;
 }
 
@@ -458,7 +459,7 @@ static HRESULT WINAPI IEHTMLWindow2_showHelp(IHTMLWindow2 *iface, BSTR helpURL,
         BSTR features)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(%s v(%d) %s)\n", This, debugstr_w(helpURL), V_VT(&helpArg), debugstr_w(features));
+    FIXME("(%p)->(%s %s %s)\n", This, debugstr_w(helpURL), debugstr_variant(&helpArg), debugstr_w(features));
     return E_NOTIMPL;
 }
 
@@ -515,7 +516,7 @@ static HRESULT WINAPI IEHTMLWindow2_setInterval(IHTMLWindow2 *iface, BSTR expres
         LONG msec, VARIANT *language, LONG *timerID)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(%s %d %p %p)\n", This, debugstr_w(expression), msec, language, timerID);
+    FIXME("(%p)->(%s %d %s %p)\n", This, debugstr_w(expression), msec, debugstr_variant(language), timerID);
     return E_NOTIMPL;
 }
 
@@ -529,7 +530,7 @@ static HRESULT WINAPI IEHTMLWindow2_clearInterval(IHTMLWindow2 *iface, LONG time
 static HRESULT WINAPI IEHTMLWindow2_put_offscreenBuffering(IHTMLWindow2 *iface, VARIANT v)
 {
     IEHTMLWindow *This = impl_from_IHTMLWindow2(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
+    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
     return E_NOTIMPL;
 }
 
index f2c864e..d47d867 100644 (file)
@@ -490,7 +490,7 @@ static HRESULT WINAPI PersistFile_Load(IPersistFile *pFile, LPCOLESTR pszFileNam
                                           STGM_READWRITE | STGM_SHARE_EXCLUSIVE,
                                           &pPropStg);
 
-            r = get_profile_string(str_header, str_iconfile, pszFileName, &iconfile);
+            get_profile_string(str_header, str_iconfile, pszFileName, &iconfile);
             if (iconfile != NULL)
             {
                 PROPSPEC ps;
@@ -508,7 +508,7 @@ static HRESULT WINAPI PersistFile_Load(IPersistFile *pFile, LPCOLESTR pszFileNam
                 CoTaskMemFree(iconfile);
             }
 
-            r = get_profile_string(str_header, str_iconindex, pszFileName, &iconindexstring);
+            get_profile_string(str_header, str_iconindex, pszFileName, &iconindexstring);
 
             if (iconindexstring != NULL)
             {
index 7550164..c1b43f8 100644 (file)
@@ -931,6 +931,7 @@ static void navigate_bsc_proc(DocHost *This, task_header_t *t)
 HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags,
                      const VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
 {
+    SAFEARRAY *post_array = NULL;
     PBYTE post_data = NULL;
     ULONG post_data_len = 0;
     LPWSTR headers = NULL;
@@ -942,9 +943,18 @@ HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags,
        || (TargetFrameName && V_VT(TargetFrameName) != VT_EMPTY && V_VT(TargetFrameName) != VT_ERROR))
         FIXME("Unsupported args (Flags %s; TargetFrameName %s)\n", debugstr_variant(Flags), debugstr_variant(TargetFrameName));
 
-    if(PostData && V_VT(PostData) == (VT_ARRAY | VT_UI1) && V_ARRAY(PostData)) {
-        SafeArrayAccessData(V_ARRAY(PostData), (void**)&post_data);
-        post_data_len = V_ARRAY(PostData)->rgsabound[0].cElements;
+    if(PostData) {
+        if(V_VT(PostData) & VT_ARRAY)
+            post_array = V_ISBYREF(PostData) ? *V_ARRAYREF(PostData) : V_ARRAY(PostData);
+        else
+            WARN("Invalid post data %s\n", debugstr_variant(PostData));
+    }
+
+    if(post_array) {
+        LONG elem_max;
+        SafeArrayAccessData(post_array, (void**)&post_data);
+        SafeArrayGetUBound(post_array, 1, &elem_max);
+        post_data_len = (elem_max+1) * SafeArrayGetElemsize(post_array);
     }
 
     if(Headers && V_VT(Headers) == VT_BSTR) {
@@ -983,7 +993,7 @@ HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags,
     }
 
     if(post_data)
-        SafeArrayUnaccessData(V_ARRAY(PostData));
+        SafeArrayUnaccessData(post_array);
 
     return hres;
 }
index a026842..313d705 100644 (file)
@@ -1089,8 +1089,8 @@ static HRESULT WINAPI WBOleCommandTarget_Exec(IOleCommandTarget *iface,
         VARIANT *pvaOut)
 {
     WebBrowser *This = impl_from_IOleCommandTarget(iface);
-    FIXME("(%p)->(%s %d %d %p %p)\n", This, debugstr_guid(pguidCmdGroup), nCmdID,
-          nCmdexecopt, pvaIn, pvaOut);
+    FIXME("(%p)->(%s %d %d %s %p)\n", This, debugstr_guid(pguidCmdGroup), nCmdID,
+          nCmdexecopt, debugstr_variant(pvaIn), pvaOut);
     return E_NOTIMPL;
 }
 
index 73995c8..51dbd01 100644 (file)
@@ -534,7 +534,7 @@ static HRESULT WINAPI BrowserService_GetSetCodePage(
         VARIANT *pvarOut)
 {
     ShellBrowser *This = impl_from_IBrowserService(iface);
-    FIXME("%p %p %p\n", This, pvarIn, pvarOut);
+    FIXME("%p %s %p\n", This, debugstr_variant(pvarIn), pvarOut);
     return E_NOTIMPL;
 }
 
@@ -546,7 +546,7 @@ static HRESULT WINAPI BrowserService_OnHttpEquiv(
         VARIANT *pvarargOut)
 {
     ShellBrowser *This = impl_from_IBrowserService(iface);
-    FIXME("%p %p %d %p %p\n", This, psv, fDone, pvarargIn, pvarargOut);
+    FIXME("%p %p %d %s %p\n", This, psv, fDone, debugstr_variant(pvarargIn), pvarargOut);
     return E_NOTIMPL;
 }
 
@@ -651,6 +651,8 @@ static HRESULT WINAPI DocObjectService_FireBeforeNavigate2(
     DISPPARAMS dp = {params, NULL, 7, 0};
     VARIANT_BOOL cancel = VARIANT_FALSE;
     SAFEARRAY *post_data;
+    WCHAR file_path[MAX_PATH];
+    DWORD file_path_len = sizeof(file_path) / sizeof(*file_path);
 
     TRACE("%p %p %s %x %s %p %d %s %d %p\n", This, pDispatch, debugstr_w(lpszUrl),
             dwFlags, debugstr_w(lpszFrameName), pPostData, cbPostData,
@@ -698,7 +700,10 @@ static HRESULT WINAPI DocObjectService_FireBeforeNavigate2(
     V_VT(params+5) = (VT_BYREF|VT_VARIANT);
     V_VARIANTREF(params+5) = &var_url;
     V_VT(&var_url) = VT_BSTR;
-    V_BSTR(&var_url) = SysAllocString(lpszUrl);
+    if(PathCreateFromUrlW(lpszUrl, file_path, &file_path_len, 0) == S_OK)
+        V_BSTR(&var_url) = SysAllocString(file_path);
+    else
+        V_BSTR(&var_url) = SysAllocString(lpszUrl);
 
     V_VT(params+6) = (VT_DISPATCH);
     V_DISPATCH(params+6) = (IDispatch*)This->doc_host->wb;
index a5c2727..391fcdd 100644 (file)
@@ -77,7 +77,7 @@ reactos/dll/win32/hnetcfg             # Synced to WineStaging-1.7.37
 reactos/dll/win32/httpapi             # Synced to WineStaging-1.7.37
 reactos/dll/win32/iccvid              # Synced to WineStaging-1.7.37
 reactos/dll/win32/icmp                # Out of sync
-reactos/dll/win32/ieframe             # Synced to WineStaging-1.7.37
+reactos/dll/win32/ieframe             # Synced to WineStaging-1.7.47
 reactos/dll/win32/imaadp32.acm        # Synced to WineStaging-1.7.37
 reactos/dll/win32/imagehlp            # Synced to WineStaging-1.7.37
 reactos/dll/win32/imm32               # Synced to Wine-1.7.27