public TabStripControl(byte[] b) { using (var st = new MemoryStream(b)) using (var r = new FrxReader(st)) { MinorVersion = r.ReadByte(); MajorVersion = r.ReadByte(); var cbTabStrip = r.ReadUInt16(); PropMask = new TabStripPropMask(r.ReadUInt32()); // DataBlock ListIndex = PropMask.HasListIndex ? r.ReadInt32() : 0; BackColor = PropMask.HasBackColor ? r.ReadOleColor() : null; ForeColor = PropMask.HasForeColor ? r.ReadOleColor() : null; var itemsSize = PropMask.HasItems ? r.ReadUInt32() : 0; MousePointer = PropMask.HasMousePointer ? r.ReadMousePointer() : MousePointer.Arrow; TabOrientation = PropMask.HasTabOrientation ? r.ReadUInt32() : 0; TabStyle = PropMask.HasTabStyle ? r.ReadUInt32() : 0; TabFixedWidth = PropMask.HasTabFixedWidth ? r.ReadUInt32() : 0; TabFixedHeight = PropMask.HasTabFixedHeight ? r.ReadUInt32() : 0; var tipStringsSize = PropMask.HasTipStrings ? r.ReadUInt32() : 0; var namesSize = PropMask.HasNames ? r.ReadUInt32() : 0; VariousPropertyBits = PropMask.HasVariousPropertyBits ? r.ReadUInt32() : 0; TabsAllocated = PropMask.HasTabsAllocated ? r.ReadUInt32() : 0; var tagsSize = PropMask.HasTags ? r.ReadUInt32() : 0; TabData = PropMask.HasTabData ? r.ReadUInt32() : 0; var acceleratorsSize = PropMask.HasAccelerator ? r.ReadUInt32() : 0; if (PropMask.HasMouseIcon) { r.Skip2Bytes(); } // ExtraDataBlock Size = PropMask.HasSize ? r.ReadCoords() : Tuple.Create(0, 0); Items = r.ReadArrayStrings(itemsSize); TipStrings = r.ReadArrayStrings(tipStringsSize); TabNames = r.ReadArrayStrings(namesSize); Tags = r.ReadArrayStrings(tagsSize); Accelerators = r.ReadArrayStrings(acceleratorsSize); r.AlignTo(4); if (cbTabStrip != r.BaseStream.Position - 4) { throw new ApplicationException(string.Format(VBASyncResources.ErrorFrxStreamSizeMismatch, "o", "cbTabStrip", r.BaseStream.Position - 4, cbTabStrip)); } // StreamData MouseIcon = PropMask.HasMouseIcon ? r.ReadGuidAndPicture() : new byte[0]; TextProps = r.ReadTextProps(); Remainder = st.Position < st.Length ? r.Unaligned.ReadBytes((int)(st.Length - st.Position)) : new byte[0]; } }