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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值