private RopLogonResponse Logon(out uint objHandle)
{
this.inputObjHandle = 0;
RopLogonRequest logonRequest;
logonRequest.RopId = 0xFE;
logonRequest.LogonId = 0x0;
logonRequest.OutputHandleIndex = 0x0;
string userDN = Common.GetConfigurationPropertyValue("Sender1Essdn", this.Site) + "\0";
logonRequest.StoreState = 0;
logonRequest.LogonFlags = 0x01; // Logon to a private mailbox.
logonRequest.OpenFlags = 0x01000000;
logonRequest.EssdnSize = (ushort)Encoding.ASCII.GetByteCount(userDN);
logonRequest.Essdn = Encoding.ASCII.GetBytes(userDN);
this.responseSOHs = this.DoSingleCallROP(logonRequest, this.inputObjHandle, ref this.response, ref this.rawData);
RopLogonResponse logonResponse = (RopLogonResponse)this.response;
objHandle = this.responseSOHs[0][logonResponse.OutputHandleIndex];
return logonResponse;
}