【问题标题】:How ATL ActiveX control exposes a Boolean value to javascriptATL ActiveX 控件如何向 javascript 公开布尔值
【发布时间】:2023-04-01 10:42:01
【问题描述】:

我正在使用 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 类型列表。

非常感谢, 舒屏宁

【问题讨论】:

    标签: javascript c++ activex atl


    【解决方案1】:

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

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

    调试时是否输入了ActiveX调用?

    【讨论】:

    • 您好,感谢您的快速回复!我已经检查过了,我确定没有错字。并且没有输入 ActiveX 调用。但是当我调用它时可以输入另一个带有void参数的方法。
    • 有趣。如果您将“Visible”的名称更改为“ABCDEFGZZZ”,是否有效?可见是一个常见的名字,其他人可能会第一个打电话。
    • 您好,我尝试创建一个新项目并将代码复制到新项目中。最后它使用相同的代码。这很奇怪,但无论如何它都有效。感谢您提供的所有信息,让我知道 VARIANT_BOOL 类型适用于 javascript。
    • 很高兴听到。感谢您让大家知道。
    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 2011-04-04
    • 2014-12-11
    • 2012-09-23
    • 2011-02-04
    • 2013-02-08
    • 1970-01-01
    • 2010-12-16
    相关资源
    最近更新 更多