ITPub博客

首页 > 应用开发 > IT综合 > Platform SDK 中控制系统音量的重要结构MIXERCONTROLDETAILS结构体定义 (转)

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

原创 IT综合 作者:worldblog 时间:2007-12-10 09:26:08 0 删除 编辑
Platform SDK 中控制系统音量的重要结构MIXERCONTROLDETAILS结构体定义 (转)[@more@]

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;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-990795/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2446907