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 指向的缓冲区包含对话框将用作初始选择的有效 WAVEFORMATEX 结构。 |
|
对话框中将显示一个帮助按钮。 若要使用自定义帮助文件,应用程序必须使用 RegisterWindowMessage 函数注册 ACMHELPMSGSTRING 常量。 当用户按下帮助按钮时,注册的消息将发布到所有者。 |
hwndOwner
对话框所在的窗口的句柄。 此成员可以是任何有效的窗口句柄;如果对话框没有所有者,则为 NULL 。 在调用 acmFormatChoose 函数之前,必须初始化此成员。
pwfx
指向 WAVEFORMATEX 结构的指针。 如果在 fdwStyle 成员中指定了 ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 标志,则必须将此结构初始化为有效的格式。 当 acmFormatChoose 函数返回时,此缓冲区包含所选格式。 如果用户取消对话框,则不会对此缓冲区进行更改。
cbwfx
pwfx 指向的缓冲区的大小(以字节为单位)。 如果缓冲区太小而无法包含格式信息, 则 acmFormatChoose 函数将返回ACMERR_NOTPOSSIBLE。 此外,ACM 还会将所需大小复制到此成员中。 应用程序可以使用 acmMetrics 和 acmFormatTagDetails 函数来确定此缓冲区所需的最大大小。
pszTitle
指向要放置在对话框标题栏中的字符串的指针。 如果此成员为 NULL,则 ACM 使用默认标题 (即“声音选择”) 。
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 成员指向的 WAVEFORMATEX 结构有效。 枚举器将仅枚举可从给定 pwfxEnum 格式转换的目标格式。 |
|
枚举器应仅枚举一个或多个已安装的波形音频设备在硬件中支持的格式。 此标志为应用程序提供了一种仅选择已安装波形音频设备原生格式的方法。 |
|
枚举器应仅枚举输入 (记录) 支持的格式。 |
|
pwfxEnum 成员指向的 WAVEFORMATEX 结构的 nChannels 成员有效。 枚举器将仅枚举符合此属性的格式。 |
|
pwfxEnum 成员指向的 WAVEFORMATEX 结构的 nSamplesPerSec 成员有效。 枚举器将仅枚举符合此属性的格式。 |
|
枚举器应仅枚举输出 (播放) 支持的格式。 |
|
pwfxEnum 成员指向的 WAVEFORMATEX 结构有效。 枚举器将枚举给定 pwfxEnum 格式的所有建议目标格式。 |
|
pwfxEnum 成员指向的 WAVEFORMATEX 结构的 wBitsPerSample 成员有效。 枚举器将仅枚举符合此属性的格式。 |
|
pwfxEnum 成员指向的 WAVEFORMATEX 结构的 wFormatTag 成员有效。 枚举器将仅枚举符合此属性的格式。 |
pwfxEnum
指向将用于限制对话框中所列格式的 WAVEFORMATEX 结构的指针。 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 |