Jacek Caban : mshtml: Added IHTMLUniqueName interface stub implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jan 11 08:22:28 CST 2016


Module: wine
Branch: master
Commit: 40b2deb843301987c89a912014226afcda280825
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=40b2deb843301987c89a912014226afcda280825

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jan 11 14:01:24 2016 +0100

mshtml: Added IHTMLUniqueName interface stub implementation.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmlelem.c       | 81 ++++++++++++++++++++++++++++++++++++++++++++
 dlls/mshtml/mshtml_private.h |  1 +
 dlls/mshtml/tests/dom.c      |  1 +
 3 files changed, 83 insertions(+)

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index e5ae4e0..defa10a 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -3791,6 +3791,84 @@ static const IHTMLElement4Vtbl HTMLElement4Vtbl = {
     HTMLElement4_get_onfocusout
 };
 
+static inline HTMLElement *impl_from_IHTMLUniqueName(IHTMLUniqueName *iface)
+{
+    return CONTAINING_RECORD(iface, HTMLElement, IHTMLUniqueName_iface);
+}
+
+static HRESULT WINAPI HTMLUniqueName_QueryInterface(IHTMLUniqueName *iface, REFIID riid, void **ppv)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IHTMLElement_QueryInterface(&This->IHTMLElement_iface, riid, ppv);
+}
+
+static ULONG WINAPI HTMLUniqueName_AddRef(IHTMLUniqueName *iface)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IHTMLElement_AddRef(&This->IHTMLElement_iface);
+}
+
+static ULONG WINAPI HTMLUniqueName_Release(IHTMLUniqueName *iface)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IHTMLElement_Release(&This->IHTMLElement_iface);
+}
+
+static HRESULT WINAPI HTMLUniqueName_GetTypeInfoCount(IHTMLUniqueName *iface, UINT *pctinfo)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IDispatchEx_GetTypeInfoCount(&This->node.event_target.dispex.IDispatchEx_iface, pctinfo);
+}
+
+static HRESULT WINAPI HTMLUniqueName_GetTypeInfo(IHTMLUniqueName *iface, UINT iTInfo,
+        LCID lcid, ITypeInfo **ppTInfo)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IDispatchEx_GetTypeInfo(&This->node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
+}
+
+static HRESULT WINAPI HTMLUniqueName_GetIDsOfNames(IHTMLUniqueName *iface, REFIID riid,
+        LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IDispatchEx_GetIDsOfNames(&This->node.event_target.dispex.IDispatchEx_iface, riid, rgszNames, cNames,
+            lcid, rgDispId);
+}
+
+static HRESULT WINAPI HTMLUniqueName_Invoke(IHTMLUniqueName *iface, DISPID dispIdMember, REFIID riid,
+        LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    return IDispatchEx_Invoke(&This->node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
+            wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
+}
+
+static HRESULT WINAPI HTMLUniqueName_get_uniqueNumber(IHTMLUniqueName *iface, LONG *p)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    FIXME("(%p)->(%p)\n", This, p);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI HTMLUniqueName_get_uniqueID(IHTMLUniqueName *iface, BSTR *p)
+{
+    HTMLElement *This = impl_from_IHTMLUniqueName(iface);
+    FIXME("(%p)->(%p)\n", This, p);
+    return E_NOTIMPL;
+}
+
+static const IHTMLUniqueNameVtbl HTMLUniqueNameVtbl = {
+    HTMLUniqueName_QueryInterface,
+    HTMLUniqueName_AddRef,
+    HTMLUniqueName_Release,
+    HTMLUniqueName_GetTypeInfoCount,
+    HTMLUniqueName_GetTypeInfo,
+    HTMLUniqueName_GetIDsOfNames,
+    HTMLUniqueName_Invoke,
+    HTMLUniqueName_get_uniqueNumber,
+    HTMLUniqueName_get_uniqueID
+};
+
 static inline HTMLElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface)
 {
     return CONTAINING_RECORD(iface, HTMLElement, node);
@@ -3812,6 +3890,8 @@ HRESULT HTMLElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
         *ppv = &This->IHTMLElement3_iface;
     }else if(IsEqualGUID(&IID_IHTMLElement4, riid)) {
         *ppv = &This->IHTMLElement4_iface;
+    }else if(IsEqualGUID(&IID_IHTMLUniqueName, riid)) {
+        *ppv = &This->IHTMLUniqueName_iface;
     }else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) {
         *ppv = &This->cp_container.IConnectionPointContainer_iface;
     }else {
@@ -4072,6 +4152,7 @@ void HTMLElement_Init(HTMLElement *This, HTMLDocumentNode *doc, nsIDOMHTMLElemen
     This->IHTMLElement2_iface.lpVtbl = &HTMLElement2Vtbl;
     This->IHTMLElement3_iface.lpVtbl = &HTMLElement3Vtbl;
     This->IHTMLElement4_iface.lpVtbl = &HTMLElement4Vtbl;
+    This->IHTMLUniqueName_iface.lpVtbl = &HTMLUniqueNameVtbl;
 
     if(dispex_data && !dispex_data->vtbl)
         dispex_data->vtbl = &HTMLElement_dispex_vtbl;
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 2b8fa82..b613f70 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -706,6 +706,7 @@ typedef struct {
     IHTMLElement2 IHTMLElement2_iface;
     IHTMLElement3 IHTMLElement3_iface;
     IHTMLElement4 IHTMLElement4_iface;
+    IHTMLUniqueName IHTMLUniqueName_iface;
 
     nsIDOMHTMLElement *nselem;
     HTMLStyle *style;
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index e90fc70..9a9cc85 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -179,6 +179,7 @@ static const IID * const doc_obj_iids[] = {
     &IID_IHTMLElement2, \
     &IID_IHTMLElement3, \
     &IID_IHTMLElement4, \
+    &IID_IHTMLUniqueName, \
     &IID_IDispatchEx
 
 static const IID * const elem_iids[] = {




More information about the wine-cvs mailing list