Основы программирования в Win32API. Марапулец Ю.В. - 146 стр.

UptoLike

Составители: 

граммами;
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