fonction waveOutOpen (mmeapi.h)
La fonction waveOutOpen ouvre le périphérique de sortie audio de forme d’onde donné pour la lecture.
Syntaxe
MMRESULT waveOutOpen(
LPHWAVEOUT phwo,
UINT uDeviceID,
LPCWAVEFORMATEX pwfx,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
Paramètres
phwo
Pointeur vers une mémoire tampon qui reçoit un handle identifiant le périphérique de sortie audio de forme d’onde ouverte. Utilisez le handle pour identifier l’appareil lors de l’appel d’autres fonctions de sortie audio de forme d’onde. Ce paramètre peut être NULL si l’indicateur WAVE_FORMAT_QUERY est spécifié pour fdwOpen.
uDeviceID
Identificateur du périphérique de sortie audio de forme d’onde à ouvrir. Il peut s’agir d’un identificateur d’appareil ou d’une poignée d’un périphérique d’entrée audio de forme d’onde ouverte. Vous pouvez également utiliser l’indicateur suivant au lieu d’un identificateur d’appareil :
Valeur | Signification |
---|---|
WAVE_MAPPER | La fonction sélectionne un périphérique de sortie audio de forme d’onde capable de lire le format donné. |
pwfx
Pointeur vers une structure WAVEFORMATEX qui identifie le format des données audio de forme d’onde à envoyer à l’appareil. Vous pouvez libérer cette structure immédiatement après l’avoir passée à waveOutOpen.
dwCallback
Spécifie le mécanisme de rappel. La valeur doit être l'une des suivantes :
- Pointeur vers une fonction de rappel. Pour la signature de la fonction, consultez waveOutProc.
- Handle d'une fenêtre.
- Identificateur de thread.
- Handle d’un événement.
- Valeur NULL.
dwInstance
Les données instance l’utilisateur transmises au mécanisme de rappel. Ce paramètre n’est pas utilisé avec le mécanisme de rappel de fenêtre.
fdwOpen
Indicateurs d’ouverture de l’appareil. Les valeurs suivantes sont définies.
Valeur | Signification |
---|---|
CALLBACK_EVENT | Le paramètre dwCallback est un handle d’événement. |
CALLBACK_FUNCTION | Le paramètre dwCallback est une adresse de procédure de rappel. |
CALLBACK_NULL | Aucun mécanisme de rappel. Il s'agit du paramètre par défaut. |
CALLBACK_THREAD | Le paramètre dwCallback est un identificateur de thread. |
CALLBACK_WINDOW | Le paramètre dwCallback est un handle de fenêtre. |
WAVE_ALLOWSYNC | Si cet indicateur est spécifié, un périphérique audio de forme d’onde synchrone peut être ouvert. Si cet indicateur n’est pas spécifié lors de l’ouverture d’un pilote synchrone, l’appareil ne peut pas s’ouvrir. |
WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE |
Si cet indicateur est spécifié et que le paramètre uDeviceID est WAVE_MAPPER, la fonction ouvre le périphérique de communication par défaut.
Cet indicateur s’applique uniquement lorsque uDeviceID est égal à WAVE_MAPPER. Note Nécessite Windows 7
|
WAVE_FORMAT_DIRECT | Si cet indicateur est spécifié, le pilote ACM n’effectue pas de conversions sur les données audio. |
WAVE_FORMAT_QUERY | Si cet indicateur est spécifié, waveOutOpen interroge l’appareil pour déterminer s’il prend en charge le format donné, mais qu’il n’est pas réellement ouvert. |
WAVE_MAPPED | Si cet indicateur est spécifié, le paramètre uDeviceID spécifie un périphérique audio de forme d’onde à mapper par le mappeur d’ondes. |
Valeur retournée
Retourne MMSYSERR_NOERROR en cas de réussite ou une erreur dans le cas contraire. Les valeurs d’erreur possibles sont les suivantes.
Code de retour | Description |
---|---|
|
La ressource spécifiée est déjà allouée. |
|
L’identificateur d’appareil spécifié est hors de portée. |
|
Aucun pilote de périphérique n’est présent. |
|
Impossible d’allouer ou de verrouiller la mémoire. |
|
Tentative d’ouverture avec un format audio de forme d’onde non pris en charge. |
|
L’appareil est synchrone, mais waveOutOpen a été appelé sans utiliser l’indicateur WAVE_ALLOWSYNC . |
Notes
Utilisez la fonction waveOutGetNumDevs pour déterminer le nombre d’appareils de sortie audio de forme d’onde présents dans le système. Si la valeur spécifiée par le paramètre uDeviceID est un identificateur d’appareil, elle peut varier de zéro à un inférieur au nombre d’appareils présents. La constante WAVE_MAPPER peut également être utilisée comme identificateur d’appareil.
La structure pointée par pwfx peut être étendue pour inclure des informations spécifiques au type pour certains formats de données. Par exemple, pour les données PCM, un UINT supplémentaire est ajouté pour spécifier le nombre de bits par exemple. Dans ce cas, utilisez la structure PCMWAVEFORMAT . Pour tous les autres formats audio de forme d’onde, utilisez la structure WAVEFORMATEX pour spécifier la longueur des données supplémentaires.
Si vous choisissez de faire en sorte qu’une fenêtre ou un thread reçoive des informations de rappel, les messages suivants sont envoyés à la fonction de procédure de fenêtre pour indiquer la progression de la sortie audio de forme d’onde : MM_WOM_OPEN, MM_WOM_CLOSE et MM_WOM_DONE.
Mécanisme de rappel
Les paramètres dwCallback et fdwOpen spécifient la façon dont l’application est informée de la progression de la sortie audio de forme d’onde.Si fdwOpen contient l’indicateur CALLBACK_FUNCTION , dwCallback est un pointeur vers une fonction de rappel. Pour la signature de la fonction, consultez waveOutProc. Le paramètre uMsg du rappel indique la progression de la sortie audio :
Si fdwOpen contient l’indicateur CALLBACK_WINDOW , dwCallback est un handle d’une fenêtre. La fenêtre reçoit les messages suivants, indiquant la progression : Si fdwOpen contient l’indicateur CALLBACK_THREAD , dwCallback est un identificateur de thread. Le thread reçoit les messages répertoriés précédemment pour CALLBACK_WINDOW.Si fdwOpen contient l’indicateur CALLBACK_EVENT , dwCallback est un handle pour un événement. L’événement est signalé chaque fois que l’état de la mémoire tampon de forme d’onde change. L’application peut utiliser WaitForSingleObject ou WaitForMultipleObjects pour attendre l’événement. Lorsque l’événement est signalé, vous pouvez obtenir l’état actuel de la mémoire tampon de forme d’onde en vérifiant le membre dwFlags de la structure WAVEHDR . (Voir waveOutPrepareHeader.)
Si fdwOpen contient l’indicateur CALLBACK_NULL , dwCallback doit avoir la valeur NULL. Dans ce cas, aucun mécanisme de rappel n’est utilisé.
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | mmeapi.h (inclure Windows.h) |
Bibliothèque | Winmm.lib |
DLL | Winmm.dll |
Voir aussi
Utilisation d’une fonction de rappel pour traiter les messages du pilote
Utilisation d’une fenêtre ou d’un thread pour traiter les messages de pilote
Utilisation d’un rappel d’événement pour traiter les messages de pilote