Javascript 使用可选输入设置ActiveX属性

Javascript 使用可选输入设置ActiveX属性,javascript,internet-explorer,com,activex,Javascript,Internet Explorer,Com,Activex,我试图通过javascript设置activeX属性。我正在使用OLE/COM对象查看器,设置如下所示: [id(0x0000001e), propput, helpstring("property Param")] void Param( [in] ParamCodes Params, [in, optional, defaultvalue(1)] long lRec, [in, optiona

我试图通过javascript设置activeX属性。我正在使用OLE/COM对象查看器,设置如下所示:

[id(0x0000001e), propput, helpstring("property Param")]
void Param(
                [in] ParamCodes Params, 
                [in, optional, defaultvalue(1)] long lRec, 
                [in, optional, defaultvalue(1)] long lEntry, 
                [in] VARIANT rhs);

我可以通过var channel=mvc.Param0x2004001a访问参数。但是,如果我尝试使用mvc.Param0x2004001a=100设置属性,javascript将停止运行。我也无法使用mvc.Param0x2004001a,4,5的可选参数访问或设置任何其他记录。我是否为此使用了不正确的语法,或者我必须继续调用mvc.Invoke road吗?

该方法错误地使用了可选的/defaultvalue属性,我认为这是行不通的,也不可能奏效

MIDL编译器接受从左到右的以下参数顺序:

所需参数没有[defaultvalue]或[optional]属性的参数, 带或不带[defaultvalue]属性的可选参数, 具有[optional]属性且不具有[defaultvalue]属性的参数, [lcid]参数,如果有, [retval]参数 您假设最后一个[in]参数将是属性赋值,并且可以从上面的列表中排除,从而允许您使用可选的访问器参数,但是这不是一个有文档记录的行为,然后-也许更重要的是-JS引擎几乎不支持这一点,它对自动化属性有自己的限制


去掉可选参数,不清楚什么是ParamCodes和接口属性/定义,它们本身可能有问题,阻止您在JS中使用属性。

谢谢您的回答,我已经解决了这个问题。这与COM对象如何以只读方式打开文件有关。我设置了正确的属性,并且能够访问mvc所需的ParamCode。Param0x2004001a,1,1=100..现在有意义了,因为您明确提供了所有参数-由于上述原因,您的optionality属性可能会被忽略。