Platform SDK 中控制系統音量的重要結構MIXERCONTROLDETAILS結構體定義 (轉)
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Platform SDK 中控制系統音量的另一個重要結構MIXERLINECONTROLS結構體定義 (轉)Platform結構體
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- iovec結構體定義及使用結構體
- oracle體系結構(轉)Oracle
- libev中ev_loop結構體中巨集定義的理解OOP結構體
- java中serverlet的體系結構JavaServer
- WTL體系結構(3) (轉)
- WTL體系結構(2) (轉)
- WTL體系結構(4) (轉)
- WTL體系結構(1) (轉)
- 結構體和類中屬性定義需要static地方結構體
- oracle 體系結構-控制檔案(二)Oracle
- Oracle 體系結構-控制檔案(一)Oracle
- 作業系統體系結構作業系統
- 【Oracle體系結構】 Oracle19C 系統結構介紹Oracle
- FreeBSD DNS的體系結構(轉)DNS
- Oracle體系結構之-物理結構Oracle
- 資料結構:順序結構和鏈式結構的資料型別定義資料結構資料型別
- Oracle體系結構之-記憶體結構Oracle記憶體
- Oracle 體系結構介紹(轉)Oracle
- 結構體定義 typedef struct 用法詳解和用法小結結構體Struct
- 3:Oracle體系結構(邏輯結構)Oracle
- HDFS的體系結構
- Delphi重定義的訊息結構
- 控制結構
- Linux系統中有哪些比較重要的檔案系統結構?Linux
- ORACLE體系結構小結Oracle
- oracle體系結構總結Oracle
- Java HotSpot效能引擎的體系結構 (轉)JavaHotSpot
- FreeBSD下 DNS的體系結構(轉)DNS
- 【PG體系結構】PG體系結構簡單說明
- Software Architecture(軟體體系結構) (轉)
- 如何定義一個自帶資料區的結構體:三種資料結構體的比較結構體資料結構
- BeanFactory體系結構Bean
- 【JVM體系結構】JVM
- Servlet 體系結構Servlet
- MySQL 體系結構MySql
- MongoDB 體系結構MongoDB