这个是我遍历所有文件后,提取指定文件图标的代码:
function Tform1.AddIcon(FileName:string):integer;
{ 获取图标的序号函数 }
var
SHFileInfo:_SHFILEINFO;
ImIndex:integer;
Tc:TIcon;
begin
ImIndex:=0;
try
Tc:=TIcon.Create;
Result:=ShGetFileInfo(Pchar
(FileName), 0, SHFileInfo,
SizeOf(SHFileInfo), SHGFI_LARGEICON or
SHGFI_SYSICONINDEX or SHGFI_TYPENAME);
Tc.Handle:=SHFileInfo.hIcon ;
imindex:=im.addicon(Tc);
finally
Tc.Free;
end;为什么SHFileInfo.hIcon永远都等于0?根本就没有取出图标
而且我文件的路径绝对正确
请指点一下还有什么需要注意的地方?
function Tform1.AddIcon(FileName:string):integer;
{ 获取图标的序号函数 }
var
SHFileInfo:_SHFILEINFO;
ImIndex:integer;
Tc:TIcon;
begin
ImIndex:=0;
try
Tc:=TIcon.Create;
Result:=ShGetFileInfo(Pchar
(FileName), 0, SHFileInfo,
SizeOf(SHFileInfo), SHGFI_LARGEICON or
SHGFI_SYSICONINDEX or SHGFI_TYPENAME);
Tc.Handle:=SHFileInfo.hIcon ;
imindex:=im.addicon(Tc);
finally
Tc.Free;
end;为什么SHFileInfo.hIcon永远都等于0?根本就没有取出图标
而且我文件的路径绝对正确
请指点一下还有什么需要注意的地方?
{ 返回文件或路径所对应的图标序号 }
var
vSHFileInfo: TSHFileInfo;
begin
FillChar(vSHFileInfo, SizeOf(vSHFileInfo), 0);
SHGetFileInfo(PChar(mPath), 0, vSHFileInfo, SizeOf(vSHFileInfo),
SHGFI_SYSICONINDEX);
Result := vSHFileInfo.iIcon;
end; { GetIconIndex }