shbrowseforfolder函数回调失败!怎么办?

bottom 2003-07-13 07:24:13
shbrowseforfolder函数回调失败!怎么办?

欲求BORLAND浏览目录的效果

:http://www.bwkj.net/ddiscussion/whole.jpg

根据CSDN上的朋友回答说要用回调函数来初始化路径

我写了,但还不太明白回调函数要怎么写,怎么用,以下代码

编译错误:[error] unit2.pas(233):Variable required

代码如下:

function MySHDPath5(mindex:longint):string;
var
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
idBrowse,idl : PItemIDList;
tmp : PChar;
i:longint;
begin
Result:='';
try
Getmem(tmp, 255);
i:=sizeof(longint);
SHGetSpecialFolderLocation(application.Handle,mindex, idl);
with BrowseInfo do
begin
hWndOwner:=application.Handle;
pidlRoot:=idl;
pszDisplayName:=DisplayName;
lpszTitle:='目录选择';
ulFlags:=BIF_STATUSTEXT+80;
lpfn:=@BrowseCallbackProc(application.Handle,
BFFM_INITIALIZED,1,i);//编译错误
lParam:=0;
end;
idBrowse:=SHBrowseForFolder(BrowseInfo);
if assigned(idBrowse) then
Begin
SHGetPathFromIDList(idBrowse,tmp);
Result :=strpas(tmp);
end;
finally
Freemem(tmp);
end;
end;
function BrowseCallbackProc(hwnd:HWND;uMsg:UINT;lp:LPARAM;pData:LPARAM ):longint;
begin
case uMsg of
BFFM_INITIALIZED:
begin//1
SendMessage(hwnd,BFFM_SETSELECTION,lp,LPARAM(shroot));

///shroot为全局变量
end;//1
end;
Result:=0;
end;


...全文
93 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,184

社区成员

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

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