public static EmfPlusObjectData GetObject(MetafileReader reader, ObjectType type, uint size) { EmfPlusObjectData data; switch (type) { case ObjectType.Brush: data = new EmfPlusBrush(reader, size); break; case ObjectType.Pen: data = new EmfPlusPen(reader, size); break; case ObjectType.Path: data = new EmfPlusPath(reader, size); break; case ObjectType.Region: data = new EmfPlusRegion(reader, size); break; case ObjectType.Image: data = new EmfPlusImage(reader, size); break; case ObjectType.Font: data = new EmfPlusFont(reader, size); break; case ObjectType.StringFormat: data = new EmfPlusStringFormat(reader, size); break; case ObjectType.ImageAttributes: data = new EmfPlusImageAttributes(reader, size); break; case ObjectType.CustomLineCap: data = new EmfPlusCustomLineCap(reader, size); break; default: throw new InvalidOperationException($"Unknown object type {type}."); } return(data); }
public EmfPlusPen(MetafileReader reader, uint size) : base(reader, size) { Type = reader.ReadInt32(); Data = new EmfPlusPenData(reader); Brush = new EmfPlusBrush(reader, size - 12 - Data.Size); }