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