Я работаю с элементом управления 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?
В качестве альтернативы я могу просто реализовать свой собственный диалог, но предпочел бы использовать предоставленный.