首页 > 其他分享 >翻译《The Old New Thing》- What a drag: Dragging a Uniform Resource Locator (URL)

翻译《The Old New Thing》- What a drag: Dragging a Uniform Resource Locator (URL)

时间:2024-06-02 16:30:24浏览次数:28  
标签:Old Explorer SHELLURL URL 拖拽 Locator Internet CFSTR

What a drag: Dragging a Uniform Resource Locator (URL) - The Old New Thing (microsoft.com)icon-default.png?t=N7T8https://devblogs.microsoft.com/oldnewthing/20080312-00/?p=23133

Raymond Chen 2008年03月12日


麻烦的拖拽:拖拽统一资源定位符(URL)

简要

本文介绍了如何在Windows程序中实现拖拽操作,以便同时支持在Internet Explorer和Firefox浏览器中识别URL。通过修改数据对象的剪贴板格式,从`CF_TEXT`更改为`CFSTR_SHELLURL`,使得IE能够识别拖拽的文本为URL。作者承诺将在下一篇文章中展示如何创建一个单一的数据对象,使其能够兼容两个浏览器。

正文

        上一次,我们拖拽了一些文本,并发现如果你将其拖放到 Firefox 上,文本会被解释为 URL,但 Internet Explorer 则不那么愿意接受它。今天,我们将使数据对象适用于 Internet Explorer。

        唯一的变化是我们必须以 CFSTR_SHELLURL 剪贴板格式的形式提供 URL,而不是以 CF_TEXT 的形式。拿上次的程序并进行两个更改。首先,使用方便的搜索替换功能将 DATA_TEXT 改为 DATA_URL(这个步骤技术上不是必需的,但让名称与其用途相匹配是很好的)。真正的工作发生在构造函数的这个更改中:

CTinyDataObject::CTinyDataObject() : m_cRef(1)
{
  SetFORMATETC(&m_rgfe[DATA_URL],
               RegisterClipboardFormat(CFSTR_SHELLURL));
}

        就是这样;只需将剪贴板格式从 CF_TEXT 更改为 CFSTR_SHELLURL。需要注意的是,CFSTR_SHELLURL 表示一个 ANSI 字符串。由于“URL 只使用 US-ASCII 编码字符集的图形可打印字符编写”,因此限制为 ANSI 并不会损失表达能力。

        运行这个新程序,现在你可以在客户端区域点击并拖放(不可见的)对象到 Internet Explorer,它将导航到微软的主页。(如果你的系统支持活动桌面,你也可以将不可见的对象拖放到桌面上,并创建一个活动桌面组件。)

        好的,我们有一个版本的程序可以将 URL 拖到 Internet Explorer,另一个版本可以将 URL 拖到 Firefox。下次,我们将它们结合起来,拥有一个单一的数据对象,可以同时拖放到两者。这非常简单(因为我就是这样计划的)。

标签:Old,Explorer,SHELLURL,URL,拖拽,Locator,Internet,CFSTR
From: https://blog.csdn.net/weixin_41863029/article/details/139393165

相关文章

  • 06.爬虫---urllib与requests请求实战(POST)
    06.urllib与requests请求实战POST1.Urllib模块2.Requests模块3.实战(Requests)POST请求Python中的POST请求是HTTP协议中的一种请求方法,用于向服务器提交数据。与GET请求不同,POST请求将数据封装在请求体中,而不是在URL中传递。通常情况下,POST请求用于向服务器提交表单......
  • java8,频繁old gc,通过修改g1回收器之后,效果很好
    原配置:-Xms15360m-Xmx15360m-XX:NewSize=4096m-XX:MaxNewSize=4096m-XX:MetaspaceSize=512m-XX:MaxDirectMemorySize=1024m-XX:+UseG1GC-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/data/logs/skynet-\${DAOKEAPPUK}/\${DAOKEAPPUK}_heapDump.hprof-XX:+UseC......
  • CentOS Linux 8x 错误:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare interna
    问题描述今天安装CentOS8.5安装完之后,准备更新源仓库环境的时候突然出现错误:为仓库'appstream'下载元数据失败:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist,后面我找了好久没发现有解决这个问题的方法,后面无意看到了https://www.cnblogs.com/cainiaoaixuexi......
  • 学习Django【2】把视图和路由连接起来的是URLconfigs的配置文件
    在view.py视图中定义:defdetail(request,question_id):returnHttpResponse("You'relookingatquestion%s."%question_id)defresults(request,question_id):response="You'relookingattheresultsofquestion%s."......
  • URI、URL和URN的区别
    1.URI:统一资源标识符URI(UniformResourceIdentifier)是统一资源标识符,是用于标识资源的通用术语。URI采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。不过,也可能是一个邮件地址、新闻消息、图书、人名、Internet主机或者任何其它内容。......
  • 使用git报错:error: RPC failed; curl 18 transfer closed with outstanding read data
    今天在使用git下载项目时发生报错:error:RPCfailed;curl18transferclosedwithoutstandingreaddataremainingerror:4790bytesofbodyarestillexpectedfatal:earlyEOFfetch-pack:unexpecteddisconnectwhilereadingsidebandpacketfatal:fetch-pack:in......
  • const filePath = fileURLToPath(new URL('plopfile.js', import.meta.url)); 解释一
    这段代码的作用是获取当前文件所在目录下的plopfile.js文件的绝对路径。这里是逐步解释:import.meta.url:这是ESModules中的一个元属性,它提供了当前模块的绝对URL。在Node.js环境中,当你在一个模块文件中访问import.meta.url时,它会返回该模块文件的文件系统路径转换成的URL格......
  • Large Language Models as Data Augmenters for Cold-Start Item Recommendation论文
    LargeLanguageModelsasDataAugmentersforCold-StartItemRecommendation论文阅读笔记Abstract​ LLM的推理和泛化能力可以帮助我们更好地理解用户的偏好和项目特征。我们建议利用LLM作为数据增强器,来弥补在训练过程中对冷启动项目的知识差距。我们使用LLM根据用户历史行......
  • 监听浏览器更新URL参数,实现伪SPA单页面应用
    在老的jqury项目中通常实现SPA一般都采用hash值变化来进行监听,但是有的项目中我们也想采用改变URL参数来进行监听,一般我们使用window.history.pushState方法来改变url参数;为了在使用window.history.pushState或window.history.replaceState后能够检测到浏览器的后退按钮操作,......
  • Springboot报class path resource [xxxxx.json] cannot be resolved to URL because i
    当Springboot解析resources文件下的json文件时,在本地环境好用,部署到服务器上找不到文件内容报错classpathresource[xxxxx.json]cannotberesolvedtoURLbecauseitdosenotexist问题排查(1)pom.xml文件配置<build><resources><resource><d......