【问题标题】:activeX exposed methodsactiveX 暴露方法
【发布时间】:2017-01-17 15:59:01
【问题描述】:

我有一个在本地机器上运行良好的 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>

【问题讨论】:

  • IDL 是正常的,并没有解释为什么你的代码会失败。确保您没有注册旧版本的 DLL。
  • 10xs Hans,activeX从一开始就有AboutBox这个方法。

标签: activex


【解决方案1】:
  1. 您在 Object 标签中使用的类 ID 不正确:

CLASSID="CLSID:871F4F0A-3333-4FDF-A53F-CFB581D15596"

ActiveX 控件类 ID 是 IDL 文件中的最后一个,即

CLASSID="CLSID:E228C560-FA68-48E6-850F-B1167515C920"
  1. 我从代码中想到的是,您的应用程序不是 在object标签中指向CAB文件的完整服务器路径。

    CODEBASE="nsip.CAB"
    

    给出 ActiveX cab 的完整路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多