1

当 IE 用户单击驻留在 SharePoint 中的文件的链接(并且用户选择“只读”访问权限)时,该文件被复制到 Internet 临时文件,我的应用程序被打开并将该文件名作为参数传递。我正在尝试在我的应用程序中实现“签出”按钮,以便用户可以从只读模式切换到签出和编辑模式。我无法找到一种方法来了解文件的 SharePoint URL。在签出和编辑时,没问题:有一个注册表项将我系统上的文件映射到 SharePoint 中的 URL;对于只读文件,我还没有找到类似的东西。

编辑:Windows 资源管理器中有一个可用的 URL 列,但是当我显示该列(在资源管理器中)时,所有值都是空白的。此外,我找不到任何会为我返回此值的文件信息 api 调用。

更新:我在 wininet.lib 中发现了一些有希望的调用:FindFirstUrlCacheEntryEx(和“下一个”)以及 FindFirstUrlCacheGroup(和下一个)。他们似乎没有返回任何数据,从我读到的,这些只返回的应用程序对 wininet api 调用缓存的使用——而不是 IE。

我还尝试在打开文件时运行 IE 对我的应用程序进行的 COM 调用列表,以查看如果我支持它所看到的接口。一个看起来很有希望的是 IMonikerProp 接口,当我实现它时,它确实被调用了……但是它只为我提供了 mime 类型属性、我的应用程序的 classid 和 TrustedDownload 标志。

4

2 回答 2

2

也许这个网站有答案:SharePoint 如何通过 ActiveX 与 Word 通信

另一种选择可能是挂钩到 SharePoint ItemCheckingOut 事件。示例 1 示例 2。如果您可以获取 URL 信息并使用该信息创建一些临时文件或将信息传递给您的程序。

链接到 ActiveX 控件信息- 也许这个控件是在所有东西上启动的?你也许可以利用它。

于 2009-04-14T16:20:47.433 回答
0

创建的临时文件是否有一个好名字(它是否与文件的实际名称匹配或者是乱码)。如果它是一个好名字,你可能可以搜索它。否则,在不知道站点、文件夹、文件名的情况下,您可能无法知道,除非某处有一些关于该文件的附加数据。

于 2009-04-13T17:40:22.990 回答