Cadenas de comandos
[La característica asociada a esta página, MCI, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de MCI, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Para enviar un comando de cadena a un dispositivo MCI, use la función mciSendString , que incluye parámetros para el comando de cadena y un búfer para cualquier información devuelta.
La función mciSendString devuelve cero si se ejecuta correctamente. Si se produce un error en la función, la palabra de orden inferior del valor devuelto contiene un código de error. Puede pasar este código de error a la función mciGetErrorString para obtener una descripción de texto del error.
Sintaxis de cadenas de comandos
Las cadenas de comandos de MCI usan una sintaxis coherente de verbo-objeto-modificador. Cada cadena de comando incluye un comando, un identificador de dispositivo y argumentos de comando. Los argumentos son opcionales para algunos comandos y son necesarios para otros.
Una cadena de comandos tiene el siguiente formato:
argumentos de device_id de comandos
Estos componentes contienen la siguiente información:
El comando especifica un comando MCI, como abrir, cerrar o reproducir.
El device_id identifica una instancia de un controlador MCI. El device_id se crea cuando se abre el dispositivo.
Los argumentos especifican las marcas y variables usadas por el comando . Las marcas son palabras clave reconocidas con el comando MCI. Las variables son números o cadenas que se aplican al comando o marca MCI.
Por ejemplo, el comando play usa los argumentos "from position " y "to position " para indicar las posiciones en las que se va a iniciar y finalizar la reproducción. Puede enumerar las marcas usadas con un comando en cualquier orden. Cuando se usa una marca que tiene una variable asociada, debe proporcionar un valor para la variable.
Los argumentos de comando no especificados (y opcionales) asumen un valor predeterminado.
La siguiente función de ejemplo envía el comando play con las marcas "from" y "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;
}
Tipos de datos para variables de comando
Puede usar los siguientes tipos de datos para las variables en una cadena de comandos.
Tipo de datos | Descripción |
---|---|
Cadenas | Los tipos de datos de cadena se delimitan mediante espacios en blanco iniciales y finales y comillas. MCI quita comillas simples de una cadena. Para colocar una comilla en una cadena, use un conjunto de dos comillas en las que desea insertar la comilla. Para usar una cadena vacía, use dos comillas delimitadas por espacios en blanco iniciales y finales. |
Enteros largos con signo | Los tipos de datos enteros largos con signo se delimitan mediante espacios en blanco iniciales y finales. A menos que se especifique lo contrario, los enteros pueden ser positivos o negativos. Si usa enteros negativos, no debe separar el signo menos y el primer dígito con un espacio. |
Rectángulos | Los tipos de datos rectangle son una lista ordenada de cuatro valores cortos firmados. El espacio en blanco delimita este tipo de datos y separa cada entero de la lista. |