次の方法で共有


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

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

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

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

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

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

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

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

マクロ 形容
MCI_HMS_HOUR HMS 値から時間コンポーネントを取得します。
MCI_HMS_MINUTE HMS 値から minutes コンポーネントを取得します。
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 値から minutes コンポーネントを取得します。
MCI_TMSF_SECOND TMSF 値から秒のコンポーネントを取得します。
MCI_TMSF_TRACK TMSF 値からトラック コンポーネントを取得します。

 

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