翻譯|其它|編輯:郝浩|2006-06-23 16:51:00.000|閱讀 1961 次
概述:
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
適用于:
ActiveX
Microsoft .NET Compact Framework 版本 2.0
摘要:了解如何在使用 .NET Compact 的應(yīng)用程序中宿主 ActiveX 控件。本文提供代碼示例下載。
從 Microsoft Download Center 下載 。
簡(jiǎn)介
Microsoft .NET Compact Framework 版本 2.0 引入了組件對(duì)象模型 (COM) 支持 - 這是一項(xiàng)版本 1.0 中沒(méi)有的功能。以下事實(shí)或許能充分說(shuō)明對(duì)該功能的迫切需要:Odyssey Software 已經(jīng)發(fā)布了 CFCOM 產(chǎn)品(該工具用于突破對(duì) COM 支持的限制,允許調(diào)用 COM 接口以及宿主 ActiveX 控件的工具),緊接著 .NET Compact Framework 立即發(fā)布了測(cè)試版。
盡管如此,在 .NET Compact Framework 中提供的 COM Interop 支持仍然是一個(gè)巨大進(jìn)步。通過(guò) COM 接口,Windows CE 中有越來(lái)越多的操作系統(tǒng)功能獲得支持。這些功能大致包括 UPnP、藍(lán)牙和 SDP、圖像處理、消息隊(duì)列(也稱(chēng)作 MSMQ)、MAPI、Pocket Outlook 對(duì)象模型 (POOM),以及其他許多重要的操作系統(tǒng)功能。在 .NET Compact Framework 版本 2.0 推出之前,開(kāi)發(fā)人員不得不使用 C++ 創(chuàng)建填充程序。現(xiàn)在,開(kāi)發(fā)人員可以直接從托管代碼使用大多數(shù) COM 接口,因此無(wú)需編寫(xiě)或分發(fā)特定于處理器的非托管模塊。
.NET Compact Framework 2.0 中的 COM 支持與其桌面計(jì)算機(jī)中對(duì)應(yīng)的功能相比仍存在一些局限性。例如,不支持外部激活。您不能在托管代碼中編寫(xiě)?yīng)毩⒌?COM 組件;如果可以,那么 COM 組件就可能已經(jīng)在一個(gè)規(guī)則的非托管 Win32 進(jìn)程中實(shí)例化了。因?yàn)橥泄艽a需要公共語(yǔ)言運(yùn)行庫(kù) (CLR) 才能執(zhí)行,所以這種安裝需要 Win32 進(jìn)程來(lái)宿主 CLR。因?yàn)?CLR 宿主不是 .NET Compact Framework 2.0 的功能,所以整個(gè)外部激活模型都不可用。
.NET Compact Framework 2.0 中缺少的另一個(gè)重要功能是控件宿主。由于時(shí)間和資源所限,框架的最終版本中未包含該功能。但是,宿主一個(gè)控件所需要的全部功能都包含在框架中。托管到 COM 的調(diào)用(運(yùn)行時(shí)可調(diào)用的包裝 [RCW]);COM 到托管(COM 可調(diào)用的包裝 [CCW]);連接點(diǎn);回調(diào);以及對(duì)控件句柄的訪問(wèn)(最終!)- 這些功能都包括在內(nèi)。本文將為您介紹宿主一個(gè)控件需要采取的步驟。
本文的內(nèi)容要求您熟悉 Win32 和 COM。雖然不閱讀本文也可以使用所描述的控件宿主框架,但還是建議您閱讀本文,因?yàn)檫@會(huì)幫助您了解底層的復(fù)雜性。
控件和容器
ActiveX 容器是控件宿主的主要概念之一。ActiveX 容器是一個(gè)實(shí)體,用于為 ActiveX 控件提供運(yùn)行環(huán)境。有關(guān) ActiveX 控件和容器的基本信息越來(lái)越難找了。MSDN 網(wǎng)站上或軟件開(kāi)發(fā)工具包 (SDK) 中似乎都沒(méi)有這樣的示例:說(shuō)明如何不使用工具(如活動(dòng)模板庫(kù) (ATL) 或 Microsoft 基礎(chǔ)類(lèi) (MFC) 庫(kù))即可編寫(xiě)容器或控件。不得不承認(rèn),ATL 為此提供了巨大的幫助 - 但不是在您需要從頭實(shí)現(xiàn)一個(gè)基本容器時(shí)。本文結(jié)尾處的文章列表幾乎涵蓋了 MSDN 網(wǎng)站提供的有關(guān)該主題的所有文章。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn