Aric Stewart : oleaut32: Implement de/serialize_param of types VT_ARRAY|< type>.
Alexandre Julliard
julliard at winehq.org
Fri Jan 30 07:58:25 CST 2009
Module: wine
Branch: master
Commit: bbf4835568096cf4949d07d323b40e6f502d347c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bbf4835568096cf4949d07d323b40e6f502d347c
Author: Aric Stewart <aric at codeweavers.com>
Date: Thu Jan 29 09:52:29 2009 -0600
oleaut32: Implement de/serialize_param of types VT_ARRAY|<type>.
---
dlls/oleaut32/tmarshal.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/tmarshal.c b/dlls/oleaut32/tmarshal.c
index a7b4009..10149f2 100644
--- a/dlls/oleaut32/tmarshal.c
+++ b/dlls/oleaut32/tmarshal.c
@@ -606,10 +606,15 @@ serialize_param(
marshal_state *buf)
{
HRESULT hres = S_OK;
+ VARTYPE vartype;
TRACE("(tdesc.vt %s)\n",debugstr_vt(tdesc->vt));
- switch (tdesc->vt) {
+ vartype = tdesc->vt;
+ if ((vartype & 0xf000) == VT_ARRAY)
+ vartype = VT_SAFEARRAY;
+
+ switch (vartype) {
case VT_EMPTY: /* nothing. empty variant for instance */
return S_OK;
case VT_I8:
@@ -919,11 +924,16 @@ deserialize_param(
marshal_state *buf)
{
HRESULT hres = S_OK;
+ VARTYPE vartype;
TRACE("vt %s at %p\n",debugstr_vt(tdesc->vt),arg);
+ vartype = tdesc->vt;
+ if ((vartype & 0xf000) == VT_ARRAY)
+ vartype = VT_SAFEARRAY;
+
while (1) {
- switch (tdesc->vt) {
+ switch (vartype) {
case VT_EMPTY:
if (debugout) TRACE_(olerelay)("<empty>\n");
return S_OK;
More information about the wine-cvs
mailing list