ExtractIcon (shell32)
Last changed: 96.28.120.65

.
Summary

C# Signature:

[DllImport("shell32.dll")]
static extern IntPtr ExtractIcon(IntPtr hInst, string lpszExeFileName, int nIconIndex);

User-Defined Types:

None.

Notes:

Even though the Win32 function signature declares the third parameter as UINT nIconIndex, in .NET it must be a signed integer. This is because UINT is actually an alias for the int data type. Also, ExtractIcon() accepts -1 (an invalid value for unsigned integers) as an icon index, which will return the total number of icons in the specified file.

Tips & Tricks:

Please add some!

Sample Code:

string fileName = "C:\\Test.txt";

System.Drawing.Icon MyIcon = System.Drawing.Icon.ExtractAssociatedIcon(fileName);

pictureBox1.Image = MyIcon.ToBitmap();

Alternative Managed API:

System.Drawing.Icon.ExtractAssociatedIcon(fileName);

Documentation
ExtractIcon on MSDN