/* * 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); } }