rpcrt4: Add support for marshaling the FC_HYPER base type in complex types.
Change the FIXME messages to print out unrecognised format characters in hex rather than decimal.
This commit is contained in:
parent
2334e18ada
commit
98c26a81fe
|
@ -1722,6 +1722,12 @@ static unsigned char * ComplexMarshall(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
pStubMsg->Buffer += 4;
|
pStubMsg->Buffer += 4;
|
||||||
pMemory += 4;
|
pMemory += 4;
|
||||||
break;
|
break;
|
||||||
|
case RPC_FC_HYPER:
|
||||||
|
TRACE("longlong=%s <= %p\n", wine_dbgstr_longlong(*(ULONGLONG*)pMemory), pMemory);
|
||||||
|
memcpy(pStubMsg->Buffer, pMemory, 8);
|
||||||
|
pStubMsg->Buffer += 8;
|
||||||
|
pMemory += 8;
|
||||||
|
break;
|
||||||
case RPC_FC_POINTER:
|
case RPC_FC_POINTER:
|
||||||
TRACE("pointer=%p <= %p\n", *(unsigned char**)pMemory, pMemory);
|
TRACE("pointer=%p <= %p\n", *(unsigned char**)pMemory, pMemory);
|
||||||
NdrPointerMarshall(pStubMsg, *(unsigned char**)pMemory, pPointer);
|
NdrPointerMarshall(pStubMsg, *(unsigned char**)pMemory, pPointer);
|
||||||
|
@ -1758,7 +1764,7 @@ static unsigned char * ComplexMarshall(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
case RPC_FC_PAD:
|
case RPC_FC_PAD:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FIXME("unhandled format %02x\n", *pFormat);
|
FIXME("unhandled format 0x%02x\n", *pFormat);
|
||||||
}
|
}
|
||||||
pFormat++;
|
pFormat++;
|
||||||
}
|
}
|
||||||
|
@ -1802,6 +1808,12 @@ static unsigned char * ComplexUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
pStubMsg->Buffer += 4;
|
pStubMsg->Buffer += 4;
|
||||||
pMemory += 4;
|
pMemory += 4;
|
||||||
break;
|
break;
|
||||||
|
case RPC_FC_HYPER:
|
||||||
|
memcpy(pMemory, pStubMsg->Buffer, 8);
|
||||||
|
TRACE("longlong=%s => %p\n", wine_dbgstr_longlong(*(ULONGLONG*)pMemory), pMemory);
|
||||||
|
pStubMsg->Buffer += 8;
|
||||||
|
pMemory += 8;
|
||||||
|
break;
|
||||||
case RPC_FC_POINTER:
|
case RPC_FC_POINTER:
|
||||||
TRACE("pointer => %p\n", pMemory);
|
TRACE("pointer => %p\n", pMemory);
|
||||||
NdrPointerUnmarshall(pStubMsg, (unsigned char**)pMemory, pPointer, TRUE);
|
NdrPointerUnmarshall(pStubMsg, (unsigned char**)pMemory, pPointer, TRUE);
|
||||||
|
@ -1877,6 +1889,10 @@ static unsigned char * ComplexBufferSize(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
pStubMsg->BufferLength += 4;
|
pStubMsg->BufferLength += 4;
|
||||||
pMemory += 4;
|
pMemory += 4;
|
||||||
break;
|
break;
|
||||||
|
case RPC_FC_HYPER:
|
||||||
|
pStubMsg->BufferLength += 8;
|
||||||
|
pMemory += 8;
|
||||||
|
break;
|
||||||
case RPC_FC_POINTER:
|
case RPC_FC_POINTER:
|
||||||
NdrPointerBufferSize(pStubMsg, *(unsigned char**)pMemory, pPointer);
|
NdrPointerBufferSize(pStubMsg, *(unsigned char**)pMemory, pPointer);
|
||||||
pPointer += 4;
|
pPointer += 4;
|
||||||
|
@ -1911,7 +1927,7 @@ static unsigned char * ComplexBufferSize(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
case RPC_FC_PAD:
|
case RPC_FC_PAD:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FIXME("unhandled format %d\n", *pFormat);
|
FIXME("unhandled format 0x%02x\n", *pFormat);
|
||||||
}
|
}
|
||||||
pFormat++;
|
pFormat++;
|
||||||
}
|
}
|
||||||
|
@ -1946,6 +1962,9 @@ static unsigned char * ComplexFree(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
case RPC_FC_ENUM32:
|
case RPC_FC_ENUM32:
|
||||||
pMemory += 4;
|
pMemory += 4;
|
||||||
break;
|
break;
|
||||||
|
case RPC_FC_HYPER:
|
||||||
|
pMemory += 8;
|
||||||
|
break;
|
||||||
case RPC_FC_POINTER:
|
case RPC_FC_POINTER:
|
||||||
NdrPointerFree(pStubMsg, *(unsigned char**)pMemory, pPointer);
|
NdrPointerFree(pStubMsg, *(unsigned char**)pMemory, pPointer);
|
||||||
pPointer += 4;
|
pPointer += 4;
|
||||||
|
@ -1980,7 +1999,7 @@ static unsigned char * ComplexFree(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
case RPC_FC_PAD:
|
case RPC_FC_PAD:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FIXME("unhandled format %d\n", *pFormat);
|
FIXME("unhandled format 0x%02x\n", *pFormat);
|
||||||
}
|
}
|
||||||
pFormat++;
|
pFormat++;
|
||||||
}
|
}
|
||||||
|
@ -2015,6 +2034,10 @@ static unsigned long ComplexStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
size += 4;
|
size += 4;
|
||||||
pStubMsg->Buffer += 4;
|
pStubMsg->Buffer += 4;
|
||||||
break;
|
break;
|
||||||
|
case RPC_FC_HYPER:
|
||||||
|
size += 8;
|
||||||
|
pStubMsg->Buffer += 8;
|
||||||
|
break;
|
||||||
case RPC_FC_POINTER:
|
case RPC_FC_POINTER:
|
||||||
size += 4;
|
size += 4;
|
||||||
pStubMsg->Buffer += 4;
|
pStubMsg->Buffer += 4;
|
||||||
|
@ -2046,7 +2069,7 @@ static unsigned long ComplexStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,
|
||||||
case RPC_FC_PAD:
|
case RPC_FC_PAD:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FIXME("unhandled format %d\n", *pFormat);
|
FIXME("unhandled format 0x%02x\n", *pFormat);
|
||||||
}
|
}
|
||||||
pFormat++;
|
pFormat++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue