From 4f247d3130b1a9299ecb20cd7bcac26f4e7b83c1 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 17 Jun 2011 14:11:12 +0200 Subject: [PATCH] rpcrt4: Add support for 64-bit conformance values. --- dlls/rpcrt4/ndr_marshall.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c index c62675d915d..85d0a3cd85b 100644 --- a/dlls/rpcrt4/ndr_marshall.c +++ b/dlls/rpcrt4/ndr_marshall.c @@ -536,7 +536,7 @@ PFORMAT_STRING ComputeConformanceOrVariance( BYTE dtype = pFormat[0] & 0xf; short ofs = *(const short *)&pFormat[2]; LPVOID ptr = NULL; - DWORD data = 0; + ULONG_PTR data = 0; if (!IsConformanceOrVariancePresent(pFormat)) { /* null descriptor */ @@ -565,7 +565,7 @@ PFORMAT_STRING ComputeConformanceOrVariance( break; case RPC_FC_CONSTANT_CONFORMANCE: data = ofs | ((DWORD)pFormat[1] << 16); - TRACE("constant conformance, val=%d\n", data); + TRACE("constant conformance, val=%ld\n", data); *pCount = data; goto finish_conf; case RPC_FC_TOP_LEVEL_MULTID_CONFORMANCE: @@ -630,11 +630,14 @@ PFORMAT_STRING ComputeConformanceOrVariance( case RPC_FC_USMALL: data = *(UCHAR*)ptr; break; + case RPC_FC_HYPER: + data = *(ULONGLONG *)ptr; + break; default: FIXME("unknown conformance data type %x\n", dtype); goto done_conf_grab; } - TRACE("dereferenced data type %x at %p, got %d\n", dtype, ptr, data); + TRACE("dereferenced data type %x at %p, got %ld\n", dtype, ptr, data); done_conf_grab: switch (pFormat[1]) {