首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataObject GetDataPresent(format)返回true,GetData(format)返回null

DataObject GetDataPresent(format)返回true,GetData(format)返回null
EN

Stack Overflow用户
提问于 2011-07-01 04:45:52
回答 1查看 592关注 0票数 0

这是我正在尝试做的事情的完整设置:我们在网页上有一个ActiveX控件,我们想要将它的视图保存到一个图像中,并将其发布到服务器上。由于此ActiveX控件不直接支持这一点,因此我们必须采用一种稍微复杂一些的方法。

平台: IE8、Windows7、UAC/IE保护模式关闭。

此方法将向ActiveX控件发送一条消息,以将其当前视图复制到剪贴板。一旦它这样做了,我们就通过一个协议处理程序启动一个应用程序(例如app:clipboard/blah/blah)。这个程序应该从剪贴板上抓取数据,并将其转换为正确的格式(jpeg),然后将其发布到URL。

我用来测试的代码是:

代码语言:javascript
复制
var dataObject = Clipboard.GetDataObject();
Trace.WriteLine("Data formats on clipboard: " + dataObject.GetFormats().Aggregate(" ",(s,v)=>s+v+ " "));
foreach (var fmt in dataObject.GetFormats())
{
    Trace.WriteLine("GetDataPresent on " + fmt + ": " + dataObject.GetDataPresent(fmt));
    Trace.WriteLine("GetData on " + fmt +": " + !(dataObject.GetData(fmt,true)==null));
}

当从处理程序运行时,这将导致以下输出:

代码语言:javascript
复制
Data formats on clipboard:  EnhancedMetafile MetaFilePict 
GetDataPresent on EnhancedMetafile: True
GetData on EnhancedMetafile is null: True
GetDataPresent on MetaFilePict: True
GetData on MetaFilePict is null: True

现在,我完全搞不懂为什么GetDataPresent返回true,而相同格式字符串上的GetData返回null。另外,我知道数据可以放到剪贴板上,因为我可以转过身,进入Paint.Net并粘贴,这就是我的图像。

有没有人遇到过类似的事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-16 03:25:58

我不知道托管API是怎么回事。我最终只是p/调用了函数的WinAPI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6540920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档