Cadeias de caracteres de comando

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

Para enviar um comando de cadeia de caracteres para um dispositivo MCI, use a função mciSendString , que inclui parâmetros para o comando de cadeia de caracteres e um buffer para qualquer informação retornada.

A função mciSendString retornará zero se tiver êxito. Se a função falhar, a palavra de baixa ordem do valor retornado conterá um código de erro. Você pode passar esse código de erro para a função mciGetErrorString para obter uma descrição de texto do erro.

Sintaxe de cadeias de caracteres de comando

As cadeias de caracteres de comando MCI usam uma sintaxe consistente de modificador de objeto de verbo. Cada cadeia de caracteres de comando inclui um comando, um identificador de dispositivo e argumentos de comando. Os argumentos são opcionais para alguns comandos e são necessários para outros.

Uma cadeia de caracteres de comando tem o seguinte formato:

argumentos de device_id de comando

Esses componentes contêm as seguintes informações:

  • O comando especifica um comando MCI, como abrir, fechar ou reproduzir.

  • O device_id identifica uma instância de um driver MCI. O device_id é criado quando o dispositivo é aberto.

  • Os argumentos especificam os sinalizadores e variáveis usados pelo comando . Sinalizadores são palavras-chave reconhecidas com o comando MCI. Variáveis são números ou cadeias de caracteres que se aplicam ao sinalizador ou comando MCI.

    Por exemplo, o comando play usa os argumentos "from position " e "to position " para indicar as posições nas quais iniciar e terminar a reprodução. Você pode listar os sinalizadores usados com um comando em qualquer ordem. Ao usar um sinalizador que tenha uma variável associada a ele, você deve fornecer um valor para a variável.

    Argumentos de comando não especificados (e opcionais) pressupõem um valor padrão.

A função de exemplo a seguir envia o comando play com os sinalizadores "from" e "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 dados para variáveis de comando

Você pode usar os seguintes tipos de dados para as variáveis em uma cadeia de caracteres de comando.

Data type Descrição
Cadeias de caracteres Os tipos de dados de cadeia de caracteres são delimitados por espaços em branco à esquerda e à direita e aspas. MCI remove aspas simples de uma cadeia de caracteres. Para colocar uma aspa em uma cadeia de caracteres, use um conjunto de duas aspas em que você deseja inserir as aspas. Para usar uma cadeia de caracteres vazia, use duas aspas delimitadas por espaços em branco à esquerda e à direita.
Inteiros longos com sinal Os tipos de dados inteiros longos com sinal são delimitados por espaços em branco à esquerda e à direita. A menos que especificado de outra forma, os inteiros podem ser positivos ou negativos. Se você usar inteiros negativos, não deverá separar o sinal de subtração e o primeiro dígito com um espaço.
Retângulos Os tipos de dados rectangle são uma lista ordenada de quatro valores curtos assinados. O espaço em branco delimita esse tipo de dados e separa cada inteiro na lista.