ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

转--SHGetSpecialFolderLocation函数

2021-05-17 17:04:32  阅读:185  来源: 互联网

标签:文件夹 函数 -- 文件系统 SHGetSpecialFolderLocation ppidl CSIDL 目录


函数原型: WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation( HWND hwndOwner, int nFolder, LPITEMIDLIST* ppidl ); 函数功能: 该函数获取一个特殊的文件夹的位置,比如我的电脑,回收站,台式机,打印机,字体,或各种文件系统的目录。

 

  函数原型:
WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation(   HWND hwndOwner,    int nFolder,    LPITEMIDLIST* ppidl  );

函数功能:
该函数获取一个特殊的文件夹的位置,比如我的电脑,回收站,台式机,打印机,字体,或各种文件系统的目录。

函数参数:
hwndOwner
处理的所有者窗口的客户端应该指定是否显示一个对话框或消息框。

nFolder 
值,指定要检索的位置的文件夹。下表列出了可能的值。 它充当应用程序特定数据的公共储存库CSIDL_APPDATA的文件系统目录。 包含在用户的回收站文件对象CSIDL_BITBUCKET的文件系统目录。此目录的位置是不是在注册表中,它被标记为隐藏和系统属性,以防止用户移动或删除它。 CSIDL_CONTROLS不支持。 包含桌面项目CSIDL_DESKTOP虚拟文件夹。这是在虚拟的命名空间的根文件夹。 用于桌面(不要与桌面文件夹本身混淆)上的物理存储文件对象CSIDL_DESKTOPDIRECTORY的文件系统目录。 CSIDL_DRIVES我的电脑,这是一个包含一切的本地计算机上的虚拟文件夹:存储设备和打印机。该文件夹可能还包含映射的网络驱动器。 它充当用户的喜爱项的公共储存库CSIDL_FAVORITES的文件系统目录。 CSIDL_FONTS虚拟包含文件夹的字体。 CSIDL_NETHOOD不支持。 CSIDL_NETWORK网上邻居文件夹,这是代表网络层次结构的顶层虚拟文件夹。 用作文档的公共储存库CSIDL_PERSONAL的文件系统目录。 CSIDL_PRINTERS不支持。 CSIDL_PROFILE文件夹包含用户的个人资料。 CSIDL_PROGRAM_FILES Program Files文件夹。 包含用户程序组(同时亦文件系统目录) CSIDL_PROGRAMS的文件系统目录。 包含用户最近使用过的文档CSIDL_RECENT的文件系统目录。 CSIDL_SENDTO不支持。 包含开始菜单项目CSIDL_STARTMENU的文件系统目录。 对应于用户的启动程序组CSIDL_STARTUP文件系统目录。在系统启动这些程序时,设备上电。 CSIDL_TEMPLATES不支持。 CSIDL_WINDOWS Windows文件夹。 
  ppidl
指向一个LPITEMIDLIST结构

函数返回:
NOERROR表示成功。一个OLE定义的错误结果表明失败。

易语言声明:
.DLL命令 API_SHGetSpecialFolderLocation, , "shell32.dll", "SHGetSpecialFolderLocation",       .参数 hwnd, 整数型, ,      .参数 csidl, 整数型, ,      .参数 ppidl, ITEMIDLIST, , 

VB声明:
Declare Sub SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwnd As Long, ByVal csidl As Long, ByRef ppidl As ITEMIDLIST)

使用方法:
下面以在VC中使用为例来获取桌面路径,代码如下: 
LPITEMIDLIST ppidl; char lpsbuf[255]; SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP   ,&ppidl); SHGetPathFromIDList(ppidl,lpsbuf); MessageBox(lpsbuf);

在其它语言中用法类似,由于其它语言需要声明结构就不演示了,按照上面的语法即可获取相应的路径了,路径的说明请看函数的nFolder参数说明!

标签:文件夹,函数,--,文件系统,SHGetSpecialFolderLocation,ppidl,CSIDL,目录
来源: https://www.cnblogs.com/rosesmall/p/14777604.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有