2009-07-07 90 views
2

作爲使用C(Win32)編寫的自定義媒體播放器的一部分,我需要在播放器窗口中啓用我的應用程序播放Flash影片(.swf文件)。有人可以指出最C兼容的低級別的方式來實現這一點,給我最高的控制?特別控制顯示窗口和網絡訪問。如何在純C中播放Flash文件?

我正在尋找一個類似flash_player.dll的Windows DLL(如果有這種東西的話)與文檔的引用。或者至少有一個COM/ActiveX控件。請注意,ActiveX比在VB中更難在C中使用。

回答

4

使用的代碼從:http://support.microsoft.com/kb/218442/EN-US/

//*Place at the top of your CAxDialogImpl class 
#import "flash.ocx" rename_namespace("FLASH") 
FLASH::IShockwaveFlashPtr m_spFlash; 


//This code gets added to your OnInitDialog function of the window 
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
CAxWindow wnd; 
CLSID clsid; 
LPUNKNOWN pUnkCtrl, pUnkCont; 
HRESULT hr = CLSIDFromString(OLESTR("{D27CDB6E-AE6D-11CF-96B8-444553540000}"), &clsid); 
hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, 
(void**)&pUnkCtrl); 
CComQIPtr <IPersistStreamInit> spPerStm(pUnkCtrl); 
spPerStm->InitNew(); 

m_spFlash = pUnkCtrl; 
wnd.Attach(m_hWnd); 
wnd.AttachControl(pUnkCtrl, &pUnkCont); 

m_spFlash->PutMovie(_bstr_t(_T("C:\\Documents and Settings\\murk\\Desktop\\Chlorine\\ccc_main.swf"))); 
} 
+0

-1,C++不C. C沒有類也沒有方法。 – MSalters 2009-07-07 09:48:12