内嵌Activex的Activex插件开发.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内嵌Activex的Activex插件开发

内嵌Activex的Activex插件开发 介绍:   如今在许多流媒体视频网站(youku,tudou......)我们都会发现,观看视频之前都会有一段时间的广告,甚至在观看视频途中也会插入一些广告。实现这个效果的可以有多种技术。使用Javascript就可以实现,只需要在同一个位置分别创建两个Object,一个嵌入Flash插件,一个嵌入 WMP插件,然后切换显示这两个控件即可。   使用COM/Activex技术也可以在同一个控件中实现这样的功能。? 插件功能描述:   上周在某个公司碰到这么一个问题,它们需要创建一个插件,内部嵌入一个Flash插件和Windows Media Player插件。然后写一个Web测试页面测试此Activex页面。页面上有三个输入框和一个按钮(Play)。第一个输入框输入falsh URL(.swf),第二个输入框输入.swf播放时间长度(秒),即视频广告时间,第三个输入框输入.wmv URL。点击Play按钮后,页面按钮将三个参数传递给控件,控件优先播放.swf,要布满整个控件的大小。.swf播放指定的时间之后,然后播放.wmv,wmv也要布满整个控件。   内嵌Activex的Activex插件源代码 ? ? ? 容器-插件基础: ? ? ?  为在一个窗口中嵌入一个Activex的话,就需要创建一个Container Window,然后创建被嵌入的Activex,然后通过上述的接口建立容器与Activex直接的联系。在ATL中使用CAxHostWindow封装了Activex容器,并进一步使用CAxWindow类来简化控件容器的操作。 Activex嵌入主要代码 1.内嵌Activex的创建 LRESULT?CEmbed::OnCreate(UINT?/*uMsg*/,?WPARAM?/*wParam*/,?LPARAM?/*lParam*/,?BOOL?/*bHandled*/) { ????RECT?rc; ????GetWindowRect(rc); ????rc.right?-=?rc.left; ????rc.bottom?-=?rc.top; ????rc.top?=?rc.left?=?0; ???? ????//对于ATL3.0?必须调用AtlAxWinInit,否则Create会调用失败 ????AtlAxWinInit();?//初始化容器窗口的注册类 ????RECT?rect?=?rc; ????//创建Shock?wave?flash控件播放Flash ????TCHAR*?controlName?=?LShockwaveFlash.ShockwaveFlash; ????m_FlashWin.Create(m_hWnd,?rect,?controlName,?WS_CHILD?|?WS_VISIBLE,?0,?ID_FLASHCTRL?); ????DWORD??error?=?::GetLastError(); ????CComPtr?IAxWinAmbientDispatch??ambient; ????m_FlashWin.QueryHost(?ambient?); ???? ????CComPtrIAxWinHostWindow?hostwin; ????m_FlashWin.QueryHost(hostwin); ????hostwin-QueryControl(__uuidof(IDispatch),(void**)m_ptrFlash.p); ????CComQIPtrIShockwaveFlash?ptrFlash?=?m_ptrFlash; ????ptrFlash-put_BackgroundColor(RGB(?0,?0,?0?)?); ????//创建Windows?Media?Play控件播放.wmv文件 ????controlName?=?LWMPlayer.OCX; ????//CLSID?cld; ????//::CLSIDFromProgID(controlName,cld); ????m_WmvWin.Create(m_hWnd,?rect,controlName,WS_CHILD,?0,ID_WMPCTRL); ???? ????if(hostwin) ????????hostwin.Release(); ????m_WmvWin.QueryHost(hostwin); ????hostwin-QueryControl(__uuidof(IDispatch),(void**)m_ptrWmv.p);???? ????return?0; } 2.设置内嵌Activex控件的大小位置 ? ? HRESULT?

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档