Alistair Leslie-Hughes : mshtml: Add support for IHTMLStyle4 interface.
Alexandre Julliard
julliard at winehq.org
Tue Feb 3 09:13:35 CST 2009
Module: wine
Branch: master
Commit: 36a2d5ac3a024d98d7be677309ad6a0befa2074c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=36a2d5ac3a024d98d7be677309ad6a0befa2074c
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Tue Feb 3 19:42:25 2009 +1100
mshtml: Add support for IHTMLStyle4 interface.
---
dlls/mshtml/htmlstyle.c | 3 +
dlls/mshtml/htmlstyle.h | 2 +
dlls/mshtml/htmlstyle3.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++
dlls/mshtml/tests/dom.c | 1 +
4 files changed, 105 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c
index c05b2b6..ad9d095 100644
--- a/dlls/mshtml/htmlstyle.c
+++ b/dlls/mshtml/htmlstyle.c
@@ -471,6 +471,9 @@ static HRESULT WINAPI HTMLStyle_QueryInterface(IHTMLStyle *iface, REFIID riid, v
}else if(IsEqualGUID(&IID_IHTMLStyle3, riid)) {
TRACE("(%p)->(IID_IHTMLStyle3 %p)\n", This, ppv);
*ppv = HTMLSTYLE3(This);
+ }else if(IsEqualGUID(&IID_IHTMLStyle4, riid)) {
+ TRACE("(%p)->(IID_IHTMLStyle4 %p)\n", This, ppv);
+ *ppv = HTMLSTYLE4(This);
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
}
diff --git a/dlls/mshtml/htmlstyle.h b/dlls/mshtml/htmlstyle.h
index ef00085..a9ff535 100644
--- a/dlls/mshtml/htmlstyle.h
+++ b/dlls/mshtml/htmlstyle.h
@@ -21,6 +21,7 @@ struct HTMLStyle {
const IHTMLStyleVtbl *lpHTMLStyleVtbl;
const IHTMLStyle2Vtbl *lpHTMLStyle2Vtbl;
const IHTMLStyle3Vtbl *lpHTMLStyle3Vtbl;
+ const IHTMLStyle4Vtbl *lpHTMLStyle4Vtbl;
LONG ref;
@@ -30,6 +31,7 @@ struct HTMLStyle {
#define HTMLSTYLE(x) ((IHTMLStyle*) &(x)->lpHTMLStyleVtbl)
#define HTMLSTYLE2(x) ((IHTMLStyle2*) &(x)->lpHTMLStyle2Vtbl)
#define HTMLSTYLE3(x) ((IHTMLStyle3*) &(x)->lpHTMLStyle3Vtbl)
+#define HTMLSTYLE4(x) ((IHTMLStyle4*) &(x)->lpHTMLStyle4Vtbl)
/* NOTE: Make sure to keep in sync with style_tbl in htmlstyle.c */
typedef enum {
diff --git a/dlls/mshtml/htmlstyle3.c b/dlls/mshtml/htmlstyle3.c
index 9b9451a..f5ed8b5 100644
--- a/dlls/mshtml/htmlstyle3.c
+++ b/dlls/mshtml/htmlstyle3.c
@@ -336,7 +336,106 @@ static const IHTMLStyle3Vtbl HTMLStyle3Vtbl = {
HTMLStyle3_get_textKashidaSpace
};
+/*
+ * IHTMLStyle4 Interface
+ */
+#define HTMLSTYLE4_THIS(iface) DEFINE_THIS(HTMLStyle, HTMLStyle4, iface)
+
+static HRESULT WINAPI HTMLStyle4_QueryInterface(IHTMLStyle4 *iface, REFIID riid, void **ppv)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+
+ return IHTMLStyle_QueryInterface(HTMLSTYLE(This), riid, ppv);
+}
+
+static ULONG WINAPI HTMLStyle4_AddRef(IHTMLStyle4 *iface)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+
+ return IHTMLStyle_AddRef(HTMLSTYLE(This));
+}
+
+static ULONG WINAPI HTMLStyle4_Release(IHTMLStyle4 *iface)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+
+ return IHTMLStyle_Release(HTMLSTYLE(This));
+}
+
+static HRESULT WINAPI HTMLStyle4_GetTypeInfoCount(IHTMLStyle4 *iface, UINT *pctinfo)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo);
+}
+
+static HRESULT WINAPI HTMLStyle4_GetTypeInfo(IHTMLStyle4 *iface, UINT iTInfo,
+ LCID lcid, ITypeInfo **ppTInfo)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo);
+}
+
+static HRESULT WINAPI HTMLStyle4_GetIDsOfNames(IHTMLStyle4 *iface, REFIID riid,
+ LPOLESTR *rgszNames, UINT cNames,
+ LCID lcid, DISPID *rgDispId)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId);
+}
+
+static HRESULT WINAPI HTMLStyle4_Invoke(IHTMLStyle4 *iface, DISPID dispIdMember,
+ REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
+ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid,
+ wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
+}
+
+static HRESULT WINAPI HTMLStyle4_put_textOverflow(IHTMLStyle4 *iface, BSTR v)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ FIXME("(%p)->(%s)\n", This, debugstr_w(v));
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HTMLStyle4_get_textOverflow(IHTMLStyle4 *iface, BSTR *p)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, p);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HTMLStyle4_put_minHeight(IHTMLStyle4 *iface, VARIANT v)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HTMLStyle4_get_minHeight(IHTMLStyle4 *iface, VARIANT *p)
+{
+ HTMLStyle *This = HTMLSTYLE4_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, p);
+ return E_NOTIMPL;
+}
+
+static const IHTMLStyle4Vtbl HTMLStyle4Vtbl = {
+ HTMLStyle4_QueryInterface,
+ HTMLStyle4_AddRef,
+ HTMLStyle4_Release,
+ HTMLStyle4_GetTypeInfoCount,
+ HTMLStyle4_GetTypeInfo,
+ HTMLStyle4_GetIDsOfNames,
+ HTMLStyle4_Invoke,
+ HTMLStyle4_put_textOverflow,
+ HTMLStyle4_get_textOverflow,
+ HTMLStyle4_put_minHeight,
+ HTMLStyle4_get_minHeight
+};
+
void HTMLStyle3_Init(HTMLStyle *This)
{
This->lpHTMLStyle3Vtbl = &HTMLStyle3Vtbl;
+ This->lpHTMLStyle4Vtbl = &HTMLStyle4Vtbl;
}
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 4882ee7..62a07bc 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -308,6 +308,7 @@ static const IID * const style_iids[] = {
&IID_IHTMLStyle,
&IID_IHTMLStyle2,
&IID_IHTMLStyle3,
+ &IID_IHTMLStyle4,
NULL
};
More information about the wine-cvs
mailing list