MIXERCONTROLDETAILS 结构 (mmeapi.h)

MIXERCONTROLDETAILS 结构是指控制详细信息结构,用于检索或设置音频混音器控件的状态信息。 在调用 mixerGetControlDetailsmixerSetControlDetails 函数之前,必须初始化此结构的所有成员。

语法

typedef struct tMIXERCONTROLDETAILS {
  DWORD  cbStruct;
  DWORD  dwControlID;
  DWORD  cChannels;
  union {
    HWND  hwndOwner;
    DWORD cMultipleItems;
  } DUMMYUNIONNAME;
  DWORD  cbDetails;
  LPVOID paDetails;
} MIXERCONTROLDETAILS, *PMIXERCONTROLDETAILS, *LPMIXERCONTROLDETAILS;

成员

cbStruct

MIXERCONTROLDETAILS 结构的大小(以字节为单位)。 大小必须足够大,才能包含基本 MIXERCONTROLDETAILS 结构。 当 mixerGetControlDetails 返回时,此成员包含返回的信息的实际大小。 返回的信息不会超过请求的大小,也不会小于基本 MIXERCONTROLDETAILS 结构。

dwControlID

要获取或设置属性的控制标识符。

cChannels

要获取或设置控件属性的通道数。 定义了以下值:

名称 说明
0
当控件是MIXERCONTROL_CONTROLTYPE_CUSTOM控件时,请使用此值。
1
当控件是MIXERCONTROL_CONTROLF_UNIFORM控件时,或者当应用程序需要获取和设置所有通道时,请使用此值,就像它们是统一的通道一样。
MIXERLINE cChannels
当行的所有通道上都预期控件的属性时,请使用此值。
 

应用程序无法指定介于 1 和音频线声道数之间的值。 例如,为四声道行指定 2 或 3 无效。 对于非自定义控件类型,此成员不能为 0。

对于非自定义控件类型,此成员不能为 0。

DUMMYUNIONNAME

DUMMYUNIONNAME.hwndOwner

拥有 mixer 控件的自定义对话框的窗口的句柄。 在 mixerSetControlDetails 函数中指定MIXER_SETCONTROLDETAILSF_CUSTOM标志时,使用此成员。

DUMMYUNIONNAME.cMultipleItems

要获取或设置属性的每个通道的多个项数。 定义了以下值:

名称 说明
0
将此值用于除MIXERCONTROL_CONTROLF_MULTIPLE或MIXERCONTROL_CONTROLTYPE_CUSTOM控件以外的所有控件。
MIXERCONTROL cMultipleItems 成员
当控件类MIXERCONTROL_CONTROLF_MULTIPLE时,请使用此值。
MIXERCONTROLDETAILS hwndOwner 成员
当控件是MIXERCONTROL_CONTROLTYPE_CUSTOM控件,并且为 mixerSetControlDetails 函数指定了MIXER_SETCONTROLDETAILSF_CUSTOM标志时,请使用此值。

在这种情况下,hwndOwner 成员与 cMultipleItems 重叠,提供窗口句柄的值。

 

使用不带MIXERCONTROL_CONTROLTYPE_CUSTOM标志的MIXERCONTROL_CONTROLTYPE_CUSTOM控件时,请为此成员指定零。

应用程序不能指定除在 MIXERCONTROL 结构的 cMultipleItems 成员中为MIXERCONTROL_CONTROLF_MULTIPLE控件指定的值之外的任何值。

cbDetails

使用以下详细信息结构之一的大小(以字节为单位):

名称 说明
MIXERCONTROLDETAILS_BOOLEAN
音频行控件的布尔值。
MIXERCONTROLDETAILS_LISTTEXT
列出音频行控件的文本缓冲区。 有关特定控件的相应详细信息结构的信息,请参阅 控件类型
MIXERCONTROLDETAILS_SIGNED
音频行控件的有符号值。
MIXERCONTROLDETAILS_UNSIGNED
音频线路控件的无符号值。

paDetails

指向一个或多个结构的数组的指针,其中检索或设置指定控件的属性。

对于MIXERCONTROL_CONTROLF_MULTIPLE控件,此缓冲区的大小应为 MIXERCONTROLDETAILS 结构的 cChannelscMultipleItemscbDetails 成员的乘积。 对于除MIXERCONTROL_CONTROLF_MULTIPLE类型之外的控件,此缓冲区的大小是 MIXERCONTROLDETAILS 结构的 cChannelscbDetails 成员的乘积。

对于除MIXERCONTROL_CONTROLF_MULTIPLE类型之外的控件,此缓冲区的大小是 MIXERCONTROLDETAILS 结构的 cChannelscbDetails 成员的乘积。 对于除MIXERCONTROL_CONTROLF_MULTIPLE类型之外的控件,此缓冲区的大小是 MIXERCONTROLDETAILS 结构的 cChannelscbDetails 成员的乘积。

对于MIXERCONTROL_CONTROLF_MULTIPLE类型的控件,可以将数组视为通道主的二维数组。 也就是说,为左侧通道提供所有多个项,然后为右侧通道提供所有多个项,依此类比。

对于MIXERCONTROL_CONTROLF_MULTIPLE类型以外的控件,每个元素索引等效于它所影响的从零开始的通道。 也就是说,paDetails[0] 表示左通道,paDetails[1] 表示右声道。

如果控件是MIXERCONTROL_CONTROLTYPE_CUSTOM控件,则此成员必须指向至少足够大以包含 MIXERCONTROL 结构的 cbCustomData 成员指定的大小(以字节为单位)的缓冲区。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 mmeapi.h

另请参阅

音频混音器结构

音频混音器

MIXERCONTROL

mixerGetControlDetails

mixerSetControlDetails