当IE用户单击驻留在SharePoint中的文件的链接(并且用户选择“只读”访问权限)时,该文件将复制到Temporary Internet Files,我的应用程序将打开并将该文件名作为参数传递。我正在尝试在我的应用程序中实现“签出”按钮,以便用户可以从只读模式切换到签出和编辑模式。我无法找到学习该文件的SharePoint URL的方法。在签出和编辑时,没有问题:有一个注册表项将我的系统上的文件映射到SharePoint中的URL;对于只读文件,我没有找到类似的内容。
编辑: Windows资源管理器中有一个URL列,但是当我显示该列时(在资源管理器中),所有值都是空白的。另外,我找不到任何会为我返回此值的文件信息api调用。
更新: 我在wininet.lib中发现了一些有希望的调用:FindFirstUrlCacheEntryEx(和“next”)以及FindFirstUrlCacheGroup(和下一个)。他们似乎没有返回任何数据,从我读到的,这些只返回我的应用程序使用wininet api调用缓存 - 而不是I.E.的。
我还尝试在文件打开时浏览IE进入我的应用程序的COM调用列表,以查看我支持的界面。一个看起来很有前途的是IMonikerProp接口,当我实现它时,它被调用了......但它只为我提供了mime类型属性,我的应用程序的classid和TrustedDownload标志。
答案 0 :(得分:2)
也许这个网站有答案:How SharePoint communicates with Word via ActiveX
另一种选择可能是挂钩SharePoint ItemCheckingOut事件。 Example 1 Example 2。如果您可以获取URL信息并使用该信息创建一些临时文件,或将信息传递给您的程序。
Link to ActiveX control info - 也许这个控件是针对所有内容启动的?你也许可以利用它。
答案 1 :(得分:0)
创建的临时文件是否具有良好的名称(它是否与实际调用的文件匹配或是否是乱码)。如果这是一个好名字,你可以搜索它。否则,在不知道站点,文件夹,文件名的情况下,除非在某处有关于该文件的其他数据,否则您可能无法使用。