public uint RopOpenMessage(uint handle, ulong folderId, ulong messageId, out RopOpenMessageResponse openMessageResponse)
{
this.rawData = null;
this.response = null;
this.responseSOHs = null;
RopOpenMessageRequest req;
req.RopId = 0x03;
req.LogonId = 0;
req.InputHandleIndex = 0;
req.OutputHandleIndex = 1;
// Use the same codepage as logon object used
req.CodePageId = 0x0fff;
req.FolderId = folderId;
// Read and write
req.OpenModeFlags = 0x01;
req.MessageId = messageId;
this.responseSOHs = this.DoRPCCall(req, handle, ref this.response, ref this.rawData);
openMessageResponse = (RopOpenMessageResponse)this.response;
return this.responseSOHs[0][openMessageResponse.OutputHandleIndex];
}