waveInAddBuffer不能返回在Vista和WIN7下,当耳机拔掉,然后在插上。但是在XP下是ok的。不知道为什么。那位大侠能帮帮忙啊!

解决方案 »

  1.   

    void CALLBACK WaveInProc(HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1,DWORD dwParam2)
    {
    switch(uMsg)
    {
    case WIM_OPEN:
    {
    break;
    }

    case WIM_DATA:
    {
    waveInPrepareHeader(m_hWaveIn, (PWAVEHDR)dwParam1, sizeof(WAVEHDR));
    waveInAddBuffer(m_hWaveIn, (PWAVEHDR)dwParam1, sizeof(WAVEHDR));
    break;
    }
    case WIM_CLOSE:
    {
    break;
    }
    }
    }上面是小弟的代码,在Vista和Win7系统下,在通话的过程中把耳机拔掉,然后在插上耳机,这时函数waveInAddBuffer会一直没有返回,这个该如何处理呢?
      

  2.   

    waveInPrepareHeader不放在消息处理中试试