目标
C++ 从剪贴板中获取在 word、excel中拷贝图片,然后再其他软件中显示该图片,一般bitmap,jpeg,png 是我们常用的渲染格式。所以获取的图片肯能需要转换成常用的格式才能显示
分析
在 word中拷贝图片,在剪贴板中可能存在几种格式如下
CF_DIB,CF_BITMAP
在docx文件中拷贝一张图可能是这种格式
CF_DIB,CF_BITMAP 这类型的图片获取最简单
::GetClipboardData(format) 获取对应的bmp图片就可以了。
HTML Format
在doc文件拷贝多张图是这种格式
我们看一个样例中的html 数据:
<p class=MsoNormal ><img width="554" height="268" src="file:///C:\Users\28748\AppData\Local\Temp\ksohtml23516\wps26.png" ><span style="mso-spacerun:'yes';font-family:等线;font-size:10.5000pt;
mso-font-kerning:1.0000pt;" ><o:p> </o:p></span></p><p class=MsoNormal ><span><span style="position:absolute;z-index:1;margin-left:0.0000px;
margin-top:0.0000px;width:32.0000px;height:32.0000px;" ><img width="32" height="32" src="file:///C:\Users\28748\AppData\Local\Temp\ksohtml23516\wps27.png" ></span></span><span style="mso-spacerun:'yes';font-family:等线;font-size:10.5000pt;
mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal ><span style="mso-spacerun:'yes';font-family:等线;font-size:10.5000pt;
mso-font-kerning:1.0000pt;" ><o:p> </o:p></span></p><p class=MsoNormal