Beispiel #1
0
        private void ProcessSelectObject(byte[] recordData)
        {
            MemoryStream memoryStream = null;
            BinaryReader binaryReader = null;

            try
            {
                memoryStream = new MemoryStream(recordData);
                binaryReader = new BinaryReader(memoryStream);
                uint num = binaryReader.ReadUInt32();
                MetafileParser.ObjectHandle objectHandle;
                if (num >= MetafileParser.StockObjectMinCode && num <= MetafileParser.StockObjectMaxCode)
                {
                    MetafileParser.EmfStockObject stockObject = (MetafileParser.EmfStockObject)(num - MetafileParser.StockObjectMinCode);
                    this.InternalSelectObject(stockObject);
                }
                else if (this._objects.TryGetValue(num, out objectHandle))
                {
                    if (objectHandle.IsStockObject)
                    {
                        this.InternalSelectObject(objectHandle.GetStockObject());
                    }
                    else if (objectHandle.IsBrush)
                    {
                        this._brush = objectHandle.GetBrush();
                    }
                }
                Debug.Assert(memoryStream.Position == memoryStream.Length);
            }
            finally
            {
                if (binaryReader != null)
                {
                    binaryReader.Close();
                }
                if (memoryStream != null)
                {
                    memoryStream.Dispose();
                }
            }
        }
Beispiel #2
0
        private void InternalSelectObject(MetafileParser.EmfStockObject stockObject)
        {
            switch (stockObject)
            {
            case MetafileParser.EmfStockObject.WHITE_BRUSH:
                this._brush = new SolidBrush(Color.White);
                break;

            case MetafileParser.EmfStockObject.LTGRAY_BRUSH:
                this._brush = new SolidBrush(Color.LightGray);
                break;

            case MetafileParser.EmfStockObject.GRAY_BRUSH:
                this._brush = new SolidBrush(Color.Gray);
                break;

            case MetafileParser.EmfStockObject.DKGRAY_BRUSH:
                this._brush = new SolidBrush(Color.DarkGray);
                break;

            case MetafileParser.EmfStockObject.BLACK_BRUSH:
                this._brush = new SolidBrush(Color.Black);
                break;

            case MetafileParser.EmfStockObject.NULL_BRUSH:
                this._brush = null;
                break;

            default:
                if (stockObject == MetafileParser.EmfStockObject.DC_BRUSH)
                {
                    throw new NotImplementedException();
                }
                break;
            }
        }
Beispiel #3
0
 public ObjectHandle(MetafileParser.EmfStockObject stockObject)
 {
     this._stockObject = new MetafileParser.EmfStockObject?(stockObject);
 }