Windows CE 系統進程外組件應用開發

這篇文章說明了如何使用 WindowS CE 6.0 系統的 DCOM ,開發 com 服務進程。向客戶端提供跨進程的 COM 組件服務,以及自定義接口代理 / 存根 dll 的建立,註冊。

假定你需要創建一個實時的控制程序,需要一直在後臺運行着,而你的客戶端卻是多個或多樣性,客戶端的開發語言不確定性。這就需要創建一個 COM 服務進程程序。


 

Windows CE 鏡像中需要包括 DCOM 組件服務

       不幸的是由於系統空間的限制,很多基於 Windows CE 系統的 OS 都不支持 DCOM 需要使用 Platfom Builder 向我們的 Windows CE 鏡像中添加 DCOM

       另外必須導出支持 DCOM API Windows CE SDK 開發包。

其它的一些工具我們需要準備的註冊工具

GuiRegsvrCE.exe  用於註冊你的 COM DLLs

這類工具可以在網上搜索到

 

創建 COM Server

       由於 Windows CE 不支持自動化列集 / 散集,因此我們需要建立自己的代理 / 存根,用與 COM Server Client 之間的接口方法參數的列集與散集。當然,在 windows XP/2000 系統中,如果我們在 COM 方法中使用 OLE 兼容的數據類型,我們可以不提供代理 / 存根 DLL 。如果需要使用自定義的數據類型則都需要建立對應的代理 / 存根代碼,並註冊之後才能使用。

       由於上述原因,開發 WindowsCE COM Server 時,需要將 IDL 文件 LIBRARY 塊中的 dispinterface 定義代碼移到 LIBRARY 塊外部來。所有的接口都必須在 LIBRARY 快的外部定義,這樣 MIDL 編譯器將生成恰當的代理 / 存根代碼。

       注意, sink dispainterface 接口被重定義,被標識爲 dual 並從 IDispatch 接口派生。、

 

 

 

代理存根 DLL 的創建 Proxy/Stub

PC 端的代理存根的創建差不多,需要注意的是,需要定義一些宏才能編譯通過。另外定義一個 def 文件,註明要到處的函數。

 

編譯好以上兩個工程之後,基本上進程外 COM Server 工作算是完成了。在機器是使用是還需註冊才行。

 

 

如何調用進程外組件 Client 程序)

       對應客戶端而已,基本上和調用進程內組件沒什麼區別了。在這裏我提供了一些輔助代碼《EventHandler.h》,協助客戶端在不使用 ATL 情況下接受 COM Server 的事件。


源代碼下載: http://download.csdn.net/source/3080188

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章