如何将绝对系统路径转换为IShellFolder?

时间:2014-03-21 00:42:40

标签: php .net windows com

我将在前言中说我对使用COM绝对没有经验,更不用说通过PHP COM extension使用它们了。

作为大型项目的一部分,我需要获得代表给定绝对系统路径的IShellFolder。我已经完成了很多谷歌搜索,我遇到的大多数解决方案都涉及到使用SHGetDesktopFolder,但结合了语法差异(因为我所看到的所有示例都是在某些.NET语言中)以及Desktop可能成为我正在寻找的道路的祖先这一事实令我感到困惑。

如果它与答案相关,我的最终目标是使用IShellFolder检索IExtractImage中给定文件的IShellFolder并在服务器上显示图像该脚本正在运行。

1 个答案:

答案 0 :(得分:1)

我不知道PHP中是否有特殊功能,但在C或C ++中,Raymond Chen建议使用SHParseDisplayName将绝对路径转换为PIDL,然后{{3它为你提供了文件夹中文件的IShellFolder指针和PCUITEMID_CHILD

SHBindToParent更加努力并且与对象本身绑定,尽管这可能不是你想要的那样)

但是,由于除了其余部分之外它还会处理PIDL,因此它可能比SHGetDesktopFolder方法更糟糕。