SHGetFileInfo

【勇芳软件工作室】汉化HomePreviousNext

[Now Supported on Windows NT]

检索有关文件系统中的对象的信息,例如文件,文件夹,目录或驱动器根目录。

WINSHELLAPI DWORD WINAPI SHGetFileInfo

LPCTSTR 【* PSFI】, 
DWORD 【dwFileAttributes】, 
SHFILEINFO FAR 【* PSFI】, 
UINT 【cbFileInfo】, 
UINT 【uFlags】 
); 

参数

【* PSFI】

指向包含路径和文件名的缓冲区。绝对路径和相对路径都是有效的。如果【uFlags】包含SHGFI_PIDL,则值【* PSFI】必须是ITEMIDLIST结构的地址,该结构包含唯一标识shell名称空间中的文件的项标识符列表。

该字符串可以使用短(8.3格式)或长文件名。

【dwFileAttributes】

文件属性标志数组(FILE_ATTRIBUTE_值)。如果【uFlags】不包含SHGFI_USEFILEATTRIBUTES值,则忽略该参数。

【PSFI】【cbFileInfo】

接收文件信息的SHFILEINFO结构的地址和大小(以字节为单位)。

【uFlags】

指定要检索的文件信息的标志。此参数可以是以下值的组合:

SHGFI_ATTRIBUTES检索文件属性标志。标志被复制到由【PSFI】指定的结构的dwAttributes成员。
SHGFI_DISPLAYNAME检索文件的显示名称。该名称被复制到由【PSFI】指定的结构的szDisplayName成员。

返回的显示名称使用长文件名(如果有),而不是文件名的8.3形式。

SHGFI_EXETYPE如果【* PSFI】标识可执行文件,则返回可执行文件的类型。有关更多信息,请参阅下面的注释。
SHGFI_ICON检索表示文件的图标的句柄和系统映像列表中图标的索引。该句柄被复制到由【PSFI】指定的结构的惠康成员,索引被复制到图标成员。返回值是系统映像列表的句柄。
SHGFI_ICONLOCATION检索包含表示文件的图标的文件的名称。该名称复制到【PSFI】指定的结构的szDisplayName成员。
SHGFI_LARGEICON修改SHGFI_ICON,导致该函数检索文件的大图标。
SHGFI_LINKOVERLAY修改SHGFI_ICON,导致该函数将链接覆盖添加到文件的图标。
SHGFI_OPENICON修改SHGFI_ICON,导致该函数检索文件的打开图标。容器对象显示一个打开的图标,表示容器已打开。
SHGFI_PIDL表示【* PSFI】ITEMIDLIST结构的地址,而不是路径名称。
SHGFI_SELECTED修改SHGFI_ICON,使文件的图标与系统突出显示颜色混合。
SHGFI_SHELLICONSIZE修改SHGFI_ICON,导致该函数检索shell大小的图标。如果未指定此标志,则该函数将根据系统度量值对图标进行大小调整。
SHGFI_SMALLICON修改SHGFI_ICON,导致该函数检索文件的小图标。
SHGFI_SYSICONINDEX检索系统映像列表中图标的索引。索引被复制到【PSFI】指定的结构的图标成员。返回值是系统映像列表的句柄。
SHGFI_TYPENAME检索描述文件类型的字符串。该字符串被复制到由【PSFI】指定的结构的szTypeName成员。
SHGFI_USEFILEATTRIBUTES表示该函数应使用【dwFileAttributes】参数。

要检索可执行文件类型,【uFlags】必须只指定SHGFI_EXETYPE。返回值指定可执行文件的类型:

0不可执行文件或错误条件。
LOWORD = NE or PE
HIWORD = 3.0, 3.5, or 4.0
Windows应用程序
LOWORD = MZ
HIWORD = 0
MS-DOS .EXE,.COM或.BAT文件
LOWORD = PE
HIWORD = 0
Win32控制台应用程序

返回值

*返回一个值,其含义取决于【uFlags】参数。如果【uFlags】指定SHGFI_EXETYPE值,则返回值表示可执行文件的类型。有关更多信息,请参阅下面的注释。

*如果【uFlags】包含SHGFI_ICON或SHGFI_SYSICONINDEX值,则返回值是包含大图标图像的系统映像列表的句柄。如果还包含SHGFI_SMALLICON值,则返回值是包含小图标图像的图像列表的句柄。

*如果【uFlags】不包括SHGFI_EXETYPE,SHGFI_ICON,SHGFI_SYSICONINDEX或SHGFI_SMALLICON,则返回值为非零,函数成功,否则返回0。