问题标签 [idataobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
414 浏览

c# - 如何将自定义格式添加(附加)到剪贴板

我尝试创建一个剪贴板监视器程序,我需要检测何时从我的应用程序设置数据,然后我可以忽略它们,对于这项工作,我尝试将自定义格式添加到剪贴板,因此首先使用此代码注册新格式:

然后在将数据对象设置为剪贴板之前,将新格式设置为数据对象,如下所示:

最后将数据设置到剪贴板:

但是在设置之后和之前,当我在应用程序中检查剪贴板数据时,我没有任何自定义格式!

怎么了 ?

0 投票
0 回答
188 浏览

c# - 如何确定来自 DragEventArgs 的 DataObject 是 .msg 还是 .eml 文件

我有一个应用程序,用户可以在其中拖放任何文件夹中的文件,也可以从 Outlook 应用程序中 d&d 电子邮件或电子邮件附件。

当拖动事件触发时,我将使用 args.Data 进行操作DragEventArgs,其中 args.Data 是 (System.Windows) DataObject(我们拖动的对象)。

为了简化任务,我们只能拖动一个文件。

我不需要确定 d&d 发生的地方,我应该禁止不是 .msg 或 .eml 格式的 d&d 文件。

备注: 如果用户 d&d 来自任何文件夹的文件,我将通过以下方式获取文件路径:

但是当用户 d&d 来自 Outlook 的任何数据时,可以是附件或整个电子邮件

感谢帮助!

0 投票
1 回答
497 浏览

c# - 从 Outlook 拖放到 Winforms

当将项目从 Outlook 电子邮件拖到 Winforms 应用程序时(控件是GalleryControlDevExpress 的一个,DragDrop 事件没有触发,即使我在 DragEnter 事件处理程序中手动设置了“DragDropEffects.Move”。(已确认这是触发)

然而,DragDrop 事件只会在从 Windows 资源管理器中拖动普通文件时触发。

我已经启用AllowDrop = true了控件,它可以完美地与 Windows 资源管理器文件一起使用,而不是 Outlook 文件。

奇怪的是 DragEnter 事件正在触发,但 DragDrop 事件不会与 Outlook 附件一起触发。

0 投票
1 回答
68 浏览

c# - VirtualFileDataObject 实现不适用于 Outlook 365

我已按照此处找到的示例进行操作。它实现 IDataObject 接口以创建“虚拟文件”数据对象。当将虚拟文件从 WPF 应用程序 d/d 到文件系统和 Outlook 电子邮件(文件附加到电子邮件)时,该实现工作得很好。我最近更新到 Outlook 365,但它突然停止工作,调试代码显示该过程实际上执行了下载文件的功能,但这些文件从未在电子邮件中显示为附件。

有人知道365中从Outlook处理d / d的方式是否改变了吗?请,任何提示。

VirtualFileDataObject 类的代码可以在这里找到

这是使用检索虚拟文件的函数设置 FileDescriptor 列表的代码:

0 投票
1 回答
349 浏览

c# - 如何将 IDataObject 值复制到另一个 IDataObject?

我想在 C# 中从 'd' IDataObject 到 'c' IDataObject 获取值,但即使我不单击 D 键,我的 'c' 也拥有剪贴板中的值。如何将一个 IDataObject 的独立值赋予第二个?

第一个功能:

第二个功能

0 投票
0 回答
37 浏览

qt - 如何调试 IDataObject 实现?

我有一个 C++ 程序,它用一个类实现 IDataObject 接口,例如 ClipboardData:

该程序按预期工作:如果我设置系统剪贴板,OleSetClipboard(instance of ClipboardData);我可以从另一个应用程序中粘贴内容。问题是程序不能在我在GetData、QueryGetData等函数中设置的断点处断点,EnumFormatEtc除外。调用时程序在 EnumFormatEtc 处中断OleSetClipboard(instance of ClipboardData);

我认为当我从另一个程序中粘贴时,程序应该在 GetData(提供请求的数据)处中断。我是不是误解了 Windows 的剪贴板机制?

0 投票
1 回答
35 浏览

c# - C# 剪贴板和 DataObject 未按预期运行

我正在尝试使用Clipboard将所选对象存储在我编写的程序中,用于复制和粘贴(显然)。我的复制代码是:

到目前为止,我的粘贴代码是:

FormDesignerControls是一个包含复制对象的集合类。

复制代码似乎工作正常。当粘贴代码运行时,调用以if 条件oWrapper.GetDataPresent返回true。但是,调用oWrapper.GetData返回null

我在这里错过了一个技巧吗?