Как передать устройству управляющую строку?
Очень просто - для этого можно воспользоваться функцией mciSendString . Прототип функции mciSendString находится в файле mmsystem.h:
Функция mciSendString
DWORD mciSendString( LPCSTR lpstrCommand, // управляющая строка LPSTR lpstrReturnString, // буфер для результата UINT wReturnLength, // размер буфера HANDLE hCallback) // идентификатор окна извещения
Параметры функции:
lpstrCommand
Дальний указатель на текстовую управляющую строку
lpstrReturnString
Указатель на буфер, в который будет записан результат выполнения команды (в текстовом виде). Этот параметр можно указать как NULL, если приложение не интересуется результатом выполнения команды
wReturnLength
Размер буфера для записи результата выполнения команды
hCallback
Идентификатор окна, которое получит извещение (сообщение MM_MCINOTIFY) после того как устройство завершит операцию. Этот параметр можно указать как NULL, если извещение не используется
Возвращаемое значение:
Нуль при успешном завершении или код ошибки (в младшем слове возвращаемого значения):
MCIERR_BAD_CONSTANT
Указана константа, неправильная для данной команды
MCIERR_BAD_INTEGER
Указано значение, неправильное для данной команды
MCIERR_DUPLICATE_FLAGS
Двойное определение параметра или значения
MCIERR_MISSING_COMMAND_STRING
Не указана управляющая строка
MCIERR_MISSING_DEVICE_NAME
Не указано имя устройства, драйвера, файла или алиас
MCIERR_MISSING_STRING_ARGUMENT
Не указан обязательный параметр команды
MCIERR_NEW_REQUIRED_ALIAS
При использовании параметра new следует указать алиас
MCIERR_NO_CLOSING_QUOTE
В команде отсутствуют закрывающие двойные кавычки
MCIERR_NOTIFY_ON_AUTO_OPEN
Для устройств, открываемых автоматически, нельзя указывать флаг notify (флаг notify указывает на необходимость генерации извещающего сообщения при завершении выполнения операции, мы расскажем об этом флаге позже)
MCIERR_PARAM_OVERFLOW
Строка параметров не помещается в буфер. Необходимо увеличить размер буфера