From bae1157f0f2992319e2330423517183370b58f60 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 19 Jul 2015 13:24:09 +0000 Subject: [PATCH] [IEFRAME] Sync with Wine Staging 1.7.47. CORE-9924 svn path=/trunk/; revision=68433 --- reactos/dll/win32/ieframe/ie.c | 16 +++++++------ reactos/dll/win32/ieframe/iehtmlwnd.c | 29 ++++++++++++------------ reactos/dll/win32/ieframe/intshcut.c | 4 ++-- reactos/dll/win32/ieframe/navigate.c | 18 +++++++++++---- reactos/dll/win32/ieframe/oleobject.c | 4 ++-- reactos/dll/win32/ieframe/shellbrowser.c | 11 ++++++--- reactos/media/doc/README.WINE | 2 +- 7 files changed, 51 insertions(+), 33 deletions(-) diff --git a/reactos/dll/win32/ieframe/ie.c b/reactos/dll/win32/ieframe/ie.c index 5b32fa1d6ab..dc8e329330c 100644 --- a/reactos/dll/win32/ieframe/ie.c +++ b/reactos/dll/win32/ieframe/ie.c @@ -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; } diff --git a/reactos/dll/win32/ieframe/iehtmlwnd.c b/reactos/dll/win32/ieframe/iehtmlwnd.c index fc220961524..9ab2e74db5e 100644 --- a/reactos/dll/win32/ieframe/iehtmlwnd.c +++ b/reactos/dll/win32/ieframe/iehtmlwnd.c @@ -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; } diff --git a/reactos/dll/win32/ieframe/intshcut.c b/reactos/dll/win32/ieframe/intshcut.c index f2c864eff17..d47d86754d5 100644 --- a/reactos/dll/win32/ieframe/intshcut.c +++ b/reactos/dll/win32/ieframe/intshcut.c @@ -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) { diff --git a/reactos/dll/win32/ieframe/navigate.c b/reactos/dll/win32/ieframe/navigate.c index 75501642f14..c1b43f8b778 100644 --- a/reactos/dll/win32/ieframe/navigate.c +++ b/reactos/dll/win32/ieframe/navigate.c @@ -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; } diff --git a/reactos/dll/win32/ieframe/oleobject.c b/reactos/dll/win32/ieframe/oleobject.c index a0268424915..313d70540fc 100644 --- a/reactos/dll/win32/ieframe/oleobject.c +++ b/reactos/dll/win32/ieframe/oleobject.c @@ -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; } diff --git a/reactos/dll/win32/ieframe/shellbrowser.c b/reactos/dll/win32/ieframe/shellbrowser.c index 73995c8f363..51dbd01590a 100644 --- a/reactos/dll/win32/ieframe/shellbrowser.c +++ b/reactos/dll/win32/ieframe/shellbrowser.c @@ -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; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index a5c27276d24..391fcdddf50 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -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