midiOutOpen 関数 (mmeapi.h)
midiOutOpen 関数を使用すると、再生用の MIDI 出力デバイスが開きます。
構文
MMRESULT midiOutOpen(
LPHMIDIOUT phmo,
UINT uDeviceID,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
パラメーター
phmo
HMIDIOUT ハンドルへのポインター。 この場所には、開いた MIDI 出力デバイスを識別するハンドルが入力されます。 ハンドルは、他の MIDI 出力機能の呼び出しでデバイスを識別するために使用されます。
uDeviceID
開く MIDI 出力デバイスの識別子。
dwCallback
再生の進行状況に関連するメッセージを処理するために MIDI 再生中に呼び出される、コールバック関数、イベント ハンドル、スレッド識別子、またはウィンドウまたはスレッドのハンドルへのポインター。 コールバックが必要ない場合は、このパラメーターに NULL を 指定します。 コールバック関数の詳細については、「 MidiOutProc」を参照してください。
dwInstance
コールバックに渡されるユーザー インスタンス データ。 このパラメーターは、ウィンドウ コールバックまたはスレッドでは使用されません。
fdwOpen
デバイスを開くコールバック フラグ。 次の値を指定できます。
値 | 説明 |
---|---|
CALLBACK_EVENT | dwCallback パラメーターはイベント ハンドルです。 このコールバック メカニズムは出力専用です。 |
CALLBACK_FUNCTION | dwCallback パラメーターはコールバック関数アドレスです。 |
CALLBACK_NULL | コールバック メカニズムはありません。 この値は既定の設定です。 |
CALLBACK_THREAD | dwCallback パラメーターはスレッド識別子です。 |
CALLBACK_WINDOW | dwCallback パラメーターはウィンドウ ハンドルです。 |
戻り値
成功した場合はMMSYSERR_NOERRORを返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。
リターン コード | 説明 |
---|---|
|
MIDI ポートが見つかりませんでした。 このエラーは、マッパーが開かれている場合にのみ発生します。 |
|
指定されたリソースは既に割り当てられています。 |
|
指定されたデバイス識別子が範囲外です。 |
|
指定されたポインターまたは構造体が無効です。 |
|
システムはメモリを割り当てまたはロックできません。 |
解説
システムに存在する MIDI 出力デバイスの数を確認するには、 midiOutGetNumDevs 関数を使用します。 wDeviceID で指定されたデバイス識別子は、存在するデバイスの数よりも 0 から 1 未満に変化します。 MIDI_MAPPERは、デバイス識別子としても使用できます。
ウィンドウまたはスレッドがコールバック情報を受信するように選択された場合、MIDI 出力の進行状況を示すメッセージがウィンドウ プロシージャまたはスレッドに送信されます: MM_MOM_OPEN、 MM_MOM_CLOSE、 MM_MOM_DONE。
関数がコールバック情報を受信するように選択された場合、MIDI 出力の進行状況を示すメッセージが関数に送信されます: MOM_OPEN、 MOM_CLOSE、 MOM_DONE。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmeapi.h (Windows.h を含む) |
Library | Winmm.lib |
[DLL] | Winmm.dll |