【问题标题】:How to trigger "running state" in Flash Player?如何在 Flash Player 中触发“运行状态”?
【发布时间】:2012-06-21 16:33:48
【问题描述】:

如果我使用窗口激活(在GetWindow 函数中向 Flash 播放器提供有效的HWND 就足以触发此操作),播放器将运行加载的 swf 文件。但是,如果我使用无窗口激活,加载的文件不会运行,只显示第一帧。 This article 声称我应该打电话

DoVerb(OLEIVERB_SHOW, NULL, (IOleClientSite *)this, 0, NULL, NULL);

但是,这没有任何效果。我做错了什么?

编辑:自从我发了这篇文章,我发现它返回-2147467259,这不是已知的HRESULT,但肯定不是0。这是什么意思?

经过一番挖掘,我发现返回值为OLE_E_NOTRUNNING

【问题讨论】:

    标签: c++ com activex flash


    【解决方案1】:

    我发现了问题。在这个电话之前,我在做:

    hr = _shockwaveFlash->put_WMode(BSTR("opaque"));
    

    但是我公然忽略了那里的 HRESULT。它使 Flash Player 感到困惑,因为它不是在代码中插入 BSTR 常量(这是一个宽字符串)的有效方法。正确:

    hr = _shockwaveFlash->put_WMode(L"opaque");
    

    现在它可以正常工作了。孩子们,检查你的 HRESULT :)

    【讨论】:

      猜你喜欢
      • 2022-08-04
      • 2015-07-09
      • 1970-01-01
      • 2011-05-29
      • 2011-05-09
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 2020-09-06
      相关资源
      最近更新 更多