次の方法で共有


コマンド文字列

[このページに関連付けられている機能 MCI は、従来の機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 可能であれば、新しいコードで MCI ではなく MediaPlayer を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

MCI デバイスに文字列コマンドを送信するには、 mciSendString 関数を使用します。これには、文字列コマンドのパラメーターと、返された情報のバッファーが含まれます。

成功した場合、 mciSendString 関数は 0 を返します。 関数が失敗した場合、戻り値の下位ワードにエラー コードが含まれます。 このエラー コードを mciGetErrorString 関数に渡して、エラーの説明を取得できます。

コマンド文字列の構文

MCI コマンド文字列では、一貫した動詞オブジェクト修飾子構文が使用されます。 各コマンド文字列には、コマンド、デバイス識別子、およびコマンド引数が含まれます。 引数は、一部のコマンドでは省略可能であり、他のコマンドでは必須です。

コマンド文字列の形式は次のとおりです。

command device_id arguments

これらのコンポーネントには、次の情報が含まれています。

  • コマンドは、開く閉じる再生などの MCI コマンドを指定します。

  • device_idは、MCI ドライバーのインスタンスを識別します。 device_idは、デバイスを開いたときに作成されます。

  • 引数は、 コマンドで使用されるフラグと変数を指定します。 フラグは、MCI コマンドで認識されるキーワードです。 変数は、MCI コマンドまたはフラグに適用される数値または文字列です。

    たとえば、 play コマンドでは、" from position " と "to position " の引数を使用して、再生を開始および終了する位置を示します。 コマンドで使用されるフラグは、任意の順序で一覧表示できます。 変数が関連付けられているフラグを使用する場合は、変数の値を指定する必要があります。

    指定されていない (および省略可能) コマンド引数は、既定値を前提としています。

次の例の関数は、"from" フラグと "to" フラグを使用して play コマンドを送信します。

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;
} 

コマンド変数のデータ型

コマンド文字列内の変数には、次のデータ型を使用できます。

データの種類 説明
文字列 文字列データ型は、先頭と末尾の空白と引用符で区切られます。 MCI は、文字列から単一引用符を削除します。 文字列に引用符を挿入するには、引用符を埋め込む 2 つの引用符のセットを使用します。 空の文字列を使用するには、先頭と末尾の空白で区切られた 2 つの引用符を使用します。
符号付き長整数 符号付き長整数データ型は、先頭と末尾の空白で区切られます。 特に指定しない限り、整数は正または負にすることができます。 負の整数を使用する場合は、負符号と最初の桁をスペースで区切らないようにしてください。
四角形 四角形のデータ型は、4 つの符号付き短い値の順序付きリストです。 空白は、このデータ型を区切り、リスト内の各整数を区切ります。