2011-06-11 66 views
1

我正在使用ATL創建一個ActiveX控件,並試圖公開一個採用布爾值的屬性。我實現了它如下:ATL ActiveX控件如何將布爾值暴露給javascript

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

回答

0

從你的代碼提供了STDMETHOD的是正確的,正確的JavaScript調用的布爾是將其設置爲true。

儘管我沒有看到您發佈的代碼存在個案問題,但請確保其「可見」不是「可見」。

當您調試時是輸入的ActiveX調用?

+0

嗨,感謝您的快速回復!我已經檢查過了,我確定沒有錯別字。並沒有輸入ActiveX調用。但是當我調用它時,可以輸入另一個帶有void參數的方法。 – Shuping 2011-06-11 14:16:38

+0

有趣。如果您將「Visible」的名稱更改爲「ABCDEFGZZZ」,是否可行?可見是這樣一個普通的名字,其他的東西可能是第一次接到電話。 – 3264 2011-06-12 22:49:48

+0

嗨,我試圖創建一個新項目並將代碼複製到新項目。最後它使用相同的代碼。這很奇怪,但無論如何它的工作。感謝您提供的所有信息,讓我知道VARIANT_BOOL類型可以與JavaScript一起使用。 – Shuping 2011-06-15 10:20:38