Commit 25845c70 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Added IHTMLDOMAttribute2 stub implementation.

parent 11b42000
......@@ -49,6 +49,8 @@ static HRESULT WINAPI HTMLDOMAttribute_QueryInterface(IHTMLDOMAttribute *iface,
*ppv = &This->IHTMLDOMAttribute_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMAttribute, riid)) {
*ppv = &This->IHTMLDOMAttribute_iface;
}else if(IsEqualGUID(&IID_IHTMLDOMAttribute2, riid)) {
*ppv = &This->IHTMLDOMAttribute2_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
return *ppv ? S_OK : E_NOINTERFACE;
}else {
......@@ -235,8 +237,229 @@ static const IHTMLDOMAttributeVtbl HTMLDOMAttributeVtbl = {
HTMLDOMAttribute_get_specified
};
static inline HTMLDOMAttribute *impl_from_IHTMLDOMAttribute2(IHTMLDOMAttribute2 *iface)
{
return CONTAINING_RECORD(iface, HTMLDOMAttribute, IHTMLDOMAttribute2_iface);
}
static HRESULT WINAPI HTMLDOMAttribute2_QueryInterface(IHTMLDOMAttribute2 *iface, REFIID riid, void **ppv)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IHTMLDOMAttribute_QueryInterface(&This->IHTMLDOMAttribute_iface, riid, ppv);
}
static ULONG WINAPI HTMLDOMAttribute2_AddRef(IHTMLDOMAttribute2 *iface)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IHTMLDOMAttribute_AddRef(&This->IHTMLDOMAttribute_iface);
}
static ULONG WINAPI HTMLDOMAttribute2_Release(IHTMLDOMAttribute2 *iface)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IHTMLDOMAttribute_Release(&This->IHTMLDOMAttribute_iface);
}
static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfoCount(IHTMLDOMAttribute2 *iface, UINT *pctinfo)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
}
static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfo(IHTMLDOMAttribute2 *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
static HRESULT WINAPI HTMLDOMAttribute2_GetIDsOfNames(IHTMLDOMAttribute2 *iface, REFIID riid,
LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
lcid, rgDispId);
}
static HRESULT WINAPI HTMLDOMAttribute2_Invoke(IHTMLDOMAttribute2 *iface, DISPID dispIdMember,
REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI HTMLDOMAttribute2_get_name(IHTMLDOMAttribute2 *iface, BSTR *p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_put_value(IHTMLDOMAttribute2 *iface, BSTR v)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%s)\n", This, debugstr_w(v));
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_value(IHTMLDOMAttribute2 *iface, BSTR *p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_expando(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_nodeType(IHTMLDOMAttribute2 *iface, LONG *p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_parentNode(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_childNodes(IHTMLDOMAttribute2 *iface, IDispatch **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_firstChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_lastChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_previousSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_nextSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_attributes(IHTMLDOMAttribute2 *iface, IDispatch **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_get_ownerDocument(IHTMLDOMAttribute2 *iface, IDispatch **p)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_insertBefore(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild,
VARIANT refChild, IHTMLDOMNode **node)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p %s %p)\n", This, newChild, debugstr_variant(&refChild), node);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_replaceChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild,
IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p %p %p)\n", This, newChild, oldChild, node);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_removeChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *oldChild,
IHTMLDOMNode **node)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p %p)\n", This, oldChild, node);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_appendChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild,
IHTMLDOMNode **node)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p %p)\n", This, newChild, node);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_hasChildNodes(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *fChildren)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%p)\n", This, fChildren);
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDOMAttribute2_cloneNode(IHTMLDOMAttribute2 *iface, VARIANT_BOOL fDeep,
IHTMLDOMAttribute **clonedNode)
{
HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface);
FIXME("(%p)->(%x %p)\n", This, fDeep, clonedNode);
return E_NOTIMPL;
}
static const IHTMLDOMAttribute2Vtbl HTMLDOMAttribute2Vtbl = {
HTMLDOMAttribute2_QueryInterface,
HTMLDOMAttribute2_AddRef,
HTMLDOMAttribute2_Release,
HTMLDOMAttribute2_GetTypeInfoCount,
HTMLDOMAttribute2_GetTypeInfo,
HTMLDOMAttribute2_GetIDsOfNames,
HTMLDOMAttribute2_Invoke,
HTMLDOMAttribute2_get_name,
HTMLDOMAttribute2_put_value,
HTMLDOMAttribute2_get_value,
HTMLDOMAttribute2_get_expando,
HTMLDOMAttribute2_get_nodeType,
HTMLDOMAttribute2_get_parentNode,
HTMLDOMAttribute2_get_childNodes,
HTMLDOMAttribute2_get_firstChild,
HTMLDOMAttribute2_get_lastChild,
HTMLDOMAttribute2_get_previousSibling,
HTMLDOMAttribute2_get_nextSibling,
HTMLDOMAttribute2_get_attributes,
HTMLDOMAttribute2_get_ownerDocument,
HTMLDOMAttribute2_insertBefore,
HTMLDOMAttribute2_replaceChild,
HTMLDOMAttribute2_removeChild,
HTMLDOMAttribute2_appendChild,
HTMLDOMAttribute2_hasChildNodes,
HTMLDOMAttribute2_cloneNode
};
static const tid_t HTMLDOMAttribute_iface_tids[] = {
IHTMLDOMAttribute_tid,
IHTMLDOMAttribute2_tid,
0
};
static dispex_static_data_t HTMLDOMAttribute_dispex = {
......@@ -257,6 +480,7 @@ HRESULT HTMLDOMAttribute_Create(const WCHAR *name, HTMLElement *elem, DISPID dis
return E_OUTOFMEMORY;
ret->IHTMLDOMAttribute_iface.lpVtbl = &HTMLDOMAttributeVtbl;
ret->IHTMLDOMAttribute2_iface.lpVtbl = &HTMLDOMAttribute2Vtbl;
ret->ref = 1;
ret->dispid = dispid;
ret->elem = elem;
......
......@@ -135,6 +135,7 @@ typedef struct event_target_t event_target_t;
XIID(IHTMLDocument4) \
XIID(IHTMLDocument5) \
XIID(IHTMLDOMAttribute) \
XIID(IHTMLDOMAttribute2) \
XIID(IHTMLDOMChildrenCollection) \
XIID(IHTMLDOMImplementation) \
XIID(IHTMLDOMNode) \
......@@ -902,6 +903,7 @@ struct HTMLAttributeCollection {
typedef struct {
DispatchEx dispex;
IHTMLDOMAttribute IHTMLDOMAttribute_iface;
IHTMLDOMAttribute2 IHTMLDOMAttribute2_iface;
LONG ref;
......
......@@ -270,6 +270,7 @@ static const IID * const text_iids[] = {
static const IID * const attr_iids[] = {
&IID_IHTMLDOMAttribute,
&IID_IHTMLDOMAttribute2,
&IID_IDispatchEx,
NULL
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment