2012-06-20 31 views
0

如果我使用窗口激活(在GetWindow功能,給予有效的HWND給Flash Player就足以觸發這個),玩家將運行加載的SWF文件。但是,如果我使用無窗口激活,加載的文件不運行,只顯示第一幀。 This article聲稱我應該打電話如何在Flash Player中觸發「運行狀態」?

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

但是,這沒有任何影響。我究竟做錯了什麼?

編輯:既然我發這個帖子,我發現它返回-2147467259,這是不是一個已知的HRESULT,但肯定不是0是什麼意思?

一些更多的挖掘後,我發現,返回值是OLE_E_NOTRUNNING

回答

0

我已經找到了問題。在此通話之前,我正在做:

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

但是我公然忽略了HRESULT。它使Flash Player感到困惑,因爲它不是在代碼中插入常數的有效方法(這是一個寬字符串)。正確:

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

現在,它的工作原理應該如此。檢查你HRESULT,孩子們:)

相關問題