次の方法で共有


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を返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。

リターン コード 説明
MIDIERR_NODEVICE
MIDI ポートが見つかりませんでした。 このエラーは、マッパーが開かれている場合にのみ発生します。
MMSYSERR_ALLOCATED
指定されたリソースは既に割り当てられています。
MMSYSERR_BADDEVICEID
指定されたデバイス識別子が範囲外です。
MMSYSERR_INVALPARAM
指定されたポインターまたは構造体が無効です。
MMSYSERR_NOMEM
システムはメモリを割り当てまたはロックできません。

解説

システムに存在する MIDI 出力デバイスの数を確認するには、 midiOutGetNumDevs 関数を使用します。 wDeviceID で指定されたデバイス識別子は、存在するデバイスの数よりも 0 から 1 未満に変化します。 MIDI_MAPPERは、デバイス識別子としても使用できます。

ウィンドウまたはスレッドがコールバック情報を受信するように選択された場合、MIDI 出力の進行状況を示すメッセージがウィンドウ プロシージャまたはスレッドに送信されます: MM_MOM_OPENMM_MOM_CLOSEMM_MOM_DONE

関数がコールバック情報を受信するように選択された場合、MIDI 出力の進行状況を示すメッセージが関数に送信されます: MOM_OPENMOM_CLOSEMOM_DONE

要件

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

関連項目

MIDI 関数