fungsi MODM_OPEN
WINMM mengirim MODM_OPEN
pesan ke fungsi modMessage dari driver output MIDI untuk mengalokasikan perangkat tertentu yang dapat digunakan aplikasi klien.
Sintaks
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parameter
uDeviceID
Menentukan ID perangkat target. ID perangkat berurutan dan memiliki nilai awal nol dan nilai akhir yang sama dengan satu kurang dari jumlah perangkat yang didukung driver.uMsg
WINMM mengatur parameter ini ke MODM_OPEN ketika memanggil modMessage untuk memproses pesan ini.dwUser
Driver output MIDI harus mengisi lokasi ini dengan data instansnya, tetapi hanya sebagai respons terhadapMODM_OPEN
.dwParam1
Parameter ini menentukan penunjuk jauh ke struktur MIDIOPENDESC . Struktur ini berisi informasi tambahan untuk driver seperti data instans dari klien dan fungsi panggilan balik untuk klien.dwParam2
Parameter ini menentukan bendera opsi yang menentukan cara perangkat dibuka. Bendera bisa menjadi salah satu nilai dalam tabel berikut.Bendera Makna CALLBACK_EVENT
Jika bendera ini ditentukan, dwCallback dalam struktur MIDIOPENDESC diasumsikan sebagai penanganan peristiwa.
CALLBACK_FUNCTION
Jika bendera ini ditentukan, dwCallback dalam struktur MIDIOPENDESC diasumsikan sebagai alamat fungsi panggilan balik.
CALLBACK_THREAD
Jika bendera ini ditentukan, dwCallback dalam struktur MIDIOPENDESC diasumsikan sebagai handel ke utas.
CALLBACK_WINDOW
Jika bendera ini ditentukan, dwCallback dalam struktur MIDIOPENDESC diasumsikan sebagai handel jendela.
MIDI_IO_COOKED
Jika bendera ini ditentukan, perangkat dibuka dalam mode streaming dan driver menerima pesan streaming. Pengemudi harus dapat menangani kontingensi apa pun yang muncul. Misalnya, driver harus dapat memutar pesan singkat dan pesan eksklusif sistem secara asinkron ke aliran.
Mengembalikan nilai
Fungsi modMessage mengembalikan MMSYSERR_NOERROR jika operasi berhasil. Jika tidak, ia mengembalikan salah satu pesan kesalahan dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
MMSYSERR_NOTENABLED | Driver gagal dimuat atau diinisialisasi. |
MMSYSERR_ALLOCATED | Perangkat MIDI sudah dialokasikan oleh jumlah maksimum klien yang didukung driver atau perangkat tidak dapat dibuka karena keterbatasan sumber daya sistem selain memori. |
MMSYSERR_NOMEM | Perangkat tidak dapat dibuka karena gagal mengalokasikan atau mengunci memori. |
Keterangan
Driver harus dapat menentukan jumlah klien yang dapat diizinkan untuk menggunakan perangkat tertentu. Setelah perangkat dibuka untuk jumlah maksimum klien yang didukung driver, driver mengembalikan MMSYSERR_ALLOCATED untuk setiap permintaan tambahan untuk membuka perangkat. Jika operasi terbuka berhasil, driver menggunakan fungsi DriverCallback untuk mengirim pesan MOM_OPEN kepada klien.
Persyaratan
Platform target |
Desktop |
Versi |
Tersedia di Windows XP dan sistem operasi Windows yang lebih baru. |
Header |
Mmddk.h (termasuk Mmddk.h, Mmsystem.h, atau Windows.h) |