c++調用flash播放器

第一步:加載flash播放器

1.在窗口中創建CAxwindow

     CAxwindow  axWnd;

axWnd.Create(hParent, rect, 0, WS_CHILD|WS_CLIPCHILDREN, 0, ID_CHILD_CONTROL) != NULL )//WS_VISIBLE|默認不可見
axWnd.MoveWindow(lpRcInParent);

2.獲取IAxWinHostWindow接口
CComPtr<IAxWinHostWindow> spHost;
axWnd.QueryHost(&spHost);

3.加載flash創建ShockwaveFlashObjects::IShockwaveFlash指針

hFlashDLL = CoLoadLibrary(wszModulePath, FALSE);

typedef HRESULT (__stdcall * PFNDllGetClassObject)(REFCLSID, REFIID, LPVOID*);
PFNDllGetClassObject pfnGetClassObj = (PFNDllGetClassObject)GetProcAddress(m_hFlashDLL, "DllGetClassObject");
CComPtr<IClassFactory> spClsFactory;
pfnGetClassObj(ShockwaveFlashObjects::CLSID_ShockwaveFlash, __uuidof(IClassFactory), (void**)&spClsFactory);

CComPtr<ShockwaveFlashObjects::IShockwaveFlash> spFlashPlayer
spClsFactory->CreateInstance(NULL, ShockwaveFlashObjects::IID_IShockwaveFlash, &spFlashPlayer);
4.attach flash控件到窗口

spHost->AttachControl(spFlashPlayer, axWnd.m_hWnd);

5.設置窗口背景

spFlashPlayer->put_BackgroundColor(0);
spFlashPlayer->put_BGColor(0);
6
.加載視頻地址

spFlashPlayer->LoadMovie(0, m_sSWFUrl);

第二步:響應播放器消息

ShockwaveFlashObjects::_IShockwaveFlashEvents

響應invoke消息

CFlashPlayer : public ShockwaveFlashObjects::_IShockwaveFlashEvents

BEGIN_COM_MAP(CFlashPlayer)
COM_INTERFACE_ENTRY(IDispatch)

END_COM_MAP()

發佈了15 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章