Partilhar via


Cadeias de comando

[O recurso associado a esta página, MCI, é um recurso legado. Foi substituído por MediaPlayer. MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer em vez de MCI, sempre que 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 string para um dispositivo MCI, use a funçãomciSendString, que inclui parâmetros para o comando string e um buffer para qualquer informação retornada.

A função mciSendString retorna zero se for bem-sucedida. Se a função falhar, a palavra de ordem baixa do valor de retorno contém um código de erro. Você pode passar esse código de erro para o função de mciGetErrorString para obter uma descrição de texto do erro.

Sintaxe das cadeias de comando

As cadeias de comando MCI usam uma sintaxe consistente de modificador de verbo-objeto. 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 necessários para outros.

Uma cadeia de caracteres de comando tem a seguinte forma:

comando device_id argumentos

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

  • O comando especifica um comando MCI, como abrir, fecharou reproduzir.

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

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

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

    Os argumentos de comando não especificados (e opcionais) assumem 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 comando.

Tipo de dados Descrição
Cordas Os tipos de dados de cadeia de caracteres são delimitados por espaços em branco e aspas à esquerda e à direita. MCI remove aspas simples de uma cadeia de caracteres. Para colocar aspas em uma cadeia de caracteres, use um conjunto de duas aspas onde você deseja incorporar suas aspas. Para usar uma cadeia de caracteres vazia, use duas aspas delimitadas por espaços em branco à esquerda e à direita.
Inteiros longos assinados Os tipos de dados inteiros longos assinados 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 números inteiros negativos, não deve separar o sinal de menos e o primeiro dígito com um espaço.
Retângulos Os tipos de dados de retângulo 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.