Самый быстрый способ получить значок оболочки

Я использую этот код для получения значка оболочки (отображаемого в проводнике Windows).
Есть ли у кого-нибудь опыт более быстрого получения этих значков? SHGetFileInfo кажется довольно медленным.

procedure TForm2.Button1Click(Sender: TObject);
var
  FileInfo: TSHFileInfo;
begin
  FillChar(FileInfo, SizeOf(FileInfo), 0);
  if SHGetFileInfo(PChar('c:\windows\'), 0, FileInfo, SizeOf(FileInfo),
    SHGFI_ICON or SHGFI_SMALLICON or SHGFI_SYSICONINDEX) <> 0 then 
    DrawIconEx(Canvas.Handle, 10, 10, FileInfo.hIcon, 0, 16, 16, 0, DI_IMAGE or 
      DI_MASK);
end;

Спасибо!

7
задан Garett 10 February 2012 в 15:12
поделиться