Müsste ungefähr so aussehen:
Delphi-Quellcode:
function PrivateExtractIcon(lpszFile: PChar; nIconIndex, cxIcon, cyIcon: integer; phicon: PHandle; piconid: PDWORD; nIcons, flags: DWORD): DWORD; stdcall;
external 'user32.dll' name 'PrivateExtractIconA';
... und aufrufen würdest du es mit:
Delphi-Quellcode:
var
hIcon: THandle;
nIconId: DWORD;
begin
if PrivateExtractIcon('C:\WINDOWS\system32\shell32.dll', 0, 64, 64, @hIcon, @nIconId, 1, LR_LOADFROMFILE) = 1 then
try
DrawIcon(Picture1.Canvas.Handle, 0, 0, hIcon);
finally
DestroyIcon(hIcon);
end;
end;
// Nachträge:
Die Stelle "64, 64" gibt die gewünschte Größe an.
Die 0 davor ist die Nummer des Icons (0 für das erste).
Das mit dem LR_LOADFROMFILE habe ich geraten - kann sein, dass du es weglassen musst.