在程序中如何判断当前枚举得到的是WDM卡还是VFW卡?

BOOL IsVFWCard()
{
    // Stop the graph.
    m_pMC->Stop();
    ASSERT(m_pBF);
    IAMVfwCaptureDialogs *pVfw = NULL;
    // Query the capture filter for the IAMVfwCaptureDialogs interface.
    HRESULT hr = m_pCapture->QueryInterface(IID_IAMVfwCaptureDialogs,(void **)&pVfw);
    if(SUCCEEDED(hr))
    {
        pVfw->Release();
        m_pMC->Run();
        return TRUE;
    }
    else
    {
        m_pMC->Run();
        return FALSE;
    }
}

BOOL IsWDMCard()
{
    // Stop the graph.
    m_pMC->Stop();
    ASSERT(m_pBF);
    IAMAnalogVideoDecoder *pWdm = NULL;
    // Query the capture filter for the IAMAnalogVideoDecoder interface.
    HRESULT hr = m_pBF->QueryInterface(IID_IAMAnalogVideoDecoder,(void**)&pWdm);
    if(SUCCEEDED(hr))
    {
        pWdm->Release();
        m_pMC->Run();
        return TRUE;
    }
    else
    {
        m_pMC->Run();
        return FALSE;
    }
}

 

posted on 2014-04-20 20:32  撼地神牛ES  阅读(361)  评论(0编辑  收藏  举报

导航