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

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

作为一个更大的项目的一部分,我需要得到代表给定绝对系统path的IShellFolder 。 我做了大量的searchSHGetDesktopFolder ,我碰到的大部分解决scheme都涉及到使用SHGetDesktopFolder ,但是由于语法上的差异(因为我看过的所有例子都是使用某种.NET语言或其他语言),而Desktop可能不会是我寻找的道路的祖先混淆了我。

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

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

( 他的示例函数GetUIObjectOfFile进行了额外的工作,并绑定到对象本身,虽然这可能不是你想要的)

但是,由于除了剩下的处理PIDL之外,它可能会比SHGetDesktopFolder方法更差。