MFC文件之SHGetFileInfo函数与SHFILEINFO结构体
Posted 流楚丶格念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC文件之SHGetFileInfo函数与SHFILEINFO结构体相关的知识,希望对你有一定的参考价值。
SHFILEINFO 结构体
作用:
SHFILEINFO包含一个文件的信息。
定义
typedef struct _SHFILEINFO
HICON hIcon;
int iIcon;
DWORD dwAttributes;
char szDisplayName[MAX_PATH];
char szTypeName[80];
SHFILEINFO;
成员
hIcon
:代表文件的图标的句柄。iIcon
:系统图像列表中图标图像的索引。dwAttributes
:指定文件对象的属性。szDisplayName
:以空字符结尾的字符串,其中包含文件在 Windows shell 中出现的名称,或者包含代表文件的图标的文件的路径和名称。szTypeName
:描述文件类型的空终止字符串。
注意:此结构与SHGetFileInfo函数一起使用。
SHGetFileInfo函数
作用:
获得系统图标列表。
函数原型
DWORD SHGetFileInfo(
LPCTSTR pszPath,
DWORD dwFileAttributes,
SHFILEINFO FAR* psfi,
UINT cbFileInfo,
UINT uFlags
);
参数
-
pszPath
: 指向包含路径和文件名的缓冲区的指针。绝对路径和相对路径都是有效的。有关更多信息,请参阅备注。 -
dwFileAttributes
: 一个或多个文件属性标志(FILE_ATTRIBUTE_*
值)的组合。如果uFlags
不包括SHGFI_USEFILEATTRIBUTES
标志,则忽略此参数。下表显示了 Windows Embedded CE 支持的附加值。
价值 | 描述 |
---|---|
FILE_ATTRIBUTE_INROM | 该文件是存储在 ROM 中的操作系统 (OS) 文件。这些文件是只读的。 |
FILE_ATTRIBUTE_ROMMODULE | 该文件是存储在 ROM 中的操作系统文件,旨在就地执行。换句话说,该文件中的代码直接从 ROM 执行,而不是首先复制到 RAM。该的CreateFile函数不能用于访问此文件。请改用LoadLibrary和CreateProcess函数。 |
psfi
: 指向SHFILEINFO结构以接收文件信息的指针。cbFileInfo
: psfi参数指向的SHFILEINFO结构的大小(以字节为单位)。uFlags
: 指定要检索的文件信息的标志。它可以是下表中的值的组合。
价值 | 描述 |
---|---|
SHGFI_属性 | 检索项目属性。属性被复制到psfi参数中指定的结构的dwAttributes成员。 |
SHGFI_DISPLAYNAME | 检索文件的显示名称。名称被复制到szDisplayName中指定的结构的构件PSFI。 |
SHGFI_EXETYPE | 如果pszPath标识可执行文件,则检索可执行文件的类型。此标志不能与任何其他标志一起指定。 |
SHGFI_ICON | 检索代表文件的图标的句柄和系统图像列表中图标的索引。句柄被复制到由psfi指定的结构的hIcon成员,索引被复制到iIcon成员。返回值是系统映像列表的句柄。您必须在此图标句柄上调用DestroyIcon函数。 |
SHGFI_ICONLOCATION | 检索包含代表文件的图标的文件的名称。名称被复制到szDisplayName中指定的结构的构件PSFI。 |
SHGFI_LARGEICON | 修改 SHGFI_ICON,使函数检索文件的大图标。 |
SHGFI_LINKOVERLAY | 修改 SHGFI_ICON,使函数将链接覆盖添加到文件的图标。 |
SHGFI_OPENICON | 修改 SHGFI_ICON,使函数检索文件的打开图标。容器对象显示一个打开的图标以指示容器已打开。 |
SHGFI_PIDL | 对于 Windows CE 1.0 到 2.01 以及 Windows Embedded CE Handheld PC Edition 3.0 版和 Windows Embedded CE Handheld PC Professional Edition 3.0 版,指示pszPath是ITEMIDLIST结构的地址而不是路径名。 |
SHGFI_SELECTED | 修改 SHGFI_ICON,使函数将文件图标与系统突出显示颜色混合。 |
SHGFI_SMALLICON | 修改 SHGFI_ICON,使函数检索文件的小图标。 |
SHGFI_SYSICONINDEX | 检索系统图像列表中图标的索引。该指数被复制到iIcon由指定的结构的构件PSFI。返回值是系统映像列表的句柄。 |
SHGFI_TYPENAME | 检索描述文件类型的字符串。的字符串被复制到szTypeName中指定的结构的构件PSFI。 |
SHGFI_USEFILEATTRIBUTES | 指示函数不应尝试访问由pszPath指定的文件。相反,它应该表现为pszPath指定的文件存在,并且文件属性在dwFileAttributes 中传递。此标志不能与 SHGFI_ATTRIBUTES、SHGFI_EXETYPE 或 SHGFI_PIDL 标志结合使用。 |
SHGFI_SELECTICON | 修改 SHGFI_ICON,使函数检索处于选定状态的文件图标。 如果SHGetFileInfo函数在请求 SHGFI_SELECTICON 时找不到文件的注册选择图标,它将返回默认图标。 |
SHGFI_SHELLICONSIZE | 修改 SHGFI_ICON,使函数检索外壳大小的图标。如果未指定此标志,则函数根据系统度量值调整图标的大小。 |
以上是关于MFC文件之SHGetFileInfo函数与SHFILEINFO结构体的主要内容,如果未能解决你的问题,请参考以下文章