SHGetSpecialFolderPath用法
The SHGetSpecialFolderPath function retrieves the path of a special folder that is identified by its CSIDL.
Syntax
BOOL SHGetSpecialFolderPath(
HWND hwndOwner,
LPTSTR lpszPath,
int nFolder,
BOOL fCreate
);
Parameters
- hwndOwner
- [in] Handle to the owner window the client should specify if it displays a dialog box or message box.
- lpszPath
- [in] Reference to a character buffer that receives the drive and path of the specified folder. This buffer must be at least MAX_PATH characters in size.
- nFolder
- [in] CSIDL that identifies the folder of interest. If a virtual folder is specified, this function fails. See Remarks for possible values.
- fCreate
- [in] Indicates whether the folder should be created if it does not already exist. If this value is nonzero, the folder is created. If this value is zero, the folder is not created.
Return Values
For Windows Mobile 2003 and later, returns TRUE if successful, FALSE otherwise. For Windows Mobile 2002 and earlier, returns FALSE even if successful. If the folder represented by the nFolder parameter does not exist and is not created, a NULL string is returned indicating that the directory does not exist.
Remarks
A number of folders are used frequently by applications but might not have the same name or location on any given system. CSIDL values provide a system-independent way to identify these special folders. These values supersede the use of environment variables for this purpose.
The following table lists valid CSIDL values for the nFolder parameter:
CSIDL | Value | Description |
---|---|---|
CSIDL_DESKTOP | 0x0000 | Not supported on Smartphone. |
CSIDL_FAVORITES | 0x0006 | The file system directory that serves as a common repository for the user's favorite items. |
CSIDL_FONTS | 0x0014 | The virtual folder that contains fonts. |
CSIDL_PERSONAL | 0x0005 | The file system directory that serves as a common repository for documents. |
CSIDL_PROGRAM_FILES | 0x0026 | The program files folder. |
CSIDL_PROGRAMS | 0x0002 | The file system directory that contains the user's program groups, which are also file system directories. |
CSIDL_STARTUP | 0x0007 | The file system directory that corresponds to the user's Startup program group. The system starts these programs when a device is powered on. |
CSIDL_WINDOWS | 0x0024 | The Windows folder. |
The CSIDL_DESKTOP value is invalid for the Smartphone platform. Smartphone uses a home screen instead of a desktop; do not use this CSIDL value within the Smartphone development environment.
进行 Shell 程序的设计,需要使用一些头文件和库文件。
一般 Shell API 都在 shlobj.h 头文件中声明,由 Shell32.dll 导出,链接时需要使用到 Shell32.lib 库。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
/*************************************
* VOID GetSpecialFolderQS() * 功能 SHGetSpecialFolderPath用法 * * 参数 未使用 **************************************/ VOID GetSpecialFolderQS() { CHAR szDeskTop[MAX_PATH] = {}; CHAR szFavourites[MAX_PATH] = {}; CHAR szFonts[MAX_PATH] = {}; CHAR szMyDocument[MAX_PATH] = {}; CHAR szProgramFiles[MAX_PATH] = {}; CHAR szPrograms[MAX_PATH] = {}; CHAR szStartUp[MAX_PATH] = {}; CHAR szWindows[MAX_PATH] = {}; // 使用SHGetSpecialFolderPath获取特殊目录路径 |
SHGetSpecialFolderPath用法的更多相关文章
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- chattr用法
[root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...
- 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...
随机推荐
- 转:发一个自己用过的makefile .
#gcc test.cpp -L. -Wl,-Bdynamic -ltestlib -Wl,-Bstatic -ltestlib -Wl,-Bdynamic #make clean; make in ...
- 基于skitter的轮播图炫酷效果,幻灯片的体验
概述 包含各种炫酷的轮播切换效果,插件小巧,与其他插件无冲突,可用于移动端和PC端 详细 代码下载:http://www.demodashi.com/demo/11939.html 你还在用原生的js ...
- 【LeetCode】73. Set Matrix Zeroes (2 solutions)
Set Matrix Zeroes Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do i ...
- Linux防火墙的关闭和开启(转)
1) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效 开启: service iptables sta ...
- Android软件开发之EditText 详解
EditText在API中的结构 java.lang.Objectandroid.view.Viewandroid.widget.TextView android.widget.Edit ...
- 把一个一中的字段更新另一个表中的t-sql
UPDATE dbo.CommDescr SET Descr=(SELECT ba.content FROM dbo.blog_article ba WHERE ba.id=3) WHERE Comm ...
- Makefile生成器,使用C++和Boost实现
今天学习了一下Boost的文件遍历功能,同一时候发现GNU编译器有-MM选项.能够自己主动生成依赖关系,于是利用以上两点写了一个Makefile生成器. 能够生成一般的单个可运行文件的Makefile ...
- powerdesigner 画PDM
一.PDM概述 PDM(物理数据模型-Physical Data Modal),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列 ...
- 如何利用webmin在Linux主机中添加网站
Linux系统因其高效稳定而受到广大用户的推崇与青睐,然后其管理的复杂性也使很多用户望而却步,动弹不得.为了降低 Linux系统的管理难度,更有效方便的使用该系统,我司所有Linux主机或VPS系统均 ...
- JUC组件扩展(三):BlockingQueue(阻塞队列)详解
一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大 ...