ActiveX 控件導(dǎo)入程序?qū)?ActiveX 控件的 COM 類型庫中的類型定義轉(zhuǎn)換為 Windows 窗體控件。
Windows 窗體只能承載 Windows 窗體控件——即從 System.Windows.Forms.Control 派生的類。Aximp.exe 生成可承載于 Windows 窗體上的 ActiveX 控件的包裝類。這使您得以使用可應(yīng)用于其他 Windows 窗體控件的同一設(shè)計(jì)時(shí)支持和編程方法論。
若要承載 ActiveX 控件,必須生成從 System.Windows.Forms.AxHost 派生的包裝控件。此包裝控件包含基礎(chǔ) ActiveX 控件的一個(gè)實(shí)例。它知道如何與 ActiveX 控件通訊,但它顯示為 Windows 窗體控件。這個(gè)生成的控件承載 ActiveX 控件并將其屬性、方法和事件公開為生成控件的屬性、方法和事件。
aximp [options]{file.dll | file.ocx}
參數(shù) 說明
file 包含要轉(zhuǎn)換的 ActiveX 控件的源文件名。文件參數(shù)中必須有擴(kuò)展名 .dll 或 ocx。
選項(xiàng) 說明
/delaysign 指定 Aximp.exe 用延遲的簽名操作對(duì)結(jié)果控件進(jìn)行簽名。此選項(xiàng)必須與 /keycontainer:、/keyfile: 或者 /publickey: 選項(xiàng)一起指定。有關(guān)延遲簽名進(jìn)程的更多信息,請(qǐng)參閱延遲為程序集簽名。
/help 顯示此工具的命令語法和選項(xiàng)。
/keycontainer:containerName 借助于在 containerName 所指定的密鑰容器中找到的公鑰/私鑰對(duì),用強(qiáng)名稱對(duì)結(jié)果控件進(jìn)行簽名。
/keyfile:filename 借助于在 filename 中找到的發(fā)行者的正式公鑰/私鑰對(duì),用強(qiáng)名稱對(duì)結(jié)果控件進(jìn)行簽名。
/nologo 取消顯示 Microsoft 啟動(dòng)標(biāo)題。
/out:filename 指定要?jiǎng)?chuàng)建的程序集的名稱。
/publickey:filename 借助于在 filename 所指定的文件中找到的公共密鑰,用強(qiáng)名稱對(duì)結(jié)果控件進(jìn)行簽名。
/silent 取消顯示成功消息。
/source 生成 Windows 窗體包裝的 C# 源代碼。
/verbose 指定詳細(xì)模式;顯示附加的進(jìn)度信息。
/? 顯示此工具的命令語法和選項(xiàng)。
備注
Aximp.exe 一次轉(zhuǎn)換整個(gè) ActiveX 控件類型庫,并產(chǎn)生一組程序集,這些程序集包含在原始類型庫中定義的類型的公共語言運(yùn)行庫元數(shù)據(jù)和控件實(shí)現(xiàn)。生成的文件按照下面的模式命名:
COM 類型的公共語言運(yùn)行庫代理:<progid>.dll。
ActiveX 控件的 Windows 窗體代理(其中 Ax 表示 ActiveX):Ax<progid>.dll
可以使用如 Ildasm.exe 這樣的工具來檢查這些文件。
注意,在 ActiveX 控件 shdocvw.dll 上運(yùn)行 Aximp.exe 將總是在運(yùn)行該工具的目錄中創(chuàng)建另一個(gè)名為 shdocvw.dll 的文件。如果將此生成文件放在“Documents and Settings”目錄下,則會(huì)導(dǎo)致 Microsoft Internet Explorer 和 Windows 資源管理器出現(xiàn)問題。重啟計(jì)算機(jī)時(shí),Windows 在查看 system32 目錄之前首先查看“Documents and Settings”目錄,以查找 shdocvw.dll 的副本。它將使用在“Documents and Settings”目錄中找到的副本,并嘗試加載托管的包裝。由于 Internet Explorer 和 Windows 資源管理器依賴于 system32 目錄中的 shdocvw.dll 版本中的呈現(xiàn)引擎,因此它們將無法正常工作。如果出現(xiàn)此問題,請(qǐng)?jiān)凇癉ocuments and Settings”目錄中刪除 shdocvw.dll 的副本,然后重啟計(jì)算機(jī)。
示例
下面的命令為媒體播放器控件 msdxm.ocx 生成 MediaPlayer.dll 和 AxMediaPlayer.dll。
aximp c:\winnt\system32\msdxm.ocx