Commit 976cd5c9 authored by Alexandre Julliard's avatar Alexandre Julliard

rpcrt4: Support sizing of a few more argument types.

parent 2bdff697
...@@ -150,6 +150,7 @@ static DWORD calc_arg_size(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat) ...@@ -150,6 +150,7 @@ static DWORD calc_arg_size(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat)
switch(*pFormat) switch(*pFormat)
{ {
case RPC_FC_STRUCT: case RPC_FC_STRUCT:
case RPC_FC_PSTRUCT:
size = *(const WORD*)(pFormat + 2); size = *(const WORD*)(pFormat + 2);
break; break;
case RPC_FC_BOGUS_STRUCT: case RPC_FC_BOGUS_STRUCT:
...@@ -178,6 +179,15 @@ static DWORD calc_arg_size(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat) ...@@ -178,6 +179,15 @@ static DWORD calc_arg_size(MIDL_STUB_MESSAGE *pStubMsg, PFORMAT_STRING pFormat)
size = ComplexStructSize(pStubMsg, pFormat); size = ComplexStructSize(pStubMsg, pFormat);
size *= pStubMsg->MaxCount; size *= pStubMsg->MaxCount;
break; break;
case RPC_FC_USER_MARSHAL:
size = *(const WORD*)(pFormat + 4);
break;
case RPC_FC_CSTRING:
size = *(const WORD*)(pFormat + 2);
break;
case RPC_FC_WSTRING:
size = *(const WORD*)(pFormat + 2) * sizeof(WCHAR);
break;
case RPC_FC_C_CSTRING: case RPC_FC_C_CSTRING:
case RPC_FC_C_WSTRING: case RPC_FC_C_WSTRING:
if (*pFormat == RPC_FC_C_CSTRING) if (*pFormat == RPC_FC_C_CSTRING)
......
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