Jacek Caban : jscript: Added IDispatchEx:: GeleteMemberByDispID implementation.
Alexandre Julliard
julliard at winehq.org
Wed Oct 1 14:09:33 CDT 2008
Module: wine
Branch: master
Commit: 65a207466dd3422e69e2dce302384414f23e67f0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=65a207466dd3422e69e2dce302384414f23e67f0
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Sep 30 17:48:36 2008 +0200
jscript: Added IDispatchEx::GeleteMemberByDispID implementation.
---
dlls/jscript/dispex.c | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c
index 81fec89..76caf1c 100644
--- a/dlls/jscript/dispex.c
+++ b/dlls/jscript/dispex.c
@@ -571,6 +571,15 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
return hres;
}
+static HRESULT delete_prop(dispex_prop_t *prop)
+{
+ heap_free(prop->name);
+ prop->name = NULL;
+ prop->type = PROP_DELETED;
+
+ return S_OK;
+}
+
static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
{
DispatchEx *This = DISPATCHEX_THIS(iface);
@@ -590,17 +599,23 @@ static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bst
return S_OK;
}
- heap_free(prop->name);
- prop->name = NULL;
- prop->type = PROP_DELETED;
- return S_OK;
+ return delete_prop(prop);
}
static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
{
DispatchEx *This = DISPATCHEX_THIS(iface);
- FIXME("(%p)->(%x)\n", This, id);
- return E_NOTIMPL;
+ dispex_prop_t *prop;
+
+ TRACE("(%p)->(%x)\n", This, id);
+
+ prop = get_prop(This, id);
+ if(!prop) {
+ WARN("invalid id\n");
+ return DISP_E_MEMBERNOTFOUND;
+ }
+
+ return delete_prop(prop);
}
static HRESULT WINAPI DispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex)
More information about the wine-cvs
mailing list