Partager via


Chaînes de commande

[La fonctionnalité associée à cette page, MCI, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer. MediaPlayer a été optimisé pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer au lieu de MCI, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Pour envoyer une commande string à un appareil MCI, utilisez la fonction mciSendString , qui inclut des paramètres pour la commande string et une mémoire tampon pour toutes les informations retournées.

La fonction mciSendString retourne zéro si elle réussit. Si la fonction échoue, le mot de bas ordre de la valeur de retour contient un code d’erreur. Vous pouvez transmettre ce code d’erreur à la fonction mciGetErrorString pour obtenir une description textuelle de l’erreur.

Syntaxe des chaînes de commande

Les chaînes de commande MCI utilisent une syntaxe de verbe-objet-modificateur cohérente. Chaque chaîne de commande comprend une commande, un identificateur d’appareil et des arguments de commande. Les arguments sont facultatifs pour certaines commandes et requis pour d’autres.

Une chaîne de commande se présente sous la forme suivante :

arguments de device_id de commande

Ces composants contiennent les informations suivantes :

  • La commande spécifie une commande MCI, telle que ouvrir, fermer ou lire.

  • Le device_id identifie un instance d’un pilote MCI. Le device_id est créé lorsque l’appareil est ouvert.

  • Les arguments spécifient les indicateurs et les variables utilisés par la commande. Les indicateurs sont des mots clés reconnus avec la commande MCI. Les variables sont des nombres ou des chaînes qui s’appliquent à la commande ou à l’indicateur MCI.

    Par exemple, la commande play utilise les arguments « from position » et « to position » pour indiquer les positions auxquelles commencer et terminer le jeu. Vous pouvez répertorier les indicateurs utilisés avec une commande dans n’importe quel ordre. Lorsque vous utilisez un indicateur auquel une variable est associée, vous devez fournir une valeur pour la variable.

    Les arguments de commande non spécifiés (et facultatifs) supposent une valeur par défaut.

L’exemple de fonction suivant envoie la commande play avec les indicateurs « from » et « to ».

BOOL PlayFromTo(LPTSTR lpstrAlias, DWORD dwFrom, DWORD dwTo) 
{ 
    TCHAR achCommandBuff[128]; 
    int result;
    MCIERROR err;

    // Form the command string.
    result = _stprintf_s(
        achCommandBuff, 
        TEXT("play %s from %u to %u"), 
        lpstrAlias, dwFrom, dwTo); 

    if (result == -1)
    {
        return FALSE;
    }

    // Send the command string.
    err = mciSendString(achCommandBuff, NULL, 0, NULL); 
    if (err != 0)
    {
        return FALSE;
    }

    return TRUE;
} 

Types de données pour les variables de commande

Vous pouvez utiliser les types de données suivants pour les variables d’une chaîne de commande.

Type de données Description
Chaînes Les types de données chaîne sont délimités par des espaces blancs et des guillemets de début et de fin. MCI supprime les guillemets uniques d’une chaîne. Pour placer un guillemet dans une chaîne, utilisez un ensemble de deux guillemets où vous souhaitez incorporer votre guillemet. Pour utiliser une chaîne vide, utilisez deux guillemets délimités par des espaces blancs de début et de fin.
Entiers longs signés Les types de données entiers longs signés sont délimités par des espaces blancs de début et de fin. Sauf indication contraire, les entiers peuvent être positifs ou négatifs. Si vous utilisez des entiers négatifs, vous ne devez pas séparer le signe moins et le premier chiffre par un espace.
Rectangles Les types de données Rectangle sont une liste ordonnée de quatre valeurs courtes signées. L’espace blanc délimite ce type de données et sépare chaque entier de la liste.