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

worldblog發表於2007-12-10
Platform SDK 中控制系統音量的重要結構MIXERCONTROLDETAILS結構體定義 (轉)[@more@]

MIXERCONTROLDETAILS結構體定義

MIXERCONTROLDETAILS
typedef struct{
D 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_SETCONTROLDETAIL_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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章