MSHMTL: Added stub implementation of IOleControl
Jacek Caban
jack at itma.pwr.wroc.pl
Thu Aug 4 05:17:42 CDT 2005
Changelog:
Added stub implementation of IOleControl
-------------- next part --------------
Index: dlls/mshtml/oleobj.c
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/oleobj.c,v
retrieving revision 1.12
diff -u -p -r1.12 oleobj.c
--- dlls/mshtml/oleobj.c 3 Aug 2005 21:26:40 -0000 1.12
+++ dlls/mshtml/oleobj.c 4 Aug 2005 10:12:01 -0000
@@ -764,6 +764,8 @@ static HRESULT WINAPI OleCommandTarget_E
return OLECMDERR_E_UNKNOWNGROUP;
}
+#undef CMDTARGET_THIS
+
static const IOleCommandTargetVtbl OleCommandTargetVtbl = {
OleCommandTarget_QueryInterface,
OleCommandTarget_AddRef,
@@ -772,11 +774,76 @@ static const IOleCommandTargetVtbl OleCo
OleCommandTarget_Exec
};
+/**********************************************************
+ * IOleControl implementation
+ */
+
+#define CONTROL_THIS(iface) DEFINE_THIS(HTMLDocument, OleControl, iface)
+
+static HRESULT WINAPI OleControl_QueryInterface(IOleControl *iface, REFIID riid, void **ppv)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ return IHTMLDocument2_QueryInterface(HTMLDOC(This), riid, ppv);
+}
+
+static ULONG WINAPI OleControl_AddRef(IOleControl *iface)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ return IHTMLDocument2_AddRef(HTMLDOC(This));
+}
+
+static ULONG WINAPI OleControl_Release(IOleControl *iface)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ return IHTMLDocument_Release(HTMLDOC(This));
+}
+
+static HRESULT WINAPI OleControl_GetControlInfo(IOleControl *iface, CONTROLINFO *pCI)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pCI);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleControl_OnMnemonic(IOleControl *iface, MSG *pMsg)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, pMsg);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DISPID dispID)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ FIXME("(%p)->(%ld)\n", This, dispID);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI OleControl_FreezeEvents(IOleControl *iface, BOOL bFreeze)
+{
+ HTMLDocument *This = CONTROL_THIS(iface);
+ FIXME("(%p)->(%x)\n", This, bFreeze);
+ return E_NOTIMPL;
+}
+
+#undef CONTROL_THIS
+
+static const IOleControlVtbl OleControlVtbl = {
+ OleControl_QueryInterface,
+ OleControl_AddRef,
+ OleControl_Release,
+ OleControl_GetControlInfo,
+ OleControl_OnMnemonic,
+ OleControl_OnAmbientPropertyChange,
+ OleControl_FreezeEvents
+};
+
void HTMLDocument_OleObj_Init(HTMLDocument *This)
{
This->lpOleObjectVtbl = &OleObjectVtbl;
This->lpOleDocumentVtbl = &OleDocumentVtbl;
This->lpOleCommandTargetVtbl = &OleCommandTargetVtbl;
+ This->lpOleControlVtbl = &OleControlVtbl;
This->client = NULL;
This->hostui = NULL;
Index: dlls/mshtml/mshtml_private.h
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/mshtml_private.h,v
retrieving revision 1.18
diff -u -p -r1.18 mshtml_private.h
--- dlls/mshtml/mshtml_private.h 2 Aug 2005 09:49:07 -0000 1.18
+++ dlls/mshtml/mshtml_private.h 4 Aug 2005 10:12:01 -0000
@@ -40,6 +40,7 @@ typedef struct {
const IOleInPlaceObjectWindowlessVtbl *lpOleInPlaceObjectWindowlessVtbl;
const IServiceProviderVtbl *lpServiceProviderVtbl;
const IOleCommandTargetVtbl *lpOleCommandTargetVtbl;
+ const IOleControlVtbl *lpOleControlVtbl;
LONG ref;
@@ -84,6 +85,7 @@ struct NSContainer {
#define INPLACEWIN(x) ((IOleInPlaceObjectWindowless*) &(x)->lpOleInPlaceObjectWindowlessVtbl)
#define SERVPROV(x) ((IServiceProvider*) &(x)->lpServiceProviderVtbl)
#define CMDTARGET(x) ((IOleCommandTarget*) &(x)->lpOleCommandTargetVtbl)
+#define CONTROL(x) ((IOleControl*) &(x)->lpOleControlVtbl)
#define DEFINE_THIS(cls,ifc,iface) ((cls*)((BYTE*)(iface)-offsetof(cls,lp ## ifc ## Vtbl)))
Index: dlls/mshtml/htmldoc.c
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/htmldoc.c,v
retrieving revision 1.14
diff -u -p -r1.14 htmldoc.c
--- dlls/mshtml/htmldoc.c 2 Aug 2005 09:49:07 -0000 1.14
+++ dlls/mshtml/htmldoc.c 4 Aug 2005 10:12:01 -0000
@@ -102,6 +102,9 @@ static HRESULT WINAPI HTMLDocument_Query
}else if(IsEqualGUID(&IID_IOleCommandTarget, riid)) {
TRACE("(%p)->(IID_IOleCommandTarget, %p)\n", This, ppvObject);
*ppvObject = CMDTARGET(This);
+ }else if(IsEqualGUID(&IID_IOleControl, riid)) {
+ TRACE("(%p)->(IID_IOleControl, %p)\n", This, ppvObject);
+ *ppvObject = CONTROL(This);
}
if(*ppvObject) {
More information about the wine-patches
mailing list