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