title: How to get shortcut shell icon from a system shortcut?
body: <p>Some time ago I've asked for a <a href="https://stackoverflow.com/questions/9229804/fastest-way-to-get-shell-icon">fastest way to get shell icon</a> what tuned the speed of getting icons up, but the problem is that some of the system shortcuts (lnk files) doesn't display correct icons.</p>
  
  <p>As one of the examples might be the <code>Windows Fax and Scan.lnk</code> file, which if you use the following code...</p>
  
  <pre><code>procedure TForm2.Button1Click(Sender: TObject);
  var
    Icon: TIcon;
    FileInfo: TSHFileInfo;
  begin
    FillChar(FileInfo, SizeOf(FileInfo), 0);
    SHGetFileInfo(PChar('C:\Windows Fax and Scan.lnk'), FILE_ATTRIBUTE_NORMAL, 
      FileInfo, SizeOf(FileInfo), SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or
      SHGFI_SMALLICON);
    Icon := TIcon.Create;
    try
      Icon.Handle := FileInfo.hIcon;
      Canvas.Draw(10, 10, Icon);
    finally
      Icon.Free;
    end;
  end;
  </code></pre>
  
  <p>shows instead of this icon...</p>
  
  <p><img src="https://i.stack.imgur.com/xKwmH.png" alt="enter image description here"></p>
  
  <p>some kind of a default shortcut icon...</p>
  
  <p><img src="https://i.stack.imgur.com/j5eGG.png" alt="enter image description here"></p>
  
  <p>Do you know how to get the system icon (the one from the first image) from that shortcut file ?</p>