上传图片——Word 2007高级应用(十)
2008-09-28 20:18:33 来源:WEB开发网结果是让人欣喜的,原来Image实现了IStream接口(该接口的托管定义可以在System.Runtime.InteropServices.ComTypes命名空间里找到),这样,我们就可以继续走下去了。
增值服务区
Converting between IPictureDisp and System.Drawing.Image,Andrew Whitechapel
Platform Invocation Services in .NET Framework,Dinesh Ahuja
有了这些准备,我们就可以写一个辅助方法读取Image的数据了:
需要说明的是,IStream.Stat() 方法的第二个参数可取STATFLAG枚举的任一值,我尝试给它传个0,以便获取图片名字用于稍后的上传,无奈只得一个null,只好换回1,让它无需在返回的STATSTG结构中包含pwcsName成员的值。至于图片的上传,我选择使用Cook Computing的XML-RPC.NET类库来访问博客园的MetaWeblog API。
下载xml-rpc.net.2.1.0.zip压缩包,从中解出CookComputing.XmlRpcV2.dll和MetaWeblogAPI.cs两个文件,修改一下MetaWeblogAPI.cs中IMetaWeblog接口,使它继承自IXmlRpcProxy接口(否则后面没有办法指定MetaWeblog API的URL),接着把它们都添加到项目里,然后就可以实现PublishPicture() 方法了:
现在万事俱备,只欠在ThisAddIn类中重写RequestService() 方法了:
至此,上传图片问题的探讨要告一段落了。此时,有人可能会问,这个扩展能工作吗?是的,到目前为止,这个系列的文章都是在Word 2007上完成并发布的。虽然这个扩展还有很多地方需要完善,不过作为一个探索的手段,我想这已经足够了。开发并不是软件的全部,要使软件成功发挥作用,我们就不能忽略/忽悠部署这个环节。下一回,最终回,我们将探讨插件的部署以及其它相关的问题。
更多精彩
赞助商链接