我們有一個使用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