示例#1
0
        protected override void ParserHeader(IStream propertyHeaderStream, ref int readCount)
        {
            Int64 value = propertyHeaderStream.ReadInt64(ref readCount);
            Int32 recipientCount = propertyHeaderStream.ReadInt32(ref readCount);
            Int32 attachmentCount = propertyHeaderStream.ReadInt32(ref readCount);
            recipientCount = propertyHeaderStream.ReadInt32(ref readCount);
            attachmentCount = propertyHeaderStream.ReadInt32(ref readCount);

            for (int i = 0; i < recipientCount; i++)
            {
                var recipientStruct = CreateRecipient();
                recipientStruct.Parser();
            }

            for (int i = 0; i < attachmentCount; i++)
            {
                var attachmentStruct = CreateAttachment();
                attachmentStruct.Parser();
            }
        }
示例#2
0
 protected override void ParserHeader(IStream propertyHeaderStream, ref int readCount)
 {
     base.ParserHeader(propertyHeaderStream, ref readCount);
     propertyHeaderStream.ReadInt64(ref readCount);
 }
示例#3
0
        protected virtual void ParserProperties(IStorage storage, IStream propertyHeaderStream, ref int readCount)
        {
            STATSTG stat;
            propertyHeaderStream.Stat(out stat, 1);
            int count = (int)stat.cbSize;

            while (readCount < count)
            {
                var tag = propertyHeaderStream.ReadInt32(ref readCount);
                var flag = propertyHeaderStream.ReadInt32(ref readCount);
                var value = propertyHeaderStream.ReadInt64(ref readCount);
                IPropValueForParser property = SpecialPropertyUtil.Instance.CreateNewPropValue(tag, value);

                property.Parse(Storage);
                Properties.AddProperty(property);
            }
        }