首先,我要说的是,我使用coms的经验绝对是零,更不用说通过php的COM extension使用coms了。
作为大型项目的一部分,我需要得到表示给定绝对系统路径的IShellFolder。我做了很多谷歌搜索,我遇到的大多数解决方案都是利用SHGetDesktopFolder,但是语法差异(因为我看到的所有例子都是在一些.net语言或其他语言中)和Desktop可能不是我正在寻找的路径的祖先这一事实的结合让我感到困惑。
如果它与答案相关,我的最终目标是使用IShellFolder检索IExtractImage中给定文件的IShellFolder,并在运行脚本的服务器上显示图像。

最佳答案

我不知道PHP中是否有特殊的设施,但是在C或C++中,Raymond Chen建议使用SHParseDisplayName将绝对路径转换成PIDL,然后SHBindToParent这就给了文件夹中的IShellFolder指针和文件的PCUITEMID_CHILD
His example function GetUIObjectOfFile走了额外的一英里并绑定到对象本身,尽管这可能不是您想要的)
但是,由于它使您除了处理其余的pidl之外,还处理pidl,因此它可能比SHGetDesktopFolder方法更糟糕。

07-27 21:16