Module: wine Branch: master Commit: e2108feec4c94641c9866b377c29c2727338d70b URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2108feec4c94641c9866b377c...
Author: Rob Shearman rob@codeweavers.com Date: Tue Feb 6 19:23:33 2007 +0000
oleaut32: If an error info object was created when the invoked method failed then fill in exception info from the error info object.
---
dlls/oleaut32/typelib.c | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 4970f23..47f721b 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -5665,7 +5665,20 @@ static HRESULT WINAPI ITypeInfo_fnInvoke { WARN("invoked function failed with error 0x%08x\n", V_ERROR(&varresult)); hres = DISP_E_EXCEPTION; - if (pExcepInfo) pExcepInfo->scode = V_ERROR(&varresult); + if (pExcepInfo) + { + IErrorInfo *pErrorInfo; + pExcepInfo->scode = V_ERROR(&varresult); + if (GetErrorInfo(0, &pErrorInfo) == S_OK) + { + IErrorInfo_GetDescription(pErrorInfo, &pExcepInfo->bstrDescription); + IErrorInfo_GetHelpFile(pErrorInfo, &pExcepInfo->bstrHelpFile); + IErrorInfo_GetSource(pErrorInfo, &pExcepInfo->bstrSource); + IErrorInfo_GetHelpContext(pErrorInfo, &pExcepInfo->dwHelpContext); + + IErrorInfo_Release(pErrorInfo); + } + } }
func_fail: