Я работаю с элементом управления ActiveX в Internet Explorer 8, который отображает диалоговое окно сохранения файла, в котором пользователь может выбрать имя и тип файла (jpg, gif и т. Д.). Эти значения передаются в код, а затем используются в другом методе для сохранения файла. К сожалению, метод, который вызывает диалог, не имеет возвращаемого значения, а имя файла и тип файла передаются как из параметров.
Подпись метода (выраженная в Visual Basic) выглядит следующим образом:
Public Sub SaveFileDialog( _
ByVal bstrDialogType As Variant, _
ByRef pbstrFileName As String, _
ByRef out_pvType As Long _
)
Два параметра ByRef являются параметрами out .
Я написал следующий код JavaScript:
try
{
var saveFileName, saveFileType; // out variables
gxVideoPlayBack.SaveFileDialog("image", saveFileName, saveFileType);
alert(saveFileName); // displays "undefined"
alert(saveFileType); // displays "undefined"
}
catch(error)
{
if(!error.number === -2147221484) // User clicked cancel.
{
alert(error.message);
}
}
Код работает в том смысле, что элемент управления ActiveX создает свое диалоговое окно, и я могу справиться с ошибочными условиями, но Я не могу понять, как получить значения параметров out .
В коде gxVideoPlayBack является ссылкой на элемент управления ActiveX, встроенный в DOM через элемент HTML.
Если JavaScript не будет работать для этого, можно ли это сделать в VBScript?
В качестве альтернативы я могу просто реализовать свой собственный диалог, но лучше использовать предоставленный.