patch for bug 2830 "MSFT_GetTdesc fails on methods with >= 30 params"

White Snake whitesnake78 at
Tue Sep 6 14:11:01 CDT 2005

patch goes in typelib.c and is attached as a diff file against 
typelib.c 1.167.

Patch is divided in 3 parts:
1) in MSFT_DoFuncs: "reclength" of the function information record  is stored
in a 16 bit int and not in a 8 bit int as previously supposed, using a 0x1ff
mask. Upper 16 bits contains the ordinal number of the function. Allocation of
the "recbuf" must be modified, to support larger data.

2) Supporting a larger number of parameters means that the function "_invoke"
must be updated too. Maybe there is a smarter way than the one i've found.

3) This is a "new" bug I discovered: in ITypeInfo_fnInvoke, after 
_invoke, when you copy data back to pVarResult, you must not always do it. 
Sometimes pVarResult is passet to the called function, so data is already in the exit
buffer. Check the comment few lines above "If pointer to variant, pass
reference it."

Sign-up for Ads Free at

-------------- next part --------------
A non-text attachment was scrubbed...
Name: typelib.diff
Type: application/octet-stream
Size: 14046 bytes
Desc: not available
Url :

More information about the wine-patches mailing list