/// <summary> /// Parse the DnToMinIdRequest structure. /// </summary> /// <param name="s">An stream containing DnToMinIdRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.Reserved = ReadUint(); this.HasNames = ReadBoolean(); this.NameCount = ReadUint(); List<MAPIString> nameValues = new List<MAPIString>(); for(int i=0; i< this.NameCount; i++) { MAPIString mapiString = new MAPIString(Encoding.ASCII); mapiString.Parse(s); nameValues.Add(mapiString); } this.NameValues = nameValues.ToArray(); this.AuxiliaryBufferSize = ReadUint(); if (this.AuxiliaryBufferSize > 0) { this.AuxiliaryBuffer = new ExtendedBuffer(); this.AuxiliaryBuffer.Parse(s); } else { this.AuxiliaryBuffer = null; } }
/// <summary> /// Parse the RecipientRow structure. /// </summary> /// <param name="s">A stream containing the RecipientRow structure</param> public override void Parse(Stream s) { base.Parse(s); this.RecipientFlags = new RecipientFlags(); this.RecipientFlags.Parse(s); if (this.RecipientFlags.Type == AddressTypeEnum.X500DN) { this.AddressPrefixUsed = ReadByte(); this.DisplayType = (DisplayType)ReadByte(); this.X500DN = new MAPIString(Encoding.ASCII); this.X500DN.Parse(s); } else if (this.RecipientFlags.Type == AddressTypeEnum.PersonalDistributionList1 || this.RecipientFlags.Type == AddressTypeEnum.PersonalDistributionList2) { this.EntryIdSize = ReadUshort(); this.EntryID = new AddressBookEntryID(); this.EntryID.Parse(s); this.SearchKeySize = ReadUshort(); this.SearchKey = ConvertArray(ReadBytes((int)this.SearchKeySize)); } else if (this.RecipientFlags.Type == AddressTypeEnum.NoType && this.RecipientFlags.O == 0x1) { this.AddressType = new MAPIString(Encoding.ASCII); this.AddressType.Parse(s); } if (RecipientFlags.E == 0x1) { this.EmailAddress = new MAPIString((RecipientFlags.U == 0x1) ? Encoding.Unicode : Encoding.ASCII); this.EmailAddress.Parse(s); } if (RecipientFlags.D == 0x1) { this.DisplayName = new MAPIString((RecipientFlags.U == 0x1) ? Encoding.Unicode : Encoding.ASCII); this.DisplayName.Parse(s); } if (RecipientFlags.I == 0x1) { this.SimpleDisplayName = new MAPIString((RecipientFlags.U == 0x1) ? Encoding.Unicode : Encoding.ASCII); this.SimpleDisplayName.Parse(s); } if (RecipientFlags.T == 0x1) { this.TransmittableDisplayName = new MAPIString((RecipientFlags.U == 0x1) ? Encoding.Unicode : Encoding.ASCII); this.TransmittableDisplayName.Parse(s); } this.RecipientColumnCount = ReadUshort(); PropertyRow tempPropertyRow = new PropertyRow(PropTags); this.RecipientProperties = tempPropertyRow; this.RecipientProperties.Parse(s); }
/// <summary> /// Parse the TypedString structure. /// </summary> /// <param name="s">A stream containing the TypedString structure</param> public override void Parse(Stream s) { base.Parse(s); this.StringType = (StringTypeEnum)ReadByte(); switch (this.StringType) { case StringTypeEnum.NoPresent: case StringTypeEnum.Empty: { this.String = null; break; } case StringTypeEnum.CharacterString: { this.String = new MAPIString(Encoding.ASCII); this.String.Parse(s); break; } case StringTypeEnum.ReducedUnicodeCharacterString: { this.String = new MAPIString(Encoding.ASCII); this.String.Parse(s); break; } case StringTypeEnum.UnicodeCharacterString: { this.String = new MAPIString(Encoding.Unicode); this.String.Parse(s); break; } default: break; } }
/// <summary> /// Parse the PropertyName structure. /// </summary> /// <param name="s">A stream containing the PropertyName structure</param> public override void Parse(Stream s) { base.Parse(s); this.Kind = (KindEnum)ReadByte(); this.GUID = ReadGuid(); switch (this.Kind) { case KindEnum.LID: { this.LID = ReadUint(); break; } case KindEnum.Name: { this.NameSize = ReadByte(); this.Name = new MAPIString(Encoding.Unicode, "", (int)NameSize / 2); this.Name.Parse(s); break; } case KindEnum.NoPropertyName: default: { break; } } }
/// <summary> /// Parse the PtypNull structure. /// </summary> /// <param name="s">A stream containing the PtypNull structure</param> public override void Parse(Stream s) { this.Value = null; }
/// <summary> /// Parse the RopOptionsDataRequest structure. /// </summary> /// <param name="s">An stream containing RopOptionsDataRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.LogonId = ReadByte(); this.InputHandleIndex = ReadByte(); this.AddressType = new MAPIString(Encoding.ASCII); this.AddressType.Parse(s); this.WantWin32 = ReadByte(); }
/// <summary> /// Parse the RopTransportNewMailRequest structure. /// </summary> /// <param name="s">An stream containing RopTransportNewMailRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.LogonId = ReadByte(); this.InputHandleIndex = ReadByte(); this.MessageId = new MessageID(); this.MessageId.Parse(s); this.FolderId = new FolderID(); this.FolderId.Parse(s); this.MessageClass = new MAPIString(Encoding.ASCII); this.MessageClass.Parse(s); this.MessageFlags = (MessageFlags)ReadUint(); }
/// <summary> /// Parse from a stream. /// </summary> /// <param name="stream">A stream contains GroupPropertyName.</param> public void Parse(FastTransferStream stream) { this.Guid = stream.ReadGuid(); this.Kind = stream.ReadUInt32(); if (this.Kind == 0x00000000) { this.Lid = stream.ReadUInt32(); } else if (this.Kind == 0x00000001) { this.NameSize = stream.ReadUInt32(); this.Name = new MAPIString(Encoding.Unicode, "", (int)this.NameSize / 2); this.Name.Parse(stream); } }
/// <summary> /// Parse next object from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Parse(FastTransferStream stream) { base.Parse(stream); this.Name = new MAPIString(Encoding.Unicode); this.Name.Parse(stream); }
public void ParseAddtionlHeader(Stream s, out List<MAPIString> metaTags, out List<MAPIString> additionalHeaders) { base.Parse(s); string str = null; List<MAPIString> tempmetaTags = new List<MAPIString>(); List<MAPIString> tempadditionalHeaders = new List<MAPIString>(); while (str != "") { str = ReadString(Encoding.ASCII, "\r\n"); MAPIString tempString = new MAPIString(Encoding.ASCII, "\r\n"); tempString.Value = str; switch (str) { case "PROCESSING": case "PENDING": case "DONE": tempmetaTags.Add(tempString); break; default: if (str != "") { tempadditionalHeaders.Add(tempString); break; } else { tempString.Value = ""; tempadditionalHeaders.Add(tempString); break; } } } metaTags = tempmetaTags; additionalHeaders = tempadditionalHeaders; }
/// <summary> /// Parse the AUX_CLIENT_CONNECTION_INFO structure. /// </summary> /// <param name="s">A stream containing the AUX_ENDPOINT_CAPABILITIES structure</param> public override void Parse(Stream s) { base.Parse(s); this.ConnectionGUID = ReadGuid(); this.OffsetConnectionContextInfo = ReadUshort(); this.Reserved = ReadUshort(); this.ConnectionAttempts = ReadUint(); this.ConnectionFlags = (ConnectionFlags)ReadUint(); if (OffsetConnectionContextInfo != 0) { this.ConnectionContextInfo = new MAPIString(Encoding.Unicode); this.ConnectionContextInfo.Parse(s); } }
/// <summary> /// Parse the GetTemplateInfoRequest structure. /// </summary> /// <param name="s">An stream containing GetTemplateInfoRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.Flags = ReadUint(); this.DisplayType = ReadUint(); this.HasTemplateDn = ReadBoolean(); if (this.HasTemplateDn) { this.TemplateDn = new MAPIString(Encoding.ASCII); this.TemplateDn.Parse(s); } this.CodePage = ReadUint(); this.LocaleId = ReadUint(); this.AuxiliaryBufferSize = ReadUint(); if (this.AuxiliaryBufferSize > 0) { this.AuxiliaryBuffer = new ExtendedBuffer(); this.AuxiliaryBuffer.Parse(s); } }
/// <summary> /// Parse the GetMailboxUrlResponse structure. /// </summary> /// <param name="s">An stream containing GetMailboxUrlResponse structure.</param> public override void Parse(Stream s) { base.Parse(s); List<MAPIString> metaTags = new List<MAPIString>(); List<MAPIString> additionalHeaders = new List<MAPIString>(); ParseMAPIMethod parseMAPIMethod = new ParseMAPIMethod(); parseMAPIMethod.ParseAddtionlHeader(s, out metaTags, out additionalHeaders); this.MetaTags = metaTags.ToArray(); this.AdditionalHeaders = additionalHeaders.ToArray(); this.StatusCode = ReadUint(); if (this.StatusCode == 0) { this.ErrorCode = ReadUint(); this.ServerUrl = new MAPIString(Encoding.Unicode, "\0"); } this.AuxiliaryBufferSize = ReadUint(); if (this.AuxiliaryBufferSize > 0) { this.AuxiliaryBuffer = new ExtendedBuffer(); this.AuxiliaryBuffer.Parse(s); } }
/// <summary> /// Parse the GetMailboxUrlRequest structure. /// </summary> /// <param name="s">An stream containing GetMailboxUrlRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.Flags = ReadUint(); this.ServerDn = new MAPIString(Encoding.Unicode); this.ServerDn.Parse(s); this.AuxiliaryBufferSize = ReadUint(); if (this.AuxiliaryBufferSize > 0) { this.AuxiliaryBuffer = new ExtendedBuffer(); this.AuxiliaryBuffer.Parse(s); } }
/// <summary> /// Parse the WStringsArray_r payload of session. /// </summary> /// <param name="s">The stream to parse</param> public override void Parse(Stream s) { base.Parse(s); byte temp = ReadByte(); if (temp == 0xFF) { this.MagicNumber = temp; } else { s.Position -= 1; } this.Count = ReadUint(); List<MAPIString> temBytes = new List<MAPIString>(); for (ulong i = 0; i < this.Count; i++) { MAPIString tempByte = new MAPIString(Encoding.Unicode); tempByte.Parse(s); temBytes.Add(tempByte); } this.Strings = temBytes.ToArray(); }
/// <summary> /// Parse the NotificationData structure. /// </summary> /// <param name="s">An stream containing NotificationData structure.</param> public override void Parse(Stream s) { base.Parse(s); this.NotificationFlags = new NotificationFlags(); this.NotificationFlags.Parse(s); if (this.NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified) { this.TableEventType = (TableEventTypeEnum)ReadUshort(); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowDeleted || TableEventType == TableEventTypeEnum.TableRowModified)) { this.TableRowFolderID = new FolderID(); this.TableRowFolderID.Parse(s); } if ((((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) != 0) && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowDeleted || TableEventType == TableEventTypeEnum.TableRowModified)) { this.TableRowMessageID = new MessageID(); this.TableRowMessageID.Parse(s); } if ((((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) != 0) && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowDeleted || TableEventType == TableEventTypeEnum.TableRowModified)) { this.TableRowInstance = ReadUint(); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowModified)) { this.InsertAfterTableRowFolderID = new FolderID(); this.InsertAfterTableRowFolderID.Parse(s); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified && (((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) != 0) && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowModified)) { this.InsertAfterTableRowID = new MessageID(); this.InsertAfterTableRowID.Parse(s); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified && (((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) != 0) && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowModified)) { this.InsertAfterTableRowInstance = ReadUint(); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowModified)) { this.TableRowDataSize = ReadUshort(); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.TableModified && (TableEventType == TableEventTypeEnum.TableRowAdded || TableEventType == TableEventTypeEnum.TableRowModified)) { if (DecodingContext.SetColumnProTagMap_Handle != null && DecodingContext.SetColumnProTagMap_Handle.ContainsKey(this.NotificationHandle) ) { propertiesBySetColum = DecodingContext.SetColumnProTagMap_Handle[this.NotificationHandle]; } else { throw new MissingInformationException("Missing PropertyTags information for RopNotifyResponse", (ushort)RopIdType.RopNotify, new uint[] {0,NotificationHandle }); } this.TableRowData = new PropertyRow(propertiesBySetColum); this.TableRowData.Parse(s); } if (NotificationFlags.Value.NotificationType != NotificationTypesEnum.TableModified && NotificationFlags.Value.NotificationType != NotificationTypesEnum.Extended) { this.FolderId = new FolderID(); this.FolderId.Parse(s); } if (NotificationFlags.Value.NotificationType != NotificationTypesEnum.TableModified && NotificationFlags.Value.NotificationType != NotificationTypesEnum.Extended && (((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) != 0)) { this.MessageId = new MessageID(); this.MessageId.Parse(s); } if ((NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectCreated || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectDeleted || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectMoved || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectCopied) && ((((int)NotificationFlags.Value.NotificationDataAvailability) & 0xC000) == 0xC000 || (((int)NotificationFlags.Value.NotificationDataAvailability) & 0xC000) == 0)) { this.ParentFolderId = new FolderID(); this.ParentFolderId.Parse(s); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectMoved || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectCopied) { this.OldFolderId = new FolderID(); this.OldFolderId.Parse(s); } if ((NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectMoved || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectCopied) && (((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) != 0)) { this.OldMessageId = new MessageID(); this.OldMessageId.Parse(s); } if ((NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectMoved || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectCopied) && (((int)NotificationFlags.Value.NotificationDataAvailability & 0x8000) == 0)) { this.OldParentFolderId = new MessageID(); this.OldParentFolderId.Parse(s); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectCreated || NotificationFlags.Value.NotificationType == NotificationTypesEnum.ObjectModified) { this.TagCount = ReadUshort(); if (TagCount != 0x0000 && TagCount != 0xFFFF) { List<PropertyTag> listTags = new List<PropertyTag>(); for (int i = 0; i < this.TagCount; i++) { PropertyTag tempTag = new PropertyTag(); tempTag.Parse(s); listTags.Add(tempTag); } this.Tags = listTags.ToArray(); } } if (((int)NotificationFlags.Value.NotificationDataAvailability & 0x1000) != 0) { this.TotalMessageCount = ReadUint(); } if (((int)NotificationFlags.Value.NotificationDataAvailability & 0x2000) != 0) { this.UnreadMessageCount = ReadUint(); } if (NotificationFlags.Value.NotificationType == NotificationTypesEnum.NewMail) { this.MessageFlags = ReadUint(); this.UnicodeFlag = ReadByte(); this.MessageClass = new MAPIString(Encoding.ASCII); this.MessageClass.Parse(s); } }
/// <summary> /// Parse the WString_r payload of session. /// </summary> /// <param name="s">The stream to parse</param> public override void Parse(Stream s) { base.Parse(s); byte temp = ReadByte(); if (temp == 0xFF) { this.MagicNumber = temp; } else { s.Position -= 1; } this.Value = new MAPIString(Encoding.Unicode); this.Value.Parse(s); }
/// <summary> /// Parse the RopGetOwningServersResponse structure. /// </summary> /// <param name="s">An stream containing RopGetOwningServersResponse structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.InputHandleIndex = ReadByte(); HelpMethod help = new HelpMethod(); this.ReturnValue = help.FormatErrorCode(ReadUint()); if ((ErrorCodes)ReturnValue == ErrorCodes.Success) { this.OwningServersCount = ReadUshort(); this.CheapServersCount = ReadUshort(); List<MAPIString> tmpOwning = new List<MAPIString>(); for (int i = 0; i < this.OwningServersCount; i++) { MAPIString subOwing = new MAPIString(Encoding.ASCII); subOwing.Parse(s); tmpOwning.Add(subOwing); } this.OwningServers = tmpOwning.ToArray(); } }
/// <summary> /// Parse the RopOptionsDataResponse structure. /// </summary> /// <param name="s">An stream containing RopOptionsDataResponse structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.InputHandleIndex = ReadByte(); HelpMethod help = new HelpMethod(); this.ReturnValue = help.FormatErrorCode(ReadUint()); if ((ErrorCodes)ReturnValue == ErrorCodes.Success) { this.Reserved = ReadByte(); this.OptionalInfoSize = ReadUshort(); this.OptionalInfo = ConvertArray(ReadBytes((int)this.OptionalInfoSize)); this.HelpFileSize = ReadUshort(); if (this.HelpFileSize != 0) { this.HelpFile = ConvertArray(ReadBytes((int)this.HelpFileSize)); this.HelpFileName = new MAPIString(Encoding.ASCII); this.HelpFileName.Parse(s); } } }
/// <summary> /// Parse the RopGetReceiveFolderRequest structure. /// </summary> /// <param name="s">An stream containing RopGetReceiveFolderRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.LogonId = ReadByte(); this.InputHandleIndex = ReadByte(); this.MessageClass = new MAPIString(Encoding.ASCII); this.MessageClass.Parse(s); }
/// <summary> /// Parse the RopGetAddressTypesResponse structure. /// </summary> /// <param name="s">An stream containing RopGetAddressTypesResponse structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.InputHandleIndex = ReadByte(); HelpMethod help = new HelpMethod(); this.ReturnValue = help.FormatErrorCode(ReadUint()); if ((ErrorCodes)ReturnValue == ErrorCodes.Success) { this.AddressTypeCount = ReadUshort(); this.AddressTypeSize = ReadUshort(); List<MAPIString> listAddressTypes = new List<MAPIString>(); for (int i = 0; i < this.AddressTypeCount; i++) { MAPIString tempAddressTypes = new MAPIString(Encoding.ASCII); tempAddressTypes.Parse(s); listAddressTypes.Add(tempAddressTypes); } this.AddressTypes = listAddressTypes.ToArray(); } }
/// <summary> /// Parse the RopGetReceiveFolderResponse structure. /// </summary> /// <param name="s">An stream containing RopGetReceiveFolderResponse structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.InputHandleIndex = ReadByte(); HelpMethod help = new HelpMethod(); this.ReturnValue = help.FormatErrorCode(ReadUint()); if ((ErrorCodes)ReturnValue == ErrorCodes.Success) { this.FolderId = new FolderID(); this.FolderId.Parse(s); this.ExplicitMessageClass = new MAPIString(Encoding.ASCII); this.ExplicitMessageClass.Parse(s); } }
/// <summary> /// Parse the PtypMultipleString8 structure. /// </summary> /// <param name="s">A stream containing the PtypMultipleString8 structure</param> public override void Parse(Stream s) { base.Parse(s); HelpMethod help = new HelpMethod(); this.Count = help.ReadCount(this.countWide, s); List<MAPIString> tempvalue = new List<MAPIString>(); MAPIString str; for (int i = 0; i < this.Count.GetHashCode(); ) { str = new MAPIString(Encoding.ASCII); str.Parse(s); tempvalue.Add(str); i = i + str.Value.Length + 1; } this.Value = tempvalue.ToArray(); }
/// <summary> /// Parse the RopLogonRequest structure. /// </summary> /// <param name="s">An stream containing RopLogonRequest structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.LogonId = ReadByte(); this.OutputHandleIndex = ReadByte(); this.LogonFlags = (LogonFlags)ReadByte(); this.OpenFlags = (OpenFlags)ReadUint(); this.StoreState = ReadUint(); this.EssdnSize = ReadUshort(); if (this.EssdnSize > 0) { this.Essdn = new MAPIString(Encoding.ASCII); this.Essdn.Parse(s); } }
/// <summary> /// Parse the PtypString8 structure. /// </summary> /// <param name="s">A stream containing the PtypString8 structure</param> public override void Parse(Stream s) { base.Parse(s); this.Value = new MAPIString(Encoding.ASCII); this.Value.Parse(s); }
/// <summary> /// Parse the RopLogonResponse_PublicFolders structure. /// </summary> /// <param name="s">An stream containing RopLogonResponse_PublicFolders structure.</param> public override void Parse(Stream s) { base.Parse(s); this.RopId = (RopIdType)ReadByte(); this.OutputHandleIndex = ReadByte(); HelpMethod help = new HelpMethod(); this.ReturnValue = help.FormatErrorCode(ReadUint()); if ((ErrorCodes)ReturnValue == ErrorCodes.Success) { this.LogonFlags = (LogonFlags)ReadByte(); this.FolderIds = new FolderID[13]; for (int i = 0; i < 13; i++) { FolderIds[i] = new FolderID(); FolderIds[i].Parse(s); } this.ReplId = ReadUshort(); this.ReplGuid = ReadGuid(); this.PerUserGuid = ReadGuid(); } else if ((AdditionalErrorCodes)ReturnValue == AdditionalErrorCodes.WrongServer) { this.LogonFlags = (LogonFlags)ReadByte(); this.ServerNameSize = ReadByte(); this.ServerName = new MAPIString(Encoding.ASCII); this.ServerName.Parse(s); } }
/// <summary> /// Parse the StoreObjectEntryID structure. /// </summary> /// <param name="s">A stream containing the StoreObjectEntryID structure</param> public override void Parse(Stream s) { base.Parse(s); this.Flags = ReadUint(); this.ProviderUID = ReadBytes(16); this.Version = ReadByte(); this.Flag = ReadByte(); this.DLLFileName = ReadBytes(14); this.WrappedFlags = ReadUint(); this.WrappedProviderUID = ReadBytes(16); this.WrappedType = ReadUint(); this.ServerShortname = new MAPIString(Encoding.ASCII); this.ServerShortname.Parse(s); this.MailboxDN = new MAPIString(Encoding.ASCII); this.MailboxDN.Parse(s); }
/// <summary> /// Parse the PermanentEntryID payload of session. /// </summary> /// <param name="s">The stream to parse</param> public override void Parse(Stream s) { base.Parse(s); this.IDType = ReadByte(); this.R1 = ReadByte(); this.R2 = ReadByte(); this.R3 = ReadByte(); this.ProviderUID = ReadGuid(); this.R4 = ReadUint(); this.DisplayTypeString = (DisplayTypeValues)ReadUint(); this.DistinguishedName = new MAPIString(Encoding.ASCII); this.DistinguishedName.Parse(s); }
/// <summary> /// Parse the AddressBookEntryID structure. /// </summary> /// <param name="s">A stream containing the AddressBookEntryID structure</param> public override void Parse(Stream s) { base.Parse(s); this.Flags = ReadUint(); this.ProviderUID = ReadBytes(16); this.Version = ReadUint(); this.Type = (AddressbookEntryIDtype)ReadUint(); this.X500DN = new MAPIString(Encoding.ASCII); this.X500DN.Parse(s); }
/// <summary> /// Parse the HTTP payload of session. /// </summary> /// <param name="s">An stream of HTTP payload of session</param> public override void Parse(Stream s) { base.Parse(s); List<MAPIString> metaTags = new List<MAPIString>(); List<MAPIString> additionalHeaders = new List<MAPIString>(); ParseMAPIMethod parseMAPIMethod = new ParseMAPIMethod(); parseMAPIMethod.ParseAddtionlHeader(s, out metaTags, out additionalHeaders); this.MetaTags = metaTags.ToArray(); this.AdditionalHeaders = additionalHeaders.ToArray(); this.StatusCode = ReadUint(); if (this.StatusCode == 0) { this.ErrorCode = ReadUint(); this.PollsMax = ReadUint(); this.RetryCount = ReadUint(); this.RetryDelay = ReadUint(); this.DnPrefix = new MAPIString(Encoding.ASCII); this.DnPrefix.Parse(s); this.DisplayName = new MAPIString(Encoding.Unicode); this.DisplayName.Parse(s); } this.AuxiliaryBufferSize = ReadUint(); if (this.AuxiliaryBufferSize > 0) { this.AuxiliaryBuffer = new ExtendedBuffer(); this.AuxiliaryBuffer.Parse(s); } else { this.AuxiliaryBuffer = null; } }