Partager via


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)

Voir aussi

modMessage

MIDIOPENDESC

DriverCallback

MOM_OPEN