资源简介
qt, c++调用系统 windows api 调节系统音量,调节麦克风音量
代码片段和文件信息
#include “StdAfx.h“
#include “MixerWrap.h“
#include
#include
#include
#include
#include
using namespace std;
#include
#include
#include
#include
#define TOWCHAT(x) QStringLiteral(x).toStdWString().data()
#define SAFE_RELEASE(punk) \
if ((punk) != NULL) \
#define EXIT_ON_ERROR(hres) if (FAILED(hres)) { goto Exit; }
#define SAFE_RELEASE(punk) if ((punk) != NULL) { (punk)->Release(); (punk) = NULL; }
HRESULT getMicrophoneBoostVolumeLevel(IMMDevice *pEndptDev IAudioVolumeLevel** ppVolumeLevel)
{
HRESULT hr = S_OK;
DataFlow flow;
IDeviceTopology *pDeviceTopology = NULL;
IConnector *pConnFrom = NULL;
IConnector *pConnTo = NULL;
IPart *pPartPrev = NULL;
IPart *pPartNext = NULL;
*ppVolumeLevel = NULL;
wchar_t microphoneBoostName[] = L“麦克风加强“;//if your system language is Englishthe name is “microphone boost“
if (pEndptDev == NULL)
{
EXIT_ON_ERROR(hr = E_POINTER)
}
// Get the endpoint device‘s IDeviceTopology interface.
hr = pEndptDev->Activate(
__uuidof(IDeviceTopology) CLSCTX_ALL NULL
(void**)&pDeviceTopology);
EXIT_ON_ERROR(hr)
// The device topology for an endpoint device always
// contains just one connector (connector number 0).
hr = pDeviceTopology->GetConnector(0 &pConnFrom);
SAFE_RELEASE(pDeviceTopology)
EXIT_ON_ERROR(hr)
// Make sure that this is a capture device.
hr = pConnFrom->GetDataFlow(&flow);
EXIT_ON_ERROR(hr)
if (flow != Out)
{
// Error -- this is a rendering device.
//EXIT_ON_ERROR(hr = AUDCLNT_E_WRONG_ENDPOINT_TYPE)
}
// Outer loop: Each iteration traverses the data path
// through a device topology starting at the input
// connector and ending at the output connector.
while (TRUE)
{
BOOL bConnected;
hr = pConnFrom->IsConnected(&bConnected);
EXIT_ON_ERROR(hr)
// Does this connector connect to another device?
if (bConnected == FALSE)
{
// This is the end of the data path that
// stretches from the endpoint device to the
// system bus or external bus. Verify that
// the connection type is Software_IO.
ConnectorType connType;
hr = pConnFrom->GetType(&connType);
EXIT_ON_ERROR(hr)
if (connType == Software_IO)
{
break; // finished
}
EXIT_ON_ERROR(hr = E_FAIL)
}
// Get the connector in the next device topology
// which lies on the other side of the connection.
hr = pConnFrom->GetConnectedTo(&pConnTo);
EXIT_ON_ERROR(hr)
SAFE_RELEASE(pConnFrom)
// Get the connector‘s IPart interface.
hr = pConnTo->QueryInterface(
__uuidof(IPart) (void**)&pPartPrev);
EXIT_ON_ERROR(hr)
SAFE_RELEASE(pConnTo)
// Inner loop: Each iteration traverses one link in a
// device topology and looks for input multiplexers.
whil
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 56604 2017-10-30 11:22 MixerWrap.cpp
文件 1106 2014-01-09 15:15 MixerWrap.h
----------- --------- ---------- ----- ----
57710 2
相关资源
- 最长公共子序列—c++实现
- C++最小二乘法拟合直线
- c++primerplus(第六版)课后编程练习答
- 多元线性回归c++算法
- 远程桌面(带C++源码)
- n个数冒泡排序法
- 24点算法 C++实现
- 学生信息查询系统c++builder
- C++ MP3播放器
- 用回溯法求子集和的c++代码
- 最小生成树的源代码(C++实现)
- C++编写的简单仓库管理系统
- 优秀开源项目基于VC++和MFC基于VC++和
- 已知两点经纬度,求距离和方位
- MFC编程案例之文件管理器C++
- c++/mfc编写的网络电话,网络语音 程序
- 使用Win32 API的相关知识实现矩阵的乘
- 八皇后图形演示 C++的
- 一个基于C++实现的完整进行FTP应用管
- MPI_并行程序设计中文教程C++/c/Fortan
- C++完整实现DES算法
- 非常简单的C++迷宫程序,是数据结构
- 基于vc++的波形显示源码
- c++ HTTP协议库 httplib
- 大整数乘法 c++ 代码
- 使用C++编写超经典的坦克大战
- MFC实现点对点通信
- C Socket通信多线程数据双向收发VS201
- 数据结构—图书馆管理系统C++编写
- 基于TAO的CORBA程序设计
评论
共有 条评论