fungsi modMessage
Fungsi modMessage adalah fungsi entry-point untuk driver output musical instrument digital interface (MIDI) dan untuk driver synthesizer internal. Untuk informasi selengkapnya tentang pesan perangkat audio yang terkait dengan MIDI, lihat Pesan Perangkat Audio untuk MIDI.
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
Menentukan pesan yang dikirim WINMM ke driver sebagai respons terhadap panggilan dari aplikasi klien.dwUser
Untuk pesan MODM_OPEN , driver harus mengisi lokasi ini dengan data instansnya. Untuk pesan lain, data instans dikembalikan ke driver. Driver yang mendukung beberapa klien dapat menggunakan data instans ini untuk melacak klien mana yang terkait dengan pesan.dwParam1
Menentukan parameter yang bergantung pada pesan.dwParam2
Menentukan parameter yang bergantung pada pesan. Jika ada bendera yang memberikan informasi tambahan kepada driver yang bekerja dengan modMessage, WINMM menggunakan parameter ini untuk meneruskan bendera.
Mengembalikan nilai
Fungsi modMessage mengembalikan MMSYSERR_NOERROR jika dapat berhasil memproses pesan yang diterimanya dari MMSYSTEM. Jika tidak, ia mengembalikan salah satu pesan kesalahan berikut.
Menampilkan kode | Deskripsi |
---|---|
MMSYSERR_ERROR | Kesalahan yang tidak ditentukan. |
MMSYSERR_BADDEVICEID | ID perangkat yang ditentukan berada di luar rentang. |
MMSYSERR_NOTENABLED | Driver gagal dimuat atau diinisialisasi. |
MMSYSERR_ALLOCATED | Perangkat yang ditentukan sudah dialokasikan. |
MMSYSERR_INVALHANDLE | Handel perangkat yang ditentukan tidak valid. |
MMSYSERR_NODRIVER | Tidak ada driver perangkat. |
MMSYSERR_NOMEM | Kesalahan alokasi memori. |
MMSYSERR_NOTSUPPORTED | Fungsi yang diminta oleh pesan tidak didukung. |
MMSYSERR_BADERRNUM | Nilai kesalahan di luar rentang. Lihat bagian Keterangan untuk detail selengkapnya. |
MMSYSERR_INVALFLAG | Bendera yang tidak valid diteruskan ke modMessage(dengan menggunakan dwParam2). |
MMSYSERR_INVALPARAM | Parameter yang tidak valid diteruskan ke modMessage. |
MMSYSERR_HANDLEBUSY | Handel yang ditentukan sedang digunakan secara bersamaan oleh utas lain (misalnya, utas panggilan balik). |
MMSYSERR_INVALIDALIAS | Alias yang ditentukan tidak ditemukan. |
MMSYSERR_BADDB | Database registri buruk. |
MMSYSERR_KEYNOTFOUND | Kunci registri yang ditentukan tidak ditemukan. |
MMSYSERR_READERROR | Kesalahan baca registri. |
MMSYSERR_WRITEERROR | Kesalahan penulisan registri. |
MMSYSERR_DELETEERROR | Kesalahan penghapusan registri. |
MMSYSERR_VALNOTFOUND | Nilai registri yang ditentukan tidak ditemukan. |
MMSYSERR_NODRIVERCB | Driver yang bekerja dengan modMessage tidak memanggil DriverCallback. |
MMSYSERR_MOREDATA | modMessage memiliki lebih banyak data untuk dikembalikan. |
MMSYSERR_LASTERROR | Menunjukkan bahwa ini adalah kesalahan terakhir dalam rentang nilai kesalahan. Lihat bagian Keterangan untuk detail selengkapnya. |
Keterangan
Pesan perangkat audio adalah konstanta yang ditentukan sistem. Jadi, ketika modMessage menerima pesan perangkat audio, modMessage menggunakan pernyataan pengalih untuk menentukan tindakan yang akan dilakukan, berdasarkan nilai pesan.
Rentang pesan kesalahan yang dapat dikembalikan modMessage tergantung pada pesan yang sedang diproses saat kesalahan terjadi. Nilai numerik pesan kesalahan MMSYSERR_ dimulai dengan nol (untuk MMSYSERR_NOERROR) dan lanjutkan dengan MMSYSERR_BASE + n, di mana n adalah bilangan bulat dari 1 hingga 21. Nilai untuk MMSYSERR_BASE adalah konstanta yang ditentukan. Untuk informasi selengkapnya tentang MSYSERR_BASE dan pesan kesalahan MMSYSERR_, lihat Mmsystem.h di Windows SDK dan Mmddk.h di WDK masing-masing.
Persyaratan
Platform target |
Desktop |
Versi |
Tersedia dengan Windows XP dan sistem operasi Windows yang lebih baru. |
Header |
Mmddk.h (termasuk Mmddk.h, Mmsystem.h, atau Windows.h) |