unit ShellFunctions;

interface
uses Windows, ShellApi;

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

implementation
{var
  bInitCom: Boolean = False;

procedure InitCom();
begin
  if not bInitCom then
    //Инициализация COM

end;
 }

//Определение иконки файл
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);
end;

end.
