modMessage 関数

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 を含む)

こちらも参照ください

MODM_OPEN