mixerOpen

mixerOpen 関数は指定されたミキサーデバイスをオープンし、アプリケーションがハンドルを閉じるまでデバイスが取り外されないことを保証する。

mixerOpen phmx, uMxId, dwCallback, dwInstance, fdwOpen

phmx : [intptr] オープンされたミキサーデバイスを識別するハンドルを受け取る変数へのポインタ。このハンドルは他のオーディオミキサー関数を呼び出すときにデバイスを識別するために使用する。このパラメータは NULL であってはならない。
uMxId : [int] オープン対象のミキサーデバイスの識別子。有効なデバイス識別子または任意の HMIXEROBJ を使用する (ミキサーオブジェクトハンドルの説明は mixerGetID 関数を参照)。オーディオミキサーデバイスの「マッパー」は現在存在しないため、ミキサーデバイス識別子 -1 は無効である。
dwCallback : [int] オープン対象のデバイスに関連付けられたオーディオラインまたはコントロールの状態が変化したときに呼び出されるウィンドウへのハンドル。コールバック機構を使用しない場合は NULL を指定する。
dwInstance : [int] 予約。0 でなければならない。
fdwOpen : [int] デバイスを開くためのフラグ。次の値が定義されている。

(プラグイン / モジュール : winmm.dll)

解説

mixerOpen
関数は指定されたミキサーデバイスをオープンし、アプリケーションがハンドルを閉じるまでデバイスが取り外されないことを保証する。

[戻り値]
成功時は MMSYSERR_NOERROR を、それ以外の場合はエラーを返す。考えられるエラー値は次のとおり。
(以下省略)

[備考]
システムに存在するオーディオミキサーデバイスの数を判定するには 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 ビットに切り詰められるため、64 ビットの LPHWAVEOUT
ポインタを uMxId パラメータに渡す状況では本関数は期待どおりに動作しないことがある。

情報

プラグイン / モジュールwinmm.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の winmm.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_winmm_gen2.hs