/// <summary>
 /// Parse the SeekEntriesResponse structure.
 /// </summary>
 /// <param name="s">An stream containing SeekEntriesResponse 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.HasState = ReadBoolean();
         if (this.HasState)
         {
             this.State = new STAT();
             this.State.Parse(s);
             this.HasColsAndRows = ReadBoolean();
             if (this.HasColsAndRows)
             {
                 this.Columns = new LargePropertyTagArray();
                 this.Columns.Parse(s);
                 this.RowCount = ReadUint();
                 List<AddressBookPropertyRow> addressBookPropRow = new List<AddressBookPropertyRow>();
                 for (int i = 0; i < this.RowCount; i++)
                 {
                     AddressBookPropertyRow addressPropRow = new AddressBookPropertyRow(this.Columns);
                     addressPropRow.Parse(s);
                     addressBookPropRow.Add(addressPropRow);
                 }
                 this.RowData = addressBookPropRow.ToArray();
             }
         }
     }
     this.AuxiliaryBufferSize = ReadUint();
     if (this.AuxiliaryBufferSize > 0)
     {
         this.AuxiliaryBuffer = new ExtendedBuffer();
         this.AuxiliaryBuffer.Parse(s);
     }
 }
        /// <summary>
        /// Parse the ResolveNamesResponse structure.
        /// </summary>
        /// <param name="s">An stream containing ResolveNamesResponse 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.CodePage = ReadUint();
                this.HasMinimalIds = ReadBoolean();
                if (this.HasMinimalIds)
                {
                    this.MinimalIdCount = ReadUint();
                    List<MinimalEntryID> miniEIDList = new List<MinimalEntryID>();
                    for (int i = 0; i < this.MinimalIdCount; i++)
                    {
                        MinimalEntryID miniEID = new MinimalEntryID();
                        miniEID.Parse(s);
                        miniEIDList.Add(miniEID);
                    }
                    this.MinimalIds = miniEIDList.ToArray();
                }
                this.HasRowsAndCols = ReadBoolean();
                if (this.HasRowsAndCols)
                {
                    this.PropertyTags = new LargePropertyTagArray();
                    this.PropertyTags.Parse(s);
                    this.RowCount = ReadUint();
                    List<AddressBookPropertyRow> addressPRList = new List<AddressBookPropertyRow>();
                    for (int i = 0; i < this.RowCount; i++)
                    {
                        AddressBookPropertyRow addressPR = new AddressBookPropertyRow(this.PropertyTags);
                        addressPR.Parse(s);
                        addressPRList.Add(addressPR);
                    }
                    this.RowData = addressPRList.ToArray();
                }
            }

            this.AuxiliaryBufferSize = ReadUint();
            if (this.AuxiliaryBufferSize > 0)
            {
                this.AuxiliaryBuffer = new ExtendedBuffer();
                this.AuxiliaryBuffer.Parse(s);
            }
        }