SHBrowseForFolder爆了

visual_cjiajia 2002-12-16 06:54:00
我要调用SHBrowseForFolder来弹出特殊的文件夹窗体;
编译时没问题; 但程序运行到pidl:=SHBrowseForFolder(selectwin);
时DELPHI一直报错,请教一下错在哪里了*_*?

uses shlobj;

var
selectwin:TBrowseInfo;
pidl:PItemIDList;
itemid:integer;
begin
selectwin.hwndOwner :=form1.Handle ;
itemid:=0;
SHGetSpecialFolderLocation(form1.Handle,itemid,pidl);

selectwin.pidlRoot := pidl;
selectwin.lpszTitle :=PAnsiChar('浏览文件夹');
selectwin.ulFlags := BIF_RETURNONLYFSDIRS;

pidl:=SHBrowseForFolder(selectwin);//一直报错EAccessVoilation Error
end;
...全文
39 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpbuaa 2002-12-29
  • 打赏
  • 举报
回复
SHBrowseForFolder需要一个回调函数,可以这样写:

function BrowseCallbackProc(H: HWND; uMsg: Cardinal; lParam, lpData: Integer): Integer;
stdcall;
begin
//
end;

调用SHBrowseForFolder前加一句:
selectwin.lpfn := BrowseCallbackProc;


—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧