首先,我要说的是,我使用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
方法更糟糕。