Jacek Caban : shdocvw: Added IHlinkFrame stub implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 8 09:12:39 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 461a0102c53e0d5704d5a0d949a90f70841cc1fd
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=461a0102c53e0d5704d5a0d949a90f70841cc1fd
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Feb 8 12:42:23 2006 +0100
shdocvw: Added IHlinkFrame stub implementation.
---
dlls/shdocvw/Makefile.in | 1
dlls/shdocvw/navigate.c | 104 +++++++++++++++++++++++++++++++++++++++++++++
dlls/shdocvw/shdocvw.h | 4 ++
dlls/shdocvw/webbrowser.c | 4 ++
4 files changed, 113 insertions(+), 0 deletions(-)
create mode 100644 dlls/shdocvw/navigate.c
diff --git a/dlls/shdocvw/Makefile.in b/dlls/shdocvw/Makefile.in
index 40c50a6..74a671e 100644
--- a/dlls/shdocvw/Makefile.in
+++ b/dlls/shdocvw/Makefile.in
@@ -16,6 +16,7 @@ C_SRCS = \
events.c \
factory.c \
frame.c \
+ navigate.c \
oleobject.c \
persist.c \
regsvr.c \
diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c
new file mode 100644
index 0000000..32e59fa
--- /dev/null
+++ b/dlls/shdocvw/navigate.c
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2005 Jacek Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+#include "shdocvw.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
+
+#define HLINKFRAME_THIS(iface) DEFINE_THIS(WebBrowser, HlinkFrame, iface)
+
+static HRESULT WINAPI HlinkFrame_QueryInterface(IHlinkFrame *iface, REFIID riid, void **ppv)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ return IWebBrowser2_QueryInterface(WEBBROWSER2(This), riid, ppv);
+}
+
+static ULONG WINAPI HlinkFrame_AddRef(IHlinkFrame *iface)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ return IWebBrowser2_AddRef(WEBBROWSER2(This));
+}
+
+static ULONG WINAPI HlinkFrame_Release(IHlinkFrame *iface)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ return IWebBrowser2_Release(WEBBROWSER2(This));
+}
+
+static HRESULT WINAPI HlinkFrame_SetBrowseContext(IHlinkFrame *iface,
+ IHlinkBrowseContext *pihlbc)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pihlbc);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HlinkFrame_GetBrowseContext(IHlinkFrame *iface,
+ IHlinkBrowseContext **ppihlbc)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, ppihlbc);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HlinkFrame_Navigate(IHlinkFrame *iface, DWORD grfHLNF, LPBC pbc,
+ IBindStatusCallback *pibsc, IHlink *pihlNavigate)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ FIXME("(%p)->(%08lx %p %p %p)\n", This, grfHLNF, pbc, pibsc, pihlNavigate);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HlinkFrame_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF,
+ IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, DWORD dwreserved)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ FIXME("(%p)->(%08lx %p %s %s %ld)\n", This, grfHLNF, pimkTarget, debugstr_w(pwzLocation),
+ debugstr_w(pwzFriendlyName), dwreserved);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HlinkFrame_UpdateHlink(IHlinkFrame *iface, ULONG uHLID,
+ IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
+{
+ WebBrowser *This = HLINKFRAME_THIS(iface);
+ FIXME("(%p)->(%lu %p %s %s)\n", This, uHLID, pimkTarget, debugstr_w(pwzLocation),
+ debugstr_w(pwzFriendlyName));
+ return E_NOTIMPL;
+}
+
+#undef HLINKFRAME_THIS
+
+static const IHlinkFrameVtbl HlinkFrameVtbl = {
+ HlinkFrame_QueryInterface,
+ HlinkFrame_AddRef,
+ HlinkFrame_Release,
+ HlinkFrame_SetBrowseContext,
+ HlinkFrame_GetBrowseContext,
+ HlinkFrame_Navigate,
+ HlinkFrame_OnNavigate,
+ HlinkFrame_UpdateHlink
+};
+
+void WebBrowser_HlinkFrame_Init(WebBrowser *This)
+{
+ This->lpHlinkFrameVtbl = &HlinkFrameVtbl;
+}
diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h
index a103615..ace8fff 100644
--- a/dlls/shdocvw/shdocvw.h
+++ b/dlls/shdocvw/shdocvw.h
@@ -37,6 +37,7 @@
#include "shlobj.h"
#include "exdisp.h"
#include "mshtmhst.h"
+#include "hlink.h"
/**********************************************************************
* IClassFactory declaration for SHDOCVW.DLL
@@ -76,6 +77,7 @@ typedef struct {
const IViewObject2Vtbl *lpViewObjectVtbl;
const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
const IOleCommandTargetVtbl *lpWBOleCommandTargetVtbl;
+ const IHlinkFrameVtbl *lpHlinkFrameVtbl;
/* Interfaces available for embeded document */
@@ -134,6 +136,7 @@ typedef struct {
#define VIEWOBJ2(x) ((IViewObject2*) &(x)->lpViewObjectVtbl);
#define ACTIVEOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl)
#define WBOLECMD(x) ((IOleCommandTarget*) &(x)->lpWBOleCommandTargetVtbl)
+#define HLINKFRAME(x) ((IHlinkFrame*) &(x)->lpHlinkFrameVtbl)
#define CLIENTSITE(x) ((IOleClientSite*) &(x)->lpOleClientSiteVtbl)
#define INPLACESITE(x) ((IOleInPlaceSite*) &(x)->lpOleInPlaceSiteVtbl)
@@ -150,6 +153,7 @@ void WebBrowser_ViewObject_Init(WebBrows
void WebBrowser_Persist_Init(WebBrowser*);
void WebBrowser_ClassInfo_Init(WebBrowser*);
void WebBrowser_Events_Init(WebBrowser*);
+void WebBrowser_HlinkFrame_Init(WebBrowser*);
void WebBrowser_ClientSite_Init(WebBrowser*);
void WebBrowser_DocHost_Init(WebBrowser*);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 836a164..081fae1 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -97,6 +97,9 @@ static HRESULT WINAPI WebBrowser_QueryIn
}else if(IsEqualGUID(&IID_IOleCommandTarget, riid)) {
TRACE("(%p)->(IID_IOleCommandTarget %p)\n", This, ppv);
*ppv = WBOLECMD(This);
+ }else if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
+ TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv);
+ *ppv = HLINKFRAME(This);
}
if(*ppv) {
@@ -807,6 +810,7 @@ HRESULT WebBrowser_Create(IUnknown *pOut
WebBrowser_ClientSite_Init(ret);
WebBrowser_DocHost_Init(ret);
WebBrowser_Frame_Init(ret);
+ WebBrowser_HlinkFrame_Init(ret);
hres = IWebBrowser_QueryInterface(WEBBROWSER(ret), riid, ppv);
if(SUCCEEDED(hres)) {
More information about the wine-cvs
mailing list