modMessage, fonction
La fonction modMessage est la fonction de point d’entrée pour les pilotes de sortie MIDI (Music Instrument Digital Interface) et pour les pilotes de synthétiseur internes. Pour plus d’informations sur les messages d’appareil audio liés à MIDI, consultez Audio Device Messages for MIDI.
Syntaxe
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Paramètres
uDeviceID
Spécifie l’ID de l’appareil cible. Les ID d’appareil sont séquentiels et ont une valeur initiale de zéro et une valeur finale égale à un de moins que le nombre de périphériques pris en charge par le pilote.uMsg
Spécifie le message que WINMM envoie au pilote en réponse à un appel de l’application cliente.dwUser
Pour le message MODM_OPEN, le pilote doit remplir cet emplacement avec ses données instance. Pour tous les autres messages, les données instance sont retournées au pilote. Les pilotes qui prennent en charge plusieurs clients peuvent utiliser ces données instance pour suivre le client associé au message.dwParam1
Spécifie un paramètre dépendant du message.dwParam2
Spécifie un paramètre dépendant du message. S’il existe des indicateurs qui fournissent des informations supplémentaires au pilote qui fonctionne avec modMessage, WINMM utilise ce paramètre pour passer les indicateurs.
Valeur retournée
La fonction modMessage retourne MMSYSERR_NOERROR si elle peut traiter correctement le message qu’elle a reçu de MMSYSTEM. Sinon, il retourne l’un des messages d’erreur suivants.
Code de retour | Description |
---|---|
MMSYSERR_ERROR | Erreur non spécifiée. |
MMSYSERR_BADDEVICEID | L’ID d’appareil spécifié est hors limites. |
MMSYSERR_NOTENABLED | Le pilote n’a pas pu charger ou initialiser. |
MMSYSERR_ALLOCATED | L’appareil spécifié est déjà alloué. |
MMSYSERR_INVALHANDLE | Le handle de l’appareil spécifié n’est pas valide. |
MMSYSERR_NODRIVER | Aucun pilote de périphérique n’est présent. |
MMSYSERR_NOMEM | Erreur d'allocation de mémoire. |
MMSYSERR_NOTSUPPORTED | La fonction demandée par le message n’est pas prise en charge. |
MMSYSERR_BADERRNUM | La valeur d’erreur est hors limites. Pour plus d’informations, consultez la section Notes. |
MMSYSERR_INVALFLAG | Un indicateur non valide a été passé à modMessage(à l’aide de dwParam2). |
MMSYSERR_INVALPARAM | Un paramètre non valide a été passé à modMessage. |
MMSYSERR_HANDLEBUSY | Le handle spécifié est utilisé simultanément par un autre thread (par exemple, un thread de rappel). |
MMSYSERR_INVALIDALIAS | L’alias spécifié est introuvable. |
MMSYSERR_BADDB | Base de données de registre incorrecte. |
MMSYSERR_KEYNOTFOUND | La clé de Registre spécifiée est introuvable. |
MMSYSERR_READERROR | Erreur de lecture du Registre. |
MMSYSERR_WRITEERROR | Erreur d’écriture dans le Registre. |
MMSYSERR_DELETEERROR | Erreur de suppression du Registre. |
MMSYSERR_VALNOTFOUND | La valeur de Registre spécifiée est introuvable. |
MMSYSERR_NODRIVERCB | Le pilote qui fonctionne avec modMessage n’appelle pas DriverCallback. |
MMSYSERR_MOREDATA | modMessage a plus de données à retourner. |
MMSYSERR_LASTERROR | Indique qu’il s’agit de la dernière erreur dans la plage de valeurs d’erreur. Pour plus d’informations, consultez la section Notes. |
Remarques
Les messages d’appareil audio sont des constantes définies par le système. Ainsi, quand modMessage reçoit un message de périphérique audio, il utilise une instruction switch pour déterminer l’action à effectuer, en fonction de la valeur du message.
La plage de messages d’erreur que modMessage peut retourner dépend du message qu’il traitait au moment où l’erreur s’est produite. Les valeurs numériques des messages d’erreur MMSYSERR_ commencent par zéro (pour MMSYSERR_NOERROR) et continuent par MMSYSERR_BASE + n, où n est un entier compris entre 1 et 21. La valeur de MMSYSERR_BASE est une constante définie. Pour plus d’informations sur MSYSERR_BASE et les messages d’erreur MMSYSERR_, consultez Mmsystem.h dans le Kit de développement logiciel (SDK) Windows et Mmddk.h dans wdK, respectivement.
Configuration requise
Plateforme cible |
Desktop (Expérience utilisateur) |
Version |
Disponible avec les systèmes d’exploitation Windows XP et ultérieurs. |
En-tête |
Mmddk.h (inclure Mmddk.h, Mmsystem.h ou Windows.h) |