Compartilhar via


Cadeias de caracteres de comando

[O recurso associado a esta página, mci, é um recurso herdado. Foi substituído por MediaPlayer. 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 bem-sucedida. Se a função falhar, a palavra de ordem baixa 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 verbo-objeto-modificador. 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 formulário:

argumentos de device_id de comando

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

  • O comando especifica um comando MCI, como aberto, 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. Variáveis são números ou cadeias de caracteres que se aplicam ao comando ou sinalizador MCI.

    Por exemplo, o comando reproduzir usa os argumentos "de posição" e "para posição" para indicar as posições nas quais iniciar e terminar o jogo. 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) assumem um valor padrão.

A função de exemplo a seguir envia o comando reproduzir 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.

de tipo de dados descrição
Strings Os tipos de dados de cadeia de caracteres são delimitados por espaços em branco à esquerda e à direita e aspas. O MCI remove aspas simples de uma cadeia de caracteres. Para colocar uma aspas em uma cadeia de caracteres, use um conjunto de duas aspas em que você deseja inserir a aspa. 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 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 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 retângulos são uma lista ordenada de quatro valores curtos assinados. O espaço em branco delimite esse tipo de dados e separa cada inteiro na lista.