Windows 窗体 ActiveX 控件导入程序 (Aximp.exe)

2545阅读 0评论2011-05-28 天海一线
分类:嵌入式

ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。

Windows 窗体只能承载 Windows 窗体控件,即从 派生的类。Aximp.exe 生成可承载于 Windows 窗体上的 ActiveX 控件的包装类。这使您得以使用可应用于其他 Windows 窗体控件的同一设计时支持和编程方法论。

若要承载 ActiveX 控件,必须生成从 派生的包装控件。此包装控件包含基础 ActiveX 控件的一个实例。它知道如何与 ActiveX 控件通信,但它显示为 Windows 窗体控件。这个生成的控件承载 ActiveX 控件并将其属性、方法和事件公开为生成控件的属性、方法和事件。

aximp [options]{file.dll | file.ocx}

参数

说明

文件

包含要转换的 ActiveX 控件的源文件名。文件参数中必须有扩展名 .dll 或 ocx。

选项

说明

/delaysign

指定 Aximp.exe 用延迟的签名操作对结果控件进行签名。此选项必须与 /keycontainer:/keyfile:/publickey: 选项一起指定。有关延迟的签名过程的更多信息,请参见

/help

显示该工具的命令语法和选项。

/keycontainer: 容器名称

使用在 容器名称 指定的密钥容器中找到的公钥/私钥对,用强名称对产生的控件进行签名。

/keyfile: 文件名

使用在 文件名 中找到的发行者的正式公钥/私钥对,用强名称对产生的控件进行签名。

/nologo

取消显示 Microsoft 启动标题。

/out: 文件名

指定要创建的程序集的名称。

/publickey: 文件名

使用在 文件名 指定的文件中找到的公钥,用强名称对产生的控件进行签名。

/silent

取消显示成功消息。

/source

生成 Windows 窗体包装的 C# 源代码。

/verbose

指定详细模式;显示附加的进度信息。

/?

显示该工具的命令语法和选项。

Aximp.exe 一次转换整个 ActiveX 控件类型库,并产生一组程序集,这些程序集包含在原始类型库中定义的类型的公共语言运行库元数据和控件实现。生成的文件按照下面的模式命名:

COM 类型的公共语言运行库代理:progid.dll

ActiveX 控件的 Windows 窗体代理(其中 Ax 表示 ActiveX):Axprogid.dll

说明:

如果 ActiveX 控件的成员名称与 .NET Framework 中定义的名称匹配,则 Aximp.exe 在创建 AxHost 派生类时,将在成员名称前加上前缀“Ctl”。例如,假设 ActiveX 控件有一个名为“Layout”的成员,由于在 .NET Framework 中定义了 Layout 事件,因此该成员在 AxHost 派生类中将重命名为“CtlLayout”。

可以使用 这样的工具检查这些生成的文件。

不支持使用 Aximp.exe 为 ActiveX WebBrowser 控件 (shdocvw.dll) 生成 .NET 程序集。

在对 shdocvw.dll 运行 Aximp.exe 时,该工具始终会在运行它的目录中创建另一个名为 shdocvw.dll 的文件。如果将此生成文件放在“Documents and Settings”目录下,则会导致 Microsoft Internet Explorer 和 Windows 资源管理器出现问题。重启计算机时,Windows 在查看 system32 目录之前首先查看“Documents and Settings”目录,以查找 shdocvw.dll 的副本。它将使用在“Documents and Settings”目录中找到的副本,并尝试加载托管的包装。由于 Internet Explorer 和 Windows 资源管理器依赖于 system32 目录中的 shdocvw.dll 版本中的呈现引擎,因此它们将无法正常工作。如果出现此问题,请在“Documents and Settings”目录中删除 shdocvw.dll 的副本,然后重启计算机。

通过对 shdocvw.dll 使用 Aximp.exe 来创建用于应用程序开发的 .NET 程序集也会导致问题。在此情况下,应用程序将同时加载 shdocvw.dll 的系统版本和生成版本,并可能为系统版本赋予更高的优先级。此时,如果尝试加载 WebBrowser ActiveX 控件内的网页,用户可能会收到打开/保存对话框提示。当用户单击“打开”时,将在 Internet Explorer 中打开该网页。此情况只出现在运行 Internet Explorer 版本 6 或更早版本的计算机上。若要防止此问题,请使用托管 控件或使用 Visual Studio 生成托管的 shdocvw.dll,如中所述。

下面的命令为媒体播放器控件 msdxm.ocx 生成 MediaPlayer.dll 和 AxMediaPlayer.dll。

aximp c:\systemroot\system32\msdxm.ocx
参考
 
以上转自msdn
上一篇:Windows下,使用dumpcpp 方式访问 COM 接口的方法
下一篇:aximp, tlbimp,MIDL