/*
* Mono extension to support /win32icon in mcs
*/
internal void DefineIconResource (string iconFileName)
{
if (iconFileName == null)
throw new ArgumentNullException ("iconFileName");
if (iconFileName.Length == 0)
throw new ArgumentException ("iconFileName");
if (!File.Exists (iconFileName) || Directory.Exists (iconFileName))
throw new FileNotFoundException ("File '" + iconFileName + "' does not exists or is a directory.");
using (FileStream fs = new FileStream (iconFileName, FileMode.Open, FileAccess.Read)) {
Win32IconFileReader reader = new Win32IconFileReader (fs);
ICONDIRENTRY[] entries = reader.ReadIcons ();
Win32IconResource[] icons = new Win32IconResource [entries.Length];
for (int i = 0; i < entries.Length; ++i) {
icons [i] = new Win32IconResource (i + 1, 0, entries [i]);
AddUnmanagedResource (icons [i]);
}
Win32GroupIconResource group = new Win32GroupIconResource (1, 0, icons);
AddUnmanagedResource (group);
}
}