IDvdInfo2::GetDVDTextStringAsUnicode 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 GetDVDTextStringAsUnicode 检索指定语言的 DVD 文本字符串,并将文本字符串作为 Unicode 字符串返回。

语法

HRESULT GetDVDTextStringAsUnicode(
  [in]  ULONG              ulLangIndex,
  [in]  ULONG              ulStringIndex,
  [out] WCHAR              *pchwBuffer,
  [in]  ULONG              ulMaxBufferSize,
  [out] ULONG              *pulActualSize,
  [out] DVD_TextStringType *pType
);

参数

[in] ulLangIndex

语言的从零开始的索引。 若要查找 DVD 上的文本字符串语言数,请调用 IDvdInfo2::GetDVDTextNumberOfLanguages

[in] ulStringIndex

要检索的字符串的从零开始的索引。 若要查找给定语言的字符串数,请调用 IDvdInfo2::GetDVDTextLanguageInfo

[out] pchwBuffer

指向接收文本字符串的缓冲区的指针。 如果 pchBufferNULL,此方法返回 pulActualSize 中的字符串大小。

[in] ulMaxBufferSize

pchBuffer 缓冲区的大小(以 WCHAR 为单位)。

[out] pulActualSize

接收字符串的实际长度(以字符为单位),包括终止 NULL

[out] pType

接收 DVD_TextStringType 枚举的成员。 值指示文本字符串的类型,例如电影标题或歌曲名称。 此参数还可以接收 未在 DVD_TextStringType 枚举中定义的值。

返回值

返回以下 HRESULT 值之一。

返回代码 说明
S_OK
成功。
E_FAIL
不支持的 te
E_POINTER
无效的参数。
E_UNEXPECTED
发生意外内部错误。

注解

此方法支持编码为 Unicode 或 7 位 ASCII (ISO/IEC 646) 的文本字符串。 如果文本字符串使用 ASCII 编码,则 方法会将字符串转换为宽字符字符串。 如果文本字符串使用任何其他字符集,该方法将返回E_FAIL。 在这种情况下,可以调用 IDvdInfo2::GetDVDTextStringAsNative 来检索字符串作为原始字节数组。 若要查找字符集,请调用 IDvdInfo2::GetDVDTextLanguageInfo

返回的字符串始终包含终止 NULL。 如果缓冲区小于 DVD 文本字符串的长度,则字符串将被截断。 若要查找缓冲区所需的大小,请在 pchBuffer 等于 NULLulMaxBufferSize 等于零的情况下调用方法一次。 大小以 pulActualSize 返回。 然后分配缓冲区并再次调用 方法。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

DVD 应用程序

错误和成功代码

IDvdInfo2 接口

使用 DVD 文本字符串