private List<List<uint>> DoRPCCall(ISerializable ropRequest, uint objHandle, ref object response, ref byte[] rawData)
{
List<ISerializable> requestRops = new List<ISerializable>
{
ropRequest
};
List<uint> requestSOH = new List<uint>
{
objHandle
};
if (Common.IsOutputHandleInRopRequest(ropRequest))
{
// Add an element for server output object handle, set default value to 0xFFFFFFFF.
requestSOH.Add(0xFFFFFFFF);
}
List<IDeserializable> responseRops = new List<IDeserializable>();
List<List<uint>> responseSOHs = new List<List<uint>>();
// 0x10008 specifies the maximum size of the rgbOut buffer to place in Response.
uint ret = this.oxcropsClient.RopCall(requestRops, requestSOH, ref responseRops, ref responseSOHs, ref rawData, 0x10008);
Site.Assert.AreEqual<uint>(OxcRpcErrorCode.ECNone, ret, "ROP call should be successful here, the error code is: {0}", ret);
if (responseRops.Count != 0)
{
response = responseRops[0];
}
this.VerifyMAPITransport();
return responseSOHs;
}
#endregion