- void getEndpointVolume()
- {
- HRESULT hr = S_OK;
- IAudioEndpointVolume *volume = NULL;
- IMMDeviceEnumerator *enumerator = NULL;
- IMMDeviceCollection *collection = NULL;
- IPropertyStore *props = NULL;
- LPWSTR wsz_id = NULL;
- IMMDevice *endpoint = NULL;
- CoInitialize(NULL);
- hr = CoCreateInstance( //创建IMMDeviceEnumerator实例
- CLSID_MMDeviceEnumerator, NULL,
- CLSCTX_ALL, IID_IMMDeviceEnumerator,
- (void**)&enumerator);
- EXIT_ON_ERROR(hr)
- //下面都是创建实例,调用方法
- hr = enumerator->GetDefaultAudioEndpoint(eRender, eMultimedia, &endpoint);
- EXIT_ON_ERROR(hr)
- hr = endpoint->GetId(&wsz_id);
- EXIT_ON_ERROR(hr)
- hr=endpoint->Activate(IID_IAudioEndpointVolume, CLSCTX_ALL, NULL, (void **)(&volume));
- EXIT_ON_ERROR(hr)
- hr = volume_api->GetMasterVolumeLevelScalar(&volume); //获取音量值
- EXIT_ON_ERROR(hr)
- cout << volume << endl;
- hr = volume_api->SetMasterVolumeLevelScalar(0.4,NULL); //设置音量值
- EXIT_ON_ERROR(hr)
- Exit:
- CoTaskMemFree(wsz_id);
- SAFE_RELEASE(enumerator)
- SAFE_RELEASE(collection)
- SAFE_RELEASE(endpoint)
- SAFE_RELEASE(props)
- }
- //该片段来自于http://www.codesnippet.cn/detail/0601201511486.html
来源: http://www.codesnippet.cn/detail/0601201511486.html