当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 使用Visual C++实现OLE剪贴板 南京市随园8-2号702室 王珂---- 一、概述 ---- 在Windows操作系统中存在两种剪贴板机制:Windows标准剪贴板和OLE剪贴板机制。
 

 

 ·cximage类库的简介    »显示摘要«
    摘要:在向大家介绍cximage类库之前,先向大家推荐一个优秀的站点: http://www.codeproject.com。这个站点有很多值得收藏的文章和源码。本文就是根据此站点相关信息写成。 cximage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如openil,freeimage,paintlib等等,它们可谓是功能强大,齐全,没......
    摘要:使用vc的时间也不短了,最近才注意到vc里也可以定制宏。自己写了下面的3个,效果很好,大大延长了键盘的使用寿命。介绍给大家,希望能各位提供帮助。 1. 添加函数注释块 vc里自带宏文件sample.dsm中有一个addfunctiondescription的宏也能给函数增加注释块,但是格式比较简单,修改很麻烦。所以自己根据自己注释格式另写了一个宏,并且,只有简单修改程序中的数据,就可以很方......


使用Visual C++实现OLE剪贴板
使用visual c++实现ole剪贴板 南京市随园8-2号702室

王珂

---- 在windows操作系统中存在两种剪贴板机制:windows标准剪贴板与ole剪贴板机制. 【程序编程相关:VC++编程常见问题解答十二

---- 一.概述 【推荐阅读:VC++对话框的任意扩展

---- 自从ole(object linking and embedding,对象链接与嵌入)诞生之后,windows操作系统中便出现了第二种剪贴板机制——ole剪贴板机制.标准的windows剪贴板api(application programming interface,应用程序编程接口)依然可用,但是他已经被ole数据传输机制来实现了.ole支持udt(uniform data transfer,统一数据传输),并可以通过拖放操作实现剪贴板的剪切.复制与粘贴等操作.ole剪贴板除了拥有标准windows剪贴板的性能外,还支持传输用户自定义的剪贴板格式,并能够在传输数据时绑定ole格式(如字体.字号等).ole剪贴板机制将成为更为主要的数据传输机制. 【扩展信息:CListCtrl使用详解

---- 标准的windows剪贴板是一个被所有windows应用程序共享的系统服务,因此它并没有自己的句柄或类.但你可以通过cwnd类的成员函数来管理剪贴板.

---- 本文将简要叙述标准windows剪贴板的实现,并将重点放在讨论如何通过visual c++实现ole剪贴板上.

---- 二.选择适当的剪贴板机制

---- 在选择使用何种剪贴板机制时通常应遵循下面的原则:

---- 如果应用程序在将来又可能具有新的性能(比如现在只需要传输纯文本,但将来有可能需要另外传输字体等特性),那么使用ole剪贴板.

---- 如果你正在使用一个ole应用程序,或者你希望使用任何ole特性(如拖放等)那么你应当使用ole剪贴板机制.

---- 如果你提供了ole格式(如字体.字号等),那么使用ole剪贴板机制.

---- 三.使用windows标准剪贴板

---- 大多数windows下的应用程序支持剪切或复制数据到windows剪贴板中以及从剪贴板粘贴数据至目的地.在这个过程中,剪贴板数据格式在多种应用程序之间发生了变化.系统构架仅仅通过实现一些有限的类来支持一些有限的剪贴板格式,下表列出了windows标准剪贴板支持的格式(第一列“值”将在下面的程序代码中使用).

值 含义 cf_bitmap 一个对应于位图的句柄(hbitmap). cf_dib 一个包含bitmapinfo结构并且 跟着位图数据的内存对象. cf_dif 数据交互格式 cf_dspbitmap 有一个私有格式的位图显示格式. cf_dspenhmetafile 有一个私有格式的增强的元文件的显示格式. cf_dspmetafilepict 有一个私有格式的元图显示格式. cf_dsptext 有一个私有格式的文本显示格式. cf_enhmetafile 一个增强的元文件(henhmetafile结构)的句柄. cf_gdiobjfirst到 cf_gdiobjlast 应用软件定义 的一系列gdi对象的整型值. cf_hdrop 一个hdrop类型的句柄,用来标识一列文件.
...   下一页
    摘要:我不知道大家有没有碰到过这样的问题,代码如下: ace_asynch_acceptor<receiver> acceptor; ace_inet_addr addr= ace_inet_addr("hastatus"); if (acceptor.open (addr, initial_read_size, 1) == -1) return -1;可是怎么样才能获得......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE