怎么释放IMediaControl-CSDN论坛
1个回答
展开全部
m_iAfxDirectHeight=height;
// 一> 初始化DirectDraw
// 这个结构描述"页"的特徵,见 DDSURFACEDESC2结构体的简介.txt
DDSURFACEDESC ddsd;
// 清空变量
memset(&ddsd,0,sizeof(ddsd));
// 结构的大小
ddsd.dwSize = sizeof(ddsd);
// 设定页的大小,
ddsd.dwWidth=m_iAfxDirectWidth;
ddsd.dwHeight=m_iAfxDirectHeight;
HRESULT result;
result=DirectDrawCreate(NULL/*用当前的显示驱动*/,&m_pAfxDirectDraw,NULL);
if(result!=DD_OK)
return -1;
// 二> 设置屏幕的显示模式
// "全屏"模式下设置
m_pAfxDirectDraw->SetCooperativeLevel(m_hAfxDrawWnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN|DDSCL_ALLOWREBOOT);
// 设置屏幕颜色和大小(水平,垂直,颜色位数)
m_pAfxDirectDraw->SetDisplayMode(m_iAfxDirectWidth,m_iAfxDirectHeight,24);
// 三> 建立前页
// 用于指定结构中那些数据是有效的,DDSD_ALL表示所有的数据成员都有效
ddsd.dwFlags=DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
// 后页一个
ddsd.dwBackBufferCount=1;
// 指定我们用的是前页
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE|DDSCAPS_COMPLEX|DDSCAPS_FLIP;
// 建立前页
result=m_pAfxDirectDraw->CreateSurface(&ddsd,&m_pAfxMainSur,NULL);
// 当发生错误时, 要记得 Release对象.
if(result!=DD_OK)
{
AfxMessageBox("建立主页失败!");
return 0;
}
// 连接后缓冲区页,只有全屏方式下才行
DDSCAPS Caps;
Caps.dwCaps=DDSCAPS_BACKBUFFER;
result=m_pAfxMainSur->GetAttachedSurface(&Caps,&m_pAfxBackSur);
if(result!=DD_OK)
{
AfxMessageBox("连接后缓冲区失败!");
return 0;
}
return 1;
}
// 一> 初始化DirectDraw
// 这个结构描述"页"的特徵,见 DDSURFACEDESC2结构体的简介.txt
DDSURFACEDESC ddsd;
// 清空变量
memset(&ddsd,0,sizeof(ddsd));
// 结构的大小
ddsd.dwSize = sizeof(ddsd);
// 设定页的大小,
ddsd.dwWidth=m_iAfxDirectWidth;
ddsd.dwHeight=m_iAfxDirectHeight;
HRESULT result;
result=DirectDrawCreate(NULL/*用当前的显示驱动*/,&m_pAfxDirectDraw,NULL);
if(result!=DD_OK)
return -1;
// 二> 设置屏幕的显示模式
// "全屏"模式下设置
m_pAfxDirectDraw->SetCooperativeLevel(m_hAfxDrawWnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN|DDSCL_ALLOWREBOOT);
// 设置屏幕颜色和大小(水平,垂直,颜色位数)
m_pAfxDirectDraw->SetDisplayMode(m_iAfxDirectWidth,m_iAfxDirectHeight,24);
// 三> 建立前页
// 用于指定结构中那些数据是有效的,DDSD_ALL表示所有的数据成员都有效
ddsd.dwFlags=DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
// 后页一个
ddsd.dwBackBufferCount=1;
// 指定我们用的是前页
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE|DDSCAPS_COMPLEX|DDSCAPS_FLIP;
// 建立前页
result=m_pAfxDirectDraw->CreateSurface(&ddsd,&m_pAfxMainSur,NULL);
// 当发生错误时, 要记得 Release对象.
if(result!=DD_OK)
{
AfxMessageBox("建立主页失败!");
return 0;
}
// 连接后缓冲区页,只有全屏方式下才行
DDSCAPS Caps;
Caps.dwCaps=DDSCAPS_BACKBUFFER;
result=m_pAfxMainSur->GetAttachedSurface(&Caps,&m_pAfxBackSur);
if(result!=DD_OK)
{
AfxMessageBox("连接后缓冲区失败!");
return 0;
}
return 1;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询