ACMSTREAMHEADER 结构 (msacm.h)

ACMSTREAMHEADER 结构定义用于标识转换流的 ACM 转换源和目标缓冲区对的标头。

语法

typedef struct tACMSTREAMHEADER {
  DWORD     cbStruct;
  DWORD     fdwStatus;
  DWORD_PTR dwUser;
  LPBYTE    pbSrc;
  DWORD     cbSrcLength;
  DWORD     cbSrcLengthUsed;
  DWORD_PTR dwSrcUser;
  LPBYTE    pbDst;
  DWORD     cbDstLength;
  DWORD     cbDstLengthUsed;
  DWORD_PTR dwDstUser;
  DWORD     dwReservedDriver[_DRVRESERVED];
} ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;

成员

cbStruct

ACMSTREAMHEADER 结构的大小(以字节为单位)。 在应用程序使用此结构调用任何 ACM 流函数之前,必须初始化此成员。 此成员中指定的大小必须足够大,才能包含基本 ACMSTREAMHEADER 结构。

fdwStatus

提供有关转换缓冲区信息的标志。 在应用程序调用 acmStreamPrepareHeader 函数之前,必须将此成员初始化为零,并且当流标头保持就绪状态时,应用程序不应对其进行修改。

名称 说明
ACMSTREAMHEADER_STATUSF_DONE
由 ACM 或驱动程序设置,以指示它已完成转换并将缓冲区返回到应用程序。
ACMSTREAMHEADER_STATUSF_INQUEUE
由 ACM 或驱动程序设置以指示缓冲区已排队等待转换。
ACMSTREAMHEADER_STATUSF_PREPARED
由 ACM 设置以指示已使用 acmStreamPrepareHeader 函数准备缓冲区。

dwUser

用户数据。 这可以是应用程序指定的任何实例数据。

pbSrc

指向源缓冲区的指针。 当流标头保持就绪状态时,此指针必须始终引用同一位置。 如果应用程序需要更改源位置,则必须取消准备标头并使用备用位置对其进行准备。

cbSrcLength

pbSrc 指向的源缓冲区的长度(以字节为单位)。 准备标头后,此成员必须指定将在源缓冲区中使用的最大大小。 可以对小于或等于原始准备大小的源长度执行转换。 但是,当应用程序取消准备标头时,必须将此成员重置为原始大小。

cbSrcLengthUsed

用于转换的数据量(以字节为单位)。 在转换完成之前,此成员无效。 此值可以小于或等于 cbSrcLength。 应用程序在前进到转换流的下一段源数据时,必须使用 cbSrcLengthUsed 成员。

dwSrcUser

用户数据。 这可以是应用程序指定的任何实例数据。

pbDst

指向目标缓冲区的指针。 当流标头保持就绪状态时,此指针必须始终引用同一位置。 如果应用程序需要更改目标位置,则必须取消准备标头并使用备用位置对其进行准备。

cbDstLength

pbDst 指向的目标缓冲区的长度(以字节为单位)。 准备标头后,此成员必须指定将在目标缓冲区中使用的最大大小。

cbDstLengthUsed

转换返回的数据量(以字节为单位)。 在转换完成之前,此成员无效。 此值可以小于或等于 cbDstLength。 应用程序在前进到转换流的下一个目标位置时必须使用 cbDstLengthUsed 成员。

dwDstUser

用户数据。 这可以是应用程序指定的任何实例数据。

dwReservedDriver[_DRVRESERVED]

保留值;请勿使用。 此成员不需要应用程序进行初始化,并且不应在标头保持就绪状态时进行修改。

注解

ACMSTREAMHEADER 结构可用于转换之前,必须使用 acmStreamPrepareHeader 函数对其进行准备。 当应用程序使用 ACMSTREAMHEADER 结构完成时,它必须在释放源缓冲区和目标缓冲区之前调用 acmStreamUnprepareHeader 函数。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 msacm.h

另请参阅

音频压缩管理器

音频压缩结构

acmStreamPrepareHeader

acmStreamUnprepareHeader