MFC win7 channel volume setting Sound Control

BOOL CAudioHelper::SetWin7AudioLeftMute(void)
{
    HRESULT hr=NULL;
 
    double nVolume = (double)0;
    double newVolume=nVolume;
 
    CoInitialize(NULL);
    IMMDeviceEnumerator *deviceEnumerator = NULL;
    hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_INPROC_SERVER,
        __uuidof(IMMDeviceEnumerator), (LPVOID *)&deviceEnumerator);
    IMMDevice *defaultDevice = NULL;
 
    hr = deviceEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &defaultDevice);
    deviceEnumerator->Release();
    deviceEnumerator = NULL;
 
    IAudioEndpointVolume *endpointVolume = NULL;
    hr = defaultDevice->Activate(__uuidof(IAudioEndpointVolume),
        CLSCTX_INPROC_SERVER, NULL, (LPVOID *)&endpointVolume);
    defaultDevice->Release();
    defaultDevice = NULL;
 
    float fVolumeMin, fVolumeMax, fVolumeInc;
    endpointVolume->GetVolumeRange(&fVolumeMin, &fVolumeMax, &fVolumeInc);
 
    UINT uiChannelCount;
    endpointVolume->GetChannelCount(&uiChannelCount);
    for (UINT i=0; i<uiChannelCount; i++ )
    {
        if ( i == 1 )
            continue;
        endpointVolume->SetChannelVolumeLevel(i, fVolumeMin, NULL);
    }
 
    endpointVolume->Release();
 
    CoUninitialize();
 
    return TRUE;
}

덧글

댓글 입력 영역


통계 위젯 (블랙)

00
5
430644