3995|7

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

谁能告诉我put_Owner()里面的参数应该怎么得到阿?谢谢大家! [复制链接]

我在网上找到一段代码,并加以改动。
HWND   hwnd   =   GetSafeHwnd();   
// SetWindowLong(hwnd,GWL_STYLE,GetWindowStyle(hwnd)  ?WS_CLIPCHILDREN);
hr = pVidWin->put_Owner((OAHWND)hwnd);

CString strError;
if (!SUCCEEDED(hr))  
{  
   strError.Format(_T("put_Owner出错:%x"),hr);  
MessageBox(strError);
strError.Format(_T("put_Owner出错:%d"),hr);  
MessageBox(strError);
strError.Format(hr);
   MessageBox(strError);
     }  
他说肯定能用的:可是我用了以后还是和我一样的问题出现,只有卡的几声而没有图像。然后我把自己的代码加上去
hr = pVidWin->put_Owner((OAHWND)hwnd);
第一个对话框显示:put_Owner出错:80004002  
第二个对话框显示:put_Owner出错:-2147467262  
第三个对话框是空白  
果然还是put_Owner()参数的问题;谁能告诉我put_Owner()里面的参数应该怎么得到阿?谢谢大家!  

最新回复

等待中  详情 回复 发表于 2009-12-30 17:37
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
lz要干嘛?
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我想创建一个视频窗口,播放MP4。请哪位知道怎么做的大侠指导一下,谢谢!!!
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

4
 
无头无脑的代码,这个问题像是谜语。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
void CNewAviTestDlg::OnButton1()   
{   
// TODO: Add your control notification handler code here   
IGraphBuilder   *m_pGraph;      
    IMediaControl   *m_pControl;      
    IMediaEventEx     *m_pEvent;     
IVideoWindow  *m_pVideoWindow;   
    CoInitialize(NULL);     

HWND   hWnd =   GetSafeHwnd();        

HRESULT hr;   

    //free(); //Deletes any previous DirectShow instances   
    hr = CoCreateInstance(CLSID_FilterGraph, NULL,CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&m_pGraph);   
    if (!SUCCEEDED(hr))   
{   
MessageBox(_T("CoCreateInstance failed"));   
}   
    hr = m_pGraph->QueryInterface(IID_IMediaControl, (void **)&m_pControl);   
    if (!SUCCEEDED(hr))   
{   
MessageBox(_T("IID_IMediaControl failed"));   
}   
    hr = m_pGraph->QueryInterface(IID_IMediaEventEx, (void **)&m_pEvent);   
    if (!SUCCEEDED(hr))   
{   
MessageBox(_T("IID_IMediaEventEx failed"));     
}   

    hr = m_pEvent->SetNotifyWindow((OAHWND)hWnd, 0, 0);   
    if (!SUCCEEDED(hr))   
{   
MessageBox(_T("SetNotifyWindow  failed"));   
}   


    hr = m_pGraph->RenderFile(_T("C\\爱我别走.avi"), NULL);   
    if (!SUCCEEDED(hr))   
{   
MessageBox(_T("RenderFile  failed"));   
        //m_pMediaPlayerLog->WriteOut("RenderFile  failed,RESULT:0x%x",hr);   
}   
    hr = m_pGraph->QueryInterface(IID_IVideoWindow, (LPVOID *) &m_pVideoWindow);   
    if (!SUCCEEDED(hr))   
{   
MessageBox(_T("IID_IVideoWindow  failed"));   
    }   

SetWindowLong(hWnd,GWL_STYLE,GetWindowStyle(hWnd)  ?WS_CLIPCHILDREN);   
    hr = pVidWin->put_Owner((OAHWND)hwnd);  
    CString strError;  
    if (!SUCCEEDED(hr))   
     {   
       strError.Format(_T("put_Owner出错:%x"),hr);   //这里开始报错!!!
       MessageBox(strError);  
       strError.Format(_T("put_Owner出错:%d"),hr);   
       MessageBox(strError);  
       strError.Format(hr);  
       MessageBox(strError);  
     }   
    hr = m_pVideoWindow->put_WindowStyle(WS_CHILD   ?WS_CLIPCHILDREN   ?WS_CLIPSIBLINGS); //然后这里也会报错 ,失败了  
     if (!SUCCEEDED(hr))   
{   
MessageBox(_T("put_WindowStyle  failed"));   
         //m_pMediaPlayerLog->WriteOut("put_WindowStyle  failed,RESULT:0x%x",hr);   
}   
     hr = m_pVideoWindow->put_MessageDrain((OAHWND)hWnd);//然后这里也会报错 ,失败了  
     if (!SUCCEEDED(hr))   
{   
MessageBox(_T("put_MessageDrain  failed"));   
     //m_pMediaPlayerLog->WriteOut("put_MessageDrain  failed,RESULT:0x%x",hr);   
}   
     hr = m_pVideoWindow->put_Visible(OATRUE); //最后是这里也会报错 ,失败了  
     if (!SUCCEEDED(hr))   
{   
MessageBox(_T("put_Visible  failed"));   
     //m_pMediaPlayerLog->WriteOut("put_Visible  failed,RESULT:0x%x",hr);   
}   

     RECT grc;   
     GetClientRect(&grc);   
     m_pVideoWindow->SetWindowPosition(289,81,704,585);   
     m_pVideoWindow->put_Visible(OATRUE);   

m_pControl->Run();   

}   
察看输出结果:
第一个对话框显示:put_Owner出错:80004002
第二个对话框显示:put_Owner出错:-2147467262
第三个对话框是空白

我想创建一个视频窗口,播放MP4。谁能告诉我put_Owner()里面的参数应该怎么得到才不会出现那样的错误阿?谢谢大家!  
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

6
 
sorry,更改一下,我在上面的答复中把hwnd写错了一个。hr = pVidWin->put_Owner((OAHWND)hwnd); 应该是hr = pVidWin->put_Owner((OAHWND)hWnd);我改一下。(hwnd写错了,希望知道怎么做的大侠注意,并指导我一下应该怎么创建put_Owner()里面的参数才能不报错。)
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
如果有什么不清楚可以提,只希望知道的人能指点一下,使它不报错。谢谢了!!!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
等待中
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表