Platform SDK 中控制系統音量的另一個重要結構MIXERLINECONTROLS結構體定義 (轉)

worldblog發表於2007-12-10
Platform SDK 中控制系統音量的另一個重要結構MIXERLINECONTROLS結構體定義 (轉)[@more@]  MIXERLINECONTROLS結構體定義
MIXERLINECONTROLS
typedef struct{
D cbStruct;
指示出MIXERLINECONTROLS結構的大小(位元組單位)。該成員必須在mixerGetLineControls之前被初始化。這個大小必須足以包括基本的MIXERLINECONTROLS結構。當mixerGetLineControls返回,該成員包括了返回資訊的實際大小。返回資訊不超過請求的大小,也不能小於基本的MIXERLINECONTROLS結構。
DWORD dwLineID;
將要被查詢的控制的線路識別符號。在mixerGetLineControls函式使用了MIXER_GETLINECONTROL_ONEBYID標誌的時候該成員無效,但此時混音裝置仍然返回這個成員的值。
union{
 DWORD dwControlID;
期望要控制的控制識別符號。該成員用來在mixerGetLineControls函式使用了MIXER_GETLINECONTROLSF_ONEBYID標誌的時候查詢特定控制的控制資訊,此時dwLineID成員作為返回引數而非輸入引數。本成員與dwControlType一致,並且不能和MIXER_GETLINECONTROLSF_ONEBYTYPE查詢型別一起使用。
 DWORD dwControlType;
期望要控制的控制型別,該成員用來在mixerGetLineControls函式使用了MIXER_GETLINECONTROLSF_ ONEBYTYPE標誌的時候,檢索由dwLineID定義的線路上特定型別的第一個控制的控制資訊。本成員與dwControlID一致,並且不能和MIXER_GETLINECONTROLSF_ONEBYID查詢型別一起使用。
* dwControlID和dwControlType在指定了MIXER_GETLINECONTROLSF_ALL的時候無效。
};
DWORD cControls;
要檢索的MIXERLINECONTROLS結構體元素的數目。該成員必須在呼叫mixerGetLineControls函式之前被初始化。只有在定義了MIXER_GETLINECONTROLSF_ONEBYID 或MIXER_GETLINECONTROLSF_ONEBYTYPE時本成員可以取值“1”,否則取值為線路返回的MIXERLINE 結構體成員cControls的值。不能取“0”。如果一個音訊線路指定為沒有控制,則不可呼叫mixerGetLineControls函式。
DWORD cbmxctrl;
單個MIXERCONTROL結構大小,這個大小必須足以包括基本的MIXERCONTROL結構。指標pamxctrl指向的buffer的總大小應該是cbmxctrl和cControls成員的乘積。
LPMIXERCONTROL pamxctrl;
指向一個或多個MIXERCONTROL結構,接收所請求的音訊線路控制的屬性。該成員不能為NULL且必須在呼叫mixerGetLineControls函式前被初始化。該陣列的每個元素必須足以包括基本的MIXERCONTROL結構。Cbmxctrl指定陣列的每個元素的大小。本成員所指向的buffer不需要初始化。呼叫成功後,所有成員(包括每個MIXERCONTROL結構裡的cbStruct成員)都由混音裝置(mixer device)填寫好值。
} MIXERLINECONTROLS;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章