控制系统音量MIXERCONTROLDETAILS结构体定义
MIXERCONTROLDETAILS结构体定义
MIXERCONTROLDETAILS
typedef struct{
DWORD cbStruct;
指示出MIXERCONTROLDETAILS结构的大小(字节单位),这个大小必须足以包括基本的MIXERCONTROLDETAILS结构。当mixerGetControlDetails返回,该成员包括了返回信息的实际大小。返回信息不超过请求的大小,也不能小于基本的MIXERCONTROLDETAILS结构。
DWORD dwControlID;
将要被获取或设置特性的控制标识符。
DWORD cChannels;
要控制的声道数目,取下列值:
0: 当控制类型为MIXERCONTROL_CONTROLTYPE_CUSTOM
1: 当控制类型为MIXERCONTROL_CONTROLF_UNIFORM时或应用程序要统一地对待所有声道时
MIXERLINE.cChannels:当需要控制一个线路的所有声道时
* 应用程序不能将cChannels定义为(1,音频线路声道数目)区间里的值,例如,对于四声道线路,定义为2、3是非法的。对于非定制(noncustom)控制类型,该值不能为0。
union{
HWND hwndOwner;
混音控制的定制对话框的窗口句柄,该成员用于mixerSetControlDetails函数定义了MIXER_SETCONTROLDETAILSF_CUSTOM标志的时候。
DWORD cMultipleItems;
要控制的声道的每声道乘数项,取下列值:
0: 除了MIXERCONTROL_CONTROLF_MULTIPLE
和MIXERCONTROL_CONTROLTYPE_CUSTOM控制之外,使用“0”值。
MIXERCONTROL.cMultipleItems成员:
当控制类型为MIXERCONTROL_CONTROLF_MULTIPLE时使用该值。
MIXERCONTROLDETAILS.hwndOwner成员:
当控制类型为MIXERCONTROL_CONTROLTYPE_CUSTOM,
并且mixerSetControlDetails函数定义了
MIXER_SETCONTROLDETAILSF_CUSTOM标志的时候使用该值。在这情况下, hwndOwner与cMultipleItems成员一致,提供窗口句柄的值。
* 当使用了MIXERCONTROL_CONTROLTYPE_CUSTOM控制,但没有使用MIXERCONTROL_CONTROLTYPE_CUSTOM标志,该成员定义为“0”。
对于MIXERCONTROL_CONTROLF_MULTIPLE的控制类型,应用程序不能定义与MIXERCONTROL.cMultipleItems成员不一样的值。
};
DWORD cbDetails;
指示出所使用的下列细节结构体之一的大小:
MIXERCONTROLDETAILS_BOOLEAN 音频线路控制的布尔值
MIXERCONTROLDETAILS_LISTTEXT 音频线路控制的list text buffer
MIXERCONTROLDETAILS_SIGNED 音频线路控制的有符号值
MIXERCONTROLDETAILS_UNSIGNED 音频线路控制的无符号值
当使用了MIXERCONTROL_CONTROLTYPE_CUSTOM控制,该成员必须等于MIXERCONTROL.cbCustomData成员。
LPVOID paDetails;
指向一个或多个结构组成的数组的指针,结构中存放着特定控制的属性,可以取得或设置。对于MIXERCONTROL_CONTROLF_MULTIPLE控制,buffer的大小应该是MIXERCONTROLDETAILS 结构体中的cChannels,cMultipleItems和cbDetails 成员的乘积。对于其他的控制类型,buffer的大小应该是MIXERCONTROLDETAILS 结构体中的cChannels和cbDetails 成员的乘积。
对于MIXERCONTROL_CONTROLF_MULTIPLE控制类型,数组可以看作一个以声道为主的二维数组,比如,左声道的所有MultipleItem和右声道的所有MultipleItem。
对于MIXERCONTROL_CONTROLF_MULTIPLE控制类型,每个元素的下标等同于它所影响的声道,即:paDetails[0] 左声道, paDetails[1] 右声道。
如果控制类型为MIXERCONTROL_CONTROLTYPE_CUSTOM,本成员必须指向一个足够容纳MIXERCONTROL结构体里的cbCustomData成员所定义的大小的buffer。
} MIXERCONTROLDETAILS;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)