您的位置:首页 > 移动开发 > Objective-C

[翻译]拖放Internet快捷方式从Windows窗口到桌面

2006-12-25 13:30 507 查看
            这是我第一次翻译英文,有欠妥当处请各位提醒或发E-Mail联系(qianchao26@126.com)。本人仅是翻译,原文来自http://www.codeproject.com/csharp/draginternetshortcut.asp,一切版权归jisikoff所有。

介绍:
            这是我的第一篇文章来描述一个我已经努力做了很久的问题,它是涉及到把Windows窗口工程中的URL拖放出来并且让它以快捷方式的形式显示在桌面上。当你拖放链接从Internet Explorer中桌面中的时候,你将得到这样的功能实现,但是它会出现一些困难的事需要你去调试,发现错误和奇怪的数字。

背景:
            总体上来说,在单个Windows窗口工程中实现拖放并没有那样困难。你设置以个事件处理器ItemDrag来处理事件源,当它得到调用时你将以一个预先定义的格式或你自己的对象来创建和填充一个DataObject。如果你在上述应用程序中捕获到了拖放事件,那么接下来的每一件事将进行的非常顺利。然而如果你使用一个Object来操作DataObject,那么你会发现在两个不同的Windows窗口应用程序中实现拖放某种格式类型时将会产生问题,并且你将会试着去找会它通过寻找对象由使用DataObject.GetData(Type),因为当在程序之间传递时,剪贴版好象丢失了.Net类型信息。假设如果你提交数据通过使用DataObject.SetData(string nameoftype, object),然后寻找这个字符串,那么你将发现这个问题但是我并没有测试过。
     总之,这是容易实现我在努力做的关于拖放一个URl从Windows窗口ListView到桌面,并且使用它去创建一个类似于Internet Explorer形式的快捷方式。为了完成这个功能,我设计了测试的应用程序,它着眼于所有不同的数据格式,Internet Explorer是通过传递这些数据格式到这个DataObject,它创建它自己并试图去模仿他们。这个我花了很多的努力去完成把数据格式,魔术搬的数字和必要的内存流联合起来的功能,这也是我为什么要写篇文章的原因。

Using The Code:
     当我最终想让每一个功能都能进行下去,下面是为了实现这样的效果,我接下来必须要做的一些工作:
1、你必须创建一个336字节的内存流,这个内存流包含了链接的标题加上包含.url的后缀在ASCII中起始于索引位置76。这个索引位置来源于世界性的新闻组网络
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息