我有一个在本地机器上运行良好的 MFC activeX,但是当我尝试在服务器上(在 LAN 上)使用时,我得到对象没有方法 AboutBox 的异常(例如)。这就是我调用该方法的方式: document.all('Ctrl1').AboutBox(); AboutBox 方法来自于activeX 的Ctrl 类。他有这个方法。我注意到 idl 文件中有一些奇怪的东西:方法 AboutBox 没有在控件中声明,而是在其他地方声明 - idl 文件在下面,请指教。谢谢,那鸿。
这是idl:
[ uuid(E0D6BB50-57F3-4C0D-9163-CCC0AEC87EF4), version(1.0),
control ]
library nsip_ax_10Lib
{
importlib(STDOLE_TLB);
// Primary dispatch interface for Cnsip_ax_10Ctrl
[
uuid(16C6DE45-B481-4795-AFBA-BE64E1CEF9AA)
]
dispinterface _Dnsip_ax_10
{
properties:
methods:
[id(DISPID_ABOUTBOX)] void AboutBox();
[id(1)] BYTE try2(void);
};
// Event dispatch interface for Cnsip_ax_10Ctrl
[
uuid(871F4F0A-3333-4FDF-A53F-CFB581D15596)
]
dispinterface _Dnsip_ax_10Events
{
properties:
// Event interface has no properties
methods:
};
// Class information for Cnsip_ax_10Ctrl
[
uuid(E228C560-FA68-48E6-850F-B1167515C920)
]
coclass nsip_ax_10
{
[default] dispinterface _Dnsip_ax_10;
[default, source] dispinterface _Dnsip_ax_10Events;
};
};
加载 activeX 的 HTML 代码:
<OBJECT CLASSID="CLSID:871F4F0A-3333-4FDF-A53F-CFB581D15596"
CODEBASE="nsip.CAB#version=1,0,0,1"
ID="Ctrl1"
name="Ctrl1"></OBJECT>