C++ C++;mixerGetLineInfo返回MMSYSERR_错误(Windows 8)

C++ C++;mixerGetLineInfo返回MMSYSERR_错误(Windows 8),c++,audio,mfc,mixer,unspecified-behavior,C++,Audio,Mfc,Mixer,Unspecified Behavior,我正在尝试运行此代码(VS2015、MFC、Windows 8): mixerGetLineInfo不工作,它总是返回MMSYSERR\u NOERROR,这意味着未指定的错误。那是因为赢8还是什么?如何运行它?以及在mixerGetLineInfo()中发生了什么?嗯,我不能进入它,它的声明在mmeapi.hLooking的MSDN中,因为它说:dwSource:当mixerGetLineInfo函数中指定MIXER\u GETLINEINFOF\u destination时,这个成员不用于目

我正在尝试运行此代码(VS2015、MFC、Windows 8):


mixerGetLineInfo不工作,它总是返回MMSYSERR\u NOERROR,这意味着未指定的错误。那是因为赢8还是什么?如何运行它?

以及在mixerGetLineInfo()中发生了什么?嗯,我不能进入它,它的声明在mmeapi.hLooking的MSDN中,因为它说:
dwSource:当mixerGetLineInfo函数中指定MIXER\u GETLINEINFOF\u destination时,这个成员不用于目标行,必须设置为零。该结构的其他元素也有要求。基本上,我认为在调用函数之前,结构需要归零。尝试
MIXERLINE mxl={0}
并查看是否有帮助
int _nNumMixers = mixerGetNumDevs(); //returns 3
HMIXER hMixer   = NULL;

//NOERROR
if (mixerOpen(&hMixer, 0, 0, NULL, MIXER_OBJECTF_MIXER) != MMSYSERR_NOERROR)
{
  return FALSE;
}

//NOERROR
MIXERCAPS _mxcaps;
if (mixerGetDevCaps((UINT)hMixer, &_mxcaps, sizeof(MIXERCAPS)) != MMSYSERR_NOERROR)
{
    return FALSE;
}

MIXERLINE mxl;
mxl.cbStruct        = sizeof(MIXERLINE);
mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN;

//!!!! the next returns 1 (MMSYSERR_ERROR - unspecified error)
if (mixerGetLineInfo((HMIXEROBJ)hMixer, &mxl, MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE) != MMSYSERR_NOERROR) 
{
   mixerClose (hMixer);
   return FALSE;
}