我们有一个使用C++/ATL实现的COM对象,其中包含一个将返回DIB的方法。我们还在编写一个将使用此COM对象的.NET应用程序。既然我们正在编写这两个文件,我们可以自由决定如何最好地从COM对象返回这个DIB。为了澄清,最好是将本机窗口句柄返回给DIB或字节数组,还是有其他方法可以轻松将Windows DIB转换为.NET Image对象?并且,与这个问题有关:一旦我有了这个返回的DIB,我怎么能把它变成一个.NET Image对象?如何使用COM对象将在C++/COM库中实现的DIB转换为.NET客户端
0
A
回答
2
COM/OLE具有用于表示称为IPicture(及其易于使用脚本的版本IPictureDisp)的图形图像的标准接口。
COM为您提供了这些接口的实现。你可以通过拨打OleCreatePictureIndirect()来获得它。您只需将它带有您的图形PICTDESC structure,它会为您提供一个界面。您应该能够将该接口交给调用程序。这也将使您的对象与其他COM客户端如VB6兼容。
回到.NET土地,您可以使用Microsoft.VisualBasic.Compatibility.VB6.IPictureToImage()将IPicture变成图像。
1
看看CodeProject上的文章DIB to System.Bitmap。它具有将代码从DIB转换为位图的代码。这个想法是,DIB使用IntPtr表示。
相关问题
- 1. 使用.NET客户端调试COM对象
- 2. PowerShell:如何将COM对象转换为.NET互操作类型?
- 3. 如何将DIB转换为TPNGObject?
- 4. 在Java中使用Oauth2实现的客户端库
- 5. GWT(客户端)=如何将对象转换为JSON并发送到服务器?
- 6. 如何使用libtiff将DIB转换为tif
- 7. 将相当简单的C#类库转换为COM对象?
- 8. 如何将.net对象暴露给远程C++客户端
- 9. 如何将json对象从java发送到.net客户端?
- 10. 如何使用.NET和C#将数据集对象转换为JSON对象?
- 11. 如何将DataSet转换为C#中的用户对象?
- 12. .NET事件给C++ COM客户端
- 13. 将.net用户控件转换为COM组件
- 14. 在.NET Framework 4中使用GData .NET客户端库
- 15. 如何将标准COM对象转换为ActiveX?
- 16. 如何将管理对象强制转换为COM接口?
- 17. 如何将COM对象类型转换为Excel.Checkbox类型
- 18. 使用UCMA的Lync客户端实现
- 19. 如何将LinkedIn客户端的rails转换为哈希
- 20. 如何将Node.js缓冲区转换为客户端的整数?
- 21. 前端客户端的用户对象
- 22. 如何将.net库实现为Navision?
- 23. 将.Net对象转换为视图中的JSON对象
- 24. 在C#.NET中使用C++中的COM对象返回对象[]
- 25. 如何将Delphi的.NET COM对象的实例传递给另一个.NET COM对象?
- 26. 如何在Node.js中实现读/写客户端(如POP3客户端)
- 27. 将.NET对象转换为(字节*)
- 28. 如何使用Java客户端在Riak中存储对象?
- 29. 如何在C#中将数据库对象转换为int?
- 30. 将C++ vb6 COM对象转换成dot net