title: Fastest way to get shell icon
body: <p>I'm using this code for getting the shell icon (the one displayed in Windows Explorer).<br>
  Does anyone has an experience with a faster way to get these icons ? The <code>SHGetFileInfo</code> seems to be quite slow.</p>
  
  <pre><code>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) &lt;&gt; 0 then 
      DrawIconEx(Canvas.Handle, 10, 10, FileInfo.hIcon, 0, 16, 16, 0, DI_IMAGE or 
        DI_MASK);
  end;
  </code></pre>
  
  <p>Thanks!</p>