acmStreamConvert 函数 (msacm.h)
acmStreamConvert 函数请求 ACM 对指定的转换流执行转换。 转换可以是同步的,也可以是异步的,具体取决于流的打开方式。
语法
MMRESULT ACMAPI acmStreamConvert(
HACMSTREAM has,
LPACMSTREAMHEADER pash,
DWORD fdwConvert
);
parameters
has
打开的转换流的句柄。
pash
指向描述转换的源缓冲区和目标缓冲区的流标头的指针。 以前必须使用 acmStreamPrepareHeader 函数准备此标头。
fdwConvert
用于执行转换的标志。 定义了以下值。
值 | 含义 |
---|---|
ACM_STREAMCONVERTF_BLOCKALIGN | 只会转换整型块数。 转换的数据将在块对齐的边界上结束。 应用程序应将此标志用于流上的所有转换,直到没有足够的源数据转换为块对齐目标。 在这种情况下,应指定最后一个转换而不指定此标志。 |
ACM_STREAMCONVERTF_END | ACM 转换流应开始返回挂起的实例数据。 例如,如果转换流保存实例数据(例如回显筛选器操作的结束),则此标志将导致流开始返回带有可选源数据的剩余数据。 可以使用 ACM_STREAMCONVERTF_START 标志指定此标志。 |
ACM_STREAMCONVERTF_START | ACM 转换流应重新初始化其实例数据。 例如,如果转换流保存实例数据(如增量或预测器信息),则此标志会将流还原为起始默认值。 可以使用 ACM_STREAMCONVERTF_END 标志指定此标志。 |
返回值
如果成功,则返回零,否则返回错误。 可能的错误值包括以下内容。
返回代码 | 说明 |
---|---|
|
pash 中指定的流标头当前正在使用中,不能重复使用。 |
|
pash 中指定的流标头当前未由 acmStreamPrepareHeader 函数准备。 |
|
至少有一个标志无效。 |
|
指定的句柄无效。 |
|
至少有一个参数无效。 |
注解
必须先使用 acmStreamPrepareHeader 函数准备源缓冲区和目标缓冲区,然后才能将源缓冲区和目标缓冲区传递给 acmStreamConvert。
如果 ACM 或驱动程序成功将异步转换请求排队,并且稍后确定无法进行转换, 则 ACMSTREAMHEADER 结构将发回到应用程序的回调函数,并将 cbDstLengthUsed 成员设置为零。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | msacm.h |
Library | Msacm32.lib |
DLL | Msacm32.dll |