Conversione di stringhe
[La funzionalità associata a questa pagina, MCI, è una funzionalità legacy. È stata sostituita da MediaPlayer. MediaPlayer è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer anziché MCI, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Quando si usa la funzione mciSendString , tutti i valori passati con il comando e tutti i valori restituiti sono stringhe di testo, in modo che le routine di conversione dell'applicazione richiedano la conversione da variabili a stringhe o nuovamente. Nell'esempio seguente viene recuperato il rettangolo di origine e viene convertito la stringa restituita in coordinate rettangole.
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;
}
Nota
Le strutture RECT vengono gestite in modo diverso in MCI rispetto ad altre parti di Windows; in MCI, il membro destro contiene la larghezza del rettangolo e il membro inferiore contiene la relativa altezza. Nell'interfaccia stringa viene specificato un rettangolo come X1, Y1, X2 e Y2. Le coordinate X1 e Y1 specificano l'angolo superiore sinistro del rettangolo e le coordinate X2 e Y2 specificano la larghezza e l'altezza.