Метод IMediaLocator::FindMediaFile
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Примечание
[Не рекомендуется. Этот API может быть удален из будущих выпусков Windows.]
Метод FindMediaFile
выполняет поиск файла и в случае успешного выполнения извлекает путь к файлу.
Синтаксис
HRESULT FindMediaFile(
BSTR Input,
BSTR FilterString,
BSTR *pOutput,
long Flags
);
Параметры
-
Ввод
-
Имя файла, включая путь, по которому последний раз находился файл. Для исходных объектов в временная шкала используйте текущее имя носителя.
-
FilterString
-
BSTR, содержащий пары строк фильтра, отформатированные в соответствии с требованиями члена lpstrFilter структуры OPENFILENAME. Указатель мультимедиа использует этот фильтр, если отображается диалоговое окно Открытие файла. Значение может иметь значение NULL , если параметр Flags не содержит флаг SFN_VALIDATEF_POPUP.
-
pOutput
-
Указатель на переменную, которая получает фактический путь к файлу, если он отличается от значения, содержащегося во входных данных , и если метод успешно находит файл.
-
Flags
-
Побитовое сочетание нулевых или более флагов. Список возможных флагов см. в разделе Флаги проверки имени файла.
Возвращаемое значение
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Строка фильтра для диалогового окна "Открытие файла", заданного параметром FilterString , содержит внутренние символы NULL. Например, Video\0*.avi\0\0 является допустимой строкой фильтра. Нельзя использовать функцию SysAllocStr для выделения BSTR, так как эта функция ожидает строку, завершающуюся значением NULL, и будет усечь строку по первому символу NULL. Поэтому используйте функцию, например SysAllocStringLen, которая включает явный параметр длины:
BSTR filter = SysAllocStringLen(L"Video\0*.avi\0", 12);
// Note: SysAllocStringLen appends an additional '\0' to the string.
Если пользователь отменяет диалоговое окно Открытие файла, метод возвращает E_FAIL.
Метод выделяет память для BSTR в pOutput. Приложение должно вызвать SysFreeString , чтобы освободить память.
Примечание
Файл заголовка Qedit.h несовместим с заголовками Direct3D более поздней версии 7.
Примечание
Чтобы получить Qedit.h, скачайте обновление Microsoft Windows SDK для Windows Vista и платформа .NET Framework 3.0. Qedit.h недоступен в Microsoft Windows SDK для Windows 7 и платформа .NET Framework 3.5 с пакетом обновления 1 (SP1).
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел