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


Создание средства чтения и открытие файла

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Его заменили Источник Чтения и Запись Приемника. Source Reader и Sink Writer оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения исходного кода и записи приемников вместо пакета SDK для Windows Media 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Прежде чем работать с читателем, необходимо создать объект чтения и загрузить файл для чтения. Чтобы инициализировать средство чтения и открыть файл, выполните следующие действия.

  1. Создайте объект чтения, вызвав функцию WMCreateReader . Необходимо указать требуемый уровень управления правами для нового объекта для чтения. Доступные режимы перечислены в типе перечисления WMT_RIGHTS.
  2. Укажите файл для чтения путем вызова IWMReader::Open. Для использования средства чтения необходимо указать интерфейс обратного вызова читателя. Дополнительные сведения о средствах обратного вызова чтения см. в по реализации сообщений читателя в обратном вызове OnStatus.
  3. Подождите, пока читатель откроет файл. При вызове Open для загрузки файла он возвращается почти сразу и продолжает обработку в другом потоке. Вы должны ожидать завершения операций, посылая сигнал о событии, когда обратный вызов OnStatus получает сообщение о состоянии WMT_OPENED.

Средство чтения также поддерживает использование интерфейса COM IStream для открытия файлов. Вы можете реализовать интерфейс IStream любым способом. После открытия нужного файла в IStreamможно выполнить указанные выше действия, за исключением того, что необходимо вызвать IWMReaderAdvanced2::OpenStream вместо IWMReader::Open на шаге 2.

интерфейс IWMReader

интерфейс IWMReaderAdvanced2

интерфейс IWMStatusCallback

чтение файлов с помощью асинхронного ридера

использование методов обратного вызова