diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/Cabinet/CABDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/Cabinet/CABDataFormat.cs new file mode 100644 index 00000000..fe16a491 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/Cabinet/CABDataFormat.cs @@ -0,0 +1,161 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.IO; +using UniversalEditor.ObjectModels.FileSystem; + +namespace UniversalEditor.DataFormats.FileSystem.InstallShield.Cabinet +{ + public class CABDataFormat : DataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Capabilities.Add(typeof(FileSystemObjectModel), DataFormatCapabilities.All); + _dfr.Filters.Add("InstallShield cabinet", new byte?[][] { new byte?[] { (byte)'I', (byte)'S', (byte)'c', (byte)'(' } }, new string[] { "*.cab" }); + } + return _dfr; + } + + private const int MAX_FILE_GROUP_COUNT = 71; + private const int MAX_COMPONENT_COUNT = 71; + + private const int OFFSET_COUNT = 0x47; + + private const int CAB_SIGNATURE = 0x28635349; + private const int MSCF_SIGNATURE = 0x4643534d; + + private const int COMMON_HEADER_SIZE = 20; + private const int VOLUME_HEADER_SIZE_V5 = 40; + private const int VOLUME_HEADER_SIZE_V6 = 64; + + protected override void LoadInternal(ref ObjectModel objectModel) + { + FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel); + if (fsom == null) return; + + Reader br = base.Accessor.Reader; + br.Accessor.Seek(0, SeekOrigin.Begin); + br.Endianness = Endianness.LittleEndian; + + string ISc_ = br.ReadFixedLengthString(4); + if (ISc_ != "ISc(") throw new InvalidDataFormatException(); + + uint version = br.ReadUInt32(); + int majorVersion = 0; + if (version >> 24 == 1) + { + majorVersion = (int)((version >> 12) & 0xf); + } + else if (version >> 24 == 2 || version >> 24 == 4) + { + majorVersion = (int)(version & 0xffff); + if (majorVersion != 0) + { + majorVersion = (int)(majorVersion / 100); + } + } + + uint volumeInfo = br.ReadUInt32(); + uint cabinetDescriptorOffset = br.ReadUInt32(); + uint cabinetDescriptorSize = br.ReadUInt32(); + + br.Accessor.Seek(cabinetDescriptorOffset, SeekOrigin.Begin); + + + int unknown1 = br.ReadInt32(); + int unknown2 = br.ReadInt32(); + int unknown3 = br.ReadInt32(); + + uint fileTableOffset = br.ReadUInt32(); + uint unknown4 = br.ReadUInt32(); + uint fileTableSize = br.ReadUInt32(); + uint fileTableSize2 = br.ReadUInt32(); + uint directoryCount = br.ReadUInt32(); + uint unknown5 = br.ReadUInt32(); + uint unknown6 = br.ReadUInt32(); + uint fileCount = br.ReadUInt32(); + uint fileTableOffset2 = br.ReadUInt32(); + + if (br.Accessor.Position != 0x30) throw new InvalidDataFormatException(); + if (fileTableSize != fileTableSize2) throw new InvalidDataFormatException("File table sizes do not match"); + + uint unknown7 = br.ReadUInt32(); + uint unknown8 = br.ReadUInt32(); + uint unknown9 = br.ReadUInt32(); + ushort unknown10 = br.ReadUInt16(); + + uint[] fileGroupOffsets = new uint[MAX_FILE_GROUP_COUNT]; + for (int i = 0; i < MAX_FILE_GROUP_COUNT; i++) + { + fileGroupOffsets[i] = br.ReadUInt32(); + } + uint[] componentOffsets = new uint[MAX_COMPONENT_COUNT]; + for (int i = 0; i < MAX_COMPONENT_COUNT; i++) + { + componentOffsets[i] = br.ReadUInt32(); + } + + + + } + + protected override void SaveInternal(ObjectModel objectModel) + { + FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel); + if (fsom == null) return; + + Writer bw = base.Accessor.Writer; + bw.WriteFixedLengthString("ISc("); + + int unknown1 = 0; + int unknown2 = 0; + uint fileTableOffset = 0; + uint unknown3 = 0; + uint fileTableSize = 0; + uint fileTableSize2 = 0; + uint directoryCount = 0; + uint unknown4 = 0; + uint unknown5 = 0; + uint fileCount = 0; + uint fileTableOffset2 = 0; + uint unknown6 = 0; + uint unknown7 = 0; + uint unknown8 = 0; + ushort unknown9 = 0; + + bw.WriteInt32(unknown1); + bw.WriteInt32(unknown2); + bw.WriteUInt32(fileTableOffset); + bw.WriteUInt32(unknown3); + bw.WriteUInt32(fileTableSize); + bw.WriteUInt32(fileTableSize2); + bw.WriteUInt32(directoryCount); + bw.WriteUInt32(unknown4); + bw.WriteUInt32(unknown5); + bw.WriteUInt32(fileCount); + bw.WriteUInt32(fileTableOffset2); + bw.WriteUInt32(unknown6); + bw.WriteUInt32(unknown7); + bw.WriteUInt32(unknown8); + bw.WriteUInt16(unknown9); + + uint[] fileGroupOffsets = new uint[MAX_FILE_GROUP_COUNT]; + uint[] componentOffsets = new uint[MAX_COMPONENT_COUNT]; + + for (int i = 0; i < MAX_FILE_GROUP_COUNT; i++) + { + bw.WriteUInt32(fileGroupOffsets[i]); + } + for (int i = 0; i < MAX_COMPONENT_COUNT; i++) + { + bw.WriteUInt32(componentOffsets[i]); + } + bw.Flush(); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/Cabinet/HDRDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/Cabinet/HDRDataFormat.cs new file mode 100644 index 00000000..509e609c --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/Cabinet/HDRDataFormat.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.ObjectModels.FileSystem; + +namespace UniversalEditor.DataFormats.FileSystem.InstallShield.Cabinet +{ + public class HDRDataFormat : DataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Capabilities.Add(typeof(FileSystemObjectModel), DataFormatCapabilities.All); + _dfr.Filters.Add("InstallShield cabinet header", new byte?[][] { new byte?[] { (byte)'I', (byte)'S', (byte)'c', (byte)'(' } }, new string[] { "*.hdr" }); + } + return _dfr; + } + + protected override void LoadInternal(ref ObjectModel objectModel) + { + } + + protected override void SaveInternal(ObjectModel objectModel) + { + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/PKG/PKGDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/PKG/PKGDataFormat.cs new file mode 100644 index 00000000..fa430e72 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/FileSystem/InstallShield/PKG/PKGDataFormat.cs @@ -0,0 +1,79 @@ +/* + * Created by SharpDevelop. + * User: Mike Becker + * Date: 5/12/2013 + * Time: 1:35 PM + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using UniversalEditor.IO; +using UniversalEditor.ObjectModels.FileSystem; + +namespace UniversalEditor.DataFormats.FileSystem.InstallShield.PKG +{ + /// + /// Description of PKGDataFormat. + /// + public class PKGDataFormat : DataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Capabilities.Add(typeof(FileSystemObjectModel), DataFormatCapabilities.All); + _dfr.Filters.Add("InstallShield installation package", new byte?[][] { new byte?[] { 0x4A, 0xA3 } }, new string[] { "*.pkg" }); + } + return _dfr; + } + + protected override void LoadInternal(ref ObjectModel objectModel) + { + FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel); + if (fsom == null) return; + + Reader br = base.Accessor.Reader; + ushort signature = br.ReadUInt16(); + if (signature != 0xA34A) throw new InvalidDataFormatException("File does not begin with 0xA34A"); + + ushort unknown1a = br.ReadUInt16(); + ushort unknown1b = br.ReadUInt16(); + uint unknown2 = br.ReadUInt32(); + uint unknown3 = br.ReadUInt32(); + uint unknown4 = br.ReadUInt32(); + ushort unknown5 = br.ReadUInt16(); + ushort unknown6 = br.ReadUInt16(); + ushort unknown7 = br.ReadUInt16(); + ushort fileCount = br.ReadUInt16(); + for (ushort i = 0; i < fileCount; i++) + { + string FileName = br.ReadLengthPrefixedString(); + byte unknown8 = br.ReadByte(); + uint unknown9 = br.ReadUInt32(); + ushort unknown10 = br.ReadUInt16(); + + File file = new File(); + file.Name = FileName; + file.Size = unknown10; + file.DataRequest += new DataRequestEventHandler(file_DataRequest); + fsom.Files.Add(file); + + if (file.Name == "OP.Z") + { + + } + } + } + + private void file_DataRequest(object sender, DataRequestEventArgs e) + { + } + + protected override void SaveInternal(ObjectModel objectModel) + { + throw new NotImplementedException(); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Cabinet/CABDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Cabinet/CABDataFormat.cs new file mode 100644 index 00000000..77119d29 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Cabinet/CABDataFormat.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.ObjectModels.FileSystem; + +namespace UniversalEditor.DataFormats.InstallShield.Cabinet +{ + public class CABDataFormat : DataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Capabilities.Add(typeof(FileSystemObjectModel), DataFormatCapabilities.All); + _dfr.Filters.Add("InstallShield cabinet", new byte?[][] { new byte?[] { (byte)'I', (byte)'S', (byte)'c', (byte)'(' } }, new string[] { "*.cab" }); + } + return _dfr; + } + + private const int MAX_FILE_GROUP_COUNT = 71; + private const int MAX_COMPONENT_COUNT = 71; + + private const int OFFSET_COUNT = 0x47; + + private const int CAB_SIGNATURE = 0x28635349; + private const int MSCF_SIGNATURE = 0x4643534d; + + private const int COMMON_HEADER_SIZE = 20; + private const int VOLUME_HEADER_SIZE_V5 = 40; + private const int VOLUME_HEADER_SIZE_V6 = 64; + + protected override void LoadInternal(ref ObjectModel objectModel) + { + FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel); + if (fsom == null) return; + + IO.BinaryReader br = base.Stream.BinaryReader; + br.BaseStream.Position = 0; + br.Endianness = IO.Endianness.LittleEndian; + + string ISc_ = br.ReadFixedLengthString(4); + if (ISc_ != "ISc(") throw new InvalidDataFormatException(); + + uint version = br.ReadUInt32(); + int majorVersion = 0; + if (version >> 24 == 1) + { + majorVersion = (int)((version >> 12) & 0xf); + } + else if (version >> 24 == 2 || version >> 24 == 4) + { + majorVersion = (int)(version & 0xffff); + if (majorVersion != 0) + { + majorVersion = (int)(majorVersion / 100); + } + } + + uint volumeInfo = br.ReadUInt32(); + uint cabinetDescriptorOffset = br.ReadUInt32(); + uint cabinetDescriptorSize = br.ReadUInt32(); + + br.BaseStream.Seek(cabinetDescriptorOffset, System.IO.SeekOrigin.Begin); + + + int unknown1 = br.ReadInt32(); + int unknown2 = br.ReadInt32(); + int unknown3 = br.ReadInt32(); + + uint fileTableOffset = br.ReadUInt32(); + uint unknown4 = br.ReadUInt32(); + uint fileTableSize = br.ReadUInt32(); + uint fileTableSize2 = br.ReadUInt32(); + uint directoryCount = br.ReadUInt32(); + uint unknown5 = br.ReadUInt32(); + uint unknown6 = br.ReadUInt32(); + uint fileCount = br.ReadUInt32(); + uint fileTableOffset2 = br.ReadUInt32(); + + if (br.BaseStream.Position != 0x30) throw new InvalidDataFormatException(); + if (fileTableSize != fileTableSize2) throw new InvalidDataFormatException("File table sizes do not match"); + + uint unknown7 = br.ReadUInt32(); + uint unknown8 = br.ReadUInt32(); + uint unknown9 = br.ReadUInt32(); + ushort unknown10 = br.ReadUInt16(); + + uint[] fileGroupOffsets = new uint[MAX_FILE_GROUP_COUNT]; + for (int i = 0; i < MAX_FILE_GROUP_COUNT; i++) + { + fileGroupOffsets[i] = br.ReadUInt32(); + } + uint[] componentOffsets = new uint[MAX_COMPONENT_COUNT]; + for (int i = 0; i < MAX_COMPONENT_COUNT; i++) + { + componentOffsets[i] = br.ReadUInt32(); + } + + + + } + + protected override void SaveInternal(ObjectModel objectModel) + { + FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel); + if (fsom == null) return; + + IO.BinaryWriter bw = base.Stream.BinaryWriter; + bw.WriteFixedLengthString("ISc("); + + int unknown1 = 0; + int unknown2 = 0; + uint fileTableOffset = 0; + uint unknown3 = 0; + uint fileTableSize = 0; + uint fileTableSize2 = 0; + uint directoryCount = 0; + uint unknown4 = 0; + uint unknown5 = 0; + uint fileCount = 0; + uint fileTableOffset2 = 0; + uint unknown6 = 0; + uint unknown7 = 0; + uint unknown8 = 0; + ushort unknown9 = 0; + + bw.Write(unknown1); + bw.Write(unknown2); + bw.Write(fileTableOffset); + bw.Write(unknown3 ); + bw.Write(fileTableSize ); + bw.Write(fileTableSize2 ); + bw.Write(directoryCount ); + bw.Write(unknown4 ); + bw.Write(unknown5 ); + bw.Write(fileCount ); + bw.Write(fileTableOffset2); + bw.Write(unknown6); + bw.Write(unknown7); + bw.Write(unknown8); + bw.Write(unknown9); + + uint[] fileGroupOffsets = new uint[MAX_FILE_GROUP_COUNT]; + uint[] componentOffsets = new uint[MAX_COMPONENT_COUNT]; + + for (int i = 0; i < MAX_FILE_GROUP_COUNT; i++) + { + bw.Write(fileGroupOffsets[i]); + } + for (int i = 0; i < MAX_COMPONENT_COUNT; i++) + { + bw.Write(componentOffsets[i]); + } + bw.Flush(); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Cabinet/HDRDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Cabinet/HDRDataFormat.cs new file mode 100644 index 00000000..2cdc7eb1 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Cabinet/HDRDataFormat.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.ObjectModels.FileSystem; + +namespace UniversalEditor.DataFormats.InstallShield.Cabinet +{ + public class HDRDataFormat : DataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Capabilities.Add(typeof(FileSystemObjectModel), DataFormatCapabilities.All); + _dfr.Filters.Add("InstallShield cabinet header", new byte?[][] { new byte?[] { (byte)'I', (byte)'S', (byte)'c', (byte)'(' } }, new string[] { "*.hdr" }); + } + return _dfr; + } + + protected override void LoadInternal(ref ObjectModel objectModel) + { + } + + protected override void SaveInternal(ObjectModel objectModel) + { + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Script/InstallShieldCompiledScriptDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Script/InstallShieldCompiledScriptDataFormat.cs new file mode 100644 index 00000000..37c638da --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Script/InstallShieldCompiledScriptDataFormat.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.IO; +using UniversalEditor.ObjectModels.InstallShield; + +namespace UniversalEditor.DataFormats.InstallShield.Script +{ + public class InstallShieldCompiledScriptDataFormat : DataFormat + { + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Filters.Add("InstallShield compiled script", new byte?[][] { new byte?[] { null, null, null, null, null, null, null, null, null, null, null, null, 48, 13, 10, (byte)'S', (byte)'t', (byte)'i', (byte)'r', (byte)'l', (byte)'i', (byte)'n', (byte)'g', (byte)' ', (byte)'T', (byte)'e', (byte)'c', (byte)'h', (byte)'n', (byte)'o', (byte)'l', (byte)'o', (byte)'g', (byte)'i', (byte)'e', (byte)'s', (byte)',', (byte)' ', (byte)'I', (byte)'n', (byte)'c', (byte)'.', (byte)' ', (byte)' ', (byte)'(', (byte)'c', (byte)')', (byte)' ', (byte)'1', (byte)'9', (byte)'9', (byte)'0', (byte)'-', (byte)'1', (byte)'9', (byte)'9', (byte)'4' } }, new string[] { "*.ins" }); + _dfr.Capabilities.Add(typeof(InstallShieldScriptObjectModel), DataFormatCapabilities.All); + } + return _dfr; + } + + protected override void LoadInternal(ref ObjectModel objectModel) + { + Reader br = base.Accessor.Reader; + short u0 = br.ReadInt16(); + short u1 = br.ReadInt16(); + short u2 = br.ReadInt16(); + short u3 = br.ReadInt16(); + short u4 = br.ReadInt16(); + short u5 = br.ReadInt16(); + string comment = br.ReadLengthPrefixedString(); + + short u6 = br.ReadInt16(); + short u7 = br.ReadInt16(); + + byte[] unknowns = br.ReadBytes(102); + + List variableNames1 = new List(); + + short variableCount = br.ReadInt16(); + for (short i = 0; i < variableCount; i++) + { + short variableIndex = br.ReadInt16(); + + short variableNameLength = br.ReadInt16(); + string variableName = br.ReadFixedLengthString(variableNameLength); + variableNames1.Add(variableName); + } + + short u8 = br.ReadInt16(); + + List variableNames2 = new List(); + + short u9 = br.ReadInt16(); + for (short i = 0; i < u9; i++) + { + short variableIndex = br.ReadInt16(); + + short variableNameLength = br.ReadInt16(); + string variableName = br.ReadFixedLengthString(variableNameLength); + variableNames2.Add(variableName); + } + + byte[] unknown_3 = br.ReadBytes(170); + short u_ct0 = br.ReadInt16(); + for (short i = 0; i < u_ct0; i++) + { + short index = br.ReadInt16(); + + short nameLength = br.ReadInt16(); + string name = br.ReadFixedLengthString(nameLength); + + short valueLength = br.ReadInt16(); + string value = br.ReadFixedLengthString(valueLength); + } + + short u12 = br.ReadInt16(); + short u13 = br.ReadInt16(); + short u14 = br.ReadInt16(); + short u15 = br.ReadInt16(); + short u16 = br.ReadInt16(); + + short u_ct1 = br.ReadInt16(); + for (short i = 0; i < u_ct1; i++) + { + short index = br.ReadInt16(); + + short nameLength = br.ReadInt16(); + string name = br.ReadFixedLengthString(nameLength); + + short valueLength = br.ReadInt16(); + string value = br.ReadFixedLengthString(valueLength); + } + + byte[] unknown1000 = br.ReadBytes(80); + + while (!br.EndOfStream) + { + byte j0 = br.ReadByte(); + if (j0 == 0) break; + short len = br.ReadInt16(); + string val = br.ReadFixedLengthString(len); + } + } + protected override void SaveInternal(ObjectModel objectModel) + { + throw new NotImplementedException(); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Script/InstallShieldScriptV2DataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Script/InstallShieldScriptV2DataFormat.cs new file mode 100644 index 00000000..f7d4a121 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/DataFormats/InstallShield/Script/InstallShieldScriptV2DataFormat.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UniversalEditor.IO; +using UniversalEditor.ObjectModels.InstallShield; + +namespace UniversalEditor.DataFormats.InstallShield.Script +{ + public class InstallShieldScriptV2DataFormat : DataFormat + { + #region DataFormat members + private static DataFormatReference _dfr = null; + public override DataFormatReference MakeReference() + { + if (_dfr == null) + { + _dfr = base.MakeReference(); + _dfr.Capabilities.Add(typeof(InstallShieldScriptObjectModel), DataFormatCapabilities.All); + _dfr.Filters.Add("InstallShield script (INX)", new byte?[][] { new byte?[] { (byte)'a', (byte)'L', (byte)'u', (byte)'Z' } }, new string[] { "*.inx" }); + } + return _dfr; + } + protected override void LoadInternal(ref ObjectModel objectModel) + { + Reader br = base.Accessor.Reader; + + string aLuZ = br.ReadFixedLengthString(4); + if (aLuZ != "aLuZ") throw new InvalidDataFormatException("File does not begin with \"aLuZ\""); + + short u0 = br.ReadInt16(); + mvarComment = br.ReadFixedLengthString(98); + if (mvarComment.Contains('\0')) mvarComment = mvarComment.Substring(0, mvarComment.IndexOf('\0')); + + int u1 = br.ReadInt32(); + int u2 = br.ReadInt32(); + int u3 = br.ReadInt32(); + int u4 = br.ReadInt32(); + int u5 = br.ReadInt32(); + int u6 = br.ReadInt32(); + + short w0 = br.ReadInt16(); + + } + protected override void SaveInternal(ObjectModel objectModel) + { + Writer bw = base.Accessor.Writer; + bw.WriteFixedLengthString("aLuZ"); + bw.WriteInt16(0); + bw.WriteFixedLengthString(mvarComment, 98); + + + } + #endregion + + public const string COMMENT_V1 = "Copyright (c) 1990-1999 Stirling Technologies, Ltd. All Rights Reserved."; + public const string COMMENT_V2 = "Copyright (c) 1990-2002 InstallShield Software Corp. All Rights Reserved."; + + private string mvarComment = COMMENT_V1; + public string Comment + { + get { return mvarComment; } + set { mvarComment = value; } + } + + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/ObjectModels/InstallShield/InstallShieldScriptObjectModel.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/ObjectModels/InstallShield/InstallShieldScriptObjectModel.cs new file mode 100644 index 00000000..31b094eb --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/ObjectModels/InstallShield/InstallShieldScriptObjectModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace UniversalEditor.ObjectModels.InstallShield +{ + public class InstallShieldScriptObjectModel : ObjectModel + { + public override void Clear() + { + throw new NotImplementedException(); + } + + public override void CopyTo(ObjectModel where) + { + throw new NotImplementedException(); + } + } +} diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/Properties/AssemblyInfo.cs b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a3650122 --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Universal Editor plugin for InstallShield solutions")] +[assembly: AssemblyDescription("Provides data formats and object models to manipulate InstallShield installation data")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Mike Becker's Software")] +[assembly: AssemblyProduct("Universal Editor Plugin Pack")] +[assembly: AssemblyCopyright("Copyright ©2012 Mike Becker's Software")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cf18e3c9-07f5-49bc-9f9a-55658380368c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/UniversalEditor.Plugins.InstallShield.csproj b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/UniversalEditor.Plugins.InstallShield.csproj new file mode 100644 index 00000000..822d8a2c --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.InstallShield/UniversalEditor.Plugins.InstallShield.csproj @@ -0,0 +1,65 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {04674541-23C2-4308-A9DF-DBC43AE99814} + Library + Properties + UniversalEditor + UniversalEditor.Plugins.InstallShield + v3.5 + 512 + + + true + full + false + ..\..\Output\Debug\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Output\Release\Plugins\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + {A92D520B-FFA3-4464-8CF6-474D18959E03} + UniversalEditor.Core + + + {30467e5c-05bc-4856-aadc-13906ef4cadd} + UniversalEditor.Essential + + + + + \ No newline at end of file diff --git a/CSharp/UniversalEditor.WindowsForms.sln b/CSharp/UniversalEditor.WindowsForms.sln index 58187536..bdb032b0 100644 --- a/CSharp/UniversalEditor.WindowsForms.sln +++ b/CSharp/UniversalEditor.WindowsForms.sln @@ -113,6 +113,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Exe EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Microsoft", "Plugins\UniversalEditor.Plugins.Microsoft\UniversalEditor.Plugins.Microsoft.csproj", "{4698BC3F-EC29-42EB-9AED-3D8F9983A108}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.InstallShield", "Plugins\UniversalEditor.Plugins.InstallShield\UniversalEditor.Plugins.InstallShield.csproj", "{04674541-23C2-4308-A9DF-DBC43AE99814}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -299,6 +301,10 @@ Global {4698BC3F-EC29-42EB-9AED-3D8F9983A108}.Debug|Any CPU.Build.0 = Debug|Any CPU {4698BC3F-EC29-42EB-9AED-3D8F9983A108}.Release|Any CPU.ActiveCfg = Release|Any CPU {4698BC3F-EC29-42EB-9AED-3D8F9983A108}.Release|Any CPU.Build.0 = Release|Any CPU + {04674541-23C2-4308-A9DF-DBC43AE99814}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04674541-23C2-4308-A9DF-DBC43AE99814}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04674541-23C2-4308-A9DF-DBC43AE99814}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04674541-23C2-4308-A9DF-DBC43AE99814}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -337,6 +343,7 @@ Global {E0B0223C-3E44-4D2A-9FED-F1A319D84D39} = {71CFF024-26F7-4626-A526-B435FDF8D64E} {791A36F8-5D96-452B-89D2-78BA74596A1E} = {71CFF024-26F7-4626-A526-B435FDF8D64E} {4698BC3F-EC29-42EB-9AED-3D8F9983A108} = {71CFF024-26F7-4626-A526-B435FDF8D64E} + {04674541-23C2-4308-A9DF-DBC43AE99814} = {71CFF024-26F7-4626-A526-B435FDF8D64E} {FE016EA3-DC31-4A92-8B0A-8C746EC117E1} = {46041F27-7C1C-4209-B72B-251EDB5D4C61} {ED627DF7-3E78-4428-AB31-810BA1586E62} = {46041F27-7C1C-4209-B72B-251EDB5D4C61} {C1F34183-7A2F-41A6-9958-F6F329099654} = {A846CA33-9CAA-4237-B14F-8721DBA89442}