Robert Shearman : oleaut32: Convert some tabs to spaces and some
other formatting changes.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Dec 26 11:46:24 CST 2005
Module: wine
Branch: refs/heads/master
Commit: 6b9743801135cad60a4f754034d30a1d8e871550
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=6b9743801135cad60a4f754034d30a1d8e871550
Author: Robert Shearman <rob at codeweavers.com>
Date: Mon Dec 26 13:04:02 2005 +0100
oleaut32: Convert some tabs to spaces and some other formatting changes.
---
dlls/oleaut32/typelib.c | 137 +++++++++++++++++++++++++----------------------
1 files changed, 73 insertions(+), 64 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 0e40e2b..1c56c46 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -5326,41 +5326,44 @@ static HRESULT WINAPI ITypeInfo_fnInvoke
switch (func_desc->funckind) {
case FUNC_PUREVIRTUAL:
case FUNC_VIRTUAL: {
- DWORD res;
- int numargs, numargs2, argspos, args2pos;
- DWORD *args , *args2;
+ DWORD res;
+ int numargs, numargs2, argspos, args2pos;
+ DWORD *args , *args2;
VARIANT *rgvarg = HeapAlloc(GetProcessHeap(), 0, sizeof(VARIANT) * func_desc->cParams);
memcpy(rgvarg,pDispParams->rgvarg,sizeof(VARIANT)*pDispParams->cArgs);
- hres = S_OK;
- numargs = 1; /* sizeof(thisptr) */
- numargs2 = 0;
- for (i = 0; i < func_desc->cParams; i++) {
+ hres = S_OK;
+ numargs = 1; /* sizeof(thisptr) */
+ numargs2 = 0;
+ for (i = 0; i < func_desc->cParams; i++)
+ {
TYPEDESC *tdesc = &func_desc->lprgelemdescParam[i].tdesc;
- numargs += _argsize(tdesc->vt);
- if (i>=pDispParams->cArgs) { /* arguments to return */
- if (tdesc->vt == VT_PTR) {
- numargs2 += _argsize(tdesc->u.lptdesc->vt);
- } else {
- FIXME("The variant type here should have been VT_PTR, not vt %d\n", tdesc->vt);
- numargs2 += _argsize(tdesc->vt);
- }
- }
- }
+ numargs += _argsize(tdesc->vt);
+ if (i>=pDispParams->cArgs) { /* arguments to return */
+ if (tdesc->vt == VT_PTR) {
+ numargs2 += _argsize(tdesc->u.lptdesc->vt);
+ } else {
+ FIXME("The variant type here should have been VT_PTR, not vt %d\n", tdesc->vt);
+ numargs2 += _argsize(tdesc->vt);
+ }
+ }
+ }
- args = HeapAlloc(GetProcessHeap(),0,sizeof(DWORD)*numargs);
- args2 = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DWORD)*numargs2);
+ args = HeapAlloc(GetProcessHeap(),0,sizeof(DWORD)*numargs);
+ args2 = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DWORD)*numargs2);
- args[0] = (DWORD)pIUnk;
- argspos = 1; args2pos = 0;
- for (i = 0; i < func_desc->cParams; i++) {
- ELEMDESC *elemdesc = &(func_desc->lprgelemdescParam[i]);
- TYPEDESC *tdesc = &(elemdesc->tdesc);
- USHORT paramFlags = elemdesc->u.paramdesc.wParamFlags;
- int arglen = _argsize(tdesc->vt);
+ args[0] = (DWORD)pIUnk;
+ argspos = 1; args2pos = 0;
+ for (i = 0; i < func_desc->cParams; i++)
+ {
+ ELEMDESC *elemdesc = &(func_desc->lprgelemdescParam[i]);
+ TYPEDESC *tdesc = &(elemdesc->tdesc);
+ USHORT paramFlags = elemdesc->u.paramdesc.wParamFlags;
+ int arglen = _argsize(tdesc->vt);
- if (i<pDispParams->cArgs) {
+ if (i<pDispParams->cArgs)
+ {
VARIANT *arg = &rgvarg[pDispParams->cArgs-i-1];
if (paramFlags & PARAMFLAG_FOPT) {
@@ -5381,7 +5384,9 @@ static HRESULT WINAPI ITypeInfo_fnInvoke
hres = _copy_arg(iface, tdesc, &args[argspos], arg, tdesc->vt);
if (FAILED(hres)) goto func_fail;
argspos += arglen;
- } else if (paramFlags & PARAMFLAG_FOPT) {
+ }
+ else if (paramFlags & PARAMFLAG_FOPT)
+ {
VARIANT *arg = &rgvarg[i];
if (i < func_desc->cParams - func_desc->cParamsOpt)
@@ -5395,36 +5400,38 @@ static HRESULT WINAPI ITypeInfo_fnInvoke
hres = _copy_arg(iface, tdesc, &args[argspos], arg, tdesc->vt);
if (FAILED(hres)) goto func_fail;
argspos += arglen;
- } else {
- if (tdesc->vt == VT_PTR)
- arglen = _argsize(tdesc->u.lptdesc->vt);
- else
- FIXME("set %d to pointer for get (type is %d)\n",i,tdesc->vt);
-
- /* Supply pointers for the rest, so propertyget works*/
- args[argspos] = (DWORD)&args2[args2pos];
-
- /* If pointer to variant, pass reference it. */
- if ((tdesc->vt == VT_PTR) &&
- (tdesc->u.lptdesc->vt == VT_VARIANT) &&
- pVarResult
+ }
+ else
+ {
+ if (tdesc->vt == VT_PTR)
+ arglen = _argsize(tdesc->u.lptdesc->vt);
+ else
+ FIXME("set %d to pointer for get (type is %d)\n",i,tdesc->vt);
+
+ /* Supply pointers for the rest, so propertyget works*/
+ args[argspos] = (DWORD)&args2[args2pos];
+
+ /* If pointer to variant, pass reference it. */
+ if ((tdesc->vt == VT_PTR) &&
+ (tdesc->u.lptdesc->vt == VT_VARIANT) &&
+ pVarResult
)
args[argspos]= (DWORD)pVarResult;
- argspos += 1;
- args2pos += arglen;
- }
- }
- if (func_desc->cParamsOpt < 0)
- FIXME("Does not support optional parameters (%d)\n", func_desc->cParamsOpt);
+ argspos += 1;
+ args2pos += arglen;
+ }
+ }
+ if (func_desc->cParamsOpt < 0)
+ FIXME("Does not support optional parameters (%d)\n", func_desc->cParamsOpt);
- res = _invoke((*(FARPROC**)pIUnk)[func_desc->oVft/4],
- func_desc->callconv,
- numargs,
- args
- );
+ res = _invoke((*(FARPROC**)pIUnk)[func_desc->oVft/4],
+ func_desc->callconv,
+ numargs,
+ args
+ );
- if (pVarResult) {
- for (i = 0; i < func_desc->cParams; i++) {
+ if (pVarResult) {
+ for (i = 0; i < func_desc->cParams; i++) {
USHORT wParamFlags = func_desc->lprgelemdescParam[i].u.paramdesc.wParamFlags;
if (wParamFlags & PARAMFLAG_FRETVAL) {
ELEMDESC *elemdesc = &func_desc->lprgelemdescParam[i];
@@ -5455,19 +5462,21 @@ static HRESULT WINAPI ITypeInfo_fnInvoke
IUnknown_Release(*V_UNKNOWNREF(&varresult));
}
break;
- }
- }
- }
+ }
+ }
+ }
+
+ if ((func_desc->elemdescFunc.tdesc.vt == VT_HRESULT) && FAILED(res))
+ {
+ WARN("invoked function failed with error 0x%08lx\n", res);
+ hres = DISP_E_EXCEPTION;
+ if (pExcepInfo) pExcepInfo->scode = res;
+ }
- if ((func_desc->elemdescFunc.tdesc.vt == VT_HRESULT) && FAILED(res)) {
- WARN("invoked function failed with error 0x%08lx\n", res);
- hres = DISP_E_EXCEPTION;
- if (pExcepInfo) pExcepInfo->scode = res;
- }
func_fail:
HeapFree(GetProcessHeap(), 0, rgvarg);
- HeapFree(GetProcessHeap(),0,args2);
- HeapFree(GetProcessHeap(),0,args);
+ HeapFree(GetProcessHeap(),0,args2);
+ HeapFree(GetProcessHeap(),0,args);
break;
}
case FUNC_DISPATCH: {
More information about the wine-cvs
mailing list