modMessage関数は、楽器デジタルインターフェイス(MIDI)出力ドライバと内部シンセサイザードライバのためのエントリポイント機能です。 MIDI に関連するオーディオデバイスメッセージの詳細については、「MIDI のオーディオデバイスメッセージ」を参照してください。
構文
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
パラメーター
uDeviceID
ターゲット デバイスの ID を指定します。 デバイス ID はシーケンシャルであり、初期値は 0 で、最終的な値はドライバーがサポートするデバイスの数より 1 未満です。uMsg
WINMM がクライアント アプリケーションからの呼び出しに応答してドライバーに送信するメッセージを指定します。dwUser
MODM_OPEN メッセージの場合、ドライバーはこの場所にインスタンス データを入力する必要があります。 その他のメッセージについては、インスタンス データがドライバーに返されます。 複数のクライアントをサポートするドライバーは、このインスタンス データを使用して、メッセージに関連付けられているクライアントを追跡できます。dwParam1
メッセージ依存パラメーターを指定します。dwParam2
メッセージ依存パラメーターを指定します。 modMessage で動作するドライバーに追加情報を提供するフラグがある場合、WINMM はこのパラメーターを使用してフラグを渡します。
戻り値
modMessage 関数は、MMSYSTEM から受信したメッセージを正常に処理できる場合、MMSYSERR_NOERRORを返します。 それ以外の場合は、次のいずれかのエラー メッセージが返されます。
| リターン コード | 説明 |
|---|---|
| MMSYSERR_ERROR | 指定されていないエラー。 |
| MMSYSERR_BADDEVICEID | 指定されたデバイス ID が範囲外です。 |
| MMSYSERR_NOTENABLED | ドライバーの読み込みまたは初期化に失敗しました。 |
| MMSYSERR_ALLOCATED | 指定されたデバイスは既に割り当てられています。 |
| MMSYSERR_INVALHANDLE | 指定されたデバイスのハンドルが無効です。 |
| MMSYSERR_NODRIVER | デバイス ドライバーが存在しません。 |
| MMSYSERR_NOMEM | メモリ割り当てエラー。 |
| MMSYSERR_NOTSUPPORTED | メッセージによって要求された関数はサポートされていません。 |
| MMSYSERR_BADERRNUM | エラー値が範囲外です。 詳細については、「解説」セクションを参照してください。 |
| MMSYSERR_INVALFLAG | 無効なフラグが modMessage に渡されました ( dwParam2 を使用)。 |
| MMSYSERR_INVALPARAM | 無効なパラメーターが modMessage に渡されました。 |
| MMSYSERR_HANDLEBUSY | 指定されたハンドルは、別のスレッド (コールバック スレッドなど) によって同時に使用されています。 |
| MMSYSERR_INVALIDALIAS | 指定したエイリアスが見つかりませんでした。 |
| MMSYSERR_BADDB | レジストリ データベースが正しくありません。 |
| MMSYSERR_KEYNOTFOUND | 指定されたレジストリ キーが見つかりませんでした。 |
| MMSYSERR_READERROR | レジストリの読み取りエラー。 |
| MMSYSERR_WRITEERROR | レジストリ書き込みエラー。 |
| MMSYSERR_DELETEERROR | レジストリ削除エラー。 |
| MMSYSERR_VALNOTFOUND | 指定されたレジストリ値が見つかりませんでした。 |
| MMSYSERR_NODRIVERCB | modMessage で動作するドライバーは、DriverCallback を呼び出しません。 |
| MMSYSERR_MOREDATA | modMessage には、返されるデータが多くなります。 |
| MMSYSERR_LASTERROR | これがエラー値の範囲内の最後のエラーであることを示します。 詳細については、「解説」を参照してください。 |
注釈
オーディオ デバイス メッセージは、システム定義の定数です。 したがって 、modMessage はオーディオ デバイス メッセージを受信すると、switch ステートメントを使用して、メッセージの値に基づいて実行するアクションを決定します。
modMessage が返すことができるエラー メッセージの範囲は、エラーが発生したときに処理していたメッセージによって異なります。 MMSYSERR_エラー メッセージの数値は 0 (MMSYSERR_NOERROR の場合) から始まり、MMSYSERR_BASE + n で続けます。 n は 1 から 21 までの整数です。 MMSYSERR_BASEの値は定義された定数です。 MSYSERR_BASEとMMSYSERR_エラー メッセージの詳細については、Windows SDK の Mmsystem.h と WDK の Mmddk.h をそれぞれ参照してください。
要求事項
ターゲット プラットフォーム |
デスクトップ |
バージョン |
Windows XP 以降の Windows オペレーティング システムで使用できます。 |
ヘッダ |
Mmddk.h (Mmddk.h、Mmsystem.h、または Windows.h を含む) |