参数类型不对啊,首先你要知道ActiveX的API,一般直接OBJECTId.XXXfun()都可以调用,你试试数组和Object看看

解决方案 »

  1.   


    调用格式没问题,var tmpMsg = window.document.all("aa").NewScanParamsIntf(a,b); 或var tmpMsg = document.getElementById("aa").NewScanParamsIntf(a,b); 都可以JS中的类型是弱类型,出错的原因是因为和ActiveX参数的类型不一致找找看ActiveX中的参数是什么数据类型的两边都统一就可以了
      

  2.   


    调用格式没问题,var tmpMsg = window.document.all("aa").NewScanParamsIntf(a,b); 或var tmpMsg = document.getElementById("aa").NewScanParamsIntf(a,b); 都可以JS中的类型是弱类型,出错的原因是因为和ActiveX参数的类型不一致找找看ActiveX中的参数是什么数据类型的两边都统一就可以了
      

  3.   

    那Activex里的接口应该在javascript里用什么类表示呢?我用了Object和Array的,还是抱类型不匹配
      

  4.   

    是啊,我也觉得就是你说的问题,但是Activex里NewScanParamsIntf方法的参数是实现了IDispatch接口的两个类,定义如下:
    // *********************************************************************//
    // DispIntf:  IScanParamsDisp
    // Flags:     (320) Dual OleAutomation
    // GUID:      {6BCBAC37-8F84-4E75-9B9C-1C1CD24CC3D5}
    // *********************************************************************//
      IScanParamsDisp = dispinterface
        ['{6BCBAC37-8F84-4E75-9B9C-1C1CD24CC3D5}']
        property InFileName: WideString dispid 1;
        ......
      end;
    // *********************************************************************//
    // DispIntf:  IScanParamsExDisp
    // Flags:     (320) Dual OleAutomation
    // GUID:      {F9CDC221-7395-4A3D-8AFB-33F80636CB72}
    // *********************************************************************//
      IScanParamsExDisp = dispinterface
        ['{F9CDC221-7395-4A3D-8AFB-33F80636CB72}']
        property caLeft: Integer dispid 1;
        ......
      end;
    这种类型如何在JavaScript中声明呢?