unit ShellFunctions;

interface
uses Windows, ShellApi;

function GetFileIcon(filename: String; small: Boolean = False ): HICON;

implementation

//Определение иконки файла
function GetFileIcon(filename: String; small: Boolean = False ): HICON;
var
  info: SHFILEINFO;
  flags: Cardinal;
begin
  flags := SHGFI_ICON;
  if small then
    //Получение малой иконки
    flags := flags or SHGFI_SMALLICON
  else
    //Получение большой иконки
    flags := flags or SHGFI_LARGEICON;
  ZeroMemory(Addr(info), SizeOf(info));
  //Получение иконки
  SHGetFileInfo(PAnsiChar(filename), 0, info, SizeOf(info), flags);

  GetFileIcon := info.hIcon;
end;

end.
