当 IE 用户单击驻留在 SharePoint 中的文件的链接(并且用户选择“只读”访问权限)时,该文件被复制到 Internet 临时文件,我的应用程序被打开并将该文件名作为参数传递。我正在尝试在我的应用程序中实现“签出”按钮,以便用户可以从只读模式切换到签出和编辑模式。我无法找到一种方法来了解文件的 SharePoint URL。在签出和编辑时,没问题:有一个注册表项将我系统上的文件映射到 SharePoint 中的 URL;对于只读文件,我还没有找到类似的东西。
编辑:Windows 资源管理器中有一个可用的 URL 列,但是当我显示该列(在资源管理器中)时,所有值都是空白的。此外,我找不到任何会为我返回此值的文件信息 api 调用。
更新:我在 wininet.lib 中发现了一些有希望的调用:FindFirstUrlCacheEntryEx(和“下一个”)以及 FindFirstUrlCacheGroup(和下一个)。他们似乎没有返回任何数据,从我读到的,这些只返回我的应用程序对 wininet api 调用缓存的使用——而不是 IE。
我还尝试在打开文件时运行 IE 对我的应用程序进行的 COM 调用列表,以查看如果我支持它所看到的接口。一个看起来很有希望的是 IMonikerProp 接口,当我实现它时,它确实被调用了……但是它只为我提供了 mime 类型属性、我的应用程序的 classid 和 TrustedDownload 标志。