【问题标题】:Drag & Drop directly from Outlook in web app [duplicate]在 Web 应用程序中直接从 Outlook 拖放 [重复]
【发布时间】:2013-11-12 08:43:02
【问题描述】:

我知道这个问题与我的问题相同:

但我正在寻找一种解决方法来实现将 Outlook 消息放入我的 web 应用程序(目前只有 HTML5 / JS 代码)。

是否可以使用一些activeX 将消息复制到临时文件系统文件夹中,然后使用此文件引用?我想知道可行性水平。

另外,我们可以使用 ActiveX 从 Jscript 调用 DLL 是否正确,例如:

var obj = new ActiveXObject("ABCDll.testMethod");
var vResult = obj.TestMethod();
alert(vResult);

顺便说一句,如果有人有任何其他建议为任何文件做一个工作拖放组件(IE 兼容),包括。来自 Outlook 的电子邮件(目前唯一不起作用的东西......)

非常感谢您的任何意见。

【问题讨论】:

  • Dmitry 的回答有用吗?
  • 是的,我确实编写了一个自定义浏览器助手,它将上传的文件写入临时目录,然后调用 javascript 句柄。
  • 看看这个答案!适用于网络浏览器和 Outlook 2013/2016 stackoverflow.com/a/49679156/3825124

标签: javascript html drag-and-drop outlook


【解决方案1】:

Outlook 使用许多应用程序无法理解的CFSTR_FILECONTENTS and CFSTR_FILEDESCRIPTOR 格式。 My solution 这个问题使用Outlook Add-in 拦截 D&D 并将专有格式转换为通常的文件放置 (CF_HDROP)。

外接程序将 OLE32.DLL 的导入表中的 DoDragDrop 函数指针替换为包装函数(在 Outlook 的内存地址空间内)。包装器转换 D&D 数据并调用原始函数。

This article 描述了如何挂钩到导入表。 Outlook 的 D&D 流格式解释为here。为了提供简单的CF_HDROP,必须将流数据写入(临时)文件。

【讨论】:

  • 该功能是否只能使用 C++ 完成?你知道是否可以使用 C# 实现类似的功能吗?
【解决方案2】:

您可以在 C++ 或 Delphi 中编写浏览器帮助程序(用于 IE),从 IE 检索当前拖放处理程序并安装其自己的处理程序。当从 Outlook 中拖动消息时,您可以将其保存到临时文件夹中,然后调用原始拖放处理程序。处理程序返回后,可以删除临时文件。

我过去做过这个,效果很好。您可能想查看在 IE 中拦截拖放的 Google Gears 源代码(不再受支持)。

【讨论】:

  • 我写了一个 BHO,他正在获取我的“drop-destination” DIV,我现在正尝试将 DropEvent 附加到这个 DIV。但是,我只能使用 put_onDragStart(),我没有找到带有 DROP 事件的事件...我已经搜索了一些教程或示例,其中实现了拖放处理程序但没有成功。我可以问你一些意见吗?
  • 您查看过 Google Gears 源代码吗?您需要一直下降到 Windows API 级别。
  • @Dmitry,我认为您没有一些示例代码可以向我们展示您所指的 BHO?
  • 不,它是商业产品的一部分,对不起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
相关资源
最近更新 更多