admin管理员组文章数量:1592611
第一步:加载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()
版权声明:本文标题:c++调用flash播放器 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728147814a1147293.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论