一个获取文件的ICON类
2007-03-07 00:04
225 查看
using System;
using System.Runtime.InteropServices;
namespace Tools.GUI
{
/// <summary>
/// Description r閟um閑 de System.Drawing.Icon.
/// </summary>
public class CIcon
{
private const UInt32 SHGFI_ICON = 0x100;
private const UInt32 SHGFI_LARGEICON = 0x0; // 'Large icon
private const UInt32 SHGFI_SMALLICON = 0x1; // 'Small icon
[DllImport("shell32.dll")]
private static extern IntPtr SHGetFileInfo(string pszPath,
UInt32 dwFileAttributes, ref SHFILEINFO psfi, UInt32 cbSizeFileInfo,
UInt32 uFlags);
[StructLayout(LayoutKind.Sequential)]
private struct SHFILEINFO
{
public IntPtr hIcon;
public IntPtr iIcon;
public UInt32 dwAttributes;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string szTypeName;
};
public static System.Drawing.Icon GetIcon(string filename,bool
b_large_icon)
{
UInt32 icon_size;
if (b_large_icon)
icon_size=SHGFI_LARGEICON;
else
icon_size=SHGFI_SMALLICON;
IntPtr hImgSmall;
SHFILEINFO shinfo = new SHFILEINFO();
hImgSmall = SHGetFileInfo(filename, 0, ref shinfo,(UInt32)Marshal.SizeOf(shinfo),SHGFI_ICON |icon_size);
System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
return myIcon;
}
}
}
using System.Runtime.InteropServices;
namespace Tools.GUI
{
/// <summary>
/// Description r閟um閑 de System.Drawing.Icon.
/// </summary>
public class CIcon
{
private const UInt32 SHGFI_ICON = 0x100;
private const UInt32 SHGFI_LARGEICON = 0x0; // 'Large icon
private const UInt32 SHGFI_SMALLICON = 0x1; // 'Small icon
[DllImport("shell32.dll")]
private static extern IntPtr SHGetFileInfo(string pszPath,
UInt32 dwFileAttributes, ref SHFILEINFO psfi, UInt32 cbSizeFileInfo,
UInt32 uFlags);
[StructLayout(LayoutKind.Sequential)]
private struct SHFILEINFO
{
public IntPtr hIcon;
public IntPtr iIcon;
public UInt32 dwAttributes;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string szTypeName;
};
public static System.Drawing.Icon GetIcon(string filename,bool
b_large_icon)
{
UInt32 icon_size;
if (b_large_icon)
icon_size=SHGFI_LARGEICON;
else
icon_size=SHGFI_SMALLICON;
IntPtr hImgSmall;
SHFILEINFO shinfo = new SHFILEINFO();
hImgSmall = SHGetFileInfo(filename, 0, ref shinfo,(UInt32)Marshal.SizeOf(shinfo),SHGFI_ICON |icon_size);
System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
return myIcon;
}
}
}
相关文章推荐
- 【转载】利用shell脚本获取一个文件的绝对路径readlink
- 获取一个文件行数的方法
- 从另外一个服务器获取文件并保存--webservice
- 如何用DOS命令,获取一个目录下的文件数目
- C#控制台基础 directory获取一个文件夹下所有文件的名字(不包含文件夹)
- Powershell脚本获取列表上event receiver信息并输出到一个csv文件中
- ios中如何用一个格式获取多个文件目录中的全部文件
- 最近想做一个音乐播放器,苦于不知道怎么获取音频文件的tag信息,查了很多资料,终于稍微有点眉目
- python如何获取一个文件夹内包括子文件夹所有文件的名字和路径
- 编写一个JSP文件,使用pageContext内置对象来获取由session、request和application内置对象设置的属性。
- 一个简单的C#获取Session、设置Session类文件
- 用 AutoHotkey 做一个文件查找工具之三:获取文件列表到数组中并在虚拟列表上显示
- mfc 获取一个文件夹一级目录下的文件或文件夹名称
- 如何调用MFC中的函数打开一个系统资源面板,获取文件
- 将一个txt里的A和B谈话内容获取出来并分别保存到A和B的txt文件中
- 如何编程获取到一个文件的扇区位置,并读写它?
- android获取一个用于打开Word文件的intent
- java 递归获取一个目录下的所有文件路径
- MFC获取一个文件夹下某文件格式的所有文件名,并显示到 CListBox 上
- 获取某一个目录中的所有文件列表