diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/iceit/Project1.bdsproj | 175 | ||||
-rw-r--r-- | tools/iceit/Project1.bdsproj.local | 8 | ||||
-rw-r--r-- | tools/iceit/Project1.cfg | 38 | ||||
-rw-r--r-- | tools/iceit/Project1.dpr | 13 | ||||
-rw-r--r-- | tools/iceit/Project1.exe | bin | 0 -> 493568 bytes | |||
-rw-r--r-- | tools/iceit/Project1.identcache | bin | 0 -> 91 bytes | |||
-rw-r--r-- | tools/iceit/Project1.res | bin | 0 -> 5572 bytes | |||
-rw-r--r-- | tools/iceit/Unit1.dcu | bin | 0 -> 23639 bytes | |||
-rw-r--r-- | tools/iceit/Unit1.dfm | 697 | ||||
-rw-r--r-- | tools/iceit/Unit1.pas | 595 | ||||
-rw-r--r-- | tools/iceit/Utils.dcu | bin | 0 -> 2004 bytes | |||
-rw-r--r-- | tools/iceit/iceit.log | 0 | ||||
-rw-r--r-- | tools/iceit/upx.exe | bin | 0 -> 271872 bytes | |||
-rw-r--r-- | tools/iceit/utils.pas | 66 | ||||
-rw-r--r-- | tools/iceit/x.ico | bin | 0 -> 5430 bytes |
15 files changed, 1592 insertions, 0 deletions
diff --git a/tools/iceit/Project1.bdsproj b/tools/iceit/Project1.bdsproj new file mode 100644 index 0000000000..90f6d50082 --- /dev/null +++ b/tools/iceit/Project1.bdsproj @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <PersonalityInfo>
+ <Option>
+ <Option Name="Personality">Delphi.Personality</Option>
+ <Option Name="ProjectType"></Option>
+ <Option Name="Version">1.0</Option>
+ <Option Name="GUID">{FA77A189-5C25-4DBE-8927-845324E400DB}</Option>
+ </Option>
+ </PersonalityInfo>
+ <Delphi.Personality>
+ <Source>
+ <Source Name="MainSource">Project1.dpr</Source>
+ </Source>
+ <FileVersion>
+ <FileVersion Name="Version">7.0</FileVersion>
+ </FileVersion>
+ <Compiler>
+ <Compiler Name="A">8</Compiler>
+ <Compiler Name="B">0</Compiler>
+ <Compiler Name="C">1</Compiler>
+ <Compiler Name="D">1</Compiler>
+ <Compiler Name="E">0</Compiler>
+ <Compiler Name="F">0</Compiler>
+ <Compiler Name="G">1</Compiler>
+ <Compiler Name="H">1</Compiler>
+ <Compiler Name="I">1</Compiler>
+ <Compiler Name="J">0</Compiler>
+ <Compiler Name="K">0</Compiler>
+ <Compiler Name="L">1</Compiler>
+ <Compiler Name="M">0</Compiler>
+ <Compiler Name="N">1</Compiler>
+ <Compiler Name="O">1</Compiler>
+ <Compiler Name="P">1</Compiler>
+ <Compiler Name="Q">0</Compiler>
+ <Compiler Name="R">0</Compiler>
+ <Compiler Name="S">0</Compiler>
+ <Compiler Name="T">0</Compiler>
+ <Compiler Name="U">0</Compiler>
+ <Compiler Name="V">1</Compiler>
+ <Compiler Name="W">0</Compiler>
+ <Compiler Name="X">1</Compiler>
+ <Compiler Name="Y">1</Compiler>
+ <Compiler Name="Z">1</Compiler>
+ <Compiler Name="ShowHints">True</Compiler>
+ <Compiler Name="ShowWarnings">True</Compiler>
+ <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
+ <Compiler Name="NamespacePrefix"></Compiler>
+ <Compiler Name="GenerateDocumentation">False</Compiler>
+ <Compiler Name="DefaultNamespace"></Compiler>
+ <Compiler Name="SymbolDeprecated">True</Compiler>
+ <Compiler Name="SymbolLibrary">True</Compiler>
+ <Compiler Name="SymbolPlatform">True</Compiler>
+ <Compiler Name="SymbolExperimental">True</Compiler>
+ <Compiler Name="UnitLibrary">True</Compiler>
+ <Compiler Name="UnitPlatform">True</Compiler>
+ <Compiler Name="UnitDeprecated">True</Compiler>
+ <Compiler Name="UnitExperimental">True</Compiler>
+ <Compiler Name="HResultCompat">True</Compiler>
+ <Compiler Name="HidingMember">True</Compiler>
+ <Compiler Name="HiddenVirtual">True</Compiler>
+ <Compiler Name="Garbage">True</Compiler>
+ <Compiler Name="BoundsError">True</Compiler>
+ <Compiler Name="ZeroNilCompat">True</Compiler>
+ <Compiler Name="StringConstTruncated">True</Compiler>
+ <Compiler Name="ForLoopVarVarPar">True</Compiler>
+ <Compiler Name="TypedConstVarPar">True</Compiler>
+ <Compiler Name="AsgToTypedConst">True</Compiler>
+ <Compiler Name="CaseLabelRange">True</Compiler>
+ <Compiler Name="ForVariable">True</Compiler>
+ <Compiler Name="ConstructingAbstract">True</Compiler>
+ <Compiler Name="ComparisonFalse">True</Compiler>
+ <Compiler Name="ComparisonTrue">True</Compiler>
+ <Compiler Name="ComparingSignedUnsigned">True</Compiler>
+ <Compiler Name="CombiningSignedUnsigned">True</Compiler>
+ <Compiler Name="UnsupportedConstruct">True</Compiler>
+ <Compiler Name="FileOpen">True</Compiler>
+ <Compiler Name="FileOpenUnitSrc">True</Compiler>
+ <Compiler Name="BadGlobalSymbol">True</Compiler>
+ <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
+ <Compiler Name="InvalidDirective">True</Compiler>
+ <Compiler Name="PackageNoLink">True</Compiler>
+ <Compiler Name="PackageThreadVar">True</Compiler>
+ <Compiler Name="ImplicitImport">True</Compiler>
+ <Compiler Name="HPPEMITIgnored">True</Compiler>
+ <Compiler Name="NoRetVal">True</Compiler>
+ <Compiler Name="UseBeforeDef">True</Compiler>
+ <Compiler Name="ForLoopVarUndef">True</Compiler>
+ <Compiler Name="UnitNameMismatch">True</Compiler>
+ <Compiler Name="NoCFGFileFound">True</Compiler>
+ <Compiler Name="ImplicitVariants">True</Compiler>
+ <Compiler Name="UnicodeToLocale">True</Compiler>
+ <Compiler Name="LocaleToUnicode">True</Compiler>
+ <Compiler Name="ImagebaseMultiple">True</Compiler>
+ <Compiler Name="SuspiciousTypecast">True</Compiler>
+ <Compiler Name="PrivatePropAccessor">True</Compiler>
+ <Compiler Name="UnsafeType">False</Compiler>
+ <Compiler Name="UnsafeCode">False</Compiler>
+ <Compiler Name="UnsafeCast">False</Compiler>
+ <Compiler Name="OptionTruncated">True</Compiler>
+ <Compiler Name="WideCharReduced">True</Compiler>
+ <Compiler Name="DuplicatesIgnored">True</Compiler>
+ <Compiler Name="UnitInitSeq">True</Compiler>
+ <Compiler Name="LocalPInvoke">True</Compiler>
+ <Compiler Name="MessageDirective">True</Compiler>
+ <Compiler Name="CodePage"></Compiler>
+ </Compiler>
+ <Linker>
+ <Linker Name="MapFile">0</Linker>
+ <Linker Name="OutputObjs">0</Linker>
+ <Linker Name="GenerateHpps">False</Linker>
+ <Linker Name="ConsoleApp">1</Linker>
+ <Linker Name="DebugInfo">False</Linker>
+ <Linker Name="RemoteSymbols">False</Linker>
+ <Linker Name="GenerateDRC">False</Linker>
+ <Linker Name="MinStackSize">16384</Linker>
+ <Linker Name="MaxStackSize">1048576</Linker>
+ <Linker Name="ImageBase">4194304</Linker>
+ <Linker Name="ExeDescription"></Linker>
+ </Linker>
+ <Directories>
+ <Directories Name="OutputDir"></Directories>
+ <Directories Name="UnitOutputDir"></Directories>
+ <Directories Name="PackageDLLOutputDir"></Directories>
+ <Directories Name="PackageDCPOutputDir"></Directories>
+ <Directories Name="SearchPath"></Directories>
+ <Directories Name="Packages"></Directories>
+ <Directories Name="Conditionals"></Directories>
+ <Directories Name="DebugSourceDirs"></Directories>
+ <Directories Name="UsePackages">False</Directories>
+ </Directories>
+ <Parameters>
+ <Parameters Name="RunParams"></Parameters>
+ <Parameters Name="HostApplication"></Parameters>
+ <Parameters Name="Launcher"></Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="DebugCWD"></Parameters>
+ <Parameters Name="Debug Symbols Search Path"></Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <Language>
+ <Language Name="ActiveLang"></Language>
+ <Language Name="ProjectLang">$00000000</Language>
+ <Language Name="RootDir"></Language>
+ </Language>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">0</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">0</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">False</VersionInfo>
+ <VersionInfo Name="Locale">1049</VersionInfo>
+ <VersionInfo Name="CodePage">1251</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ </Delphi.Personality>
+</BorlandProject>
diff --git a/tools/iceit/Project1.bdsproj.local b/tools/iceit/Project1.bdsproj.local new file mode 100644 index 0000000000..5153b9a118 --- /dev/null +++ b/tools/iceit/Project1.bdsproj.local @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?>
+<BorlandProject>
+ <Transactions>
+ <Transaction>2007.08.24 16:31:46.093.pas,C:\Documents and Settings\induction\Мои документы\Borland Studio Projects\Unit1.pas=C:\ARHIV\PROG\ICERES\Unit1.pas</Transaction>
+ <Transaction>2007.08.24 16:31:46.093.dfm,C:\Documents and Settings\induction\Мои документы\Borland Studio Projects\Unit1.dfm=C:\ARHIV\PROG\ICERES\Unit1.dfm</Transaction>
+ <Transaction>2007.08.24 16:31:50.359.bdsproj,C:\Documents and Settings\induction\Мои документы\Borland Studio Projects\Project1.bdsproj=C:\ARHIV\PROG\ICERES\Project1.bdsproj</Transaction>
+ </Transactions>
+</BorlandProject>
diff --git a/tools/iceit/Project1.cfg b/tools/iceit/Project1.cfg new file mode 100644 index 0000000000..367c22269e --- /dev/null +++ b/tools/iceit/Project1.cfg @@ -0,0 +1,38 @@ +-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"C:\Users\Administrator\Documents\Borland Studio Projects\Bpl"
+-LN"C:\Users\Administrator\Documents\Borland Studio Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/tools/iceit/Project1.dpr b/tools/iceit/Project1.dpr new file mode 100644 index 0000000000..08b344c5f1 --- /dev/null +++ b/tools/iceit/Project1.dpr @@ -0,0 +1,13 @@ +program Project1;
+
+uses
+ Forms,
+ Unit1 in 'Unit1.pas' {Form1};
+
+{$R *.res}
+
+begin
+ Application.Initialize;
+ Application.CreateForm(TForm1, Form1);
+ Application.Run;
+end.
diff --git a/tools/iceit/Project1.exe b/tools/iceit/Project1.exe Binary files differnew file mode 100644 index 0000000000..aee17f3773 --- /dev/null +++ b/tools/iceit/Project1.exe diff --git a/tools/iceit/Project1.identcache b/tools/iceit/Project1.identcache Binary files differnew file mode 100644 index 0000000000..db63ec0c60 --- /dev/null +++ b/tools/iceit/Project1.identcache diff --git a/tools/iceit/Project1.res b/tools/iceit/Project1.res Binary files differnew file mode 100644 index 0000000000..20b614bff8 --- /dev/null +++ b/tools/iceit/Project1.res diff --git a/tools/iceit/Unit1.dcu b/tools/iceit/Unit1.dcu Binary files differnew file mode 100644 index 0000000000..1761f10055 --- /dev/null +++ b/tools/iceit/Unit1.dcu diff --git a/tools/iceit/Unit1.dfm b/tools/iceit/Unit1.dfm new file mode 100644 index 0000000000..668d8cab85 --- /dev/null +++ b/tools/iceit/Unit1.dfm @@ -0,0 +1,697 @@ +object Form1: TForm1
+ Left = 0
+ Top = 0
+ BorderIcons = [biSystemMenu, biMinimize]
+ BorderStyle = bsSingle
+ Caption = 'Miranda ICE Icon pack patcher | v.0.2.b'
+ ClientHeight = 320
+ ClientWidth = 336
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ Icon.Data = {
+ 000001000200101000000100200068040000260000002020000001002000A810
+ 00008E0400002800000010000000200000000100200000000000400400000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000A0000001F292929354343433D232323360000
+ 00300000002E0000001F0000000A000000000000000000000000000000000000
+ 00000000000085672D69896E39D8907540FF957B49FFDAD2C1FF957B49FF9075
+ 40FF7E6433EB56431CA30000001F000000000000000000000000000000000000
+ F902000000008B6F38D2E7E2D7FFFBFAF9FFFFFFFFFFFFFFFFFFFFFFFFFFFAFA
+ F8FFE2DDD4FF7D6332EB0000002E00000000000000000000FC020000FF5F0045
+ FF9E00C1FF09886B33FFE3DBCCFFEBE6DBFFA99266FFFBFAF9FF9E885FFFE6E2
+ D8FFD8D0C1FF886B33FF00000030000000000000FF010000FF9200AEFFF800CB
+ FF6E000000007F6023FFB89D68FFFAF8F5FFB49B6AFFB09666FFAD9465FFF9F7
+ F4FF9F8659FF7F6023FF00000030000000000000FF6100B0FFFF00CBFFCE00EF
+ FF050000FF03785717FFBD9D60FFE3D7C0FFD0C3ACFFFCFBF9FFD0C3ACFFDDD2
+ BBFFA68951FF785717FF000000300000FF080063FFF000F1FFFF00D4FF520000
+ 00000035FF95785717FFC4A15DFFCAAD74FFFDFCFAFFCAB07DFFFDFCFAFFBEA2
+ 6CFFAE8D4EFF785717FF000019330000FF4F00D6FFFF00F7FFFF009BFF900058
+ FFA500DCFFFF785717FFCCA65EFFD0AE6DFFEBDFC6FFFFFFFFFFE9DDC4FFC4A4
+ 66FFBA9652FF785717FF00069C500009FF9F0CF9FFFF0CFCFFFF09F9FFFF0CF9
+ FFFF01E6FFFF607445FEBE9951FFD0AB64FFD8B97DFFFDFCFAFFD4B57AFFCAA6
+ 60FFB6924DFF61703FFF0010EC8A0000FFE41CF1FFFF24FFFFFF24FFFFFF00A5
+ FFFF0060FFFF44BDA4FF605F45FF785717FF806226FF876A31FF806226FF7857
+ 17FF677845FF3AABA4FF0000FFC00000FFE30032FFFF0088FFFF0042FFFF0000
+ FFFF0022FFFF3AFFFFFF3AFFFFFF3AFFFFFF35F9FFFF0001FFFF0000FFFF004D
+ FFFF0088FFFF0027FFFF0000FFBC0000FF880000FFC50000FFC50000FFC50000
+ FFC50000FFC63ADCFFFD55FFFFFF55FFFFFF1FB0FFF60000FFC60000FFC50000
+ FFC50000FFC50000FFC50000FF65000000000000000000000000000000000000
+ 0000000000000163FF774AD6FFFD3FC6FFF5076EFF3E00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000001FF090001FF050000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000FE000000FC000000F4000000C00000008400
+ 000080000000080000000000000000000000000000000000000000000000FC3F
+ 0000FE7F0000FFFF0000FFFF0000280000002000000040000000010020000000
+ 0000801000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000A0000000A0000001F0000001F2626
+ 2635262626354242423D4242423D212121362121213600000030000000300000
+ 002E0000002E0000001F0000001F0000000A0000000A00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000A0000000A0000001F0000001F2626
+ 2635262626354242423D4242423D212121362121213600000030000000300000
+ 002E0000002E0000001F0000001F0000000A0000000A00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000083662A6983662A69886D38D8886D38D8907540FF907540FF957B
+ 49FF957B49FFDAD2C1FFDAD2C1FF957B49FF957B49FF907540FF907540FF7D63
+ 33EB7D6333EB54411AA354411AA30000001F0000001F00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000083662A6983662A69886D38D8886D38D8907540FF907540FF957B
+ 49FF957B49FFDAD2C1FFDAD2C1FF957B49FF957B49FF907540FF907540FF7D63
+ 33EB7D6333EB54411AA354411AA30000001F0000001F00000000000000000000
+ 0000000000000000000000000000000000000000000000007F0200007F020000
+ 0000000000008A6E37D28A6E37D2E7E2D7FFE7E2D7FFFBFAF9FFFBFAF9FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAF8FFFAFAF8FFE2DD
+ D4FFE2DDD4FF7C6231EB7C6231EB0000002E0000002E00000000000000000000
+ 0000000000000000000000000000000000000000000000007F0200007F020000
+ 0000000000008A6E37D28A6E37D2E7E2D7FFE7E2D7FFFBFAF9FFFBFAF9FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAF8FFFAFAF8FFE2DD
+ D4FFE2DDD4FF7C6231EB7C6231EB0000002E0000002E00000000000000000000
+ 00000000000000007F0200007F020000FF5F0000FF5F0043FF9E0043FF9E00AA
+ FF0900AAFF09886B33FF886B33FFE3DBCCFFE3DBCCFFEBE6DBFFEBE6DBFFA992
+ 66FFA99266FFFBFAF9FFFBFAF9FF9E885FFF9E885FFFE6E2D8FFE6E2D8FFD8D0
+ C1FFD8D0C1FF886B33FF886B33FF000000300000003000000000000000000000
+ 00000000000000007F0200007F020000FF5F0000FF5F0043FF9E0043FF9E00AA
+ FF0900AAFF09886B33FF886B33FFE3DBCCFFE3DBCCFFEBE6DBFFEBE6DBFFA992
+ 66FFA99266FFFBFAF9FFFBFAF9FF9E885FFF9E885FFFE6E2D8FFE6E2D8FFD8D0
+ C1FFD8D0C1FF886B33FF886B33FF000000300000003000000000000000000000
+ FF010000FF010000FF920000FF9200ADFFF800ADFFF800C8FF6E00C8FF6E0000
+ 0000000000007F6023FF7F6023FFB89D68FFB89D68FFFAF8F5FFFAF8F5FFB49B
+ 6AFFB49B6AFFB09666FFB09666FFAD9465FFAD9465FFF9F7F4FFF9F7F4FF9F86
+ 59FF9F8659FF7F6023FF7F6023FF000000300000003000000000000000000000
+ FF010000FF010000FF920000FF9200ADFFF800ADFFF800C8FF6E00C8FF6E0000
+ 0000000000007F6023FF7F6023FFB89D68FFB89D68FFFAF8F5FFFAF8F5FFB49B
+ 6AFFB49B6AFFB09666FFB09666FFAD9465FFAD9465FFF9F7F4FFF9F7F4FF9F86
+ 59FF9F8659FF7F6023FF7F6023FF000000300000003000000000000000000000
+ FF610000FF6100B0FFFF00B0FFFF00C9FFCE00C9FFCE00CCFF0500CCFF050000
+ FF030000FF03785717FF785717FFBD9D60FFBD9D60FFE3D7C0FFE3D7C0FFD0C3
+ ACFFD0C3ACFFFCFBF9FFFCFBF9FFD0C3ACFFD0C3ACFFDDD2BBFFDDD2BBFFA689
+ 51FFA68951FF785717FF785717FF000000300000003000000000000000000000
+ FF610000FF6100B0FFFF00B0FFFF00C9FFCE00C9FFCE00CCFF0500CCFF050000
+ FF030000FF03785717FF785717FFBD9D60FFBD9D60FFE3D7C0FFE3D7C0FFD0C3
+ ACFFD0C3ACFFFCFBF9FFFCFBF9FFD0C3ACFFD0C3ACFFDDD2BBFFDDD2BBFFA689
+ 51FFA68951FF785717FF785717FF00000030000000300000FF080000FF080062
+ FFF00062FFF000F1FFFF00F1FFFF00D3FE5200D3FE5200000000000000000033
+ FE950033FE95785717FF785717FFC4A15DFFC4A15DFFCAAD74FFCAAD74FFFDFC
+ FAFFFDFCFAFFCAB07DFFCAB07DFFFDFCFAFFFDFCFAFFBEA26CFFBEA26CFFAE8D
+ 4EFFAE8D4EFF785717FF785717FF00001933000019330000FF080000FF080062
+ FFF00062FFF000F1FFFF00F1FFFF00D3FE5200D3FE5200000000000000000033
+ FE950033FE95785717FF785717FFC4A15DFFC4A15DFFCAAD74FFCAAD74FFFDFC
+ FAFFFDFCFAFFCAB07DFFCAB07DFFFDFCFAFFFDFCFAFFBEA26CFFBEA26CFFAE8D
+ 4EFFAE8D4EFF785717FF785717FF00001933000019330000FF4F0000FF4F00D6
+ FFFF00D6FFFF00F7FFFF00F7FFFF009AFF90009AFF900056FFA50056FFA500DC
+ FFFF00DCFFFF785717FF785717FFCCA65EFFCCA65EFFD0AE6DFFD0AE6DFFEBDF
+ C6FFEBDFC6FFFFFFFFFFFFFFFFFFE9DDC4FFE9DDC4FFC4A466FFC4A466FFBA96
+ 52FFBA9652FF785717FF785717FF00039950000399500000FF4F0000FF4F00D6
+ FFFF00D6FFFF00F7FFFF00F7FFFF009AFF90009AFF900056FFA50056FFA500DC
+ FFFF00DCFFFF785717FF785717FFCCA65EFFCCA65EFFD0AE6DFFD0AE6DFFEBDF
+ C6FFEBDFC6FFFFFFFFFFFFFFFFFFE9DDC4FFE9DDC4FFC4A466FFC4A466FFBA96
+ 52FFBA9652FF785717FF785717FF00039950000399500008FF9F0008FF9F0CF9
+ FFFF0CF9FFFF0CFCFFFF0CFCFFFF09F9FFFF09F9FFFF0CF9FFFF0CF9FFFF01E6
+ FFFF01E6FFFF5F7344FE5F7344FEBE9951FFBE9951FFD0AB64FFD0AB64FFD8B9
+ 7DFFD8B97DFFFDFCFAFFFDFCFAFFD4B57AFFD4B57AFFCAA660FFCAA660FFB692
+ 4DFFB6924DFF61703FFF61703FFF000EEA8A000EEA8A0008FF9F0008FF9F0CF9
+ FFFF0CF9FFFF0CFCFFFF0CFCFFFF09F9FFFF09F9FFFF0CF9FFFF0CF9FFFF01E6
+ FFFF01E6FFFF5F7344FE5F7344FEBE9951FFBE9951FFD0AB64FFD0AB64FFD8B9
+ 7DFFD8B97DFFFDFCFAFFFDFCFAFFD4B57AFFD4B57AFFCAA660FFCAA660FFB692
+ 4DFFB6924DFF61703FFF61703FFF000EEA8A000EEA8A0000FFE40000FFE41CF1
+ FFFF1CF1FFFF24FFFFFF24FFFFFF24FFFFFF24FFFFFF00A5FFFF00A5FFFF0060
+ FFFF0060FFFF44BDA4FF44BDA4FF605F45FF605F45FF785717FF785717FF8062
+ 26FF806226FF876A31FF876A31FF806226FF806226FF785717FF785717FF6778
+ 45FF677845FF3AABA4FF3AABA4FF0000FFC00000FFC00000FFE40000FFE41CF1
+ FFFF1CF1FFFF24FFFFFF24FFFFFF24FFFFFF24FFFFFF00A5FFFF00A5FFFF0060
+ FFFF0060FFFF44BDA4FF44BDA4FF605F45FF605F45FF785717FF785717FF8062
+ 26FF806226FF876A31FF876A31FF806226FF806226FF785717FF785717FF6778
+ 45FF677845FF3AABA4FF3AABA4FF0000FFC00000FFC00000FFE30000FFE30032
+ FFFF0032FFFF0088FFFF0088FFFF0042FFFF0042FFFF0000FFFF0000FFFF0022
+ FFFF0022FFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF35F9
+ FFFF35F9FFFF0001FFFF0001FFFF0000FFFF0000FFFF004DFFFF004DFFFF0088
+ FFFF0088FFFF0027FFFF0027FFFF0000FEBC0000FEBC0000FFE30000FFE30032
+ FFFF0032FFFF0088FFFF0088FFFF0042FFFF0042FFFF0000FFFF0000FFFF0022
+ FFFF0022FFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF3AFFFFFF35F9
+ FFFF35F9FFFF0001FFFF0001FFFF0000FFFF0000FFFF004DFFFF004DFFFF0088
+ FFFF0088FFFF0027FFFF0027FFFF0000FEBC0000FEBC0000FF880000FF880000
+ FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000
+ FFC60000FFC639DBFFFD39DBFFFD55FFFFFF55FFFFFF55FFFFFF55FFFFFF1EAF
+ FFF61EAFFFF60000FFC60000FFC60000FFC50000FFC50000FFC50000FFC50000
+ FFC50000FFC50000FFC50000FFC50000FF650000FF650000FF880000FF880000
+ FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000FFC50000
+ FFC60000FFC639DBFFFD39DBFFFD55FFFFFF55FFFFFF55FFFFFF55FFFFFF1EAF
+ FFF61EAFFFF60000FFC60000FFC60000FFC50000FFC50000FFC50000FFC50000
+ FFC50000FFC50000FFC50000FFC50000FF650000FF6500000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000062FF770062FF7749D5FFFD49D5FFFD3EC5FFF53EC5FFF5046A
+ FF3E046AFF3E0000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000062FF770062FF7749D5FFFD49D5FFFD3EC5FFF53EC5FFF5046A
+ FF3E046AFF3E0000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000FF090000FF090000FF050000FF050000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000FF090000FF090000FF050000FF050000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFC0000FFFC0000FFF0
+ 0000FFF00000FF300000FF300000F0000000F0000000C0300000C0300000C000
+ 0000C000000000C0000000C00000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFF00FFFFFF00FFFFFFC
+ 3FFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
+ OldCreateOrder = False
+ Position = poDesktopCenter
+ OnCreate = FormCreate
+ OnDestroy = FormDestroy
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 8
+ Top = 51
+ Width = 120
+ Height = 13
+ Caption = 'Available ICE Resources:'
+ end
+ object Label2: TLabel
+ Left = 8
+ Top = 8
+ Width = 114
+ Height = 13
+ Caption = 'Path to Miranda32.exe:'
+ end
+ object CheckListBox1: TCheckListBox
+ Left = 8
+ Top = 68
+ Width = 319
+ Height = 196
+ Flat = False
+ IntegralHeight = True
+ ItemHeight = 16
+ Style = lbOwnerDrawFixed
+ TabOrder = 0
+ OnDrawItem = CheckListBox1DrawItem
+ end
+ object Button1: TButton
+ Left = 8
+ Top = 270
+ Width = 75
+ Height = 25
+ Caption = 'Select All'
+ TabOrder = 1
+ OnClick = Button1Click
+ end
+ object Button2: TButton
+ Left = 89
+ Top = 270
+ Width = 75
+ Height = 25
+ Caption = 'Nothing'
+ TabOrder = 2
+ OnClick = Button2Click
+ end
+ object Button3: TButton
+ Left = 253
+ Top = 270
+ Width = 75
+ Height = 25
+ Caption = 'ICE It...'
+ TabOrder = 3
+ OnClick = Button3Click
+ end
+ object StatusBar1: TStatusBar
+ Left = 0
+ Top = 301
+ Width = 336
+ Height = 19
+ Panels = <
+ item
+ Text = ' Ready'
+ Width = 50
+ end>
+ end
+ object ProgressBar1: TProgressBar
+ Left = 178
+ Top = 306
+ Width = 153
+ Height = 10
+ TabOrder = 5
+ end
+ object Edit1: TEdit
+ Left = 8
+ Top = 24
+ Width = 298
+ Height = 21
+ TabOrder = 6
+ end
+ object Button4: TButton
+ Left = 307
+ Top = 23
+ Width = 20
+ Height = 22
+ Caption = '...'
+ TabOrder = 7
+ OnClick = Button4Click
+ end
+ object XPManifest1: TXPManifest
+ Left = 54
+ Top = 226
+ end
+ object ImageList1: TImageList
+ Left = 22
+ Top = 226
+ Bitmap = {
+ 494C010104000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000400000003000000001002000000000000030
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000F3F3F3FFDBDB
+ DBFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCF
+ CFFFCFCFCFFFDBDBDBFFF3F3F3FF000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000002678A6FF2678
+ A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678
+ A6FF2678A6FF949494FFDBDBDBFF000000000000000000000000000000000000
+ 00000000000000000000F8F8F8FFE4E4E4FFD4D4D4FFCFCFCFFFD1D1D1FFE0E0
+ E0FFF5F5F5FF0000000000000000000000000000000000000000808080FF8080
+ 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080
+ 80FF808080FF0000000000000000000000000000000000000000808080FF8080
+ 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080
+ 80FF808080FF00000000000000000000000000000000268EC3FF96DEFCFF92DA
+ FCFF92DAFCFF8ED6FCFF8AD2FBFF8AD2FBFF8AD2FBFF8AD2FBFF82C9FAFF82C9
+ FAFF2678A6FF2678A6FFCFCFCFFF000000000000000000000000000000000000
+ 000000000000C4D5F0FF5786D5FF125CD7FF125CD7FF125CD7FF2560C2FF637F
+ AFFFC0C0C0FFCFCFCFFFDBDBDBFFF3F3F3FF0000000000000000808080FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFF808080FF00000000000000000000000000000000268EC3FF9AE2FCFF9AE2
+ FCFF9AE2FCFF96DEFCFF92DAFCFF92DAFCFF8ED6FCFF8ED6FCFF82C9FAFF82C9
+ FAFF2678A6FF2678A6FFCFCFCFFF000000000000000000000000000000000000
+ 0000C9D9F5FF5D8DDBFF1CB7EFFF19CDF8FF17BEF5FF19B9F3FF20C1F2FF1B55
+ B6FF746858FF8E7F6BFF9F9589FFE7E7E7FF0000000000000000808080FFFFFF
+ FFFFDBDBDBFFDFDFDFFFE3E1E0FFF69157FFECEAE9FFF0F0F0FFF4F4F4FFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFDBDBDBFFDFDFDFFFE3E3E3FFE8E8E8FFECECECFFF0F0F0FFF4F4F4FFFFFF
+ FFFF808080FF00000000000000000000000000000000268EC3FFA2EAFDFFA2EA
+ FDFFA2EAFDFFA2EAFDFF9AE2FCFF9AE2FCFF96DEFCFF92DAFCFF8AD2FBFF92DA
+ FCFF2678A6FF2678A6FFCFCFCFFF000000000000000000000000000000000000
+ 00006796E5FF1CBBF0FF10D1FAFF09B8F6FF09A9F2FF0A9CEEFF18BBF4FF125C
+ D7FFCFCFCFFFFFFFFFFF8E7F6BFFF3F3F3FF0000000000000000808080FFFFFF
+ FFFFD6D6D6FFEAEAEAFFF5AD83FFFF5600FFF8B58FFFF7F7F7FFF0F0F0FFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFD6D6D6FFEAEAEAFFEDEDEDFFF1F1F1FFF3F3F3FFF7F7F7FFF0F0F0FFFFFF
+ FFFF808080FF000000000000000000000000268EC3FFA6EEFEFFA2EAFDFFA2EA
+ FDFFA2EAFDFFA2EAFDFF9AE2FCFF9AE2FCFF96DEFCFF92DAFCFF8AD2FBFF2678
+ A6FF82C9FAFF2678A6FFCFCFCFFF000000000000000000000000BCDDE2FF7D96
+ 99FF125CD7FF17E9FFFF08D2FDFF08C6FAFF08BAF7FF08ACF3FF17C2F5FF125C
+ D7FF736757FF8E7F6BFFBCB3A7FF000000000000000000000000808080FFFFFF
+ FFFFD2D2D2FFEAD7CCFFFE640BFFF05000FFFE6711FFF4E8E2FFECECECFFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFD2D2D2FFE7E7E7FFEAEAEAFFEDEDEDFFF1F1F1FFF3F3F3FFECECECFFFFFF
+ FFFF808080FF000000000000000000000000268EC3FF9EE6FDFF9EE6FDFF9EE6
+ FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF9EE6FDFF2678
+ A6FF82C9FAFF2678A6FFCFCFCFFF000000000000000000000000ABBBBDFF7A7A
+ 7AFF125CD7FF15E7FFFF07D9FFFF07D2FDFF08C8FBFF08BDF8FF16CEF8FF125C
+ D7FFB2B2B2FFCFCFCFFFDBDBDBFFF3F3F3FF0000000000000000808080FFFFFF
+ FFFFCECECEFFF78543FFBE3F00FFFFA16EFFD04600FFFA9155FFE8E8E8FFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFCECECEFFE5E5E5FFE7E7E7FFEAEAEAFFEDEDEDFFF1F1F1FFE8E8E8FFFFFF
+ FFFF808080FF000000000000000000000000268EC3FFB2FAFFFFB2FAFFFFB2FA
+ FFFFB2FAFFFFB2FAFFFFB2FAFFFFB2FAFFFFA6EEFEFFA6EEFEFFA6EEFEFF2678
+ A6FF82C9FAFF2678A6FFCFCFCFFF000000000000000000000000BCDDE2FF7D96
+ 99FF125CD7FF17EAFFFF08DAFFFF07D9FFFF07D4FEFF07CBFBFF16D8FBFF125C
+ D7FF746858FF8E7F6BFF9F9589FFE7E7E7FF0000000000000000808080FFFFFF
+ FFFFDCA585FFAC3900FFCF784CFFE0CDC4FFC86A3AFFF85300FFEAC3AEFFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFCACACAFFE2E2E2FFE5E5E5FFE7E7E7FFEAEAEAFFEDEDEDFFE3E3E3FFFFFF
+ FFFF808080FF0000000000000000000000002678A6FF2678A6FF2678A6FF2678
+ A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FF2678A6FFA6EE
+ FEFF82C9FAFF2678A6FFDBDBDBFF000000000000000000000000000000000000
+ 00006796E5FF1CBEF1FF0FE2FFFF08DAFFFF07D9FFFF08D7FEFF16E2FDFF125C
+ D7FFE0E0E0FFFFFFFFFF8E7F6BFFF3F3F3FF0000000000000000808080FFFEFB
+ F9FFB05223FFCB6C3CFFD9CAC2FFE5E5E5FFD0AD9BFFAB4B1BFFF9752AFFFFFD
+ FCFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFC7C7C7FFE0E0E0FFE2E2E2FFE5E5E5FFE7E7E7FFEAEAEAFFDFDFDFFFFFFF
+ FFFF808080FF00000000000000000000000000000000268EC3FFAEF6FFFFAEF6
+ FFFFAEF6FFFFAEF6FFFFAAF2FEFFAAF2FEFFAAF2FEFFA6EEFEFFA6EEFEFFA2EA
+ FDFFA2EAFDFF2678A6FFF3F3F3FF000000000000000000000000000000000000
+ 0000C9D9F5FF6796E5FF1CBEF1FF17EAFFFF15E7FFFF16E9FFFF1ED6F7FF2760
+ BFFF887A67FF8E7F6BFFBCB3A7FF000000000000000000000000808080FFFFFF
+ FFFFC4C4C4FFC7C5C3FFCACACAFFCECECEFFD2D2D2FFBD7551FF933100FFFFB7
+ 8DFF808080FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFC4C4C4FFC7C7C7FFCACACAFFCECECEFFD2D2D2FFD6D6D6FFDBDBDBFFFFFF
+ FFFF808080FF00000000000000000000000000000000268EC3FF9EE6FDFF9AE2
+ FCFF9AE2FCFF96DEFCFF96DEFCFF96DEFCFF96DEFCFF8AD2FBFF268EC3FF268E
+ C3FF268EC3FF0000000000000000000000000000000000000000000000000000
+ 000000000000C9D9F5FF6796E5FF125CD7FF125CD7FF125CD7FF417CDFFFA2BF
+ EFFF000000000000000000000000000000000000000000000000808080FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF6F3FFB25221FFFF62
+ 0CFF8D7C72FF0000000000000000000000000000000000000000808080FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFF808080FF0000000000000000000000000000000000000000268EC3FFAAF2
+ FEFFAAF2FEFFAAF2FEFFA6EEFEFFA6EEFEFF8AD2FBFF268EC3FF000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000808080FF8080
+ 80FF808080FF808080FF808080FF808080FF808080FF808080FF8B7062FFBB57
+ 25FFD2692DFF0000000000000000000000000000000000000000808080FF8080
+ 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080
+ 80FF808080FF000000000000000000000000000000000000000000000000268E
+ C3FF268EC3FF268EC3FF268EC3FF268EC3FF268EC3FFF3F3F3FF000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000C992
+ 76FF933100FFF5CDB6FF00000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000D6875FFFB05323FF00000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000424D3E000000000000003E000000
+ 2800000040000000300000000100010000000000800100000000000000000000
+ 000000000000000000000000FFFFFF0000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFC001
+ FFFFFFFFFFFFC001FC07C007C0078001F800C007C0078001F000C007C0078001
+ F000C007C0070001C001C007C0070001C000C007C0070001C000C007C0070001
+ F000C007C0078001F001C007C0078007F80FC007C007C03FFFFFC007C007E03F
+ FFFFFFE3FFFFFFFFFFFFFFF3FFFFFFFF00000000000000000000000000000000
+ 000000000000}
+ end
+ object OpenDialog1: TOpenDialog
+ Filter = 'Miranda32.exe|Miranda32.exe'
+ InitialDir = '.'
+ Title = 'Path to Miranda32.exe'
+ Left = 86
+ Top = 226
+ end
+end
diff --git a/tools/iceit/Unit1.pas b/tools/iceit/Unit1.pas new file mode 100644 index 0000000000..db51542ebf --- /dev/null +++ b/tools/iceit/Unit1.pas @@ -0,0 +1,595 @@ +unit Unit1;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, CheckLst, XPMan, ImgList, ComCtrls, Utils;
+
+type
+ TForm1 = class(TForm)
+ XPManifest1: TXPManifest;
+ ImageList1: TImageList;
+ CheckListBox1: TCheckListBox;
+ Label1: TLabel;
+ Button1: TButton;
+ Button2: TButton;
+ Button3: TButton;
+ StatusBar1: TStatusBar;
+ ProgressBar1: TProgressBar;
+ Edit1: TEdit;
+ Label2: TLabel;
+ Button4: TButton;
+ OpenDialog1: TOpenDialog;
+ procedure CheckListBox1DrawItem(Control: TWinControl; Index: Integer;
+ Rect: TRect; State: TOwnerDrawState);
+ procedure FormCreate(Sender: TObject);
+ procedure Button1Click(Sender: TObject);
+ procedure Button2Click(Sender: TObject);
+ procedure Button4Click(Sender: TObject);
+ procedure Button3Click(Sender: TObject);
+ procedure FormDestroy(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ procedure Error(const Msg: String);
+ procedure ErrorWithLastError(const Msg: String);
+ procedure ClearIconGroups(const FileName: String; IconGroups: TStringList);
+ function AddIcons(const FileName, IcoName: String; IconGroups: TStringList): Boolean;
+ function GetIconGroups(const FileName: String; var IconGroups: TStringList): Boolean;
+ function ProgressUpdate(const Filename, IcoName: String): Boolean;
+ end;
+
+ PIcoItemHeader = ^TIcoItemHeader;
+ TIcoItemHeader = packed record
+ Width: Byte;
+ Height: Byte;
+ Colors: Byte;
+ Reserved: Byte;
+ Planes: Word;
+ BitCount: Word;
+ ImageSize: DWORD;
+ end;
+ PIcoItem = ^TIcoItem;
+ TIcoItem = packed record
+ Header: TIcoItemHeader;
+ Offset: DWORD;
+ end;
+ PIcoHeader = ^TIcoHeader;
+ TIcoHeader = packed record
+ Reserved: Word;
+ Typ: Word;
+ ItemCount: Word;
+ Items: array [0..MaxInt shr 4 - 1] of TIcoItem;
+ end;
+ PGroupIconDirItem = ^TGroupIconDirItem;
+ TGroupIconDirItem = packed record
+ Header: TIcoItemHeader;
+ Id: Word;
+ end;
+ PGroupIconDir = ^TGroupIconDir;
+ TGroupIconDir = packed record
+ Reserved: Word;
+ Typ: Word;
+ ItemCount: Word;
+ Items: array [0..MaxInt shr 4 - 1] of TGroupIconDirItem;
+ end;
+
+ function EnumResNamesProc(module: HMODULE; ResType, ResName: PChar; List: TStrings): Integer; stdcall;
+ function StockResourceType(ResType: PChar): string;
+ function EnumResTypesProc(module: HMODULE; ResType: PChar; List: TStrings): Integer; stdcall;
+ function EnumLangsFunc(hModule: Cardinal; lpType, lpName: PAnsiChar; wLanguage: Word; lParam: Integer): Boolean; stdcall;
+ function GetResourceLanguage(hModule: Cardinal; lpType, lpName: PAnsiChar; var wLanguage: Word): Boolean;
+ function IsValidIcon(P: Pointer; Size: Cardinal): Boolean;
+
+var
+ Form1: TForm1;
+ IconsItem, PluginsItem: Integer;
+ IcePath: String;
+ MirandaPath: String;
+
+implementation
+
+{$R *.dfm}
+
+var
+ Log: TextFile;
+
+procedure TForm1.Error(const Msg: String);
+begin
+ StatusBar1.Panels[0].Text := 'Error: ' + Msg;
+ WriteLn(Log, 'Error: ' + Msg);
+ // raise Exception.Create('Error: ' + Msg);
+end;
+
+procedure TForm1.ErrorWithLastError(const Msg: String);
+begin
+ Error(Msg + '(' + IntToStr(GetLastError) + ')');
+end;
+
+function EnumResNamesProc(module: HMODULE; ResType, ResName: PChar;
+ List: TStrings): Integer; stdcall;
+begin
+{
+ if HiWord(Cardinal(ResName)) <> 0 then
+ List.Add(' ' + ResName)
+ else
+ List.Add(Format(' #%d', [LoWord(Cardinal(ResName))]));
+}
+ List.Add(Format('%d', [LoWord(Cardinal(ResName))]));
+ Result := 1;
+end;
+
+function StockResourceType(ResType: PChar): string;
+const
+ ResTypeNames: Array [1..22] of String =
+ ('RT_CURSOR', // = MakeIntResource(1);
+ 'RT_BITMAP', // = MakeIntResource(2);
+ 'RT_ICON', // = MakeIntResource(3);
+ 'RT_MENU', // = MakeIntResource(4);
+ 'RT_DIALOG', // = MakeIntResource(5);
+ 'RT_STRING', // = MakeIntResource(6);
+ 'RT_FONTDIR', // = MakeIntResource(7);
+ 'RT_FONT', // = MakeIntResource(8);
+ 'RT_ACCELERATOR', // = MakeIntResource(9);
+ 'RT_RCDATA', // = MakeIntResource(10);
+ 'RT_MESSAGETABLE', // = MakeIntResource(11);
+ // DIFFERENCE = 11;
+ 'RT_GROUP_CURSOR', // = MakeIntResource(DWORD(RT_CURSOR +7DIFFERENCE));
+ 'UNKNOWN', // 13 not used
+ 'RT_GROUP_ICON', // = MakeIntResource(DWORD(RT_ICON +DIFFERENCE));
+ 'UNKNOWN', // 15 not used
+ 'RT_VERSION', // = MakeIntResource(16);
+ 'RT_DLGINCLUDE', // = MakeIntResource(17);
+ 'UNKNOWN',
+ 'RT_PLUGPLAY', // = MakeIntResource(19);
+ 'RT_VXD', // = MakeIntResource(20);
+ 'RT_ANICURSOR', // = MakeIntResource(21);
+ 'RT_ANIICON' // = MakeIntResource(22);
+ );
+var
+ ResId: Cardinal absolute ResType;
+begin
+ if ResId in [1..22] then
+ Result := ResTypeNames[ResId]
+ else
+ Result := 'UNKNOWN';
+end;
+
+function EnumResTypesProc(module: HMODULE; ResType: PChar; List: TStrings): Integer; stdcall;
+begin
+{
+ if HiWord(Cardinal(restype)) <> 0 then
+ List.Add(restype)
+ else
+ List.Add(Format('Stock type %d: %s', [LoWord(Cardinal(ResType)),
+ StockResourcetype(ResType)]));
+ EnumResourceNames(module, restype, @EnumResNamesProc, Integer(List));
+}
+ if StockResourcetype(ResType) = 'RT_GROUP_ICON' then
+ EnumResourceNames(module, restype, @EnumResNamesProc, Integer(List));
+ Result := 1;
+end;
+
+function EnumLangsFunc(hModule: Cardinal; lpType, lpName: PAnsiChar; wLanguage: Word; lParam: Integer): Boolean; stdcall;
+begin
+ PWord(lParam)^ := wLanguage;
+ Result := False;
+end;
+
+function GetResourceLanguage(hModule: Cardinal; lpType, lpName: PAnsiChar; var wLanguage: Word): Boolean;
+begin
+ wLanguage := 0;
+ EnumResourceLanguages(hModule, lpType, lpName, @EnumLangsFunc, Integer(@wLanguage));
+ Result := True;
+end;
+
+procedure TForm1.ClearIconGroups(const FileName: String; IconGroups: TStringList);
+var
+ H: THandle;
+ M: HMODULE;
+ R: HRSRC;
+ Res: HGLOBAL;
+ GroupIconDir: PGroupIconDir;
+ n, I: Integer;
+ wLanguage: Word;
+ ResName: PAnsiChar;
+begin
+ { Update the resources }
+ H := BeginUpdateResource(PChar(FileName), False);
+ if H = 0 then
+ ErrorWithLastError('BeginUpdateResource failed (' + FileName + ')');
+ try
+ M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE);
+ if M = 0 then
+ ErrorWithLastError('LoadLibraryEx failed [1] (' + FileName + ')');
+ try
+ for n := 0 to IconGroups.Count-1 do
+ begin
+ { Load the 'MAINICON' group icon resource }
+ ResName := MakeIntResource(StrToInt(IconGroups[n]));
+ R := FindResource(M, ResName, RT_GROUP_ICON);
+ if R = 0 then
+ ErrorWithLastError('FindResource failed [1] ' + FileName + ')');
+ Res := LoadResource(M, R);
+ if Res = 0 then
+ ErrorWithLastError('LoadResource failed [1] (' + FileName + ')');
+ GroupIconDir := LockResource(Res);
+ if GroupIconDir = nil then
+ ErrorWithLastError('LockResource failed [1] (' + FileName + ')');
+ { Delete 'RT_GROUP_ICON' }
+ if not GetResourceLanguage(M, RT_GROUP_ICON, ResName, wLanguage) then
+ Error('GetResourceLanguage failed (1)');
+ if not UpdateResource(H, RT_GROUP_ICON, ResName, wLanguage, nil, 0) then
+ ErrorWithLastError('UpdateResource failed [1] (' + FileName + ')');
+ { Delete the RT_ICON icon resources that belonged to 'RT_GROUP_ICON' }
+ for I := 0 to GroupIconDir.ItemCount-1 do begin
+ if not GetResourceLanguage(M, RT_ICON, MakeIntResource(GroupIconDir.Items[I].Id), wLanguage) then
+ Error('GetResourceLanguage failed [2] (' + FileName + ')');
+ if not UpdateResource(H, RT_ICON, MakeIntResource(GroupIconDir.Items[I].Id), wLanguage, nil, 0) then
+ ErrorWithLastError('UpdateResource failed [2] (' + FileName + ')');
+ end;
+ end;
+ finally
+ FreeLibrary(M);
+ end;
+ except
+ EndUpdateResource(H, True); { discard changes }
+ raise;
+ end;
+ if not EndUpdateResource(H, False) then
+ ErrorWithLastError('EndUpdateResource failed');
+end;
+
+function IsValidIcon(P: Pointer; Size: Cardinal): Boolean;
+{
+var
+ ItemCount: Cardinal;
+}
+begin
+ {
+ Result := False;
+ if Size < Cardinal(SizeOf(Word) * 3) then
+ Exit;
+ if (PChar(P)[0] = 'M') and (PChar(P)[1] = 'Z') then
+ Exit;
+ ItemCount := PIcoHeader(P).ItemCount;
+ if Size < Cardinal((SizeOf(Word) * 3) + (ItemCount * SizeOf(TIcoItem))) then
+ Exit;
+ P := @PIcoHeader(P).Items;
+ while ItemCount > Cardinal(0) do begin
+ if (Cardinal(PIcoItem(P).Offset + PIcoItem(P).Header.ImageSize) < Cardinal(PIcoItem(P).Offset)) or
+ (Cardinal(PIcoItem(P).Offset + PIcoItem(P).Header.ImageSize) > Cardinal(Size)) then
+ Exit;
+ Inc(PIcoItem(P));
+ Dec(ItemCount);
+ end;
+ }
+ Result := True;
+end;
+
+function TForm1.AddIcons(const FileName, IcoName: String; IconGroups: TStringList): Boolean;
+var
+ H: THandle;
+ M: HMODULE;
+ NewGroupIconDir: PGroupIconDir;
+ n, I, e: Integer;
+ F: TFileStream;
+ Ico: PIcoHeader;
+ NewGroupIconDirSize: LongInt;
+ IcoFileName: String;
+ ResName: PAnsiChar;
+ Size: Cardinal;
+begin
+ Result := True;
+ e := 1;
+ for n := 0 to IconGroups.Count-1 do
+ begin
+ Application.ProcessMessages;
+ Ico := nil;
+ try
+ { Load the icons }
+ case n of
+ 0..8 : IcoFileName := IcoName + ' 00' + IntToStr(n+1) + '.ico';
+ 9..98 : IcoFileName := IcoName + ' 0' + IntToStr(n+1) + '.ico';
+ 99 : IcoFileName := IcoName + ' ' + IntToStr(n+1) + '.ico';
+ end;
+ if not FileExists(IcoFileName) then
+ begin
+ Error('Icon ' + IcoFileName + ' not found');
+ Break;
+ end;
+ ResName := MakeIntResource(StrToInt(IconGroups[n]));
+ { Load the icons }
+ F := TFileStream.Create(IcoFileName, fmOpenRead);
+ try
+ Size := F.Size;
+ if Cardinal(Size) > Cardinal($100000) then { sanity check }
+ Error('Icon file ' + IcoFileName + ' is too large');
+ GetMem(Ico, Size);
+ F.ReadBuffer(Ico^, Size);
+ finally
+ F.Free;
+ end;
+
+ { Ensure the icon is valid }
+ if not IsValidIcon(Ico, N) then
+ Error('Icon file ' + IcoFileName + ' is invalid');
+
+ { Update the resources }
+ H := BeginUpdateResource(PChar(FileName), False);
+ if H = 0 then
+ ErrorWithLastError('BeginUpdateResource failed (' + FileName + ')');
+ try
+ M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE);
+ if M = 0 then
+ ErrorWithLastError('LoadLibraryEx failed (' + FileName + ')');
+ try
+ { Build the new group icon resource }
+ NewGroupIconDirSize := 3*SizeOf(Word)+Ico.ItemCount*SizeOf(TGroupIconDirItem);
+ GetMem(NewGroupIconDir, NewGroupIconDirSize);
+ try
+ { Build the new group icon resource }
+ NewGroupIconDir.Reserved := 0;
+ NewGroupIconDir.Typ := 1;
+ NewGroupIconDir.ItemCount := Ico.ItemCount;
+ for I := 0 to NewGroupIconDir.ItemCount-1 do begin
+ NewGroupIconDir.Items[I].Header := Ico.Items[I].Header;
+ NewGroupIconDir.Items[I].Id := e; //assumes that there aren't any icons left
+ inc(e);
+ end;
+
+ { Update 'MAINICON' }
+ for I := 0 to NewGroupIconDir.ItemCount-1 do
+ if not UpdateResource(H, RT_ICON, MakeIntResource(NewGroupIconDir.Items[I].Id), 1033, Pointer(DWORD(Ico) + Ico.Items[I].Offset), Ico.Items[I].Header.ImageSize) then
+ ErrorWithLastError('UpdateResource failed (' + FileName + ')');
+
+ { Update the icons }
+ if not UpdateResource(H, RT_GROUP_ICON, ResName, 1033, NewGroupIconDir, NewGroupIconDirSize) then
+ ErrorWithLastError('UpdateResource failed (' + FileName + ')');
+ finally
+ FreeMem(NewGroupIconDir);
+ end;
+ finally
+ FreeLibrary(M);
+ end;
+ except
+ EndUpdateResource(H, True); { discard changes }
+ raise;
+ end;
+ if not EndUpdateResource(H, False) then
+ ErrorWithLastError('EndUpdateResource failed');
+ Result := False;
+ finally
+ FreeMem(Ico);
+ end;
+ end;
+end;
+
+function TForm1.GetIconGroups(const FileName: String; var IconGroups: TStringList): Boolean;
+var
+ M: HMODULE;
+begin
+ M := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE);
+ try
+ Result := EnumResourceTypes(M, @EnumResTypesProc, Integer(IconGroups));
+ finally
+ FreeLibrary(M);
+ end;
+end;
+
+procedure TForm1.Button1Click(Sender: TObject);
+var n: Integer;
+begin
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'NONE');
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ CheckListBox1.Checked[n] := True;
+end;
+
+procedure TForm1.Button2Click(Sender: TObject);
+var n: Integer;
+begin
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'NONE');
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ CheckListBox1.Checked[n] := False;
+end;
+
+procedure TForm1.Button3Click(Sender: TObject);
+var
+ n: Integer;
+ S: String;
+ F: String;
+ xFilePath: String;
+ xIcoPath: String;
+ xTemp: String;
+ MaxCount: Integer;
+begin
+ if FileExists(Edit1.Text) then
+ begin
+ MaxCount := 0;
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ if CheckListBox1.Checked[n] then inc(MaxCount);
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'NONE');
+ MirandaPath := ExtractFileDir(Edit1.Text);
+ ProgressBar1.Min := 0;
+ ProgressBar1.Max := MaxCount;
+ for n := 0 to CheckListBox1.Items.Count - 1 do
+ if (CheckListBox1.Checked[n]) and not (CheckListBox1.Header[n]) then
+ begin
+ ProgressBar1.Position := n;
+ S := GetValue(CheckListBox1.Items[n], 0);
+ S := LowerCase(S);
+ if n < PluginsItem then F := '\icons' else F := '\plugins';
+ StatusBar1.Panels[0].Text := ' Processing: ' + S;
+ if (S = 'miranda32') or (S = 'dbtool') then
+ begin
+ xFilePath := MirandaPath + '\' + S + '.exe';
+ xIcoPath := IcePath + F + '\' + S + '\' + S;
+ end else begin
+ xFilePath := MirandaPath + F + '\' + S + '.dll';
+ xIcoPath := IcePath + F + '\' + S + '\' + S;
+ end;
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'PROGRESS');
+ CheckListBox1.ItemIndex := n;
+ if not FileExists(xFilePath) then
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'PASS')
+ else begin
+ xTemp := xFilePath + '.temp';
+ CopyFile(PChar(xFilePath), Pchar(xTemp), False);
+ if not ProgressUpdate(xTemp, xIcoPath) <> True then
+ begin
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'ERROR')
+ end else begin
+ CheckListBox1.Items[n] := SetValue(CheckListBox1.Items[n], 1, 'SUCCESS');
+ end;
+ if GetValue(CheckListBox1.Items[n], 1) = 'SUCCESS' then
+ begin
+ DeleteFile(xFilePath);
+ MoveFile(PChar(xTemp), PChar(xFilePath));
+ end;
+ end;
+ if FileExists(xTemp) then DeleteFile(xTemp);
+ end;
+ end else begin
+ Edit1.Text := 'Enter path to Mirenda32.exe here or click this button ------>';
+ Edit1.SelectAll;
+ Edit1.SetFocus;
+ end;
+ ProgressBar1.Position := 0;
+ StatusBar1.Panels[0].Text := ' Ready';
+ if FileSize(Log) = 0 then DeleteFile('iceit.log');
+
+end;
+
+procedure TForm1.Button4Click(Sender: TObject);
+begin
+ if OpenDialog1.Execute then Edit1.Text := OpenDialog1.FileName;
+end;
+
+procedure TForm1.CheckListBox1DrawItem(Control: TWinControl; Index: Integer;
+ Rect: TRect; State: TOwnerDrawState);
+var
+ S1, S2: String;
+ n: Integer;
+begin
+ Rect.Left := Rect.Left-15;
+ CheckListBox1.Canvas.Brush.Style := bsSolid;
+ CheckListBox1.Canvas.Brush.Color := clWhite;
+ CheckListBox1.Canvas.FillRect(Rect);
+ CheckListBox1.Canvas.Font.Name := 'Verdana';
+ if CheckListBox1.Header[Index] then
+ begin
+ ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+17, Rect.Top+1, 3);
+ CheckListBox1.Canvas.Font.Style := [];
+ CheckListBox1.Canvas.Font.Size := 8;
+ end else begin
+ ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+17, Rect.Top+1, 0);
+ CheckListBox1.Canvas.Font.Style := [];
+ CheckListBox1.Canvas.Font.Size := 7;
+ end;
+ if CheckListBox1.Checked[Index] then
+ begin
+ ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+1, Rect.Top+1, 1);
+ end else begin
+ ImageList1.Draw(CheckListBox1.Canvas, Rect.Left+1, Rect.Top+1, 2);
+ end;
+ CheckListBox1.Canvas.Brush.Style := bsClear;
+ CheckListBox1.Canvas.Font.Color := clBlack;
+ S1 := GetValue(CheckListBox1.Items[Index], 0);
+ S2 := GetValue(CheckListBox1.Items[Index], 1);
+ n := CheckListBox1.Canvas.TextWidth(S2);
+ CheckListBox1.Canvas.TextOut(Rect.Left+36, Rect.Top+2, S1);
+ if S2 = 'NONE' then CheckListBox1.Canvas.Font.Color := clWindow;
+ if S2 = 'PROGRESS' then CheckListBox1.Canvas.Font.Color := $007E7E7E;
+ if S2 = 'SUCCESS' then CheckListBox1.Canvas.Font.Color := $00129D02;
+ if S2 = 'PASS' then CheckListBox1.Canvas.Font.Color := $00168FAD;
+ if S2 = 'ERROR' then CheckListBox1.Canvas.Font.Color := $001232C7;
+ CheckListBox1.Canvas.TextOut(Rect.Right-(n+4), Rect.Top+2, S2);
+end;
+
+procedure TForm1.FormCreate(Sender: TObject);
+var
+ FindHandle: THandle;
+ FindData: TWin32FindData;
+ FindNext: Boolean;
+ FileName: String;
+ FilePath: String;
+begin
+ AssignFile(Log, 'iceit.log');
+ Rewrite(Log);
+ IcePath := ExtractFilePath(ParamStr(0));
+ // Icons
+ CheckListBox1.Items.Add('icons|NONE|');
+ IconsItem := CheckListBox1.Items.Count-1;
+ CheckListBox1.Header[IconsItem] := True;
+ FindData.dwFileAttributes := FILE_ATTRIBUTE_NORMAL;
+ FilePath := IcePath + '\icons\*.*';
+ FindHandle := FindFirstFile(PChar(FilePath), FindData);
+ if FindHandle <> INVALID_HANDLE_VALUE then
+ begin
+ FindNext := True;
+ while FindNext do
+ begin
+ FileName := FindData.cFileName;
+ if (FileName <> '..') and (FileName <> '.') then
+ if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
+ CheckListBox1.Items.Add(LowerCase(FileName)+'|NONE|');
+ FindNext := FindNextFile(FindHandle, FindData);
+ end;
+ end;
+ Windows.FindClose(FindHandle);
+ // Plugins
+ CheckListBox1.Items.Add('plugins|NONE|');
+ PluginsItem := CheckListBox1.Items.Count-1;
+ CheckListBox1.Header[PluginsItem] := True;
+ FindData.dwFileAttributes := FILE_ATTRIBUTE_NORMAL;
+ FilePath := IcePath + '\plugins\*.*';
+ FindHandle := FindFirstFile(PChar(FilePath), FindData);
+ if FindHandle <> INVALID_HANDLE_VALUE then
+ begin
+ FindNext := True;
+ while FindNext do
+ begin
+ FileName := FindData.cFileName;
+ if (FileName <> '..') and (FileName <> '.') then
+ if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
+ CheckListBox1.Items.Add(LowerCase(FileName)+'|NONE|');
+ FindNext := FindNextFile(FindHandle, FindData);
+ end;
+ end;
+ Windows.FindClose(FindHandle);
+end;
+
+procedure TForm1.FormDestroy(Sender: TObject);
+begin
+ CloseFile(Log);
+end;
+
+function TForm1.ProgressUpdate(const FileName, IcoName: String): Boolean;
+var
+ IconGroups: TStringList;
+begin
+ Result := False;
+ if Win32Platform <> VER_PLATFORM_WIN32_NT then
+ Error('Only supported on Windows NT and above');
+
+ IconGroups := TStringList.Create;
+ if not GetIconGroups(FileName, IconGroups) then
+ ErrorWithLastError('Cannot Get Icon Groups in ' + FileName)
+ else begin
+ if IconGroups.Count = 0 then
+ begin
+ Error('Icon Group in ' + FileName + ' Is Empty');
+ end;
+ ClearIconGroups(Filename, IconGroups);
+ if AddIcons(Filename, IcoName, IconGroups) then
+ Result := True;
+ end;
+ IconGroups.Free;
+end;
+
+end.
diff --git a/tools/iceit/Utils.dcu b/tools/iceit/Utils.dcu Binary files differnew file mode 100644 index 0000000000..e77133dc8c --- /dev/null +++ b/tools/iceit/Utils.dcu diff --git a/tools/iceit/iceit.log b/tools/iceit/iceit.log new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tools/iceit/iceit.log diff --git a/tools/iceit/upx.exe b/tools/iceit/upx.exe Binary files differnew file mode 100644 index 0000000000..6266213c65 --- /dev/null +++ b/tools/iceit/upx.exe diff --git a/tools/iceit/utils.pas b/tools/iceit/utils.pas new file mode 100644 index 0000000000..7d1cceeab8 --- /dev/null +++ b/tools/iceit/utils.pas @@ -0,0 +1,66 @@ +unit utils;
+
+interface
+
+uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms;
+
+ function GetValue(S: String; H: Integer): String;
+ function SetValue(S: String; H: Integer; Value: String): String;
+ function SetWidth(Canvas: TCanvas; S: String; n: Integer): String;
+
+implementation
+
+//--------------------------------------------------------------------------------------
+// Ôóíêöèÿ âîçâðàùàåò òåêñò èç ñòðîêè S ñîäåðæàùèéñÿ ìåæäó ñèìâîëàìè '|' íà ïîçèöèè H
+//--------------------------------------------------------------------------------------
+function GetValue(S: String; H: Integer): String;
+var F, n: Integer;
+begin
+ F := 0;
+ Result := '';
+ for n := 1 to Length(S) do
+ begin
+ if S[n] = '|' then inc(F);
+ if (S[n] <> '|') and (F = H) then Result := Result + S[n]
+ end;
+end;
+
+//--------------------------------------------------------------------------------------
+// Ôóíêöèÿ âîçâðàùàåò ñòðîêó àíàëîãè÷íóþ S, íî ñ çàìåíåííûì ìåæäó
+// ñèìâîëàìè '|' íà ïîçèöèè H òåêñòîì íà çíà÷åíèå Value
+//--------------------------------------------------------------------------------------
+function SetValue(S: String; H: Integer; Value: String): String;
+var F, n: Integer;
+begin
+ n := 1;
+ F := 0;
+ Result := '';
+ while (n < Length(S)) and (F < H) do
+ begin
+ if S[n] = '|' then inc(F);
+ Result := Result + S[n];
+ inc(n);
+ end;
+ Result := Result + Value;
+ while S[n] <> '|' do inc(n);
+ while (n <= Length(S)) do
+ begin
+ Result := Result + S[n];
+ inc(n);
+ end;
+end;
+
+//--------------------------------------------------------------------------------------
+// Ôóíêöèÿ âîçâðàùàåò S åñëè øèðèíà ñòðîêè < n,
+// èëè S ñ ìíîãîòî÷èåì '...' óðåçàííóþ äî øèðèíû n
+//--------------------------------------------------------------------------------------
+function SetWidth(Canvas: TCanvas; S: String; n: Integer): String;
+begin
+ if Canvas.TextWidth(S) > n then
+ begin
+ while Canvas.TextWidth(S + '...') > n do SetLength(S, Length(S)-1);
+ Result := S + '...';
+ end else Result := S;
+end;
+
+end.
diff --git a/tools/iceit/x.ico b/tools/iceit/x.ico Binary files differnew file mode 100644 index 0000000000..abab25a459 --- /dev/null +++ b/tools/iceit/x.ico |