waveOutMessage 関数 (mmeapi.h)
waveOutMessage 関数は、波形オーディオ出力デバイス ドライバーにメッセージを送信します。
構文
MMRESULT waveOutMessage(
HWAVEOUT hwo,
UINT uMsg,
DWORD_PTR dw1,
DWORD_PTR dw2
);
パラメーター
hwo
メッセージを受信する波形デバイスの識別子。 デバイス ID を HWAVEOUT ハンドルの種類にキャストする必要があります。 デバイス ID の代わりにハンドルを指定すると、関数は失敗し、MMSYSERR_NOSUPPORTエラー コードを返します。
uMsg
送信するメッセージ。
dw1
Message パラメーター。
dw2
Message パラメーター。
戻り値
ドライバーから返された値を返します。
解説
メッセージはDRV_QUERYDEVICEINTERFACE
、waveIn、waveOut、midiIn、midiOut、またはミキサー デバイスのデバイス インターフェイス名を照会します。
の場合 DRV_QUERYDEVICEINTERFACE
、 dwParam1 は、呼び出し元によって割り当てられたバッファーへのポインターであり、このバッファーに対して、関数はデバイス インターフェイス名を含む null で終わる Unicode 文字列を書き込みます。 デバイスにデバイス インターフェイスがない場合、文字列の長さは 0 です。
の場合 DRV_QUERYDEVICEINTERFACE
、 dwParam2 はバッファー サイズをバイト単位で指定します。 これは関数への入力パラメーターです。 呼び出し元は、 DRV_QUERYDEVICEINTERFACESIZE メッセージによって取得されたバッファー サイズ以上のサイズを指定する必要があります。
DRV_QUERYDEVICEINTERFACE メッセージは、Windows Me および Windows 2000 以降でサポートされています。 このメッセージは、waveInMessage、waveOutMessage、midiInMessage、midiOutMessage、mixerMessage 関数に対してのみ有効です。 システムはこのメッセージをインターセプトし、デバイス ドライバーにメッセージを送信せずに適切な値を返します。 システム インターセプト された xxxMessage 関数の一般的な情報については、「 System-Intercepted Device Messages」を参照してください。
次の 2 つのメッセージ定数は、デバイス インターフェイス名を取得するために一緒に使用されます。
- DRV_QUERYDEVICEINTERFACESIZE
- DRV_QUERYDEVICEINTERFACE
詳細については、「 デバイス インターフェイス名の取得」を参照してください。
メッセージは DRV_QUERYDEVICEINTERFACESIZE
、デバイス インターフェイス名を保持するために必要なバッファーのサイズを照会します。
の場合 DRV_QUERYDEVICEINTERFACESIZE
、 dwParam1 はバッファー サイズへのポインターです。 このパラメーターは、関数が必要なバッファー サイズをバイト単位で書き込む ULONG 変数を指します。 サイズには、名前文字列の終端の null のストレージ領域が含まれます。 デバイス ID がデバイス インターフェイスを持たないデバイスを識別する場合、サイズは 0 です。
の場合 DRV_QUERYDEVICEINTERFACESIZE
、 dwParam2 は使用されません。 このパラメーターを 0 に設定します。
このメッセージは、waveInMessage、waveOutMessage、midiInMessage、midiOutMessage、mixerMessage 関数に対してのみ有効です。 システムはこのメッセージをインターセプトし、デバイス ドライバーにメッセージを送信せずに適切な値を返します。 システム インターセプト された xxxMessage 関数の一般的な情報については、「 System-Intercepted Device Messages」を参照してください。
このメッセージによって取得されるバッファー サイズは、バイト数として表されます。 デバイス インターフェイス名を含む null で終わる Unicode 文字列を保持するために必要なバッファーのサイズを指定します。 呼び出し元は、指定したサイズのバッファーを割り当て、 DRV_QUERYDEVICEINTERFACE メッセージを使用してデバイス インターフェイス名の文字列を取得します。
詳細については、「 デバイス インターフェイス名の取得」を参照してください。
メッセージはDRV_QUERYDEVNODE
、Plug and Play マネージャーによってデバイスに割り当てられた devnode 番号を照会します。
の場合 DRV_QUERYDEVNODE
、 dwParam1 は、関数が devnode 番号を書き込む呼び出し元によって割り当てられた DWORD 変数へのポインターです。 デバイスに devnode が割り当てられていない場合、関数はこの変数を 0 に設定します。
の場合 DRV_QUERYDEVNODE
、 dwParam2 は使用されません。 このパラメーターを 0 に設定します。
Windows 2000 以降では、メッセージは常にMMSYSERR_NOTSUPPORTEDを返します。 このメッセージは、waveInMessage、waveOutMessage、midiInMessage、midiOutMessage、mixerMessage 関数に対してのみ有効です。 システムはこのメッセージをインターセプトし、デバイス ドライバーにメッセージを送信せずに適切な値を返します。 システム インターセプト された xxxMessage 関数の一般的な情報については、「 System-Intercepted Device Messages」を参照してください。
メッセージは DRV_QUERYMAPPABLE
、指定されたデバイスをマッパーで使用できるかどうかを照会します。
の場合 DRV_QUERYMAPPABLE
、 dwParam1 は使用されません。 このパラメーターを 0 に設定します。
の場合 DRV_QUERYMAPPABLE
、 dwParam2 は使用されません。 このパラメーターを 0 に設定します。
このメッセージは、waveInMessage、waveOutMessage、midiInMessage、midiOutMessage、mixerMessage、auxOutMessage 関数に対してのみ有効です。 システムはこのメッセージをインターセプトし、デバイス ドライバーにメッセージを送信せずに適切な値を返します。 システム インターセプト された xxxMessage 関数の一般的な情報については、「 System-Intercepted Device Messages」を参照してください。
アプリケーション プログラムが特定のオーディオ デバイスではなくマッパーを開くと、アプリケーションと使用可能なデバイスの間にマッパーが挿入されます。 マッパーは、アプリケーションの要件を使用可能なデバイスのいずれかにマッピングすることで、適切なデバイスを選択します。 マッパーの詳細については、Microsoft Windows SDKドキュメントを参照してください。
メッセージは DRVM_MAPPER_CONSOLEVOICECOM_GET
、優先される音声通信デバイスのデバイス ID を取得します。
の場合 DRVM_MAPPER_CONSOLEVOICECOM_GET
、 dwParam1 はデバイス ID へのポインターです。 このパラメーターは、関数が現在優先される音声通信デバイスのデバイス ID を書き込む DWORD 変数を指します。 この関数は、優先される音声通信デバイスとして適格なデバイスが使用できない場合、値 (-1) を書き込みます。
の場合 DRVM_MAPPER_CONSOLEVOICECOM_GET
、 dwParam2 は状態フラグへのポインターです。 このパラメーターは、関数がデバイス状態フラグを書き込む DWORD 変数を指します。 現在定義されているフラグ ビットは 1 つだけです。DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY。
このメッセージは、 waveInMessage 関数と waveOutMessage 関数に対してのみ有効です。 呼び出し元が DRVM_MAPPER_CONSOLEVOICECOM_GET メッセージを使用してこれら 2 つの関数を呼び出す場合、呼び出し元はデバイス ID をWAVE_MAPPERとして指定し、その値を適切なハンドルの種類にキャストする必要があります。 waveInMessage、waveOutMessage、midiInMessage、midiOutMessage、または mixerMessage 関数の場合、呼び出し元は、それぞれ HWAVEIN、HWAVEOUT、HMIDIIN、HMIDIOUT、または HMIXER の型のハンドルにデバイス ID をキャストする必要があります。 呼び出し元がこのパラメーターのデバイス ID ではなく有効なハンドルを提供する場合、関数は失敗し、エラー コード MMSYSERR_NOSUPPORTを返します。
システムはこのメッセージをインターセプトし、デバイス ドライバーにメッセージを送信せずに適切な値を返します。 システム インターセプト された xxxMessage 関数の一般的な情報については、「 System-Intercepted Device Messages」を参照してください。
このメッセージは、他のすべてのオーディオ機能に適したデバイスを決定する DRVM_MAPPER_PREFERRED_GET メッセージとは対照的に、音声通信に対して優先されるデバイスを決定する方法を提供します。
たとえば、音声通信に推奨される waveOut デバイスはヘッドセットのイヤーピースである場合がありますが、他のすべてのオーディオ機能に推奨される waveOut デバイスは、一連のステレオ スピーカーである可能性があります。
dwParam2 が指す DWORD の場所にDRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY フラグ ビットが設定されている場合、waveIn および waveOut API は現在優先される音声通信デバイスのみを使用し、優先デバイスが使用できない場合は他の使用可能なデバイスを検索しません。 waveInMessage または waveOutMessage 呼び出しによって出力されるフラグは、waveInMessage と waveOutMessage のどちらに対して呼び出しが行われるかに関係なく、waveIn API と waveOut API の両方で優先される音声通信デバイスに適用されます。 詳細については、「 優先 Voice-Communications デバイス ID」を参照してください。
メッセージは DRVM_MAPPER_PREFERRED_GET
、優先オーディオ デバイスのデバイス ID を取得します。
の場合 DRVM_MAPPER_PREFERRED_GET
、 dwParam1 はデバイス ID へのポインターです。 このパラメーターは、関数が現在の優先デバイスのデバイス ID を書き込む DWORD 変数を指します。 この関数は、優先デバイスとして適格なデバイスが使用できない場合、値 (-1) を書き込みます。
の場合 DRVM_MAPPER_PREFERRED_GET
、 dwParam2 は状態フラグへのポインターです。 このパラメーターは、関数がデバイス状態フラグを書き込む DWORD 変数を指します。 現在定義されているフラグ ビットは 1 つだけです ( waveInMessage 呼び出しと waveOutMessage 呼び出しの場合のみ): DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY。
このメッセージは、waveInMessage、waveOutMessage、および midiOutMessage 関数に対してのみ有効です。 呼び出し元がDRVM_MAPPER_PREFERRED_GET メッセージを使用してこれらの関数を呼び出す場合、呼び出し元は最初にデバイス ID を WAVE_MAPPER ( waveInMessage または waveOutMessage の場合) またはMIDI_MAPPER ( midiOutMessage の場合) として指定してから、この値を適切なハンドルの種類にキャストする必要があります。 waveInMessage、waveOutMessage、または midiOutMessage 関数の場合、呼び出し元はデバイス ID をそれぞれハンドルの種類 HWAVEIN、HWAVEOUT、または HMIDIOUT にキャストする必要があります。 呼び出し元がこのパラメーターのデバイス ID ではなく有効なハンドルを提供する場合、関数は失敗し、エラー コード MMSYSERR_NOSUPPORTを返します。
システムはこのメッセージをインターセプトし、デバイス ドライバーにメッセージを送信せずに適切な値を返します。 システム インターセプト された xxxMessage 関数の一般的な情報については、「 System-Intercepted Device Messages」を参照してください。
このメッセージは、音声機能に対して一般的にどのデバイスが優先されているかを判断する方法を提供します。 DRVM_MAPPER_CONSOLEVOICECOM_GET メッセージとは異なり、どのデバイスが音声通信に対して優先されているかが決まります。
dwParam2 が指す DWORD の場所にDRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY フラグ ビットが設定されている場合、waveIn API と waveOut API は現在の優先デバイスのみを使用し、優先デバイスが使用できない場合は他の使用可能なデバイスを検索しません。 midiOutMessage 関数はこのフラグを出力しないことに注意してください。midiOut API は常に優先デバイスのみを使用します。 waveInMessage または waveOutMessage 呼び出しによって出力されるフラグは、waveInMessage と waveOutMessage のどちらを呼び出すかに関係なく、waveIn API と waveOut API の両方の優先デバイスに適用されます。
xxxMessage 関数は、有効なデバイス ハンドルの代わりにこの値を受け入れます。これにより、アプリケーションは最初にデバイスを開かなくても既定のデバイス ID を判断できます。 詳細については、「 優先デバイス ID へのアクセス」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmeapi.h (Windows.h を含む) |
Library | Winmm.lib |
[DLL] | Winmm.dll |