midiInOpen 関数 (mmeapi.h)
midiInOpen 関数は、指定された MIDI 入力デバイスを開きます。
構文
MMRESULT midiInOpen(
LPHMIDIIN phmi,
UINT uDeviceID,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
パラメーター
phmi
HMIDIIN ハンドルへのポインター。 この場所には、開いている MIDI 入力デバイスを識別するハンドルが入力されます。 ハンドルは、他のMIDI入力機能への呼び出しでデバイスを識別するために使用されます。
uDeviceID
開く MIDI 入力デバイスの識別子。
dwCallback
コールバック関数、スレッド識別子、または着信 MIDI メッセージに関する情報と呼ばれるウィンドウのハンドルへのポインター。 コールバック関数の詳細については、「 MidiInProc」を参照してください。
dwInstance
コールバック関数に渡されるユーザー インスタンス データ。 このパラメーターは、ウィンドウ コールバック関数またはスレッドでは使用されません。
fdwOpen
デバイスを開くコールバック フラグ、および必要に応じて、迅速なデータ転送を調整するのに役立つ状態フラグ。 次の値を指定できます。
値 | 意味 |
---|---|
CALLBACK_FUNCTION | dwCallback パラメーターはコールバック プロシージャ アドレスです。 |
CALLBACK_NULL | コールバック メカニズムはありません。 この値は既定の設定です。 |
CALLBACK_THREAD | dwCallback パラメーターはスレッド識別子です。 |
CALLBACK_WINDOW | dwCallback パラメーターはウィンドウ ハンドルです。 |
MIDI_IO_STATUS | このパラメーターでCALLBACK_FUNCTIONも指定すると、 MIM_MOREDATA メッセージはコールバック関数と MIM_DATA メッセージに送信されます。 または、このパラメーターでCALLBACK_WINDOWも指定されている場合は、 MM_MIM_MOREDATA メッセージがウィンドウに送信され、 メッセージもMM_MIM_DATA されます。 このフラグは、イベントコールバックやスレッドコールバックには影響しません。 |
コールバック メカニズムを使用するほとんどのアプリケーションでは、このパラメーターのCALLBACK_FUNCTIONが指定されます。
戻り値
成功した場合はMMSYSERR_NOERRORを返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。
リターン コード | 説明 |
---|---|
|
指定されたリソースは既に割り当てられています。 |
|
指定されたデバイス識別子が範囲外です。 |
|
dwFlags で指定されたフラグが無効です。 |
|
指定されたポインターまたは構造体が無効です。 |
|
システムがメモリを割り当てまたはロックできません。 |
注釈
システムに存在する MIDI 入力デバイスの数を確認するには、 midiInGetNumDevs 関数を 使用します。 wDeviceID で指定されたデバイス識別子は、存在するデバイスの数よりも 0 から 1 未満に変化します。
コールバック情報を受け取るためにウィンドウまたはスレッドを選択した場合、MIDI 入力の進行状況を示すメッセージがウィンドウ プロシージャまたはスレッドに送信されます。MM_MIM_OPEN、MM_MIM_CLOSE、MM_MIM_DATA、MM_MIM_LONGDATA、MM_MIM_ERROR、MM_MIM_LONGERROR、MM_MIM_MOREDATA。
コールバック情報を受け取るために関数を選択すると、MIDI 入力の進行状況を示すメッセージが関数に送信されます: MIM_OPEN、 MIM_CLOSE、 MIM_DATA、 MIM_LONGDATA、 MIM_ERROR、 MIM_LONGERROR、 MIM_MOREDATA。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmeapi.h (Windows.h を含む) |
Library | Winmm.lib |
[DLL] | Winmm.dll |