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
MMSYSERR_ALLOCATED
指定的資源已配置。
MMSYSERR_BADDEVICEID
指定的裝置識別碼超出範圍。
MMSYSERR_INVALFLAG
dwFlags 指定的旗標無效。
MMSYSERR_INVALPARAM
指定的指標或結構無效。
MMSYSERR_NOMEM
系統無法配置或鎖定記憶體。

備註

若要判斷系統中存在的MIDI輸入裝置數目,請使用 midiInGetNumDevs 函式。 wDeviceID 指定的裝置標識碼會從零到一個小於存在的裝置數目。

如果您選擇視窗或線程接收回呼資訊,則會將下列訊息傳送至視窗程式或線程,以指出 MIDI 輸入的進度:MM_MIM_OPENMM_MIM_CLOSE、MM_MIM_DATAMM_MIM_LONGDATA、MM_MIM_ERROR、MM_MIM_LONGERRORMM_MIM_MOREDATA

如果您選擇函式接收回呼資訊,則會將下列訊息傳送至函式,以指出 MIDI 輸入的進度:MIM_OPENMIM_CLOSEMIM_DATA、MIM_LONGDATA、MIM_ERROR、MIM_LONGERRORMIM_MOREDATA

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 mmeapi.h (包含 Windows.h)
程式庫 Winmm.lib
Dll Winmm.dll

另請參閱

MIDI 函式