コマンド ショートカットとバリエーション
[このページに関連付けられている機能 MCI は、従来の機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は MCI ではなく MediaPlayer を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
MCI コマンドを使用する場合は、いくつかのショートカットを使用できます。 これらのショートカットを使用すると、1 つの識別子を使用して、アプリケーションが開いているすべてのデバイスを参照したり、開いている (MCI_OPEN) コマンドを明示的に発行せずにデバイスを開いたりすることができます。
"all" (MCI_ALL_DEVICE_ID) は、情報を返さないコマンドのデバイス識別子として指定できます。 "all" を指定すると、MCI は、現在のアプリケーションによって開かれたすべてのデバイスにコマンドを順番に送信します。
たとえば、 close "all" コマンドは開いているすべてのデバイスを閉じ、 play "all" コマンドはアプリケーションによって開かれたすべてのデバイスの再生を開始します。 MCI はコマンドを MCI デバイスに順次送信するため、最初のデバイスと最後のデバイスがコマンドを受信するまでの間隔があります。
"すべて" を使用すると、すべてのデバイスにコマンドをブロードキャストするのに便利な方法ですが、デバイスの同期に依存しないようにする必要があります。メッセージ間のタイミングは異なる場合があります。
コマンドを発行し、開かっていないデバイスを指定すると、MCI はコマンドを実装する前にデバイスを開こうとします。 デバイスを自動的に開くには、次の規則が適用されます。
- 自動オープン機能は、コマンド文字列インターフェイスでのみ機能します。
- カスタム デバイス ドライバーに固有のコマンドでは、自動オープン機能が失敗します。
- 自動的に開かれたデバイスは、デバイス名として "all" を使用するコマンドには応答しません。
- 自動オープン機能では、アプリケーションで "type" フラグを指定することはできません。 デバイス名がない場合、MCI はレジストリ内のエントリからデバイス名を決定します。 特定のデバイスを使用するには、 開 いているコマンドのリファレンス 資料で説明されているように、感嘆符を使用して、デバイス名とファイル名を組み合わせることができます。
アプリケーションで自動オープン機能を使用してデバイスを開く場合、アプリケーションは後続のすべてのオープン・コマンドの戻り値をチェックして、デバイスがまだ開かれていることを確認する必要があります。 MCI では、自動的に開かれるすべてのデバイスも自動的に閉じます。 MCI は通常、次の状況でデバイスを閉じます。
- コマンドが完了しました。
- コマンドを中止します。
- 後続のコマンドで通知を要求します。
- MCI はエラーを検出します。