mixerOpen 関数 (mmeapi.h)

mixerOpen 関数は、指定したミキサー デバイスを開き、アプリケーションがハンドルを閉じるまでデバイスが削除されないようにします。

構文

MMRESULT mixerOpen(
  LPHMIXER  phmx,
  UINT      uMxId,
  DWORD_PTR dwCallback,
  DWORD_PTR dwInstance,
  DWORD     fdwOpen
);

パラメーター

phmx

開かれたミキサー デバイスを識別するハンドルを受け取る変数へのポインター。 このハンドルを使用して、他のオーディオ ミキサー関数を呼び出すときにデバイスを識別します。 このパラメーターを NULL にすることはできません。

uMxId

開くミキサー デバイスの識別子。 有効なデバイス識別子または HMIXEROBJ を使用します (ミキサー オブジェクト ハンドルの説明については 、mixerGetID 関数を参照してください)。 オーディオ ミキサー デバイスの "マッパー" は現在存在しないため、ミキサー デバイス識別子 -1 は無効です。

dwCallback

開いているデバイスに関連付けられているオーディオ行やコントロールの状態が変更されたときに呼び出されるウィンドウへのハンドル。 コールバック メカニズムを使用しない場合は、このパラメーターに NULL を 指定します。

dwInstance

予約済み。 ゼロを指定してください。

fdwOpen

デバイスを開くフラグ。 次の値が定義されています。

説明
CALLBACK_WINDOW dwCallback パラメーターは、ウィンドウ ハンドル (HWND) であると見なされます。
MIXER_OBJECTF_AUX uMxId パラメーターは、auxGetNumDevs 関数によって返されるデバイスの数より 0 から 1 未満の範囲の補助デバイス識別子です。
MIXER_OBJECTF_HMIDIIN uMxId パラメーターは、MIDI 入力デバイスのハンドルです。 このハンドルは、 midiInOpen 関数によって返されている必要があります。
MIXER_OBJECTF_HMIDIOUT uMxId パラメーターは、MIDI 出力デバイスのハンドルです。 このハンドルは 、midiOutOpen 関数によって返されている必要があります。
MIXER_OBJECTF_HMIXER uMxId パラメーターは、mixerOpen 関数によって返されるミキサー デバイス ハンドルです。 このフラグは省略可能です。
MIXER_OBJECTF_HWAVEIN uMxId パラメーターは、waveInOpen 関数によって返される波形オーディオ入力ハンドルです。
MIXER_OBJECTF_HWAVEOUT uMxId パラメーターは、waveOutOpen 関数によって返される波形オーディオ出力ハンドルです。
MIXER_OBJECTF_MIDIIN uMxId パラメーターは、MIDI 入力デバイスの識別子です。 この識別子は、 midiInGetNumDevs 関数によって返されるデバイスの数より 0 から 1 未満の範囲である必要があります。
MIXER_OBJECTF_MIDIOUT uMxId パラメーターは、MIDI 出力デバイスの識別子です。 この識別子は、 midiOutGetNumDevs 関数によって返されるデバイスの数より 0 から 1 未満の範囲である必要があります。
MIXER_OBJECTF_MIXER uMxId パラメーターは、mixerGetNumDevs 関数によって返されるデバイスの数より 0 から 1 未満の範囲のミキサー デバイス識別子です。 このフラグは省略可能です。
MIXER_OBJECTF_WAVEIN uMxId パラメーターは、waveInGetNumDevs 関数によって返されるデバイスの数より 0 から 1 未満の範囲の波形オーディオ入力デバイスの識別子です。
MIXER_OBJECTF_WAVEOUT uMxId パラメーターは、waveOutGetNumDevs 関数によって返されるデバイスの数より 0 から 1 未満の範囲の波形オーディオ出力デバイスの識別子です。

戻り値

成功した場合 はMMSYSERR_NOERROR を返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。

リターン コード 説明
MMSYSERR_ALLOCATED
指定されたリソースは、可能なクライアントの最大数によって既に割り当てられています。
MMSYSERR_BADDEVICEID
uMxId パラメーターは、無効なデバイス識別子を指定します。
MMSYSERR_INVALFLAG
1 つ以上のフラグが無効です。
MMSYSERR_INVALHANDLE
uMxId パラメーターは無効なハンドルを指定します。
MMSYSERR_INVALPARAM
1 つ以上のパラメーターが無効です。
MMSYSERR_NODRIVER
uMxId で指定されたオブジェクトに対して使用できるミキサー デバイスはありません。 uMxId によって参照される場所には、値 –1 も含まれていることに注意してください。
MMSYSERR_NOMEM
リソースを割り当てられません。

解説

mixerGetNumDevs 関数を使用して、システムに存在するオーディオ ミキサー デバイスの数を決定します。 uMxId で指定されたデバイス識別子は、存在するデバイスの数よりも 0 から 1 未満に変化します。

コールバック情報を受け取るためにウィンドウを選択した場合、 MM_MIXM_LINE_CHANGE メッセージと MM_MIXM_CONTROL_CHANGE メッセージがウィンドウ プロシージャ関数に送信され、オーディオ行またはコントロールの状態がいつ変化したかが示されます。 どちらのメッセージでも、 wParam パラメーターはミキサー デバイスのハンドルです。 lParam パラメーターは、MM_MIXM_LINE_CHANGEの行識別子、または状態を変更したMM_MIXM_CONTROL_CHANGEの制御識別子です。

オーディオ ミキサーのサポートまたはメディア デバイスのクエリを実行するには、 mixerGetID 関数を使用します。

64 ビット システムでは、uMxId パラメーターが 32 ビットに切り捨てられるため、uMxId パラメーターに 64 ビット LPHWAVEOUT ポインターを渡す場合、この関数は期待どおりに機能しない可能性があります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mmeapi.h (Windows.h を含む)
Library Winmm.lib
[DLL] Winmm.dll

関連項目

オーディオ ミキサー関数

オーディオ ミキサー