Module: wine Branch: master Commit: 4245cbb31ce87c5c9368377109849066fcdaa296 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4245cbb31ce87c5c9368377109...
Author: Alex Villacís Lasso a_villacis@palosanto.com Date: Tue Jan 2 18:48:10 2007 -0500
oleaut32: Add wrapper for dereferencing a VARIANT of type VT_DISPATCH and returning the VARIANT value.
---
dlls/oleaut32/variant.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c index f586d8a..52193e9 100644 --- a/dlls/oleaut32/variant.c +++ b/dlls/oleaut32/variant.c @@ -2856,6 +2856,22 @@ HRESULT WINAPI VarCmp(LPVARIANT left, LP #undef _VARCMP }
+static HRESULT VARIANT_FetchDispatchValue(LPVARIANT pvDispatch, LPVARIANT pValue) +{ + HRESULT hres; + static DISPPARAMS emptyParams = { NULL, NULL, 0, 0 }; + + if ((V_VT(pvDispatch) & VT_TYPEMASK) == VT_DISPATCH) { + if (NULL == V_DISPATCH(pvDispatch)) return DISP_E_TYPEMISMATCH; + hres = IDispatch_Invoke(V_DISPATCH(pvDispatch), DISPID_VALUE, &IID_NULL, + LOCALE_USER_DEFAULT, DISPATCH_PROPERTYGET, &emptyParams, pValue, + NULL, NULL); + } else { + hres = DISP_E_TYPEMISMATCH; + } + return hres; +} + /********************************************************************** * VarAnd [OLEAUT32.142] *