ATL ActiveX控件如何向javascript公开布尔值

ATL ActiveX控件如何向javascript公开布尔值,javascript,c++,activex,atl,Javascript,C++,Activex,Atl,我正在使用ATL创建一个ActiveX控件,并试图公开一个采用布尔值的属性。我的实施如下: STDMETHOD(get_Visible)(VARIANT_BOOL *pVal); STDMETHOD(put_Visible)(VARIANT_BOOL newVal); 在JavaScript函数中,我通过以下代码调用此函数: MyAxCtl.Visible = true; //MyAxCtl.Visible = "true"; //MyAxCtl.Visible = "TRUE"; //MyA

我正在使用ATL创建一个ActiveX控件,并试图公开一个采用布尔值的属性。我的实施如下:

STDMETHOD(get_Visible)(VARIANT_BOOL *pVal);
STDMETHOD(put_Visible)(VARIANT_BOOL newVal);
在JavaScript函数中,我通过以下代码调用此函数:

MyAxCtl.Visible = true;
//MyAxCtl.Visible = "true";
//MyAxCtl.Visible = "TRUE";
//MyAxCtl.Visible = "VARIANT_TRUE";
//MyAxCtl.Visible = -1;
//MyAxCtl.Visible = "-1";
然而,它们都不起作用。所以,我的问题是如何将ATL ActiveX控件中的布尔值公开给JavaScript

此外,任何人都可以告诉我在哪里可以找到关于ATL类型和JavaScript类型之间通信的文档?我想找到一个可以暴露于JavaScript的ATL类型列表

非常感谢,,
Shupining

根据您提供的代码,STDMETHOD是正确的,对布尔值的正确JavaScript调用是将其设置为true

虽然我没有看到您发布的代码存在案例问题,但请确保它是可见的而不是可见的


调试时是否输入ActiveX调用?

您好,感谢您的快速回复!我已经检查过了,我确信没有打字错误。并且未输入ActiveX调用。但是当我调用它时,可以输入另一个带有void参数的方法。如果您将Visible的名称更改为abcdefgzz,这是否有效?Visible是这样一个普通的名字,其他人可能会先接到电话。您好,我尝试创建一个新项目,并将代码复制到新项目中。最后,它使用相同的代码。这很奇怪,但不管怎样,它是有效的。感谢您提供的所有信息,让我知道类型VARIANT_BOOL可以与javascript一起工作。很高兴听到。谢谢你让大家知道。