获取文件默认图标

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

    Private Structure SHFILEINFO
        Public hIcon As IntPtr
        Public iIcon As Integer
        Public dwAttributes As Integer
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
        Public szDisplayName As String
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
        Public szTypeName As String
    End Structure

    Private Declare Auto Function SHGetFileInfo Lib "shell32.dll" _
            (ByVal pszPath As String, _
             ByVal dwFileAttributes As Integer, _
             ByRef psfi As SHFILEINFO, _
             ByVal cbFileInfo As Integer, _
             ByVal uFlags As Integer) As IntPtr

    Private Const SHGFI_ICON = &H100
    Private Const SHGFI_SMALLICON = &H1
    Private Const SHGFI_LARGEICON = &H0
    Private nIndex = 0
    Private hImgLarge As IntPtr  'The handle to the system image list.

    Private Function GetLargeIcon(ByVal FilePath As String) As System.Drawing.Icon

        Dim fName As String
        Dim shinfo As SHFILEINFO
        shinfo = New SHFILEINFO()

        shinfo.szDisplayName = New String(Chr(0), 260)
        shinfo.szTypeName = New String(Chr(0), 80)

        fName = FilePath

        hImgLarge = SHGetFileInfo(fName, 0,
        shinfo, Marshal.SizeOf(shinfo),
        SHGFI_ICON Or SHGFI_LARGEICON)

        Dim myIcon As System.Drawing.Icon
        myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)

        Return myIcon

    End Function
    Private Function GetSmallIcon(ByVal FilePath As String) As System.Drawing.Icon

        Dim fName As String
        Dim shinfo As SHFILEINFO
        shinfo = New SHFILEINFO()

        shinfo.szDisplayName = New String(Chr(0), 260)
        shinfo.szTypeName = New String(Chr(0), 80)

        fName = FilePath

        hImgLarge = SHGetFileInfo(fName, 0,
        shinfo, Marshal.SizeOf(shinfo),
        SHGFI_ICON Or SHGFI_SMALLICON)

        Dim myIcon As System.Drawing.Icon
        myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)

        Return myIcon

    End Function