您的位置:首页 > 其它

如何转换到一个 ITEMIDLIST 文件路径

2007-04-07 22:16 489 查看

如何转换到一个 ITEMIDLIST 文件路径

察看本文应用于的产品
function loadTOCNode(){}

注意:这篇文章是由无人工介入的自动的机器翻译系统翻译完成。这些文章是微软为不懂英语的用户提供的, 以使他们能够理解这些文章的内容。微软不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的使用所引起的任何直接的, 或间接的可能的问题负责。

文章编号:132750
最后修改:2005年7月11日
修订:1.3

概要

loadTOCNode(1, 'summary');
开发应用程序与 WindowsExplorer 外壳程序, 交互时您可能需要转换到文件以一个 ITEMIDLIST 任意路径。 您可以使用 IShellFolder::ParseDisplayName API。

更多信息

loadTOCNode(1, 'moreinformation');
下面是如何使用 IShellFolder 接口要转换为当前目录以一个 ITEMIDLIST 中 Readme.txt 文件路径的示例。 是用 C 编写示例 如果使用 VisualC++, 写入程序通过 lpVtbl 变量访问成员函数没有必要。
[code]   LPITEMIDLIST  pidl;
LPSHELLFOLDER pDesktopFolder;
char          szPath[MAX_PATH];
OLECHAR       olePath[MAX_PATH];
ULONG         chEaten;
ULONG         dwAttributes;
HRESULT       hr;

//
// Get the path to the file we need to convert.
//
GetCurrentDirectory(MAX_PATH, szPath);
lstrcat(szPath, "//readme.txt");

//
// Get a pointer to the Desktop's IShellFolder interface.
//
if (SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder)))
{
//
// IShellFolder::ParseDisplayName requires the file name be in
// Unicode.
//
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1,
olePath, MAX_PATH);

//
// Convert the path to an ITEMIDLIST.
//
hr = pDesktopFolder->lpVtbl->ParseDisplayName(pDesktopFolder,
NULL,
NULL,
olePath,
&chEaten,
&pidl,
&dwAttributes);
if (FAILED(hr))
{
// Handle error.
}

//
// pidl now contains a pointer to an ITEMIDLIST for ./readme.txt.
// This ITEMIDLIST needs to be freed using the IMalloc allocator
// returned from SHGetMalloc().
//

//release the desktop folder object
pDesktopFolder->lpVtbl->Release();
}

原文地址:http://support.microsoft.com/kb/132750/zh-cn

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐