diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/Editors/Multimedia/VectorImage/VectorImageEditor.Designer.cs b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/Editors/Multimedia/VectorImage/VectorImageEditor.Designer.cs
new file mode 100644
index 00000000..a0905500
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/Editors/Multimedia/VectorImage/VectorImageEditor.Designer.cs
@@ -0,0 +1,37 @@
+namespace UniversalEditor.Editors.Multimedia.VectorImage
+{
+ partial class VectorImageEditor
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/Editors/Multimedia/VectorImage/VectorImageEditor.cs b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/Editors/Multimedia/VectorImage/VectorImageEditor.cs
new file mode 100644
index 00000000..70c79a38
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/Editors/Multimedia/VectorImage/VectorImageEditor.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using UniversalEditor.ObjectModels.Multimedia.VectorImage;
+using UniversalEditor.UserInterface;
+using UniversalEditor.UserInterface.WindowsForms;
+
+namespace UniversalEditor.Editors.Multimedia.VectorImage
+{
+ public partial class VectorImageEditor : Editor
+ {
+ public VectorImageEditor()
+ {
+ InitializeComponent();
+ }
+
+ private static EditorReference _er = null;
+ public override EditorReference MakeReference()
+ {
+ if (_er == null)
+ {
+ _er = base.MakeReference();
+ _er.Title = "Vector Image";
+ _er.SupportedObjectModels.Add(typeof(VectorImageObjectModel));
+ }
+ return _er;
+ }
+
+ protected override void OnObjectModelChanged(EventArgs e)
+ {
+ base.OnObjectModelChanged(e);
+
+ VectorImageObjectModel vector = (ObjectModel as VectorImageObjectModel);
+ if (vector != null)
+ {
+
+ }
+ }
+ }
+}
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms.csproj b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms.csproj
index f96d7bb1..8f016f0e 100644
--- a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms.csproj
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms/UniversalEditor.Plugins.Multimedia.UserInterface.WindowsForms.csproj
@@ -33,11 +33,9 @@
-
-
@@ -144,6 +142,12 @@
SubtitleEditor.cs
+
+ UserControl
+
+
+ VectorImageEditor.cs
+
UserControl
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/VectorImage/Microsoft/ExpressionDesign/ExpressionDesignDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/VectorImage/Microsoft/ExpressionDesign/ExpressionDesignDataFormat.cs
new file mode 100644
index 00000000..a8a1e759
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/VectorImage/Microsoft/ExpressionDesign/ExpressionDesignDataFormat.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UniversalEditor.IO;
+using UniversalEditor.ObjectModels.Multimedia.VectorImage;
+
+namespace UniversalEditor.DataFormats.Multimedia.VectorImage.Microsoft.ExpressionDesign
+{
+ public class ExpressionDesignDataFormat : DataFormat
+ {
+ private static DataFormatReference _dfr = null;
+ public override DataFormatReference MakeReference()
+ {
+ if (_dfr == null)
+ {
+ _dfr = base.MakeReference();
+ _dfr.Capabilities.Add(typeof(VectorImageObjectModel), DataFormatCapabilities.All);
+ _dfr.Filters.Add("Microsoft Expression Design image", new byte?[][] { new byte?[] { (byte)'<', (byte)'X', (byte)'D', (byte)'F', (byte)'V', (byte)':', (byte)'9', (byte)'>', (byte)0x0A } }, new string[] { "*.design" });
+ }
+ return _dfr;
+ }
+
+ protected override void LoadInternal(ref ObjectModel objectModel)
+ {
+ VectorImageObjectModel vector = (objectModel as VectorImageObjectModel);
+ if (vector == null) throw new ObjectModelNotSupportedException();
+
+ Reader reader = base.Accessor.Reader;
+
+ string signature = reader.ReadFixedLengthString(9);
+ if (signature != "\n") throw new InvalidDataFormatException();
+
+ reader.Accessor.Seek(32, SeekOrigin.Begin);
+ byte[] compressedData = reader.ReadToEnd();
+
+ System.IO.File.WriteAllBytes(@"C:\Users\Mike Becker\Documents\Expression\Expression Design\Untitled1.compressed", compressedData);
+
+ UniversalEditor.Compression.CompressionModule module = UniversalEditor.Compression.CompressionModule.FromKnownCompressionMethod(Compression.CompressionMethod.Zlib);
+ byte[] decompressedData = module.Decompress(compressedData);
+
+ System.IO.File.WriteAllBytes(@"C:\Users\Mike Becker\Documents\Expression\Expression Design\Untitled1.decompressed", decompressedData);
+ }
+
+ protected override void SaveInternal(ObjectModel objectModel)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/ObjectModels/Multimedia/VectorImage/VectorImageObjectModel.cs b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/ObjectModels/Multimedia/VectorImage/VectorImageObjectModel.cs
new file mode 100644
index 00000000..b0fd30d9
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/ObjectModels/Multimedia/VectorImage/VectorImageObjectModel.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Multimedia.VectorImage
+{
+ public class VectorImageObjectModel : ObjectModel
+ {
+ private static ObjectModelReference _omr = null;
+ public override ObjectModelReference MakeReference()
+ {
+ if (_omr == null)
+ {
+ _omr = base.MakeReference();
+ _omr.Title = "Vector image";
+ _omr.Path = new string[] { "Multimedia", "Picture" };
+ }
+ return _omr;
+ }
+
+ public override void Clear()
+ {
+ }
+
+ public override void CopyTo(ObjectModel where)
+ {
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj
index 25f9d49d..b185484a 100644
--- a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj
@@ -136,6 +136,7 @@
+
@@ -233,6 +234,7 @@
+
Code