コード例 #1
0
        private void ProcessPageItemToken(byte token, BinaryReader reader, long offsetEndPage)
        {
            RSTrace.RenderingTracer.Assert(reader != null, "The pagination stream is null.");
            RSTrace.RenderingTracer.Assert(offsetEndPage > 0, "The pagination stream is corrupt.");
            switch (token)
            {
            case 1:
                m_itemPageSizes = new ItemSizes();
                if (m_itemPageSizes.ReadPaginationInfo(reader, offsetEndPage) != 0)
                {
                    throw new InvalidDataException(SPBRes.InvalidPaginationStream);
                }
                break;

            case 2:
                m_itemPageSizes = new PaddItemSizes();
                if (m_itemPageSizes.ReadPaginationInfo(reader, offsetEndPage) != 0)
                {
                    throw new InvalidDataException(SPBRes.InvalidPaginationStream);
                }
                break;

            case 3:
                m_state = (PageItem.State)reader.ReadByte();
                break;

            case 21:
                m_defLeftValue = reader.ReadDouble();
                break;

            case 4:
                m_pageItemsAbove = ReadIntList(reader, offsetEndPage);
                break;

            case 5:
                m_pageItemsLeft = ReadIntList(reader, offsetEndPage);
                break;

            default:
                throw new InvalidDataException(SPBRes.InvalidTokenPaginationProperties(token.ToString(CultureInfo.InvariantCulture)));
            }
            if (reader.BaseStream.Position > offsetEndPage)
            {
                throw new InvalidDataException(SPBRes.InvalidPaginationStream);
            }
        }
コード例 #2
0
        private static void ReadRepeatWithItemProperties(PageItemRepeatWithHelper item, BinaryReader reader, long offsetEndPage)
        {
            RSTrace.RenderingTracer.Assert(item != null, "The item helper is null.");
            RSTrace.RenderingTracer.Assert(reader != null, "The pagination stream is null.");
            RSTrace.RenderingTracer.Assert(offsetEndPage > 0, "The pagination stream is corrupt.");
            byte b = reader.ReadByte();

            while (b != byte.MaxValue && reader.BaseStream.Position <= offsetEndPage)
            {
                switch (b)
                {
                case 12:
                    item.RelativeTop = reader.ReadDouble();
                    break;

                case 13:
                    item.RelativeBottom = reader.ReadDouble();
                    break;

                case 14:
                    item.RelativeTopToBottom = reader.ReadDouble();
                    break;

                case 15:
                    item.DataRegionIndex = reader.ReadInt32();
                    break;

                case 1:
                    item.RenderItemSize = new ItemSizes();
                    if (item.RenderItemSize.ReadPaginationInfo(reader, offsetEndPage) != 0)
                    {
                        throw new InvalidDataException(SPBRes.InvalidPaginationStream);
                    }
                    break;

                case 2:
                    item.RenderItemSize = new PaddItemSizes();
                    if (item.RenderItemSize.ReadPaginationInfo(reader, offsetEndPage) != 0)
                    {
                        throw new InvalidDataException(SPBRes.InvalidPaginationStream);
                    }
                    break;

                case 19:
                {
                    byte           b2             = reader.ReadByte();
                    PageItemHelper pageItemHelper = null;
                    switch (b2)
                    {
                    case 5:
                    case 6:
                        ReadPageItemContainerProperties((PageItemContainerHelper)(pageItemHelper = new PageItemContainerHelper(b2)), reader, offsetEndPage);
                        break;

                    case 1:
                    case 8:
                    case 9:
                    case 12:
                        pageItemHelper = new PageItemHelper(b2);
                        ReadPageItemProperties(pageItemHelper, reader, offsetEndPage);
                        break;

                    default:
                        throw new InvalidDataException(SPBRes.InvalidTokenPaginationItems(b2.ToString("x", CultureInfo.InvariantCulture)));
                    }
                    item.ChildPage = pageItemHelper;
                    break;
                }

                default:
                    throw new InvalidDataException(SPBRes.InvalidTokenPaginationProperties(b.ToString("x", CultureInfo.InvariantCulture)));
                }
                b = reader.ReadByte();
            }
            if (reader.BaseStream.Position > offsetEndPage)
            {
                throw new InvalidDataException(SPBRes.InvalidPaginationStream);
            }
        }