Составители:
/* открытие файла для чтения */
hmmio = mmioOpen( lpszFileName, NULL, MMIO_ALLOCBUF |
MMIO_READ );
if (hmmio == NULL)
{
ReportError( hWnd, IDS_CANTOPEHFILE ) ;
return( FALSE ) ;
}
Команда mmioOpen принимает три входных параметра: имя файла,
структуру с дополнительными параметрами и флаги для обозначения операций.
Дополнительные параметры нужны только для изменения размера буфера, для
открытия файла в памяти и для указания пользовательской процедуры чтения
файла. Поскольку функция ReadWaveData не выполняет ни одну из этих
операций, второй параметр равен NULL.
Флаг MMIO_ALLOCBUF
включает буферизацию ввода/вывода. Другой
флаг, MMIO_READ,
задает открытие файла только для чтения. Функция
mmioWrite вернет сообщение об ошибке при записи в файл, открытый с
установленным флагом MMIO_READ.
/* выделяет из файла блок WAVE */
mmckinfoWave.fccType = mmioFOURCC('W,'А','V,'Е');
if
(mmioDescend(hmmio,&mmckinfoWave,NULL,MMIO_FINDRIFF)!=0)
{
ReportError( hWnd, IDS_NOTWAVEFILE );
mmioClose ( hmmio, 0 ) ;
return( FALSE ) ;
}
/* поиск вложенного блока формата */
mmckinfoFmt.ckid = mmioFOURCC('f,'m','t',' ');
if( mmioDescend( hmmio, &mmckinfoFmt, &mmckinfoWave,
MMIO_FINDCHUNK ) != 0)
{
ReportError( hWnd, IDS_CORRUPTEDFILE );
mmioClose ( hmmio, 0 );
return( FALSE ) ;
}
После открытия файла нам необходимо найти нужные данные и
проверить их правильность. Первая команда mmioDescend ищет метку RIFF,
за
которой следует код WAVE.
При успешном выполнении поиска вторая команда
ищет вложенный блок формата звукозаписи.
78
/* открытие файла для чтения */ hmmio = mmioOpen( lpszFileName, NULL, MMIO_ALLOCBUF | MMIO_READ ); if (hmmio == NULL) { ReportError( hWnd, IDS_CANTOPEHFILE ) ; return( FALSE ) ; } Команда mmioOpen принимает три входных параметра: имя файла, структуру с дополнительными параметрами и флаги для обозначения операций. Дополнительные параметры нужны только для изменения размера буфера, для открытия файла в памяти и для указания пользовательской процедуры чтения файла. Поскольку функция ReadWaveData не выполняет ни одну из этих операций, второй параметр равен NULL. Флаг MMIO_ALLOCBUF включает буферизацию ввода/вывода. Другой флаг, MMIO_READ, задает открытие файла только для чтения. Функция mmioWrite вернет сообщение об ошибке при записи в файл, открытый с установленным флагом MMIO_READ. /* выделяет из файла блок WAVE */ mmckinfoWave.fccType = mmioFOURCC('W,'А','V,'Е'); if (mmioDescend(hmmio,&mmckinfoWave,NULL,MMIO_FINDRIFF)!=0) { ReportError( hWnd, IDS_NOTWAVEFILE ); mmioClose ( hmmio, 0 ) ; return( FALSE ) ; } /* поиск вложенного блока формата */ mmckinfoFmt.ckid = mmioFOURCC('f,'m','t',' '); if( mmioDescend( hmmio, &mmckinfoFmt, &mmckinfoWave, MMIO_FINDCHUNK ) != 0) { ReportError( hWnd, IDS_CORRUPTEDFILE ); mmioClose ( hmmio, 0 ); return( FALSE ) ; } После открытия файла нам необходимо найти нужные данные и проверить их правильность. Первая команда mmioDescend ищет метку RIFF, за которой следует код WAVE. При успешном выполнении поиска вторая команда ищет вложенный блок формата звукозаписи. 78
Страницы
- « первая
- ‹ предыдущая
- …
- 76
- 77
- 78
- 79
- 80
- …
- следующая ›
- последняя »