В случае сбоя функции PlaySound () возможно ли восстановить статус последней ошибки?

#windows #winapi #winmm

#Windows #winapi #winmm

Вопрос:

Я спрашиваю, потому что universal GetLastError() возвращает ERROR_SUCCESS , даже если предыдущий PlaySound() вызов вернул FALSE . Я знаю, что winmm имеют конкретные функции ошибок для WaveOut, микшера и т.д., Есть ли функция, которая отражает последнее PlaySound() состояние?

Комментарии:

1. Что ты хочешь сделать? Может быть, вы не могли бы использовать оператор if? (т.е. если функция PlaySound() возвращает false, то распечатайте инструкцию для отладчика?)

Ответ №1:

Нет. PlaySound работает или нет, и при сбое не сообщается, почему. Но это довольно простая функция; если она завершается неудачей, то это почти всегда происходит из-за отсутствия звука, который вы сказали ей воспроизвести.

Комментарии:

1. Я не согласен с «примитивной функцией», в настоящее время поддерживаются по крайней мере 2 различных состояния ошибки (см. флаги SND_NODEFAULT и SND_NOSTOP).