Partager via


Conversion de chaînes

[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.]

Lorsque vous utilisez la fonction mciSendString , toutes les valeurs transmises avec la commande et toutes les valeurs de retour sont des chaînes de texte. Votre application a donc besoin de routines de conversion pour traduire de variables en chaînes ou de nouveau. L’exemple suivant récupère le rectangle source et convertit la chaîne retournée en coordonnées rectangle.

BOOL GetSourceRect(LPTSTR lpstrAlias, LPRECT lprc) 
{ 
    TCHAR achRetBuff[128]; 
    TCHAR achCommandBuff[128]; 

    int result;
    MCIERROR err;
 
    // Build the command string. 
    result = _stprintf_s(
        achCommandBuff, 
        TEXT("where %s source"), 
        lpstrAlias); 

    if (result == -1)
    {
        return FALSE;
    }
    
    // Clear the RECT.
    SetRectEmpty(lprc);
 
    // Send the MCI command. 
    err = mciSendString(
        achCommandBuff, 
        achRetBuff, 
        sizeof(achRetBuff), 
        NULL);

    if (err != 0)
    {
        return FALSE;
    }
        
    // The rectangle is returned as "x y dx dy". 
    // Translate the string into the RECT structure. 

    // Warning: This example omits error checking
    // for the _tcstok_s and _tstoi functions.
    TCHAR *p; 
    TCHAR *context;

    // Left.
    p = _tcstok_s(achRetBuff, TEXT(" "), &context);
    lprc->left = _tstoi(p);

    // Top.
    p = _tcstok_s(NULL, TEXT(" "), &context);
    lprc->top = _tstoi(p);

    // Right.
    p = _tcstok_s(NULL, TEXT(" "), &context);
    lprc->right = _tstoi(p);
    
    // Bottom.
    p = _tcstok_s(NULL, TEXT(" "), &context);
    lprc->bottom = _tstoi(p);

    return TRUE;
}
 

Notes

Les structures RECT sont gérées différemment dans MCI et dans d’autres parties de Windows ; dans MCI, le membre droit contient la largeur du rectangle et le membre inférieur contient sa hauteur. Dans l’interface de chaîne, un rectangle est spécifié comme X1, Y1, X2 et Y2. Les coordonnées X1 et Y1 spécifient le coin supérieur gauche du rectangle, et les coordonnées X2 et Y2 spécifient la largeur et la hauteur.