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指定的裝置識別碼會從零到一個小於存在的裝置數目。 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)
程式庫 Winmm.lib
Dll Winmm.dll

另請參閱

MIDI 函式