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


Создание фрагмента RIFF

[Функция, связанная с этой страницей, мультимедийный файл ввода-вывода, является устаревшей функцией. Он был заменен средством чтения источника. Средство чтения исходного кода оптимизировано для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать средство чтения исходного кода вместо мультимедийного файлового ввода-вывода. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

В следующем примере функция mmioCreateChunk используется для создания блока с идентификатором блока "RIFF" и типом формы "RDIB".

HMMIO    hmmio; 
MMCKINFO mmckinfo; 
. 
. 
. 
mmckinfo.fccType = mmioFOURCC('R', 'D', 'I', 'B'); 
mmioCreateChunk(hmmio, &mmckinfo, MMIO_CREATERIFF); 

При создании блока "RIFF" или "LIST" необходимо указать тип формы или типа списка в элементе fccType структуры MMCKINFO . В предыдущем примере "RDIB" — это тип формы.

Если вы знаете размер поля данных в новом блоке, можно задать элемент cksize структуры MMCKINFO при создании блока. Это значение будет записано в поле размера данных в новом фрагменте. Если это значение неверно при вызове mmioAscend для пометки конца блока, оно будет автоматически переписано, чтобы отразить правильный размер поля данных.

После создания блока с помощью функции mmioCreateChunk положение файла устанавливается в поле данных блока (8 байт от начала блока). Если фрагмент является фрагментом "RIFF" или "LIST", позиция файла устанавливается в расположение после типа формы или списка (12 байт от начала блока).