Platform SDK 中控制系统音量的重要结构MIXERCONTROLDETAILS结构体定义

类别:VC语言 点击:0 评论:0 推荐:

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;

本文地址:http://com.8s8s.com/it/it3044.htm