MODM_OPEN fonction
WINMM envoie le MODM_OPEN
message à la fonction modMessage d’un pilote de sortie MIDI pour allouer un appareil spécifié qu’une application cliente peut utiliser.
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 inférieur au nombre d’appareils pris en charge par le pilote.uMsg
WINMM définit ce paramètre sur MODM_OPEN lorsqu’il appelle modMessage pour traiter ce message.dwUser
Le pilote de sortie MIDI doit remplir cet emplacement avec ses données instance, mais uniquement en réponse à .MODM_OPEN
dwParam1
Ce paramètre spécifie un pointeur lointain vers une structure MIDIOPENDESC . Cette structure contient des informations supplémentaires pour le pilote, telles que instance données du client et une fonction de rappel pour le client.dwParam2
Ce paramètre spécifie des indicateurs d’option qui déterminent la façon dont l’appareil est ouvert. Les indicateurs peuvent être l’une des valeurs du tableau suivant.Indicateur Signification CALLBACK_EVENT
Si cet indicateur est spécifié, dwCallback dans la structure MIDIOPENDESC est supposé être un handle d’événement.
CALLBACK_FUNCTION
Si cet indicateur est spécifié, dwCallback dans la structure MIDIOPENDESC est supposé être l’adresse d’une fonction de rappel.
CALLBACK_THREAD
Si cet indicateur est spécifié, dwCallback dans la structure MIDIOPENDESC est supposé être un handle pour un thread.
CALLBACK_WINDOW
Si cet indicateur est spécifié, dwCallback dans la structure MIDIOPENDESC est supposé être un handle de fenêtre.
MIDI_IO_COOKED
Si cet indicateur est spécifié, l’appareil est ouvert en mode flux et le pilote reçoit des messages de flux. Le conducteur doit être en mesure de gérer toutes les éventualités qui se produisent. Par exemple, le pilote doit être en mesure de lire des messages courts et des messages exclusifs au système de manière asynchrone dans le flux.
Valeur retournée
La fonction modMessage retourne MMSYSERR_NOERROR si l’opération réussit. Sinon, il retourne l’un des messages d’erreur du tableau suivant.
Code de retour | Description |
---|---|
MMSYSERR_NOTENABLED | Le chargement ou l’initialisation du pilote n’a pas pu être fait. |
MMSYSERR_ALLOCATED | Le périphérique MIDI est déjà alloué par le nombre maximal de clients pris en charge par le pilote ou l’appareil ne peut pas être ouvert en raison de limitations de ressources système autres que la mémoire. |
MMSYSERR_NOMEM | L’appareil ne peut pas être ouvert en raison d’un échec d’allocation ou de verrouillage de la mémoire. |
Remarques
Le pilote doit être en mesure de déterminer le nombre de clients qu’il peut autoriser à utiliser un appareil particulier. Une fois qu’un appareil est ouvert pour le nombre maximal de clients pris en charge par le pilote, le pilote retourne MMSYSERR_ALLOCATED pour toute demande supplémentaire d’ouverture de l’appareil. Si l’opération d’ouverture réussit, le pilote utilise la fonction DriverCallback pour envoyer au client un message MOM_OPEN .
Configuration requise
Plateforme cible |
Desktop (Expérience utilisateur) |
Version |
Disponible dans les systèmes d’exploitation Windows XP et ultérieurs. |
En-tête |
Mmddk.h (inclure Mmddk.h, Mmsystem.h ou Windows.h) |