Доброго всем дня!
Есть такой известный ActiveX компонент MediaPlayer и один из его интерфейсов IMediaPlayer.
Если в javascript сделать следующее:
var player = new ActiveXObject("MediaPlayer.MediaPlayer")
player.FilePath="путь_к_файлу"
player.Play()
, вставить этот скрипт в html и запустить, то все прекрасно работает.
Но если я с помошью oleview создаю tlb компонента, потом с помощью MFC ClassWizard создаю класс из этого tlb, то при вызове метода Play() вызывается исключение с description "Unknown exception", хотя часть других методов и свойств отрабатываются нормально.
IMediaPlayer player;
player.CreateDispatch("MediaPlayer.MediaPlayer"); // ok
player.AboutBox(); // ок. выводит about диалог
player.SetFilePath("путь_к_файлу"); // ok
player.Play(); // exception
Те же грабли с библиотекой LuaCOM для языка Lua, хотя там работа с COM объектами написана на С.
local player=luacom.CreateObject("MediaPlayer.MediaPlayer")
player:AboutBox() -- ok
player.FilePath="путь_к_файлу" --ok
player:Play() -- error
В чем может быть ошибка?