已知一个文件夹或者文件
比如:C:\WINDOWS 或者
C:\WINDOWS\system32\mplay32.exe
得到其项目标示符列表pidl;
比如:C:\WINDOWS 或者
C:\WINDOWS\system32\mplay32.exe
得到其项目标示符列表pidl;
解决方案 »
- 秦皇岛公司招人
- <請教>dbgrid輸入問題
- 问一个打包的问题
- win2k不可以打印设置自定义页面。我的针式打印机打出来的总是一页打两页,hp6l的就没问题
- 请问联众有椅子的游戏厅是怎么做的?给点思路?急急急急急急急
- 使用ADO的insert语句在ExecSQL出错,我没分了,急,拜托-------在线等待!!!
- delphi中对应与VBScript中的MID函数的是什么?
- 一个关于制作安装程序的问题?
- 怎样才能使程序不在Ctrl+Alt+Del的窗口中出现?
- 请问在DELPHI在WIN2000里如何实现关机?请给出代码,一定给高分。
- 有个关于控件句柄的问题向各位请教请教.
- 关于局域网数据库连接失败的问题??
function PathToPidlBind(const FileName: string; out Folder: IShellFolder):
PItemIdList;
var
Attr, Eaten: ULONG;
PathIdList: PItemIdList;
DesktopFolder: IShellFolder;
Path, ItemName: pwidechar;
s1,s2: string;
k: integer;
begin
Result := nil;
s1:= ExtractFilePath(FileName);
s2:= ExtractFileName(FileName);
Path:= a2u(s1);
ItemName:= a2u(s2); if Succeeded(SHGetDesktopFolder(DesktopFolder)) then begin
if Succeeded(DesktopFolder.ParseDisplayName(0, nil, Path, Eaten, PathIdList, Attr)) then begin // FAIL
if Succeeded(DesktopFolder.BindToObject(PathIdList, nil, IID_IShellFolder, Pointer(Folder))) then begin
if FAILED(Folder.ParseDisplayName(0, nil, ItemName, Eaten, Result, Attr)) then begin
Folder := nil;
Result := DriveToPidlBind(FileName, Folder);
end;
end;
PidlFree(PathIdList);
end
else
Result := DriveToPidlBind(FileName, Folder);
end; FreeMem(Path);
FreeMem(ItemName);
end;