MM_MCINOTIFY メッセージは、MCIデバイスが作業を完了したことを通知するためにウィンドウに送信されます。
ウィンドウは、ウィンドウプロシージャを介してこのメッセージを受け取ります。
#define MM_MCINOTIFY 0x03B9 wFlags = wParam; // キーフラグ lDevID = lParam; // カーソルx座標
wParam パラメータの値。
通知メッセージが発生した理由を示す値が指定されます。以下の値のいずれかになります。
値 | 意味 |
---|---|
0x0001 (MCI_NOTIFY_SUCCESSFUL) | コールバック関数を起こす条件が満たされたことを示します。 |
0x0002 (MCI_NOTIFY_SUPERSEDED) | “notify”フラグが指定された別のコマンドをデバイスが受け取り、コールバック関数を開始するのに必要な条件が変更されたことを示します。 |
0x0004 (MCI_NOTIFY_ABORTED) | コールバック関数を開始する条件が満たされないようにするコマンドをデバイスが受け取ったことを示します。新しいコマンドが現在のコマンドを中断して、さらに通知を要求する場合には、デバイスは MCI_NOTIFY_SUPERSEDED ではなくこの通知を送ります。 |
0x0008 (MCI_NOTIFY_FAILURE) | デバイスがコマンドを実行している最中にデバイスエラーが発生したことを示します。 |
lParam パラメータの値。
コールバックを引き起こしたデバイスの識別子が格納されます。
アプリケーションがこのメッセージを処理した場合は 0 を返します。
コマンドの実行が完了すると、デバイスは MCI_NOTIFY_SUCCESSFUL フラグを返します。例えば、CDオーディオデバイスは、再生終了時に、 play コマンドに対しての通知として MCI_NOTIFY_SUCCESSFUL を使用します。 play コマンドは、指定された終了位置に到達するかメディアの末尾に到達した場合にのみ、 MCI_NOTIFY_SUCCESSFUL を通知します。同様に、 seek および record コマンドも、指定された終了位置かメディアの末尾に到達するまで MCI_NOTIFY_SUCCESSFUL を返しません。
デバイスが通知条件が満たされないようにするコマンドを受け取った場合にのみ、デバイスは MCI_NOTIFY_ABORTED フラグを返します。例えば、 play コマンドは、それが再生方向や終了位置を変更しないならば、以前の play コマンドによる通知は中止されません。 seek および record コマンドも同様です。また、 pause コマンドによって再生や録音が中断された場合も MCI_NOTIFY_ABORTED 通知は送られません。 resume コマンドを送信することによって、コールバック通知条件の設定を継続させることができます。
コマンドによる通知を要求する場合には、 mciSendCommand 関数や mciSendString 関数が返すエラーコードをチェックしなければなりません。関数がエラーを返している場合には、コマンドでの通知は設定されていません。
Windows 95 以降 / Windows NT 3.1 以降