Commit 2045ed22 authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

Added support for VT_I8/VT_UI8 marshalling.

parent f52f6ce9
...@@ -445,6 +445,8 @@ static const IRpcProxyBufferVtbl tmproxyvtable = { ...@@ -445,6 +445,8 @@ static const IRpcProxyBufferVtbl tmproxyvtable = {
int int
_argsize(DWORD vt) { _argsize(DWORD vt) {
switch (vt) { switch (vt) {
case VT_UI8:
return 8/sizeof(DWORD);
case VT_R8: case VT_R8:
return sizeof(double)/sizeof(DWORD); return sizeof(double)/sizeof(DWORD);
case VT_CY: case VT_CY:
...@@ -473,6 +475,9 @@ _xsize(TYPEDESC *td) { ...@@ -473,6 +475,9 @@ _xsize(TYPEDESC *td) {
arrsize *= adesc->rgbounds[i].cElements; arrsize *= adesc->rgbounds[i].cElements;
return arrsize*_xsize(&adesc->tdescElem); return arrsize*_xsize(&adesc->tdescElem);
} }
case VT_UI8:
case VT_I8:
return 8;
case VT_UI2: case VT_UI2:
case VT_I2: case VT_I2:
return 2; return 2;
...@@ -501,6 +506,13 @@ serialize_param( ...@@ -501,6 +506,13 @@ serialize_param(
switch (tdesc->vt) { switch (tdesc->vt) {
case VT_EMPTY: /* nothing. empty variant for instance */ case VT_EMPTY: /* nothing. empty variant for instance */
return S_OK; return S_OK;
case VT_I8:
case VT_UI8:
hres = S_OK;
if (debugout) TRACE_(olerelay)("%lx%lx",arg[0],arg[1]);
if (writeit)
hres = xbuf_add(buf,(LPBYTE)arg,8);
return hres;
case VT_BOOL: case VT_BOOL:
case VT_ERROR: case VT_ERROR:
case VT_UINT: case VT_UINT:
...@@ -811,6 +823,14 @@ deserialize_param( ...@@ -811,6 +823,14 @@ deserialize_param(
return S_OK; return S_OK;
} }
} }
case VT_I8:
case VT_UI8:
if (readit) {
hres = xbuf_get(buf,(LPBYTE)arg,8);
if (hres) ERR("Failed to read integer 8 byte\n");
}
if (debugout) TRACE_(olerelay)("%lx%lx",arg[0],arg[1]);
return hres;
case VT_ERROR: case VT_ERROR:
case VT_BOOL: case VT_BOOL:
case VT_I4: case VT_I4:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment