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


Метод IDvdControl2::SetDVDDirectory (strmif.h)

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

Метод SetDVDDirectory задает DVD-дисковод, с который будет считываться фильтр НАВигатор DVD .

Синтаксис

HRESULT SetDVDDirectory(
  [in] LPCWSTR pszwPath
);

Параметры

[in] pszwPath

Указатель на строку расширенных символов, указывающую путь к корневому каталогу.

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

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

Код возврата Описание
S_OK
Успешно.
E_INVALIDARG
Параметр pszwPath указывает на недопустимый путь к DVD, или DVD-дисковод не найден во время перечисления.
E_UNEXPECTED
DVD-навигатор не инициализирован.
VFW_E_DVD_INVALIDDOMAIN
Недопустимый домен. Дополнительные сведения см. в разделе "Заметки".

Комментарии

Если pszwPath имеет значение NULL, DVD-навигатор пытается выбрать dvd-том на любом доступном диске. При запуске DVD-навигатор автоматически ищет диск, начиная с диска C, с папкой VIDEO_TS в корневой папке. Поэтому вызов необходимо выполнять SetDVDDirectory только в том случае, если на компьютере установлено несколько DVD-дисководов или если буква DVD-диска A или B. При указании пути включите папку video_ts.

C++
SetDVDDirectory(L"e:\\video_ts");
Некоторые тома DVD могут содержать видео в каталоге, отличном от "video_ts". Общая идея заключается в том, что дополнительный "ТОМ DVD" (набор . IFO. VOB и . Файлы BUP, которые обычно хранятся в каталоге VIDEO_TS), можно поместить в подкаталог на диске. Изменив корневой каталог таким образом, чтобы он указывал на этот каталог, MSWebDVD будет работать с этим отдельным томом DVD. Будет доступен новый набор меню, заголовков и т. д., независимо от заголовков в корневом каталоге VIDEO_TS, который больше не будет доступен. Такие каталоги называются скрытыми каталогами. В следующем примере показано, как задать скрытый каталог в качестве корневого каталога, где "hidden" — это заполнитель для любого имени, присвоенного авторами дисков каталогу.
C++
SetDVDDirectory(L"d:\\webdvd\\hidden");
Если граф фильтра запущен, а DVD-навигатор находит DVD-диск в каталоге, указанном в pszwPath, DVD-навигатор автоматически начинает воспроизведение диска. Это соответствует спецификации DVD и гарантирует правильную инициализацию нового диска. Если вы не хотите, чтобы новый диск автоматически воспроизводился после SetDVDDirectory возврата, необходимо установить для флага DVD_ResetOnStop в IDvdControl2::SetOptionзначение TRUE и остановить граф фильтра с помощью вызова IMediaControl::Stop в диспетчере фильтров Графа. Если DVD_ResetOnStop имеет значение FALSE, возвращается SetDVDDirectory VFW_E_DVD_INVALIDDOMAIN.

Этот метод демонстрируется в приложении DVDSample в CDvdCore::SetDirectory.

В следующей таблице приведено имя команды Приложения J, которой соответствует это имя метода, и домены, в которых этот метод является допустимым.

Имя команды Приложения J Допустимые домены
Нет DVD_DOMAIN_Stop

Требования

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

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

Приложения DVD

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

Интерфейс IDvdControl2