Compartilhar via


converter cadeias de caracteres

[O recurso associado a esta página, MCI, é um recurso herdado. Foi substituído pelo MediaPlayer. O MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer em vez de MCI, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Quando você usa a função mciSendString , todos os valores passados com o comando e todos os valores retornados são cadeias de caracteres de texto, portanto, seu aplicativo precisa de rotinas de conversão para traduzir de variáveis para cadeias de caracteres ou voltar novamente. O exemplo a seguir recupera o retângulo de origem e converte a cadeia de caracteres retornada em coordenadas de retângulo.

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;
}
 

Observação

As estruturas RECT são tratadas de forma diferente no MCI do que em outras partes do Windows; no MCI, o membro direito contém a largura do retângulo e o membro inferior contém sua altura. Na interface de cadeia de caracteres, um retângulo é especificado como X1, Y1, X2 e Y2. As coordenadas X1 e Y1 especificam o canto superior esquerdo do retângulo e as coordenadas X2 e Y2 especificam a largura e a altura.