C#使用WebBrowser控件访问Flash COM对象

时间:2010-10-17 11:31:12

标签: c# flash webbrowser-control

我有一个HTML页面,其中包含一个Flash文件和一些返回flash文件对象的JavaScript函数。

到目前为止,我可以从C#调用JavaScript函数并让它返回一个Object,但是我希望将其转换为AxShockwaveFlash并直接从C#访问COM对象。

我已经在嵌入HTML页面的Windows Media Player中看到了这一点,但它似乎不适用于Flash。

<script type="text/JavaScript"> function GetWMP() { return(testing); } <script>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="857" height="480" id="testing">

<param name="movie" value="test.swf" />

<param name="quality" value="high" />

<param name="bgcolor" value="#ffffff" />

<param name="allowScriptAccess" value="always" />

<param name="allowFullScreen" value="true" />

</object>

下面是我的C#代码,它返回对象。

object o = webBrowser1.Document.InvokeScript("ReturnFlash");

AxShockwaveFlashObjects.AxShockwaveFlash flash = (AxShockwaveFlashObjects.AxShockwaveFlash)o;

当我尝试将Object转换为AxShockwaveFlash时,它失败了,但我看到它将对象转换为WindowsMediaPlayer。

我试图找出AxShockwaveFlash是否支持QueryInterface调用,根据错误消息但Google没有返回任何有价值的信息。

由于

1 个答案:

答案 0 :(得分:0)

AxShockwaveFlash是一个由aximp.exe创建的自动生成的Windows窗体控件。所以你可以把它放在表格上。你得到的那个对象不是那种控制。你只能转换为interop包装器暴露的接口,它应该是ShockwaveFlashObjects.ShockwaveFlash。