1,新建项目->ATL->ATL项目:VSAtlPlayer

2,Project->add class->Atl Control
完成设置向导:



事实上我们在这里选定的“仅适用于窗口的”并没有生效,需要在CPlayerCtrl的构造函数里加一句,才能显示我们下面将要加的Atl Dialog
CPlayerCtrl()
{
m_bWindowOnly = true;
}
3,add ATL Dialog:
project->add class->Atl dialog,命名:PlayerWnd
resource view里设置对话框的属性:
Border:None,Style:Child,Visible,true
4,选中CPlayerCtrl,在右下角属性窗口中,添加消息WM_CREATE,(OnCreate)
实现之:
LRESULT CPlayerCtrl::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
RECT rc = {0};
this->GetWindowRect(&rc);
// 创建新的视频/控制/命令窗口...
if( !::IsWindow(m_pCPlayerWnd.m_hWnd) ) {
m_pCPlayerWnd.Create(this->m_hWnd, rc);
}
return 0;
}
5,增加Atl提供给html的接口
右键IPlayerCtrl->add method:

实现SetMediaInfo,注释掉CPlayerCtrl的onDraw里面的内容,都是无用的东西。
编译生成VSAtlPlayer.dll,并自动注册
修改PlayerCtrl.htm:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<TITLE>对象 PlayerCtrl 的 ATL 8.0 测试页</TITLE>
</HEAD>
<BODY>
<OBJECT ID="VSAtlPlayer" CLASSID="CLSID:1FB3EFE6-A5FD-4F27-AB28-7D4C902A807D"></OBJECT>
<script type="text/javascript">
var VSAtlPlayer = document.getElementById('VSAtlPlayer');
VSAtlPlayer.SetMediaInfo("45566464645", 3);
//alert(result);
</script>
</BODY>
</HTML>
OVER
参考资料:
http://blog.youkuaiyun.com/wanghaisheng/article/details/4317198
1435

被折叠的 条评论
为什么被折叠?



