次の方法で共有


システムでインターセプトされるデバイス メッセージ

次の Windows マルチメディア関数は、発信者が従来のオーディオ デバイスにメッセージを渡す方法を提供しま:

これらのデバイス メッセージの一部はデバイス ドライバーによって直接処理され、一部はデバイスに代わってシステムによって処理されます。

このセクションでは、システムによってインターセプトされ、デバイス ドライバーに渡されることなく処理されるメッセージのみについて説明します。 システムによってインターセプトされたメッセージは、音声通信または一般的なオーディオ使用のための優先デバイスを取得できます。 さらに、システムによって傍受されたメッセージは、特定のデバイスに関する次の情報を提供する可能性があります。

  • デバイスインターフェース名

    デバイス インターフェイス名の詳細情報は、デバイス インターフェイスの概要を参照してください。

  • デバイスのプラグ アンド プレイ Devnode 番号

    Devnode の詳細情報は、デバイス ツリーを参照してください。

  • デバイスがマッパーで使用できるかどうか

    マッパーは、アプリケーションの要件をシステム内の利用可能なデバイスの 1 つにマッピングすることにより、適切なデバイスを選択します。 マッパーの詳細については、Microsoft Windows SDK のドキュメントを参照してください。

他の種類のデバイス メッセージについては、Windows SDK のドキュメントを参照してください。

XxxMessage 関数の構文は次のとおりです:

DWORD XxxMessage(
<device ID>,
    UINT  uMsg,
    DWORD_PTR  dwParam1,
    DWORD_PTR  dwParam2
    );

最初のパラメータはデバイス ID です。 auxOutMessage 関数定義では、予想どおり、このパラメーターが UINT 型であるように指定されています。 ただし、waveInMessagewaveOutMessagemidiInMessagemidiOutMessage、または mixerMessage の場合、呼び出し元は、タイプ HWAVEIN、HWAVEOUT、HMIDIIN、HMIDIOUT、または HMIXER をそれぞれ処理するためにデバイス ID をキャストする必要があります。 呼び出し元がこのパラメータのデバイス ID の代わりに有効なハンドルを指定した場合、関数は失敗し、エラー コード MMSYSERR_NOSUPPORT を返すことに注意してください。

uMsg パラメータはメッセージ値 (DRV_QUERYDEVICEINTERFACE など) を指定します。 ドライバー固有のメッセージのリストについては、ヘッダー ファイル Mmddk.h を参照してください。

パラメータ dwParam1 および dwParam2 の意味はメッセージによって異なります。 たとえば、特定のメッセージでは、dwParam1 が ULONG 値であることが必要な場合があります。呼び出し元は、関数定義を満たすために、この値を DWORD_PTR 型にキャストする必要があります。

この関数は、呼び出しが成功した場合は MMERR_NOERROR を返し、失敗した場合はエラー ステータス コードを返します。

XxxMessage 関数の詳細については、Windows SDK のドキュメントを参照してください。

ヘッダー ファイル Mmddk.h は、システムによってインターセプトされた次のデバイス メッセージを定義します。

DRV_QUERYDEVICEINTERFACE

詳細情報は、デバイス インターフェイス名の取得を参照してください。

DRV_QUERYDEVICEINTERFACESIZE

詳細情報は、デバイス インターフェイス名の取得を参照してください。

DRV_QUERYDEVNODE

デバイスの Devnode 番号をクエリします。

DRV_QUERYMAPPABLE

デバイスがマッパーで使用できるかどうかを問い合わせます。

DRVM_MAPPER_CONSOLEVOICECOM_GET

詳細情報は、優先音声通信デバイス IDを参照してください。

DRVM_MAPPER_PREFERRED_GET

詳細情報は、優先デバイス ID へのアクセスを参照してください。