PATCH: more tmarshal
Marcus Meissner
marcus at jet.franken.de
Wed Dec 11 08:52:16 CST 2002
Hi,
VT_USERDEFINED in turn can contain any 'normal' type, so serialize/deserialize
all types. Spotted by Excel Macro Recorder.
Ciao, Marcus
Changelog:
Serialize/deserialize all reftypes in VT_USERDEFINED.
Index: tmarshal.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/tmarshal.c,v
retrieving revision 1.11
diff -u -u -r1.11 tmarshal.c
--- tmarshal.c 5 Dec 2002 20:33:08 -0000 1.11
+++ tmarshal.c 11 Dec 2002 14:48:23 -0000
@@ -556,11 +556,25 @@
if (debugout) MESSAGE("}");
break;
}
- default:
- FIXME("Don't know how to marshal type kind %d\n",tattr->typekind);
- hres = E_FAIL;
+ default: {
+ TYPEDESC tdesc2;
+
+ if (debugout) MESSAGE("U{");
+ memset(&tdesc2,0,sizeof(tdesc2));
+ tdesc2.vt = tattr->typekind;
+ hres = serialize_param(
+ tinfo2,
+ writeit,
+ debugout,
+ dealloc,
+ &tdesc2,
+ arg,
+ buf
+ );
+ if (debugout) MESSAGE("}");
break;
}
+ }
ITypeInfo_Release(tinfo2);
return hres;
}
@@ -896,10 +910,24 @@
if (debugout) MESSAGE("}");
break;
}
- default:
- FIXME("Don't know how to marshal type kind %d\n",tattr->typekind);
- hres = E_FAIL;
+ default: {
+ TYPEDESC tdesc2;
+
+ if (debugout) MESSAGE("U{");
+ memset(&tdesc2,0,sizeof(tdesc2));
+ tdesc2.vt = tattr->typekind;
+ hres = deserialize_param(
+ tinfo2,
+ readit,
+ debugout,
+ alloc,
+ &tdesc2,
+ (DWORD*)*arg,
+ buf
+ );
+ if (debugout) MESSAGE("}");
break;
+ }
}
}
if (hres)
More information about the wine-patches
mailing list