ACMFORMATCHOOSE 結構 (msacm.h)
ACMFORMATCHOOSE 結構包含 ACM用來初始化系統定義之電壓音訊格式選取對話方塊的資訊。 使用者關閉對話方塊之後,系統會傳回此結構中使用者選取專案的相關資訊。
語法
typedef struct tACMFORMATCHOOSE {
DWORD cbStruct;
DWORD fdwStyle;
HWND hwndOwner;
LPWAVEFORMATEX pwfx;
DWORD cbwfx;
LPCSTR pszTitle;
char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
LPSTR pszName;
DWORD cchName;
DWORD fdwEnum;
LPWAVEFORMATEX pwfxEnum;
HINSTANCE hInstance;
LPCSTR pszTemplateName;
LPARAM lCustData;
ACMFORMATCHOOSEHOOKPROC pfnHook;
} ACMFORMATCHOOSE, *PACMFORMATCHOOSE, *LPACMFORMATCHOOSE;
成員
cbStruct
ACMFORMATCHOOSE結構的大小,以位元組為單位。 在應用程式呼叫 acmFormatChoose 函式之前,必須先初始化此成員。 此成員中指定的大小必須夠大,才能包含基底 ACMFORMATCHOOSE 結構。
fdwStyle
acmFormatChoose函式的選擇性樣式旗標。 在應用程式呼叫 acmFormatChoose 函式之前,此成員必須初始化為下列旗標的有效組合:
名稱 | 描述 |
---|---|
|
對話方塊中將會提供內容相關說明。 若要使用此功能,應用程式必須使用 RegisterWindowMessage 函式來註冊 ACMHELPMSGCONTEXTMENU 和 ACMHELPMSGCONTEXTHELP 常數。 當使用者叫用說明時,已註冊的訊息將會張貼到擁有視窗。 訊息會包含原始WM_CONTEXTMENU或WM_CONTEXTHELP訊息中的 wParam 和 lParam 參數。 |
|
啟用 pfnHook 成員指向的攔截函式。 應用程式可以使用勾點函式進行各種自訂,包括回答 MM_ACM_FORMATCHOOSE 訊息。 |
|
導致 ACM 建立 hInstance 和 pszTemplateName所識別的對話方塊範本。 |
|
hInstance成員會識別包含預先載入對話方塊範本的資料區塊。 如果指定此旗標,ACM 會忽略 pszTemplateName 成員。 |
|
pwfx所指向的緩衝區包含有效的DIALOGATEX結構,對話方塊將用來做為初始選取專案。 |
|
[說明] 按鈕會出現在對話方塊中。 若要使用自訂說明檔,應用程式必須使用 RegisterWindowMessage 函式註冊 ACMHELPMSGSTRING 常數。 當使用者按下 [說明] 按鈕時,已註冊的訊息將會張貼到擁有者。 |
hwndOwner
主控對話方塊之視窗的控制代碼。 這個成員可以是任何有效的視窗控制碼,如果對話方塊沒有擁有者,則為 Null 。 呼叫 acmFormatChoose 函式之前,必須先初始化此成員。
pwfx
將指標指標指向 一個顯示于其上 。 如果在 fdwStyle 成員中指定ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT旗標,則必須將此結構初始化為有效的格式。 當 acmFormatChoose 函式傳回時,此緩衝區會包含選取的格式。 如果使用者取消對話方塊,將不會對此緩衝區進行任何變更。
cbwfx
pwfx所指向緩衝區的大小,以位元組為單位。 如果緩衝區太小而無法包含格式資訊, acmFormatChoose 函式會傳回ACMERR_NOTPOSSIBLE。 此外,ACM 會將所需的大小複製到這個成員。 應用程式可以使用 acmMetrics 和 acmFormatTagDetails 函 式來判斷此緩衝區所需的大小上限。
pszTitle
要放在對話方塊標題列中之字串的指標。 如果此成員為 Null,ACM 會使用預設標題 (,也就是「Sound Selection」) 。
szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]
緩衝區包含 Null 終止字串,描述acmFormatTagDetails函式傳回的ACMFORMATTAGDETAILS結構時,格式選取範圍的格式標記。 如果使用者取消對話方塊,這個成員將會包含以 Null 結尾的字串。
szFormat[ACMFORMATDETAILS_FORMAT_CHARS]
緩衝區包含 Null 終止的字串,描述acmFormatDetails函式傳回的ACMFORMATDETAILS結構時,格式選取範圍的格式屬性。 如果使用者取消對話方塊,這個成員將會包含以 Null 結尾的字串。
pszName
使用者定義格式名稱之字串的指標。 如果這是非 Null 終止的字串,ACM 會嘗試比對名稱與先前儲存的使用者定義格式名稱。 如果找到相符專案,對話方塊就會初始化為該格式。 如果找不到相符專案,或此成員是 Null 終止的字串,則會在輸入時忽略此成員。 當 acmFormatChoose 函式傳回時,此緩衝區會包含描述使用者定義格式的 Null 終止字串。 如果格式名稱未命名為 (也就是說,使用者尚未指定格式) 的名稱,則傳回時,此成員會是以 Null 結尾的字串。 如果使用者取消對話方塊,將不會對此緩衝區進行任何變更。
cchName
pszName成員所識別緩衝區的大小,以字元為單位。 此緩衝區長度至少應為 128 個字元。 如果 pszName 成員為 Null,則會忽略此成員。
fdwEnum
選擇性旗標,用於限制對話方塊中所列的格式類型。 這些旗標與acmFormatEnum函式的fdwEnum旗標相同。 如果 pwfxEnum 為 Null,則此成員應為零。 已定義下列值:
名稱 | 描述 |
---|---|
|
pwfxEnum成員所指向的WASATEX結構有效。 列舉值只會列舉可從指定 pwfxEnum 格式轉換的目的地格式。 |
|
列舉值應該只列舉一或多個已安裝的電壓音訊裝置在硬體中支援的格式。 此旗標提供一種方式,讓應用程式只選擇原生格式為已安裝的電壓音訊裝置。 |
|
列舉值應該只列舉輸入 (錄製) 支援的格式。 |
|
pwfxEnum成員所指向之顯示方式的NChannels成員。 列舉值只會列舉符合此屬性的格式。 |
|
pwfxEnum成員所指向之顯示方式的NSamplesPerSec成員是有效的。 列舉值只會列舉符合此屬性的格式。 |
|
列舉值應該只列舉輸出 (播放) 支援的格式。 |
|
pwfxEnum成員所指向的WASATEX結構有效。 列舉值會列舉給定 pwfxEnum 格式的所有建議目的地格式。 |
|
pwfxEnum成員所指向之顯示之的WBitsPerSample成員是有效的。 列舉值只會列舉符合此屬性的格式。 |
|
pwfxEnum成員所指向之顯示之的WFormatTag成員是有效的。 列舉值只會列舉符合此屬性的格式。 |
pwfxEnum
將用來限制對話方塊中所列之格式的 一個顯示格式的一個顯示方式的 URLATEX 結構指標。 fdwEnum成員會定義pwfxEnum所指向之結構的成員,該成員應該用於列舉限制。 如果不需要任何特殊限制,此成員可以是 Null。 如需與 pwfxEnum 成員相關聯的其他需求,請參閱 acmFormatEnum 函式的描述。
hInstance
包含 pszTemplateName 成員所指定之對話方塊範本的資料區塊控制碼。 只有當 fdwStyle 成員指定ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE或ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE旗標時,才會使用此成員;否則,此成員在輸入時應該是 Null 。
pszTemplateName
Null 終止字串的指標,指定要取代 ACM 中對話方塊範本之對話方塊範本之資源檔的名稱。 應用程式可以使用 MAKEINTRESOURCE 宏做為編號對話方塊資源。 只有當 fdwStyle 成員指定ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE旗標時,才會使用此成員;否則,此成員在輸入時應該是 Null 。
lCustData
ACM 傳遞至 pfnHook 成員所識別的攔截函式的應用程式定義資料。 系統會在WM_INITDIALOG訊息的lParam參數中傳遞資料。
pfnHook
回呼函式的指標,該函式會處理用於對話方塊的訊息。 應用程式必須在 fdwStyle 成員中指定ACMFORMATCHOOSE_STYLEF_ENABLEHOOK旗標,才能啟用勾點;否則,這個成員應該是 Null。 攔截函式應該會傳回 FALSE ,以將訊息傳遞至標準對話方塊程式或 TRUE 以捨棄訊息。 回呼函式類型為 acmFormatChooseHookProc。
需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
標頭 | msacm.h |