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


Функция обратного вызова MMIOPROC (mmiscapi.h)

Функция MMIOProc — это пользовательская процедура ввода-вывода, установленная функцией mmioInstallIOProc . MMIOProc — это заполнитель для имени определяемой приложением функции. Адрес этой функции можно указать в параметре callback-address объекта mmioInstallIOProc.

Синтаксис

MMIOPROC Mmioproc;

LRESULT Mmioproc(
  LPSTR lpmmioinfo,
  UINT uMsg,
  LPARAM lParam1,
  LPARAM lParam2
)
{...}

Параметры

lpmmioinfo

Указывает на структуру MMIOINFO , содержащую сведения об открытом файле.

Процедура ввода-вывода должна поддерживать элемент lDiskOffset в этой структуре, чтобы указать смещение файла к следующему расположению чтения или записи. Процедура ввода-вывода может использовать член adwInfo[] для хранения сведений о состоянии. Процедура ввода-вывода не должна изменять другие элементы структуры MMIOINFO .

uMsg

Указывает сообщение, указывающее запрошенную операцию ввода-вывода. К таким сообщениям относятся MMIOM_OPEN, MMIOM_CLOSE, MMIOM_READ, MMIOM_SEEK, MMIOM_WRITE и MMIOM_WRITEFLUSH.

lParam1

Задает определяемый приложением параметр для сообщения.

lParam2

Задает определяемый приложением параметр для сообщения.

Возвращаемое значение

Возвращаемое значение зависит от сообщения, указанного uMsg. Если процедура ввода-вывода не распознает сообщение, она должна возвращать ноль.

Комментарии

Четырехзначный код, заданный членом fccMMIOProc в структуре MMIOINFO , связанной с файлом, определяет расширение имени файла для пользовательской системы хранения. Когда приложение вызывает mmioOpen с именем файла, например "one.xyz+two", вызывается процедура ввода-вывода, связанная с четырехзначным кодом "XYZ", чтобы открыть элемент "two" файла "one.xyz".

Функция mmioInstallIOProc поддерживает отдельный список установленных процедур ввода-вывода для каждого приложения windows. Поэтому разные приложения могут использовать один и тот же идентификатор процедуры ввода-вывода для разных процедур ввода-вывода без конфликтов. Однако установка процедуры ввода-вывода глобально позволяет любому процессу использовать процедуру.

Если приложение вызывает mmioInstallIOProc несколько раз для регистрации той же процедуры ввода-вывода, оно должно вызывать mmioInstallIOProc , чтобы удалить процедуру один раз при каждой установке процедуры.

mmioInstallIOProc не запрещает приложению устанавливать две разные процедуры ввода-вывода с одинаковым идентификатором или процедуру ввода-вывода с одним из предопределенных идентификаторов ("DOS", "MEM"). Последняя установленная процедура имеет приоритет, а последняя установленная процедура является первой процедурой, которую нужно удалить.

При поиске указанной процедуры ввода-вывода сначала выполняются локальные процедуры, а затем глобальные процедуры.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mmiscapi.h (включая Mmiscapi.h, Windows.h)