(注: この記事は 2000 年 7 月の MSDN の説明に基づいています)
MCI コマンド文字列は、マルチメディア デバイス用のプログラム インターフェイスです。これを通じて、mp3、VCD ファイル、Mpeg4 形式ファイルなどのマルチメディア ファイルを開いて、再生、一時停止、閉じるなどの操作を実行できます。ここで、MCI コマンド文字列の使用方法を紹介できることを光栄に思います。 MCI コマンド文字列は、mciExecute または mciSendString の 2 つの関数を通じて実行されます。
これら 2 つの関数の宣言は次のとおりです。
プライベート宣言関数 mciExecute Lib winmm.dll エイリアス mciExecute (ByVal lpstrCommand As String) As Longどちらの Long 関数にも lpstrCommand というパラメーターがあります。このパラメーターは、今日紹介する MCI コマンド文字列です。
関数 mciSendString には 3 つのパラメータもあります。 lpstrReturnString は、mciSendString 関数によって返される情報を受け取るために使用される文字列です (たとえば、lpstrCommand のコマンドでは、関数が開いているファイルのデバイス タイプを返し、その後関数が返されます)。デバイス タイプを返します。情報はこのパラメータに格納されます。 uReturnLength パラメータは、パラメータの長さを指定するために使用されます。 hwndCallback は、Visual で待機メッセージと通知メッセージを受け取るウィンドウ ハンドルです。 Basic で呼び出される場合、このパラメータは 0 に設定できます。 ming コマンドの実行中にエラーが発生した場合、関数 mciExecute はエラーの原因を尋ねるダイアログ ボックスを直接ポップアップ表示します。 mciSendString 関数は ErrorCode (エラー コード) を返します。このコードの具体的な意味については、MSDN のディレクトリ「Platform SDKGraphics and Multimedia ServicesWindows MultimediaMultimedia ReferenceMultimedia ConstantsMCIERR Return Values」を参照してください。特定の状況に応じて、MCIming コマンドの実行に使用する関数を選択できます。たとえば、デバッグ時に mciExecute を使用してエラーの原因を迅速に取得し、リリースするプログラムで mciSendString 関数を使用して、プログラムに設定されたエラー トラップでエラーを処理させ、ユーザーを悩ませる頻繁なエラー プロンプトを回避します。これら 2 つの関数に慣れたら、「DMCI コマンド文字列」の本題に進むことができます。
MCI コマンド文字列のコマンド形式は次のとおりです。 lpszCommandlpszDevicelpszCommandFlaglpazFlaglpszCommand は、open、play、stop、close などの mciming コマンドです。 lpszDevice はデバイス名 (またはファイル名) です。たとえば、次のプログラムを使用して、マイ ドキュメント内の Music01.dat ファイルを開き、alias パラメータを使用してそのエイリアスを OpenFile に設定します。
(1)lReturn=mciExecute(open C:Mydocu~1Music01.dat エイリアス OpenFile タイプ MPEGVideo)
(2) その後、lpszDevice パラメータを将来の MCI コマンド文字列で OpenFile として指定する必要があります。たとえば、ファイルを閉じるコードは次のとおりです。 lReturn=mciExecute(close OpenFile)
(3) 開いたファイルのエイリアスを設定しない場合、後で呼び出される MCI コマンド文字列の lpszDevice パラメータは、DOS パス名とファイル名を加算したものになります。例は次のとおりです。 dim lReturn as long
(4)lReturn=mciExecute(C:Mydocu~1Music01.dat タイプ MPEGVideo を開く)
(5)lReturn=mciExecute(C:Mydocu~1Music01.dat タイプ MPEGVideo を閉じる)
(6) ここから、エイリアスを設定する利点はコード入力を減らすことであることがわかります。
LpszCommandFlag は mciming コマンドのパラメータです。
上記のコード (2) に示すように、エイリアス OpenFile とタイプ MPEGVideo が open コマンドのパラメータです。
通常、mciming コマンドのパラメータの範囲は数個から数十個です。 LpazFlag は wait または notity として指定できます。 wait の場合、mciming コマンドの実行後、MCI_WAIT メッセージが親フォームに送信され、notity は MCI_NOTIFY メッセージを送信します。
このパラメータは Visual Basic ではほとんど役に立ちません。ここで、Microsoft がサポートしているマルチメディア デバイスは、cdaudio、dat、digitalvideo、other、overlay、scanner、sequencer、vcr、videodisc、waveaudio の 10 種類であることを宣言しておきます (注: Microsoft は、RealPlay 形式のファイルをサポートしていません。次のコードは、開かれたファイルのタイプを取得します: lReturn=mciSendString(capability lpszDevice device type,sReturn,32,0) )。どのタイプのデバイスがどのパラメータをサポートしているかについては、MSDN でキーワード「MCI コマンド文字列」を検索し、リストされているコマンドを選択できます。通常、HTML ヘルプ ドキュメントに表があり、どのデバイスがどのパラメータをサポートしているかが示されています。最初の段落では、どのデバイスがコマンドをサポートしているかを示します。
さて、それでは、複雑で恐ろしく強力な mciming コマンド パラメーターを体系的に紹介しましょう。 (この記事では、openming コマンドの共通パラメータのみを紹介します。他の ming コマンドのパラメータについては、機会があれば紹介します。) open: この ming コマンドは、マルチメディア ファイルを開くために使用されます。すべてのデバイスがこの ming コマンドをサポートしています。 mciming コマンドを実行する前に、マルチメディア ファイルを開いてデバイスを初期化する必要があります。