Windows API是否提供了获取特殊文件夹路径(即我的文档)的任何方法,因为它的CLSID为字符串(即:: {450d8fba-ad25-11d0-98a8-0800361b1103})?这可以以任何方式完成吗?此外,它应该使用Windows XP支持的功能。
提前谢谢。
答案 0 :(得分:4)
您需要的基本API是SHParseDisplayName
。这将采用::{GUID}
格式路径并将其转换为PIDL。
如果PIDL有一个字符串形式(如你的例子所示,因为它解析为Documents文件夹),你可以使用SHGetPathFromIDList
进行转换。
LPITEMIDLIST pidl;
if (SUCCEEDED(SHParseDisplayName(L"::{450d8fba-ad25-11d0-98a8-0800361b1103}", nullptr, &pidl, 0, nullptr)))
{
wchar_t wchPath[MAX_PATH];
if (SUCCEEDED(SHGetPathFromIDList(pidl, wchPath)))
{
// string form of path is now in wchPath
}
ILFree(pidl);
}