oleaut: Small re-organisation of ITypeInfo::Invoke.
Only output the one function in the trace for ITypeInfo::Invoke. Process the return value on output in ITypeInfo::Invoke, but only copy it to pVarResult if pVarResult is not NULL.
This commit is contained in:
parent
6b97438011
commit
e6fa361967
|
@ -5320,7 +5320,7 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
|||
if (TRACE_ON(ole))
|
||||
{
|
||||
TRACE("invoking:\n");
|
||||
dump_TLBFuncDesc(pFuncInfo);
|
||||
dump_TLBFuncDescOne(pFuncInfo);
|
||||
}
|
||||
|
||||
switch (func_desc->funckind) {
|
||||
|
@ -5430,10 +5430,11 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
|||
args
|
||||
);
|
||||
|
||||
if (pVarResult) {
|
||||
for (i = 0; i < func_desc->cParams; i++) {
|
||||
for (i = 0; i < func_desc->cParams; i++)
|
||||
{
|
||||
USHORT wParamFlags = func_desc->lprgelemdescParam[i].u.paramdesc.wParamFlags;
|
||||
if (wParamFlags & PARAMFLAG_FRETVAL) {
|
||||
if (wParamFlags & PARAMFLAG_FRETVAL)
|
||||
{
|
||||
ELEMDESC *elemdesc = &func_desc->lprgelemdescParam[i];
|
||||
TYPEDESC *tdesc = &elemdesc->tdesc;
|
||||
VARIANTARG varresult;
|
||||
|
@ -5449,7 +5450,11 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
|||
TRACE("varresult: ");
|
||||
dump_Variant(&varresult);
|
||||
}
|
||||
|
||||
if (pVarResult)
|
||||
/* deref return value */
|
||||
hres = VariantCopyInd(pVarResult, &varresult);
|
||||
|
||||
/* free data stored in varresult. Note that
|
||||
* VariantClear doesn't do what we want because we are
|
||||
* working with byref types. */
|
||||
|
@ -5464,7 +5469,6 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((func_desc->elemdescFunc.tdesc.vt == VT_HRESULT) && FAILED(res))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue