Составители:
Рубрика:
граммами;
MMIO_DENYWRITE – предотвращает изменение файла другими про-
граммами;
MMIO_ALLOCBUF – обеспечивает буферизацию ввода/вывода.
В библиотеках языка С функция fopen начинает буферизованный
ввод/вывод, а функция _open – небуферизованный ввод/вывод. Аналогичные
действия можно задать с помощью флага MMIO_ALLOCBUF.
Система откли-
кается на соответствующую команду выделением буфера, размер которого за-
дан по умолчанию (8 Кб). Чтобы увеличить или уменьшить размер буфера,
нужно указать соответствующее значение в структуре MMIOINFO или вы-
звать функцию mmioSetBuffer().
Функция mmioOpen() возвращает дескриптор мультимедийного файла.
Такие дескрипторы не совместимы с дескрипторами других файлов, и их
нельзя использовать с другими файловыми функциями С-библиотек или
функциями подсистемы Win32.
Функции mmioRead(), mmioWrite() и mmioClose() выполняют с мультиме-
дийными файлами соответственно операции чтения, записи и закрытия.
Ряд функций ввода/вывода специально ориентирован на выполнение опе-
раций с блоками данных. Чтобы добавить в файл новый блок, следует вызвать
функцию mmioCreateChunk(). Эта команда записывает заголовок блока, вклю-
чающий тег, размер, а также (для блоков RIFF и LI ST) код содержимого и ус-
танавливает позицию указателя файла на том байте, с которого начнется за-
пись двоичных данных с помощью функции mmioWrite():
MMRESULT mmioCreateChunk( HMMIO hmmio, // дескриптор RIFF-файла
LPMMCKINFO lpmmcki, // описание нового блока
UINT uOptions, // параметры создания);…
Для записи блоков RIFF и LIST установите соответственно флаги
MMIO_CREATERIFF
и MMIO_CREATELIST.
Для перемещения указателя файла от блока к блоку служат функции mmi-
oDescend() и mmioAscend(). Первая перемещает указатель на начало блока
данных, а вторая – на его конец:
MMRESULT mmioDescend( HMMIO hmmio, // дескриптор RIFF-файла
LPMMCKINFO lpmmcki, // место для записи
// информации о блоке
LPMMCKINFO lpnunckiParent, // необязательная структура
// родительского блока
UINT uSearch, // флаги поиска);
MMRESULT mmioAscend( HMMIO hmmio, // дескриптор RIFF-файла
LPMMCKINFO lpmmcki, // место для записи
// информации о блоке
UINT uReserved, // зарезервирован;
// должен содержать 0 );...
146
граммами; MMIO_DENYWRITE – предотвращает изменение файла другими про- граммами; MMIO_ALLOCBUF – обеспечивает буферизацию ввода/вывода. В библиотеках языка С функция fopen начинает буферизованный ввод/вывод, а функция _open – небуферизованный ввод/вывод. Аналогичные действия можно задать с помощью флага MMIO_ALLOCBUF. Система откли- кается на соответствующую команду выделением буфера, размер которого за- дан по умолчанию (8 Кб). Чтобы увеличить или уменьшить размер буфера, нужно указать соответствующее значение в структуре MMIOINFO или вы- звать функцию mmioSetBuffer(). Функция mmioOpen() возвращает дескриптор мультимедийного файла. Такие дескрипторы не совместимы с дескрипторами других файлов, и их нельзя использовать с другими файловыми функциями С-библиотек или функциями подсистемы Win32. Функции mmioRead(), mmioWrite() и mmioClose() выполняют с мультиме- дийными файлами соответственно операции чтения, записи и закрытия. Ряд функций ввода/вывода специально ориентирован на выполнение опе- раций с блоками данных. Чтобы добавить в файл новый блок, следует вызвать функцию mmioCreateChunk(). Эта команда записывает заголовок блока, вклю- чающий тег, размер, а также (для блоков RIFF и LI ST) код содержимого и ус- танавливает позицию указателя файла на том байте, с которого начнется за- пись двоичных данных с помощью функции mmioWrite(): MMRESULT mmioCreateChunk( HMMIO hmmio, // дескриптор RIFF-файла LPMMCKINFO lpmmcki, // описание нового блока UINT uOptions, // параметры создания);… Для записи блоков RIFF и LIST установите соответственно флаги MMIO_CREATERIFF и MMIO_CREATELIST. Для перемещения указателя файла от блока к блоку служат функции mmi- oDescend() и mmioAscend(). Первая перемещает указатель на начало блока данных, а вторая – на его конец: MMRESULT mmioDescend( HMMIO hmmio, // дескриптор RIFF-файла LPMMCKINFO lpmmcki, // место для записи // информации о блоке LPMMCKINFO lpnunckiParent, // необязательная структура // родительского блока UINT uSearch, // флаги поиска); MMRESULT mmioAscend( HMMIO hmmio, // дескриптор RIFF-файла LPMMCKINFO lpmmcki, // место для записи // информации о блоке UINT uReserved, // зарезервирован; // должен содержать 0 );... 146