midiInOpen (mmeapi.h)

Fungsi midiInOpen membuka perangkat input MIDI tertentu.

Sintaks

MMRESULT midiInOpen(
  LPHMIDIIN phmi,
  UINT      uDeviceID,
  DWORD_PTR dwCallback,
  DWORD_PTR dwInstance,
  DWORD     fdwOpen
);

Parameter

phmi

Penunjuk ke handel HMIDIIN . Lokasi ini diisi dengan handel yang mengidentifikasi perangkat input MIDI yang dibuka. Handel digunakan untuk mengidentifikasi perangkat dalam panggilan ke fungsi input MIDI lainnya.

uDeviceID

Pengidentifikasi perangkat input MIDI yang akan dibuka.

dwCallback

Arahkan ke fungsi panggilan balik, pengidentifikasi utas, atau handel jendela yang dipanggil dengan informasi tentang pesan MIDI masuk. Untuk informasi selengkapnya tentang fungsi panggilan balik, lihat MidiInProc.

dwInstance

Data instans pengguna diteruskan ke fungsi panggilan balik. Parameter ini tidak digunakan dengan fungsi atau utas panggilan balik jendela.

fdwOpen

Bendera panggilan balik untuk membuka perangkat dan, secara opsional, bendera status yang membantu mengatur transfer data cepat. Ini bisa menjadi nilai berikut.

Nilai Makna
CALLBACK_FUNCTION Parameter dwCallback adalah alamat prosedur panggilan balik.
CALLBACK_NULL Tidak ada mekanisme panggilan balik. Nilai ini adalah pengaturan default.
CALLBACK_THREAD Parameter dwCallback adalah pengidentifikasi utas.
CALLBACK_WINDOW Parameter dwCallback adalah handel jendela.
MIDI_IO_STATUS Ketika parameter ini juga menentukan CALLBACK_FUNCTION, pesan MIM_MOREDATA dikirim ke fungsi panggilan balik serta pesan MIM_DATA . Atau, jika parameter ini juga menentukan CALLBACK_WINDOW, pesan MM_MIM_MOREDATA dikirim ke jendela serta pesan MM_MIM_DATA . Bendera ini tidak memengaruhi panggilan balik peristiwa atau utas.
 

Sebagian besar aplikasi yang menggunakan mekanisme panggilan balik akan menentukan CALLBACK_FUNCTION untuk parameter ini.

Mengembalikan nilai

Mengembalikan MMSYSERR_NOERROR jika berhasil atau kesalahan sebaliknya. Kemungkinan nilai kesalahan termasuk yang berikut ini/

Menampilkan kode Deskripsi
MMSYSERR_ALLOCATED
Sumber daya yang ditentukan sudah dialokasikan.
MMSYSERR_BADDEVICEID
Pengidentifikasi perangkat yang ditentukan berada di luar rentang.
MMSYSERR_INVALFLAG
Bendera yang ditentukan oleh dwFlags tidak valid.
MMSYSERR_INVALPARAM
Penunjuk atau struktur yang ditentukan tidak valid.
MMSYSERR_NOMEM
Sistem tak bisa mengalokasikan atau mengunci memori.

Keterangan

Untuk menentukan jumlah perangkat input MIDI yang ada dalam sistem, gunakan fungsi midiInGetNumDevs . Pengidentifikasi perangkat yang ditentukan oleh wDeviceID bervariasi dari nol hingga satu kurang dari jumlah perangkat yang ada.

Jika jendela atau utas dipilih untuk menerima informasi panggilan balik, pesan berikut dikirim ke prosedur atau utas jendela untuk menunjukkan kemajuan input MIDI: MM_MIM_OPEN, MM_MIM_CLOSE, MM_MIM_DATA, MM_MIM_LONGDATA, MM_MIM_ERROR, MM_MIM_LONGERROR, dan MM_MIM_MOREDATA.

Jika fungsi dipilih untuk menerima informasi panggilan balik, pesan berikut dikirim ke fungsi untuk menunjukkan kemajuan input MIDI: MIM_OPEN, MIM_CLOSE, MIM_DATA, MIM_LONGDATA, MIM_ERROR, MIM_LONGERROR, dan MIM_MOREDATA.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header mmeapi.h (termasuk Windows.h)
Pustaka Winmm.lib
DLL Winmm.dll

Lihat juga

Fungsi MIDI