unit ExtrIcon; interface uses ShellAPI, Graphics, WinTypes, SysUtils; function ExtractIconFromFile(FileName: string; Index: integer): HIcon; implementation function ExtractIconFromFile(FileName: string; Index: integer): HIcon; var Buff: array [0..255] of char; iNumberOfIcons: integer; begin { If we have a valid file. } if FileExists(FileName) then begin { Find out how many icons are in the file } iNumberOfIcons := ExtractIcon(hInstance, StrPCopy(Buff, FileName), Cardinal(-1)); if (Index > 0) and (Index < iNumberOfIcons) and (iNumberOfIcons > 0) then Result:= ExtractIcon(hInstance, Buff, Index); end; end; end.