
- •Приложение Глобальные функции acmDriverAdd
- •AcmDriverEnum
- •AcmDriverEnumCallback
- •AcmDriverPriority
- •AcmDriverProc
- •AcmDriverRemove
- •AcmFilterChoose
- •AcmFilterChooseHookProc
- •AcmFilterEnum
- •AcmFilterEnumCallback
- •AcmFilterTagEnum
- •AcmFilterTagEnumCallback
- •AcmFormatChoose
- •AcmFormatChooseHookProc
- •AcmFormatEnum
- •AcmFormatEnumCallback
- •AcmFormatSuggest
- •AcmFormatTagDetails
- •AcmFormatTagEnum
- •AcmFormatTagEnumCallback
- •AcmMetrics
- •AcmStreamClose
- •AcmStreamConvert
- •AcmStreamConvertCallback
- •AcmStreamOpen
- •AcmStreamPrepareHeader
- •AcmStreamSize
- •AcmStreamUnprepareHeader
- •AfxGetApp
- •AfxGetInstanceHandle
- •AfxGetInstanceHandle
- •AuxGetDevCaps
- •AuxGetNumDevs
- •AuxGetVolume
- •AuxSetVolume
- •CoCreateInstance
- •CoInitialize
- •CommDlgExtendedError
- •CopyMemory
- •CoUninitialize
- •CreateEvent
- •CreateWaitableTimer
- •CreateWindowEx
- •DirectDrawCreate
- •DirectSoundCaptureCreate
- •DirectSoundCaptureEnumerate
- •DirectSoundCreate
- •DirectSoundEnumerate
- •DsEnumCallback
- •EnableWindow
- •FillMemory
- •FormatMessage
- •GetCurrentDirectory
- •GetDiskFreeSpace
- •GetDlgItem
- •GetLastError
- •GetOpenFileName
- •GetOpenFileNamePreview
- •GetSaveFileName
- •GetSaveFileNamePreview
- •GetTickCount
- •GetWindowRect
- •KillTimer
- •MciGetCreatorTask
- •MciGetDeviceId
- •MciGetErrorString
- •MciGetYieldProc
- •MciSendCommand
- •MciSendString
- •MciSetYieldProc
- •MciWndCreate
- •MciWndRegisterClass
- •MessageBeep
- •MessageBox
- •MmioAdvance
- •MmioAscend
- •MmioClose
- •MmioCreateChunk
- •MmioDescend
- •MmioFlush
- •MmioGetInfo
- •MmioInstallIoProc
- •MmioOpen
- •MmioProc
- •MmioRead
- •MmioRename
- •MmioSeek
- •MmioSendMessage
- •MmioSetBuffer
- •MmioSetInfo
- •MmioStringToFourcc
- •MmioWrite
- •MsgWaitForMultipleObjects
- •OutputDebugString
- •PlaySound
- •PulseEvent
- •QueryPerformanceCounter
- •QueryPerformanceFrequency
- •RegisterWindowMessage
- •ResetEvent
- •SetCurrentDirectory
- •SetCursor
- •SetDiBitsToDevice
- •SetEvent
- •SetTimer
- •SndPlaySound
- •TimeBeginPeriod
- •TimeEndPeriod
- •TimeGetDevCaps
- •TimeGetSystemTime
- •TimeGetTime
- •TimeKillEvent
- •TimeProc
- •TimerProc
- •TimeSetEvent
- •WaitForSingleObject
- •WaveInAddBuffer
- •WaveInGetDevCaps
- •WaveInGetErrorText
- •WaveInGetNumDevs
- •WaveInOpen
- •WaveInPrepareHeader
- •WaveInProc
- •WaveInReset
- •WaveInStart
- •WaveInStop
- •WaveInUnprepareHeader
- •WaveOutBreakLoop
- •WaveOutClose
- •WaveOutGetDevCaps
- •WaveOutGetErrorText
- •WaveOutGetNumDevs
- •WaveOutGetPitch
- •WaveOutGetPlaybackRate
- •WaveOutGetPosition
- •WaveOutGetVolume
- •WaveOutOpen
- •WaveOutPause
- •WaveOutPrepareHeader
- •WaveOutProc
- •WaveOutReset
- •WaveOutRestart
- •WaveOutSetPitch
- •WaveOutSetPlaybackRate
- •WaveOutSetVolume
- •WaveOutUnprepareHeader
- •WaveOutWrite
- •WinHelp
- •ZeroMemory
- •Интерфейсы
- •IDirectSound
- •IDirectSound::Compact
- •IDirectSound::CreateSoundBuffer
- •IDirectSound::DuplicateSoundBuffer
- •IDirectSound::GetCaps
- •IDirectSound::GetSpeakerConfig
- •IDirectSound::Initialize
- •IDirectSound::SetCooperativeLevel
- •IDirectSound::SetSpeakerConfig
- •IDirectSoundBuffer
- •IDirectSoundBuffer::GetCaps
- •IDirectSoundBuffer::GetCurrentPosition
- •IDirectSoundBuffer::GetFormat
- •IDirectSoundBuffer::GetFrequency
- •IDirectSoundBuffer::GetPan
- •IDirectSoundBuffer::GetStatus
- •IDirectSoundBuffer::GetVolume
- •IDirectSoundBuffer::Lock
- •IDirectSoundBuffer::Play
- •IDirectSoundBuffer::Restore
- •IDirectSoundBuffer::SetCurrentPosition
- •IDirectSoundBuffer::SetFormat
- •IDirectSoundBuffer::SetFrequency
- •IDirectSoundBuffer::SetPan
- •IDirectSoundBuffer::SetVolume
- •IDirectSoundBuffer::Stop
- •IDirectSoundBuffer::Unlock
- •IDirectSoundCapture
- •IDirectSoundCapture::CreateCaptureBuffer
- •IDirectSoundCapture::GetCaps
- •IDirectSoundCaptureBuffer
- •IDirectSoundCaptureBuffer::GetCaps
- •IDirectSoundCaptureBuffer::GetCurrentPosition
- •IDirectSoundCaptureBuffer::GetFormat
- •IDirectSoundCaptureBuffer::GetStatus
- •IDirectSoundCaptureBuffer::Lock
- •IDirectSoundCaptureBuffer::Start
- •IDirectSoundCaptureBuffer::Stop
- •IDirectSoundCaptureBuffer::Unlock
- •IDirectSoundNotify
- •IDirectSoundNotify::SetNotificationPositions
- •IKsPropertySet
- •IKsPropertySet::Get
- •IKsPropertySet::QuerySupport
- •IKsPropertySet::Set
- •IUnknown
- •Реализация
- •Использование
- •IUnknown::AddRef
- •IUnknown::QueryInterface
- •IUnknown::Release
- •Классы cArchive
- •CArchive::Read
- •CArchive::Write
- •CBitmap
- •CBitmap::CreateCompatibleBitmap
- •CBitmap::GetBitmapBits
- •CBitmap::SetBitmapBits
- •CCmdUi::ContinueRouting
- •CCmdUi::Enable
- •CCmdUi::SetCheck
- •Cdc::Attach
- •Cdc::BitBlt
- •Cdc::CreateCompatibleDc
- •Cdc::Detach
- •Cdc::EndDoc
- •Cdc::EndPage
- •Cdc::FillRect
- •Cdc::GetDeviceCaps
- •Cdc::GetSafeHdc
- •Cdc::GetTextExtent
- •Cdc::IsPrinting
- •Cdc::LineTo
- •Cdc::Rectangle
- •Cdc::SelectClipRgn
- •Cdc::SelectObject
- •Cdc::SetMapMode
- •Cdc::SetTextAlign
- •Cdc::SetViewportOrg
- •Cdc::StartDoc
- •Cdc::StartPage
- •CDialog
- •CDialog::OnCancel
- •CDialog::DoModal
- •CDialog::EndDialog
- •CDialog::OnInitDialog
- •CDialog::OnOk
- •CDocument
- •CDocument::GetFile
- •CDocument::GetPathName
- •CDocument::OnNewDocument
- •CDocument::ReleaseFile
- •CDocument::SetModifiedFlag
- •CDocument::UpdateAllViews
- •CFile::cFile
- •CFile::Close
- •CFile::GetFilePath
- •CFile::GetLength
- •CFile::Open
- •CFile::Read
- •CFile::Remove
- •CFile::Seek
- •CFile::SeekToBegin
- •CFile::SetLength
- •CFile::Write
- •CFrameWnd
- •CFrameWnd::Create
- •CFrameWnd::DockControlBar
- •CFrameWnd::EnableDocking
- •CFrameWnd::LoadBarState
- •CFrameWnd::LoadFrame
- •CFrameWnd::OnCreateClient
- •CFrameWnd::SaveBarState
- •CFrameWnd::SetActiveView
- •CFrameWnd::ShowControlBar
- •CObArray
- •CObArray::Add
- •CObArray::GetSize
- •CObArray::operator [ ]
- •CObArray::RemoveAll
- •CObArray::SetSize
- •CPropertyPage
- •CPropertyPage::OnSetActive
- •CPropertyPage::OnWizardBack
- •CPropertyPage::OnWizardFinish
- •CPropertyPage::OnWizardNext
- •CPropertySheet
- •CPropertySheet::AddPage
- •CPropertySheet::Construct
- •CPropertySheet::cPropertySheet
- •CPropertySheet::DoModal
- •CPropertySheet::GetPageIndex
- •CPropertySheet::SetActivePage
- •CPropertySheet::SetFinishText
- •CPropertySheet::SetTitle
- •CPropertySheet::SetWizardButtons
- •CPropertySheet::SetWizardMode
- •CRect::NormalizeRect
- •CRect::OffsetRect
- •CRect::PtInRect
- •CRect::SetRect
- •CRgn::CreateRectRgnIndirect
- •CSliderCtrl
- •CSliderCtrl::GetPos
- •CSliderCtrl::SetLineSize
- •CSliderCtrl::SetPageSize
- •CSliderCtrl::SetPos
- •CSliderCtrl::SetRange
- •CSliderCtrl::SetTicFreq
- •CSplitterWnd
- •CSplitterWnd::CreateStatic
- •CSplitterWnd::CreateView
- •CSplitterWnd::GetPane
- •CStatusBar
- •CStatusBar::CommandToIndex
- •CStatusBar::Create
- •CStatusBar::SetIndicators
- •CStatusBar::SetPaneInfo
- •CStatusBar::SetPaneText
- •CString
- •CString::Empty
- •CString::Format
- •CString::GetBuffer
- •CString::IsEmpty
- •CString::LoadString
- •CString::MakeReverse
- •CString::ReleaseBuffer
- •CView::DoPreparePrinting
- •CView::GetDocument
- •CView::OnBeginPrinting
- •CView::OnDraw
- •CView::OnInitialUpdate
- •CView::OnPrepareDc
- •CView::OnPreparePrinting
- •CView::OnPrint
- •CView::OnUpdate
- •CWinApp
- •CWinApp::AddDocTemplate
- •CWinApp::Enable3dControls
- •CWinApp::GetProfileInt
- •CWinApp::GetProfileString
- •CWinApp::InitInstance
- •CWinApp::LoadIcon
- •CWinApp::LoadStandardCursor
- •CWinApp::OpenDocumentFile
- •CWinApp::SetRegistryKey
- •CWinApp::WriteProfileInt
- •CWinApp::WriteProfileString
- •CWnd::DoDataExchange
- •CWnd::EnableWindow
- •CWnd::GetClientRect
- •CWnd::GetDlgItem
- •CWnd::GetParent
- •CWnd::GetParentFrame
- •CWnd::GetParentOwner
- •CWnd::GetSafeHwnd
- •CWnd::Invalidate
- •CWnd::IsDlgButtonChecked
- •CWnd::OnHScroll
- •CWnd::OnKillFocus
- •CWnd::OnSetFocus
- •CWnd::SetScrollInfo
- •CWnd::SetScrollPos
- •CWnd::ShowScrollBar
- •CWnd::UpdateData
- •Команды mci break
- •Capability
- •Sysinfo
- •Макросы mci_hms_hour
- •Mci_hms_minute
- •Mci_hms_second
- •Mci_make_hms
- •Mci_make_msf
- •Mci_make_tmsf
- •Mci_msf_frame
- •Mci_msf_minute
- •Mci_msf_second
- •Mci_tmsf_frame
- •Mci_tmsf_minute
- •Mci_tmsf_second
- •Mci_tmsf_track
- •MciWndCanConfig
- •MciWndCanEject
- •MciWndCanPlay
- •MciWndCanRecord
- •MciWndCanSave
- •MciWndCanWindow
- •MciWndChangeStyles
- •MciWndClose
- •MciWndDestroy
- •MciWndEnd
- •MciWndGetActiveTimer
- •MciWndGetAlias
- •MciWndGetDevice
- •MciWndGetDeviceId
- •MciWndGetEnd
- •MciWndGetError
- •MciWndGetFileName
- •MciWndGetInactiveTimer
- •MciWndGetLength
- •MciWndGetPosition
- •MciWndGetPositionString
- •MciWndGetRepeat
- •MciWndGetSpeed
- •MciWndGetStart
- •MciWndGetStyles
- •MciWndGetTimeFormat
- •MciWndGetVolume
- •MciWndHome
- •MciWndNew
- •MciWndOpen
- •MciWndOpenDialog
- •MciWndOpenInterface
- •MciWndPause
- •MciWndPlay
- •MciWndPlayFrom
- •MciWndPlayFromTo
- •MciWndPlayReverse
- •MciWndPlayTo
- •MciWndRecord
- •MciWndResume
- •MciWndReturnString
- •MciWndSave
- •MciWndSaveDialog
- •MciWndSeek
- •MciWndSendString
- •MciWndSetActiveTimer
- •MciWndSetInactiveTimer
- •MciWndSetOwner
- •MciWndSetRepeat
- •MciWndSetSpeed
- •MciWndSetTimeFormat
- •MciWndSetTimers
- •MciWndSetVolume
- •MciWndStep
- •MciWndStop
- •MciWndUseFrames
- •MciWndUseTime
- •MmioFourcc
- •Массивы patcharray
- •Keyarray
- •Сообщения mci_break
- •Mci_close
- •Mci_getdevcaps
- •Mci_index
- •Mci_open
- •Mci_pause
- •Mci_play
- •Mci_record
- •Mci_reserve
- •Mci_resume
- •Mci_save
- •Mci_seek
- •Mci_setaudio
- •Mci_status
- •Mci_stop
- •Mciwndm_can_config
- •Mciwndm_can_eject.
- •Mciwndm_can_play
- •Mciwndm_can_record
- •Mciwndm_can_save
- •Mciwndm_can_window
- •Mciwndm_changestyles
- •Mciwndm_getactivetimer
- •Mciwndm_getalias
- •Mciwndm_getdevice
- •Mciwndm_getdeviceid
- •Mciwndm_getend
- •Mciwndm_geterror
- •Mciwndm_getfilename
- •Mciwndm_getinactivetimer
- •Mciwndm_getlength
- •Mciwndm_getposition
- •Mciwndm_getrepeat
- •Mciwndm_getspeed
- •Mciwndm_getstart
- •Mciwndm_getstyles
- •Mciwndm_gettimeformat
- •Mciwndm_getvolume
- •Mciwndm_new
- •Mciwndm_notifyerror
- •Mciwndm_notifymedia
- •Mciwndm_notifymode
- •Mciwndm_notifypos
- •Mciwndm_open
- •Mciwndm_openinterface
- •Mciwndm_playfrom
- •Mciwndm_playreverse
- •Mciwndm_playto
- •Mciwndm_returnstring
- •Mciwndm_sendstring
- •Mciwndm_setactivetimer
- •Mciwndm_setinactivetimer
- •Mciwndm_setowner
- •Mciwndm_setrepeat
- •Mciwndm_setspeed
- •Mciwndm_settimeformat
- •Mciwndm_settimers
- •Mciwndm_setvolume
- •Mm_acm_formatchoose
- •Mm_mcinotify
- •Mm_mcisignal
- •Mm_wim_close
- •Mm_wim_data
- •Mm_wim_open
- •Mm_wom_close
- •Mm_wom_done
- •Mm_wom_open
- •Mmiom_close
- •Mmiom_open
- •Mmiom_read
- •Mmiom_rename
- •Mmiom_seek
- •Mmiom_write
- •Mmiom_writeflush
- •Wm_close
- •Wm_timer
- •Структуры acmdriverdetails
- •Acmfilterchoose
- •Acmformatchoose
- •Acmfilterdetails
- •Acmfiltertagdetails
- •Acmformatdetails
- •Acmformattagdetails
- •Acmstreamheader
- •Auxcaps
- •Bitmapinfo
- •Bitmapinfoheader
- •Createstruct
- •Dsbcaps
- •Dsbpositionnotify
- •Dsbufferdesc
- •Dscbcaps
- •Dscbufferdesc
- •Dsccaps
- •Logfont
- •Mci_break_parms
- •Mci_dgv_cue_parms
- •Mci_dgv_open_parms
- •Mci_dgv_pause_parms
- •Mci_dgv_play_parms
- •Mci_dgv_record_parms
- •Mci_dgv_reserve_parms
- •Mci_dgv_save_parms
- •Mci_dgv_set_parms
- •Mci_dgv_status_parms
- •Mci_generic_parms
- •Mci_getdevcaps_parms
- •Mci_open_parms
- •Mci_ovly_open_parms
- •Mci_ovly_save_parms
- •Mci_play_parms
- •Mci_record_parms
- •Mci_save_parms
- •Mci_seek_parms
- •Mci_seq_set_parms
- •Mci_set_parms
- •Mci_status_parms
- •Mci_vcr_cue_parms
- •Mci_vcr_play_parms
- •Mci_vcr_record_parms
- •Mci_vcr_seek_parms
- •Mci_vcr_set_parms
- •Mci_vcr_status_parms
- •Mci_vd_play_parms
- •Mci_wave_open_parms
- •Mci_wave_set_parms
- •Mmckinfo
- •Mmioinfo
- •Openfilename
- •Rgbquad
- •Scrollinfo
- •Security_attributes
- •Timecaps
- •Wavefilter
- •Waveformatex
- •Wavehdr
- •Waveincaps
- •Waveoutcaps
MmioInstallIoProc
LPMMIOPROC mmioInstallIOProc( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags );
Возвращаемое значение
Возвращает адрес установленной, удалённой или найденной процедуры ввода/вывода. При возникновении ошибки возвращает нулевое значение.
Аргументы
fccIOProc — четырёхбуквенный код, идентифицирующий установленную, удалённую или искомую процедуру ввода/вывода. Все символы данного кода должны располагаться в верхнем регистре.
pIOProc — указатель на устанавливаемую процедуру ввода/вывода. При удалении или поиске процедуры ввода/вывода этот аргумент должен иметь нулевое значение. Формат данной функции должен соответствовать формату функции MMIOProc.
dwFlags — флаги, определяющие действие, производимое над процедурой ввода/вывода. Определены следующие значения:
MMIO_FINDPROC — поиск указанной процедуры ввода/вывода.
MMIO_GLOBALPROC — флаг, модифицирующий действие флага MMIO_INSTALLPROC, и указывающий на то, что процедура ввода/вывода должна быть установлена для глобального использования. Состояние данного флага игнорируется при установке флагов MMIO_FINDPROC или MMIO_REMOVEPROC.
MMIO_INSTALLPROC — указанная процедура ввода/вывода устанавливается.
MMIO_REMOVEPROC — указанная процедура ввода/вывода удаляется.
Примечание
Функция mmioInstallIOProc устанавливает, удаляет или производит поиск процедуры ввода/вывода. Для идентификации установленной процедуры ввода/вывода используется её четырёхбуквенный идентификатор.
Описание данной функции содержится в файле заголовка mmsystem.h. При работе с данной функцией следует включить в проект библиотеку winmm.lib.
MmioOpen
HMMIO mmioOpen( LPSTR szFilename, LPMMIOINFO lpmmioinfo, DWORD dwOpenFlags );
Возвращаемое значение
Возвращает дескриптор открытого файла. Если файл не может быть открыт, возвращает нулевое значение. Если аргумент lpmmioinfo имеет ненулевое значение, переменная wErrorRet объекта структуры MMIOINFO будет содержать одно из следующих значений ошибки:
MMIOERR_ACCESSDENIED — файл защищён и не может быть открыт.
MMIOERR_INVALIDFILE — используется по умолчанию для индикации ошибок, не имеющих своего отдельного идентификатора.
MMIOERR_NETWORKERROR — нет реакции сети на попытку открыть удалённый файл.
MMIOERR_PATHNOTFOUND — указан недопустимый директорий.
MMIOERR_SHARINGVIOLATION — файл используется другим приложением в монопольном режиме.
MMIOERR_TOOMANYOPENFILES — число одновременно открытых файлов превысило максимально допустимое значение. Система использовала все имеющиеся дескрипторы файлов.
Аргументы
szFilename — указатель на строку, содержащую имя открываемого файла. Если не определена процедура ввода/вывода для открытия файла, то режим открытия файла определяется его именем:
Если имя файла не содержит знака плюс (+) оно рассматривается как имя стандартного файла (то есть тип файл отличен от HMMIO).
Если имя файла имеет вид EXAMPLE.EXT+ABC, то предполагается, что расширение EXT идентифицирует установленную процедуру ввода/вывода, используемую для работы с данным файлом.
Если данный аргумент имеет нулевое значение и отсутствует процедура ввода/вывода, то переменная adwInfo объекта структуры MMIOINFO будет рассматриваться как дескриптор стандартного (тип файл отличен от HMMIO) открытого файла.
Размер имени файла не должен превышать 128 байт, включая завершающий его нулевой символ.
При открытии образа файла в оперативной памяти аргумент szFilename имеет нулевое значение.
lpmmioinfo — указатель на объект структуры MMIOINFO, содержащий дополнительные аргументы функции mmioOpen. Если приложение не открывает образ файла в оперативной памяти, не определяет размер буфера при буферированном вводе/выводе или не определяет деинсталлированную процедуру ввода/вывода, используемую при открытии файла, этот аргумент должен иметь нулевое значение. Если данный аргумент имеет ненулевое значение, то все неиспользуемые переменные объекта структуры MMIOINFO должны иметь нулевое значение, включая зарезервированные переменные.
dwOpenFlags — флаги, определяющие режим открытия файла. Флаги MMIO_READ, MMIO_WRITE и MMIO_READWRITE являются взаимоисключающими (может быть установлен только один из них). Флаги MMIO_COMPAT, MMIO_EXCLUSIVE, MMIO_DENYWRITE, MMIO_DENYREAD и MMIO_DENYNONE могут использоваться совместно. Определены следующие значения:
MMIO_ALLOCBUF — открывает файл для буферированного ввода/вывода. Для задания размера буфера, отличного от используемого по умолчанию размера 8 КБ (MMIO_DEFAULTBUFFER), следует занести новый размер в переменную cchBuffer объекта структуры MMIOINFO. Если переменная cchBuffer имеет нулевое значение, то используется размер буфера, заданный по умолчанию. При использовании пользовательского буфера ввода/вывода этот флаг не устанавливается.
MMIO_COMPAT — файл открывается в режиме совместимости, позволяющем любому процессу на данном компьютере открывать данный файл неограниченное число раз. Если этот файл уже был открыт в любом другом режиме совместимости, вызов функции mmioOpen завершается с ошибкой.
MMIO_CREATE — создаёт новый файл. Если файл уже существует, он урезается до нулевой длины. Для образа файла в оперативной памяти установка этого флага означает, что изначально его начало и конец совпадают.
MMIO_DELETE — уничтожает файл. Если данный флаг установлен, то аргумент szFilename не может иметь нулевое значение. В случае успешного удаления файла возвращается значение TRUE (ссылка на HMMIO). В противном случае возвращается значение FALSE. Для уничтоженного файла не вызывается функция mmioClose. Если установлен данный флаг, то значения всех других флагов открытия файла игнорируются.
MMIO_DENYNONE — открывает файл, запрещая для любого другого процесса доступ к этому файлу по чтению или записи. Если этот файл был открыт другим процессом в режиме разрешения доступа по чтению или записи, то вызов функции mmioOpen завершается с ошибкой.
MMIO_DENYREAD — открывает файл, запрещая для любого другого процесса доступ к этому файлу по чтению. Если этот файл был открыт другим процессом в режиме совместимости или с разрешением доступа по чтению, то вызов функции mmioOpen завершается с ошибкой.
MMIO_DENYWRITE — открывает файл, запрещая для любого другого процесса доступ к этому файлу по записи. Если этот файл был открыт другим процессом в режиме совместимости или с разрешением доступа по записи, то вызов функции mmioOpen завершается с ошибкой.
MMIO_EXCLUSIVE — открывает файл, запрещая для любого другого процесса доступ к этому файлу по чтению или записи. Если этот файл был открыт любым процессом, даже данным, в режиме разрешения доступа по чтению или записи, то вызов функции mmioOpen завершается с ошибкой.
MMIO_EXIST — определяет, существует ли указанный файл и создаёт полный путь к файлу из имени файла, указанного в аргументе szFilename. Полученный путь записывается в аргумент szFilename. В случае успешного построения полного пути к файлу возвращается значение TRUE (ссылка на HMMIO). В противном случае возвращается значение FALSE. Файл при этом не открывается и функция не возвращает дескриптор мультимедийного файла, поэтому его не нужно закрывать.
MMIO_GETTEMP — создаёт временное имя файла, используя информацию, переданную в аргументе szFilename. Например, при передаче в данном аргументе строки "C:F" временный файл создаётся на диске C, а его имя начинается с буквы "F". Полученное имя файла записывается в аргумент szFilename. В случае успешного создания имени временного файла возвращается значение MMSYSERR_NOERROR (ссылка на HMMIO). В противном случае возвращается значение MMIOERR_FILENOTFOUND. Файл при этом не открывается и функция не возвращает дескриптор мультимедийного файла, поэтому его не нужно закрывать. Этот флаг отменяет действие всех остальных флагов.
MMIO_PARSE — создаёт полный путь к файлу из имени файла, указанного в аргументе szFilename. Полученный путь записывается в аргумент szFilename. В случае успешного построения полного пути к файлу возвращается значение TRUE (ссылка на HMMIO). В противном случае возвращается значение FALSE. Файл при этом не открывается и функция не возвращает дескриптор мультимедийного файла, поэтому его не нужно закрывать. При установке данного флага установки всех флагов открытия файла игнорируются.
MMIO_READ — открывает файл в режиме только для чтения. Этот флаг устанавливается по умолчанию, если не установлены флаги MMIO_WRITE и MMIO_READWRITE.
MMIO_READWRITE — открывает файл в режиме доступа для чтения и записи.
MMIO_WRITE — открывает файл в режиме только для записи.
Примечание
Функция mmioOpen открывает файл для буферизованного и небуферизованного ввода/вывода. Файл может быть стандартным файлом, образом файла в оперативной памяти или элементом пользовательской системы хранения информации. Дескриптор, возвращаемый функцией mmioOpen, не является стандартным дескриптором файла и его можно использовать только в функциях ввода/вывода информации из мультимедийных файлов.
Если в аргументе lpmmioinfo содержится ссылка на объект структуры MMIOINFO, то установка переменных данной структуры должна производиться в соответствии с приведёнными ниже правилами:
Все неиспользуемые переменные, включая зарезервированные, должны иметь нулевое значение.
Для указания того, что открытие файла должно производиться инсталлированной процедурой ввода/вывода, занесите в переменную fccIOProc четырёхбуквенный код процедуры вввода/вывода, а переменной pIOProc присвойте нулевое значение.
Для указания того, что открытие файла должно производиться неинсталлированной процедурой ввода/вывода, занесите в переменную pIOProc указатель на процедуру ввода/вывода, а переменной fccIOProc присвойте нулевое значение.
Для указания того, что функция mmioOpen должна самостоятельно найти процедуру ввода/вывода, используемую для открытия файла, основываясь на содержимом аргумента szFilename, присвойте переменным fccIOProc и pIOProc нулевое значение. Это способ нахождения процедуры открытия файла используется по умолчанию при отсутствии ссылки на объекта структуры MMIOINFO.
Для открытия образа файла в оперативной памяти с использованием внутреннего буфера присвойте нулевое значение переменной pchBuffer, переменной fccIOProc присвойте значение FOURCC_MEM, в переменную cchBuffer занесите исходный размер буфера, а в переменную adwInfo — шаг расширения буфера. В случае необходимости размер буфера будет увеличиваться шагами, определяемыми переменной adwInfo. Установите флаг MMIO_CREATE в аргументе dwOpenFlags для указания того, что конец файла изначально расположен в начале буфера.
Для открытия образа файла в оперативной памяти с использованием буфера приложения занесите в переменную pchBuffer указатель на используемый буфер, переменной fccIOProc присвойте значение FOURCC_MEM, в переменную cchBuffer занесите исходный размер буфера, а в переменную adwInfo — шаг расширения буфера. Переменная adwInfo может иметь ненулевое значение только в том случае, если указатель, записанный в переменную pchBuffer получен с использованием функция GlobalAlloc и GlobalLock. В этом случае для увеличения размера буфера используется функция GlobalReAlloc. Другими словами, если переменная pchBuffer указывает на локальный или глобальный массив или блок памяти в локальной куче, переменная adwInfo должна иметь нулевое значение. Установите флаг MMIO_CREATE в аргументе dwOpenFlags для указания того, что конец файла изначально расположен в начале буфера. В противном случае весь блок памяти будет рассматриваться как доступный для чтения.
Для использования стандартного дескриптора уже открытого файла (то есть тип дескриптора не HMMIO) в служебных программах работы с файлами мультимедиа присвойте переменной fccIOProc значение FOURCC_DOS, занесите в переменную pchBuffer нулевое значение, а в переменную adwInfo — стандартный дескриптор файла. Смещение в файле должно измеряться от его начала и не зависеть от текущей позиции в стандартном файле в момент вызова функции mmioOpen. При этом текущая позиция в файле мультимедиа при его создании соответствует текущей позиции в стандартном файле в момент вызова функции mmioOpen. Для закрытия мультимедийного дескриптора ввода/вывода без закрытия стандартного дескриптора файла, вызовите функцию mmioClose с флагом MMIO_FHOPEN.
Для закрытия файлов, отврытых с использованием функции mmioOpen используется функция mmioClose. Открытые файлы не закрываются автоматически при закрытии приложения.
Описание данной функции содержится в файле заголовка mmsystem.h. При работе с данной функцией следует включить в проект библиотеку winmm.lib.