Piotr Caban : mshtml: Added HTMLAttributeCollection_invoke implementation.
Alexandre Julliard
julliard at winehq.org
Fri Sep 2 13:13:39 CDT 2011
Module: wine
Branch: master
Commit: 648ed1e1c62af7db41d3cfd96afc80922636f314
URL: http://source.winehq.org/git/wine.git/?a=commit;h=648ed1e1c62af7db41d3cfd96afc80922636f314
Author: Piotr Caban <piotr at codeweavers.com>
Date: Fri Sep 2 14:17:49 2011 +0200
mshtml: Added HTMLAttributeCollection_invoke implementation.
---
dlls/mshtml/htmlelem.c | 32 ++++++++++++++++++++++++++++----
1 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 8b5b7f0..9d9fc8d 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -2622,12 +2622,36 @@ static HRESULT HTMLAttributeCollection_get_dispid(DispatchEx *dispex, BSTR name,
return S_OK;
}
-static HRESULT HTMLAttributeCollection_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params,
- VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller)
+static HRESULT HTMLAttributeCollection_invoke(DispatchEx *dispex, DISPID id, LCID lcid,
+ WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller)
{
HTMLAttributeCollection *This = HTMLAttributeCollection_from_DispatchEx(dispex);
- FIXME("(%p)->(%x %x %x %p %p %p %p)\n", This, id, lcid, flags, params, res, ei, caller);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%x %x %x %p %p %p %p)\n", This, id, lcid, flags, params, res, ei, caller);
+
+ switch(flags) {
+ case DISPATCH_PROPERTYGET: {
+ HTMLDOMAttribute *iter;
+
+ id = id-MSHTML_DISPID_CUSTOM_MIN+1;
+
+ LIST_FOR_EACH_ENTRY(iter, &This->attrs, HTMLDOMAttribute, entry) {
+ if(!(--id))
+ break;
+ }
+ if(id)
+ return E_INVALIDARG;
+
+ IHTMLDOMAttribute_AddRef(&iter->IHTMLDOMAttribute_iface);
+ V_VT(res) = VT_DISPATCH;
+ V_DISPATCH(res) = (IDispatch*)&iter->IHTMLDOMAttribute_iface;
+ return S_OK;
+ }
+
+ default:
+ FIXME("unimplemented flags %x\n", flags);
+ return E_NOTIMPL;
+ }
}
static const dispex_static_data_vtbl_t HTMLAttributeCollection_dispex_vtbl = {
More information about the wine-cvs
mailing list