Как элемент управления ATL ActiveX предоставляет логическое значение javascript

#javascript #c #activex #atl

#javascript #c #activex #atl

Вопрос:

Я создаю элемент управления ActiveX с использованием ATL и пытаюсь предоставить свойство, принимающее логическое значение. Я реализовал это следующим образом:

 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? Я хочу найти список типов ATL, которые могут быть доступны JavaScript.

Большое спасибо, Shupining

Ответ №1:

Из кода, который вы предоставляете, STDMETHOD являются правильными, и правильный вызов JavaScript для логического значения — установить его в true.

Хотя я не вижу проблем с размещенным вами кодом, убедитесь, что он «Видимый», а не «видимый».

При отладке вводится вызов ActiveX?

Комментарии:

1. Привет, спасибо за ваш быстрый ответ! Я проверил это, и я уверен, что опечатки нет. и вызов ActiveX не введен. Но при его вызове может быть введен другой метод с параметром void.

2. Интересно. Если вы измените имя «Visible» на «ABCDEFGZZZ», это сработает? Видимое — это такое распространенное имя, что что-то еще может получать вызов первым.

3. Привет, я попытался создать новый проект и скопировал код в новый проект. и, наконец, он работает с тем же кодом. это странно, но в любом случае это работает. Спасибо за всю вашу информацию, которая позволяет мне знать, что тип VARIANT_BOOL работает с javascript.

4. Приятно слышать. Спасибо, что сообщили всем.