[IEFRAME]
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 26 Apr 2014 18:39:56 +0000 (18:39 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 26 Apr 2014 18:39:56 +0000 (18:39 +0000)
* Sync with Wine 1.7.17.
CORE-8080

svn path=/trunk/; revision=63006

reactos/dll/win32/ieframe/ieframe.h
reactos/dll/win32/ieframe/ieframe.rgs
reactos/dll/win32/ieframe/ieframe_v1.idl
reactos/dll/win32/ieframe/navigate.c
reactos/dll/win32/ieframe/shellbrowser.c
reactos/media/doc/README.WINE

index bed94de..31b3f22 100644 (file)
@@ -74,6 +74,7 @@ typedef struct {
     IHlinkFrame    IHlinkFrame_iface;
     ITargetFrame2  ITargetFrame2_iface;
     ITargetFramePriv2 ITargetFramePriv2_iface;
+    IWebBrowserPriv2IE9 IWebBrowserPriv2IE9_iface;
 
     IUnknown *outer;
     DocHost *doc_host;
index cf8f3b4..f99e6b6 100644 (file)
@@ -34,9 +34,13 @@ HKCR
         {
             shellex
             {
-                MayChangeDefaultMenu {}
+                MayChangeDefaultMenu
             }
         }
+        '{8856f961-340a-11d0-a96b-00c04fd705a2}'
+        {
+            Control
+        }
     }
     'InternetShortcut'
     {
index a7d3543..9b64a60 100644 (file)
@@ -16,6 +16,9 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#pragma makedep regtypelib
+#pragma makedep register
+
 #include "exdisp.idl"
 
 [
index 72390ee..7586b69 100644 (file)
@@ -1437,6 +1437,45 @@ static const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl = {
     TargetFramePriv2_AggregatedNavigation2
 };
 
+static inline HlinkFrame *impl_from_IWebBrowserPriv2IE9(IWebBrowserPriv2IE9 *iface)
+{
+    return CONTAINING_RECORD(iface, HlinkFrame, IWebBrowserPriv2IE9_iface);
+}
+
+static HRESULT WINAPI WebBrowserPriv2IE9_QueryInterface(IWebBrowserPriv2IE9 *iface, REFIID riid, void **ppv)
+{
+    HlinkFrame *This = impl_from_IWebBrowserPriv2IE9(iface);
+    return IUnknown_QueryInterface(This->outer, riid, ppv);
+}
+
+static ULONG WINAPI WebBrowserPriv2IE9_AddRef(IWebBrowserPriv2IE9 *iface)
+{
+    HlinkFrame *This = impl_from_IWebBrowserPriv2IE9(iface);
+    return IUnknown_AddRef(This->outer);
+}
+
+static ULONG WINAPI WebBrowserPriv2IE9_Release(IWebBrowserPriv2IE9 *iface)
+{
+    HlinkFrame *This = impl_from_IWebBrowserPriv2IE9(iface);
+    return IUnknown_Release(This->outer);
+}
+
+static HRESULT WINAPI WebBrowserPriv2IE9_NavigateWithBindCtx2(IWebBrowserPriv2IE9 *iface, IUri *uri, VARIANT *flags,
+        VARIANT *target_frame, VARIANT *post_data, VARIANT *headers, IBindCtx *bind_ctx, LPOLESTR url_fragment, DWORD unused)
+{
+    HlinkFrame *This = impl_from_IWebBrowserPriv2IE9(iface);
+    FIXME("(%p)->(%p %s %s %s %s %p %s)\n", This, uri, debugstr_variant(flags), debugstr_variant(target_frame),
+          debugstr_variant(post_data), debugstr_variant(headers), bind_ctx, debugstr_w(url_fragment));
+    return E_NOTIMPL;
+}
+
+static const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl = {
+    WebBrowserPriv2IE9_QueryInterface,
+    WebBrowserPriv2IE9_AddRef,
+    WebBrowserPriv2IE9_Release,
+    WebBrowserPriv2IE9_NavigateWithBindCtx2
+};
+
 BOOL HlinkFrame_QI(HlinkFrame *This, REFIID riid, void **ppv)
 {
     if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
@@ -1451,6 +1490,9 @@ BOOL HlinkFrame_QI(HlinkFrame *This, REFIID riid, void **ppv)
     }else if(IsEqualGUID(&IID_ITargetFramePriv2, riid)) {
         TRACE("(%p)->(IID_ITargetFramePriv2 %p)\n", This, ppv);
         *ppv = &This->ITargetFramePriv2_iface;
+    }else if(IsEqualGUID(&IID_IWebBrowserPriv2IE9, riid)) {
+        TRACE("(%p)->(IID_IWebBrowserPriv2IE9 %p)\n", This, ppv);
+        *ppv = &This->IWebBrowserPriv2IE9_iface;
     }else {
         return FALSE;
     }
@@ -1464,6 +1506,7 @@ void HlinkFrame_Init(HlinkFrame *This, IUnknown *outer, DocHost *doc_host)
     This->IHlinkFrame_iface.lpVtbl   = &HlinkFrameVtbl;
     This->ITargetFrame2_iface.lpVtbl = &TargetFrame2Vtbl;
     This->ITargetFramePriv2_iface.lpVtbl = &TargetFramePriv2Vtbl;
+    This->IWebBrowserPriv2IE9_iface.lpVtbl = &WebBrowserPriv2IE9Vtbl;
 
     This->outer = outer;
     This->doc_host = doc_host;
index d117c37..7c728bb 100644 (file)
@@ -688,7 +688,7 @@ static HRESULT WINAPI DocObjectService_FireBeforeNavigate2(
     V_VT(params+3) = (VT_BYREF|VT_VARIANT);
     V_VARIANTREF(params+3) = &var_frame_name;
     V_VT(&var_frame_name) = VT_BSTR;
-    V_BSTR(&var_frame_name) = NULL;
+    V_BSTR(&var_frame_name) = lpszFrameName ? SysAllocString(lpszFrameName) : NULL;
 
     V_VT(params+4) = (VT_BYREF|VT_VARIANT);
     V_VARIANTREF(params+4) = &var_flags;
@@ -709,6 +709,7 @@ static HRESULT WINAPI DocObjectService_FireBeforeNavigate2(
 
     SysFreeString(V_BSTR(&var_url));
     SysFreeString(V_BSTR(&var_headers));
+    SysFreeString(V_BSTR(&var_frame_name));
     SafeArrayDestroy(post_data);
 
     *pfCancel = !!cancel;
index 89c36b1..96f4e33 100644 (file)
@@ -81,7 +81,7 @@ reactos/dll/win32/hnetcfg             # Synced to Wine-1.7.1
 reactos/dll/win32/httpapi             # Synced to Wine-1.7.1
 reactos/dll/win32/iccvid              # Synced to Wine-1.7.1
 reactos/dll/win32/icmp                # Out of sync
-reactos/dll/win32/ieframe             # Synced to Wine-1.7.1
+reactos/dll/win32/ieframe             # Synced to Wine-1.7.17
 reactos/dll/win32/imaadp32.acm        # Synced to Wine-1.7.1
 reactos/dll/win32/imagehlp            # Synced to Wine-1.7.17
 reactos/dll/win32/imm32               # Synced to Wine-1.7.1