コマンド文字列
[このページに関連付けられている機能 MCI は、従来の機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 可能であれば、新しいコードで MCI ではなく MediaPlayer を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
MCI デバイスに文字列コマンドを送信するには、 mciSendString 関数を使用します。これには、文字列コマンドのパラメーターと、返された情報のバッファーが含まれます。
成功した場合、 mciSendString 関数は 0 を返します。 関数が失敗した場合、戻り値の下位ワードにエラー コードが含まれます。 このエラー コードを mciGetErrorString 関数に渡して、エラーの説明を取得できます。
コマンド文字列の構文
MCI コマンド文字列では、一貫した動詞オブジェクト修飾子構文が使用されます。 各コマンド文字列には、コマンド、デバイス識別子、およびコマンド引数が含まれます。 引数は、一部のコマンドでは省略可能であり、他のコマンドでは必須です。
コマンド文字列の形式は次のとおりです。
command device_id arguments
これらのコンポーネントには、次の情報が含まれています。
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 つの符号付き短い値の順序付きリストです。 空白は、このデータ型を区切り、リスト内の各整数を区切ります。 |