MCI 関数のマクロとメッセージ

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

ほとんどの MCI アプリケーションでは、 mciSendString 関数と mciSendCommand 関数が数十回使用されます。 MCI には、アプリケーションで使用される頻度が低い便利な機能がいくつか用意されています。

ほとんどの MCI コマンドで必要なデバイス識別子は、通常、 open (MCI_OPEN) コマンドの呼び出しで取得されます。 デバイス識別子が必要で、デバイスを開きたくない場合 (たとえば、他のアクションを実行する前にデバイスの機能を照会する場合)、 mciGetDeviceID 関数を呼び出すことができます。

mciGetCreatorTask 関数を使用すると、アプリケーションでデバイス識別子を使用して、その識別子を作成したタスクへのハンドルを取得できます。

mciGetYieldProc 関数と mciSetYieldProc 関数を使用して、"wait" (MCI_WAIT) フラグに関連付けられているコールバック関数のアドレスを割り当てて取得できます。

mciGetErrorString 関数は、MCI エラー値を記述する文字列を取得します。 MCI が返す各文字列は、データかエラー記述かに関係なく、最大 128 文字です。 128 文字未満のダイアログ ボックス フィールドは、MCI によって返される長い文字列を切り捨てます。 これらの文字列の詳細については、「 MCIERR 戻り値」を参照してください。

MCI マクロは、時間形式を指定する値を作成および逆アセンブルするために使用できるツールです。 これらの時刻形式は、多くの MCI コマンドで使用されます。 マクロによって処理される形式は、時間/分/秒 (HMS)、分/秒/フレーム (MSF)、トラック/分/秒/フレーム (TMSF) です。 次の表に、マクロとその説明を示します。

マクロ 説明
MCI_HMS_HOUR HMS 値から時間コンポーネントを取得します。
MCI_HMS_MINUTE HMS 値から分コンポーネントを取得します。
MCI_HMS_SECOND HMS 値から秒のコンポーネントを取得します。
MCI_MAKE_HMS HMS 値を作成します。
MCI_MAKE_MSF MSF 値を作成します。
MCI_MAKE_TMSF TMSF 値を作成します。
MCI_MSF_FRAME MSF 値からフレーム コンポーネントを取得します。
MCI_MSF_MINUTE MSF 値から分コンポーネントを取得します。
MCI_MSF_SECOND MSF 値から秒のコンポーネントを取得します。
MCI_TMSF_FRAME TMSF 値からフレーム コンポーネントを取得します。
MCI_TMSF_MINUTE TMSF 値から分コンポーネントを取得します。
MCI_TMSF_SECOND TMSF 値から秒のコンポーネントを取得します。
MCI_TMSF_TRACK TMSF 値からトラック コンポーネントを取得します。

 

MCI には、 MM_MCINOTIFYとMM_MCISIGNAL の 2 つのメッセージも用意 されています。 MM_MCINOTIFY メッセージは、そのコマンドが "notify" (MCI_NOTIFY) フラグを指定するたびに、MCI コマンドの結果をアプリケーションに通知します。 MM_MCISIGNAL メッセージは、デジタル ビデオ デバイスに固有です。指定した位置に達すると、アプリケーションに通知します。