info->prop_vt = desc->elemdescFunc.tdesc.vt;
if(info->prop_vt != VT_VOID && !is_arg_type_supported(info->prop_vt)) {
- TRACE("%s: return type %d\n", debugstr_w(info->name), info->arg_types[i]);
+ TRACE("%s: return type %d\n", debugstr_w(info->name), info->prop_vt);
return; /* Fallback to ITypeInfo::Invoke */
}
if(FAILED(hres))
return hres;
- if(flags != (DISPATCH_PROPERTYGET|DISPATCH_METHOD)) {
+ if(flags != (DISPATCH_PROPERTYGET|DISPATCH_METHOD) || dp->cArgs) {
if(V_VT(&v) != VT_DISPATCH) {
FIXME("Not a function %s\n", debugstr_variant(&v));
VariantClear(&v);
}else if(res) {
*res = v;
}else {
- IDispatch_Release(V_DISPATCH(&v));
+ VariantClear(&v);
}
}
}