Shell API SHBrowseForFolder的用法

 

 

Code as bellow

{

 BROWSEINFO  bi;

 bi.hwndOwner=NULL;

 bi.pidlRoot=NULL;

 bi.pszDisplayName=NULL;

 bi.lpszTitle=NULL;

 bi.ulFlags=0;

 bi.lpfn =NULL;

 bi.iImage =0;

 LPCITEMIDLIST pidl=SHBrowseForFolder(&bi);

 if(!pidl)

  return;

 TCHAR  szDisplayName[255];

 SHGetPathFromIDList(pidl,szDisplayName);

 CString str(szDisplayName);

 MessageBox(str,NULL,MB_OK);

 }

该段代码呼叫SHBrowseForFolder函数弹出选择文件对话框,选择文件夹后调用SHGetPathFromIDList函数,把选择的文件夹名提取出来。用MessageBox show出来。

用到的API函数

SHBrowseForFolder

WINSHELLAPI LPITEMIDLIST WINAPI SHBrowseForFolder(

    LPBROWSEINFO lpbi

); 

Displays a dialog box that enables the user to select a shell folder. 

Returns the address of an item identifier list that specifies the location of the selected folder relative to the root of the namespace. If the user chooses the Cancel button in the dialog box, the return value is NULL. 

lpbi 

Address of a BROWSEINFO structure that contains information used to display the dialog box. 

The calling application is responsible for freeing the returned item identifier list by using the shell's task allocator.

SHGetPathFromIDList

WINSHELLAPI BOOL WINAPI SHGetPathFromIDList(

    LPCITEMIDLIST pidl,

    LPSTR pszPath

);

Converts an item identifier list to a file system path. 

Returns TRUE if successful, or FALSE otherwise. 

pidl 

Address of an item identifier list that specifies a file or directory location relative to the root of the namespace (the desktop). 

pszPath 

Address of a buffer to receive the file system path. This buffer must be at least MAX_PATH characters in size. 

If the location specified by the pidl parameter is not part of the file system, this function will fail. 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值