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(); } } }
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; } }
public ObjectHandle(MetafileParser.EmfStockObject stockObject) { this._stockObject = new MetafileParser.EmfStockObject?(stockObject); }