www.pudn.com > 1littlebox.rar > mutecontrol.cpp
// mutecontrol.cpp: implementation of the mutecontrol class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "mutecontrol.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
mutecontrol::mutecontrol()
{
}
mutecontrol::~mutecontrol()
{
}
void mutecontrol::Create(CWnd *pWnd,DWORD type1,DWORD type2)
{
m_wnd=pWnd;
m_hMixer = NULL;
::ZeroMemory(&m_mxcaps, sizeof(MIXERCAPS));
if (::mixerGetNumDevs()!= 0)
{
if (::mixerOpen(&m_hMixer,0,(DWORD)m_wnd->m_hWnd,NULL,MIXER_OBJECTF_MIXER | CALLBACK_WINDOW)
!= MMSYSERR_NOERROR)
return ;
if (::mixerGetDevCaps((UINT)m_hMixer, &m_mxcaps, sizeof(MIXERCAPS))
!= MMSYSERR_NOERROR)
return ;
}
if (m_hMixer == NULL) return ;
MIXERLINE mxl;
mxl.cbStruct = sizeof(MIXERLINE);
mxl.dwComponentType = type1;
if (::mixerGetLineInfo((HMIXEROBJ)m_hMixer,
&mxl,
MIXER_OBJECTF_HMIXER |
MIXER_GETLINEINFOF_COMPONENTTYPE)
!= MMSYSERR_NOERROR) return ;
if(type2!=-1)
{
DWORD num=mxl.cConnections;
DWORD type=mxl.dwDestination;
for( DWORD i=0;i