[PATCH] oleaut32: add some missing simple types to _dispargsize, _argsize and _xsize
Mikołaj Zalewski
mikolaj at zalewski.pl
Fri Sep 12 15:04:00 CDT 2008
---
dlls/oleaut32/tmarshal.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c
index 9f26a30..0123e52 100644
--- a/dlls/oleaut32/tmarshal.c
+++ b/dlls/oleaut32/tmarshal.c
@@ -511,6 +511,7 @@ static const IRpcProxyBufferVtbl tmproxyvtable = {
static int
_argsize(TYPEDESC *tdesc, ITypeInfo *tinfo) {
switch (tdesc->vt) {
+ case VT_I8:
case VT_UI8:
return 8/sizeof(DWORD);
case VT_R8:
@@ -519,6 +520,8 @@ _argsize(TYPEDESC *tdesc, ITypeInfo *tinfo) {
return sizeof(CY)/sizeof(DWORD);
case VT_DATE:
return sizeof(DATE)/sizeof(DWORD);
+ case VT_DECIMAL:
+ return (sizeof(DECIMAL)+3)/sizeof(DWORD);
case VT_VARIANT:
return (sizeof(VARIANT)+3)/sizeof(DWORD);
default:
@@ -532,8 +535,11 @@ _xsize(const TYPEDESC *td, ITypeInfo *tinfo) {
switch (td->vt) {
case VT_DATE:
return sizeof(DATE);
+ case VT_CY:
+ return sizeof(CY);
+ /* FIXME: VT_BOOL should return 2? */
case VT_VARIANT:
- return sizeof(VARIANT)+3;
+ return sizeof(VARIANT)+3; /* FIXME: why the +3? */
case VT_CARRAY: {
int i, arrsize = 1;
const ARRAYDESC *adesc = td->u.lpadesc;
@@ -544,6 +550,7 @@ _xsize(const TYPEDESC *td, ITypeInfo *tinfo) {
}
case VT_UI8:
case VT_I8:
+ case VT_R8:
return 8;
case VT_UI2:
case VT_I2:
--
1.5.4
--------------010708070301080202010107--
More information about the wine-patches
mailing list