用以下函数不行,返回值为0:
procedure TForm1.ListView1GetImageIndex(Sender: TObject; Item: TListItem);
Const
Mode = SHGFI_ICON or SHGFI_SYSICONINDEX;
Var
info : TSHFileInfo;
P : ^String;
begin
If Item.ImageIndex = -1 then
begin
FillChar(Info,SizeOf(TSHFileInfo),0);
P := Item.Data;
SHGetFileInfo(PChar(P^), 0, Info, SizeOf(TSHFileInfo), Mode);
Item.ImageIndex := Info.iIcon;
end;
end;
其中DATA是FTP服务器上文件的全名,如: /public_html (文件夹或文件)
SHGetFileInfo可以按文件类型取图标,如:
SHFILEINFO sfi;
HIMAGELIST hil;
ZeroMemory(&sfi,sizeof(sfi));
hil = SHGetFileInfo(".zip",
FILE_ATTRIBUTE_NORMAL,
&sfi,
sizeof(sfi),
SHGFI_USEFILEATTRIBUTES|SHGFI_ICON);