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。 可能的錯誤值包括下列/
傳回碼 | Description |
---|---|
|
指定的資源已配置。 |
|
指定的裝置識別碼超出範圍。 |
|
dwFlags 指定的旗標無效。 |
|
指定的指標或結構無效。 |
|
系統無法配置或鎖定記憶體。 |
備註
若要判斷系統中存在的MIDI輸入裝置數目,請使用 midiInGetNumDevs 函式。 wDeviceID 指定的裝置標識碼會從零到一個小於存在的裝置數目。
如果您選擇視窗或線程接收回呼資訊,則會將下列訊息傳送至視窗程式或線程,以指出 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 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | mmeapi.h (包含 Windows.h) |
程式庫 | Winmm.lib |
Dll | Winmm.dll |