0

ウィンドウ アクティベーションを使用すると (関数HWND内で Flash Player に有効な値を与えるGetWindowだけで十分です)、プレーヤーはロードされた swf ファイルを実行します。ただし、ウィンドウレス アクティベーションを使用すると、ロードされたファイルは実行されず、最初のフレームのみが表示されます。この記事は、私が電話することになっていると主張しています

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

ただし、これは何の効果もありません。私は何を間違っていますか?

編集: この投稿を作成してから、-2147467259 が返されることがわかりました。これは既知の HRESULT ではありませんが、0 ではないことは確かです。これはどういう意味ですか?

さらに掘り下げた後、戻り値が であることがわかりましたOLE_E_NOTRUNNING

4

1 に答える 1

0

問題が見つかりました。この電話の前は、次のことを行っていました。

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

しかし、私はあからさまに HRESULT を無視しました。BSTRこれは、コードに定数 (ワイド文字列)を挿入する有効な方法ではないため、Flash Player を混乱させました。正しく:

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

今では正常に動作します。HRESULTをチェックしてください、子供たち:)

于 2012-06-21T08:19:01.493 に答える