Поделиться через


Метод IDvdInfo2::GetDVDTextStringAsUnicode (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод GetDVDTextStringAsUnicode извлекает текстовую строку DVD для указанного языка и возвращает текстовую строку в виде строки Юникода.

Синтаксис

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

Указатель на буфер, получающий текстовую строку. Если pchBuffer имеет значение NULL, этот метод возвращает размер строки в pulActualSize.

[in] ulMaxBufferSize

Размер буфера pchBuffer в WCHAR.

[out] pulActualSize

Получает фактическую длину строки в символах, включая завершающее значение NULL.

[out] pType

Получает член перечисления DVD_TextStringType . Значение указывает тип текстовой строки, например название фильма или название песни. Этот параметр также может получать значения, не определенные в перечислении DVD_TextStringType .

Возвращаемое значение

Возвращает одно из следующих значений HRESULT .

Код возврата Описание
S_OK
Успешно.
E_FAIL
Неподдерживаемый te
E_POINTER
Недопустимый аргумент.
E_UNEXPECTED
Произошла непредвиденная внутренняя ошибка.

Комментарии

Этот метод поддерживает текстовые строки, закодированные в Юникоде или 7-разрядном формате ASCII (ISO/IEC 646). Если в текстовой строке используется кодировка ASCII, метод преобразует строку в строку с расширенными символами. Если в текстовой строке используется любая другая кодировка, метод возвращает E_FAIL. В этом случае можно вызвать IDvdInfo2::GetDVDTextStringAsNative , чтобы получить строку в виде необработанного массива байтов. Чтобы найти набор символов, вызовите IDvdInfo2::GetDVDTextLanguageInfo.

Возвращаемая строка всегда содержит завершающее значение NULL. Если буфер меньше длины текстовой строки DVD, строка усекается. Чтобы найти требуемый размер буфера, вызовите метод один раз с pchBufferравным NULL и ulMaxBufferSize равным нулю. Размер возвращается в pulActualSize. Затем выделите буфер и вызовите метод еще раз.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

См. также раздел

Приложения DVD

Коды ошибок и успешного выполнения

Интерфейс IDvdInfo2

Работа с текстовыми строками DVD