内嵌Activex的Activex插件开发.doc_第1页
内嵌Activex的Activex插件开发.doc_第2页
内嵌Activex的Activex插件开发.doc_第3页
内嵌Activex的Activex插件开发.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内嵌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的创建LRESULTCEmbed:OnCreate(UINT/*uMsg*/,WPARAM/*wParam*/,LPARAM/*lParam*/,BOOL&/*bHandled*/)RECTrc;GetWindowRect(&rc);rc.right-=rc.left;rc.bottom-=rc.top;rc.top=rc.left=0;/对于ATL3.0必须调用AtlAxWinInit,否则Create会调用失败AtlAxWinInit();/初始化容器窗口的注册类RECTrect=rc;/创建Shockwaveflash控件播放FlashTCHAR*controlName=LShockwaveFlash.ShockwaveFlash;m_FlashWin.Create(m_hWnd,rect,controlName,WS_CHILD|WS_VISIBLE,0,ID_FLASHCTRL);DWORDerror=:GetLastError();CComPtrambient;m_FlashWin.QueryHost(&ambient);CComPtrhostwin;m_FlashWin.QueryHost(&hostwin);hostwin-QueryControl(_uuidof(IDispatch),(void*)&m_ptrFlash.p);CComQIPtrptrFlash=m_ptrFlash;ptrFlash-put_BackgroundColor(RGB(0,0,0);/创建WindowsMediaPlay控件播放.wmv文件controlName=LWMPlayer.OCX;/CLSIDcld;/: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);return0;2.设置内嵌Activex控件的大小位置 HRESULTCEmbed:SetObjectRects(LPCRECTprcPos,LPCRECTprcClip)IOleInPlaceObjectWindowlessImpl:SetObjectRects(prcPos,prcClip);intcx,cy;cx=prcPos-right-prcPos-left;cy=prcPos-bottom-prcPos-top;RECTrect;GetClientRect(&rect);rect.top=0;rect.left=0;if(m_FlashWin)m_FlashWin.MoveWindow(&rect);if(m_FlashWin)m_WmvWin.MoveWindow(&rect);returnS_OK;3.测试代码测试代码 内嵌Activex的Activex插件测试页FlashURL:Time:WMVURL:functionplay()varobj;varpalyobj=document.getElementById(Play);obj=document.getElementById(urlflash);palyobj.LoadFlashMovie(obj.value);obj=document.getElementById(wmvflash);palyobj.LoadWmvMovie(obj.value);obj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论