Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

MmioFlush

MMRESULT mmioFlush( HMMIO hmmio, UINT fuFlush );

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

В случае успешного завершения работы возвращает нулевое значение. В противном случае возвращаемое значение может принимать одно из следующих значений:

  • MMIOERR_CANNOTWRITE — содержимое старого буфера не может быть записано на диск, что приводит к аварийному завершению операции.

Аргументы

  1. hmmio — дескриптор файла, открытого функцией mmioOpen.

  2. fuFlush — флаг, определяющий режим сохранения буфера. Может иметь нулевое значение или следующее:

  • MMIO_EMPTYBUF — очищает буфер после записи его содержимого на диск.

Примечание

Функция mmioFlush записывает содержимое буфера ввода/вывода на диск, если в него была записана какая-либо информация.

При закрытии файла функцией mmioClose содержимое буфера автоматически сохраняется на диске до закрытия файла.

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

Описание данной функции содержится в файле заголовка mmsystem.h. При работе с данной функцией следует включить в проект библиотеку winmm.lib.

MmioGetInfo

MMRESULT mmioGetInfo( HMMIO hmmio, LPMMIOINFO lpmmioinfo, UINT wFlags );

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

В случае успешного завершения работы возвращает нулевое значение. В противном случае возвращает значение ошибки.

Аргументы

  1. hmmio — дескриптор файла.

  2. lpmmioinfo — указатель на объект структуры MMIOINFO, в которую будет записана информация о файле.

  3. wFlags — зарезервирован. Должен иметь нулевое значение.

Примечание

Функция mmioGetInfo позволяет получить информацию по файлу, открытому функцией mmioOpen. Эта информация позволяет приложению получить непосредственный доступ к буферу ввода/вывода, если файл открыт в режиме буферированного ввода/вывода.

Для непосредственного доступа к буферу ввода/вывода используются следующие переменные объекта структуры MMIOINFO, заполняемого функцией mmioGetInfo:

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

  • Переменная pchEndRead указывает на байт, расположенный за последним байтом данного буфера, который может быть считан.

  • Переменная pchEndWrite указывает на байт, расположенный за последним байтом данного буфера, который может быть записан.

После проведения операции чтения или записи и модификации значения переменной pchNext до вызова функции mmioSetInfo нельзя вызывать никакие функции работы с мультимедийными файлами, кроме функции mmioAdvance. Функция mmioSetInfo вызывается при завершении операции прямого доступа к буферу.

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

При записи информации в буфер следует установить флаг MMIO_DIRTY в переменной dwFlags объекта структуры MMIOINFO. В противном случае при вызове функций mmioAdvance или mmioSetInfo информация, содержащаяся в буфере, не будет записана на диск.

Нельзя декрементировать значение переменной pchNext или изменять значения других переменных объекта структуры MMIOINFO, кроме pchNext и dwFlags. Единственным допустимым изменением переменной dwFlags является установка в ней флага MMIO_DIRTY.

Описание данной функции содержится в файле заголовка mmsystem.h. При работе с данной функцией следует включить в проект библиотеку winmm.lib.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]