C # Доступ к Flash COM-объекту с помощью элемента управления WebBrowser - PullRequest
0 голосов
/ 17 октября 2010

У меня есть HTML-страница, которая содержит флэш-файл и некоторую функцию JavaScript, которая возвращает объект флэш-файла.

До сих пор я мог вызывать функцию JavaScript из C # и возвращать ей объект,но я хочу привести его как AxShockwaveFlash и получить доступ к COM-объекту непосредственно из C #.

Я видел, как это было сделано с помощью проигрывателя Windows Media, встроенного в HTML-страницу, но, похоже, он не работает с flash.

<script type="text/JavaScript"> function GetWMP() { return(testing); } <script></p> <p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="857" height="480" id="testing"></p> <p><param name="movie" value="test.swf" /></p> <p><param name="quality" value="high" /></p> <p><param name="bgcolor" value="#ffffff" /></p> <p><param name="allowScriptAccess" value="always" /></p> <p><param name="allowFullScreen" value="true" /></p> <p></object>

Ниже приведен мой код C #, который возвращает объект.

object o = webBrowser1.Document.InvokeScript("ReturnFlash");</p> <p>AxShockwaveFlashObjects.AxShockwaveFlash flash = (AxShockwaveFlashObjects.AxShockwaveFlash)o;

Когда я пытаюсь привести объект к AxShockwaveFlash, егоне удается, но я видел, как работает приведение объекта к WindowsMediaPlayer.

Я попытался выяснить, поддерживает ли AxShockwaveFlash вызовы QueryInterface, согласно сообщению об ошибке, но Google не возвратил значения.

Спасибо

1 Ответ

0 голосов
/ 17 октября 2010

AxShockwaveFlash - это автоматически сгенерированный элемент управления Windows Forms, созданный aximp.exe. Таким образом, вы можете поместить его в форму. Тот объект, который вы получили, не тот контроль. Вы можете приводить только к интерфейсу, предоставляемому упаковщиком взаимодействия, который должен быть ShockwaveFlashObjects.ShockwaveFlash.

...