文字和图片的处理需要分开:拖动文字链接时,可以使用IHTMLDocument2接口直接取得文字,拖动图像连结时,只能取得文件名,你必须自己得到图像文件(从temp中寻找)

解决方案 »

  1.   

    IE的支持拖放的原因是它实现了IDropSource和IDropTarget.IDropTarget是由支持放的html object(edit, textarea...)实现的.所以:
    1。从IE中拖出一段文本或图片(含有超链接),我如何能同时得到链接的URL和那段文本或图片?
    如果drag一段文字到自己的window中,需要继承COleDropTarget创建一个自己的CDataDropTarget类,实现自己的OnDragEnter, OnDragOver, OnDragLeave和OnDrop.然后在window中new变量pTarget,调用pTarget->Register(this).当松开left button时,OnDrop被自动调用,可以获得drag的text. 图片嘛,我没有试过,你可以试一下,再告诉大家.2。如何从文本框中拖动一个URL到Webbrowser控件,让WebBrowser打开她?
    同样,从自己的window中drag text到IE需要new一个COleDropSource的Object pSource, when LBTUUON_DOWN, 把drag的text set进去,然后pSource->DoDragDrop.
    下面的我就没有试验过了,不过我想思路就这样:
    DoDragDrop返回后要获得target窗口的handle,用ShellExecute打开URL.关于OLE拖放过程,请看潘爱民潘大侠的<COM原理与应用>P295-301
    如果有不对的地方,欢迎批评