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 を返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。
リターン コード | 説明 |
---|---|
|
指定されたリソースは、可能なクライアントの最大数によって既に割り当てられています。 |
|
uMxId パラメーターは、無効なデバイス識別子を指定します。 |
|
1 つ以上のフラグが無効です。 |
|
uMxId パラメーターは無効なハンドルを指定します。 |
|
1 つ以上のパラメーターが無効です。 |
|
uMxId で指定されたオブジェクトに対して使用できるミキサー デバイスはありません。 uMxId によって参照される場所には、値 –1 も含まれていることに注意してください。 |
|
リソースを割り当てられません。 |
解説
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 |