Baca dalam bahasa Inggris

Bagikan melalui


fungsi midiInMessage (mmeapi.h)

Fungsi midiInMessage mengirim pesan ke driver perangkat MIDI.

Sintaks

MMRESULT midiInMessage(
  HMIDIIN   hmi,
  UINT      uMsg,
  DWORD_PTR dw1,
  DWORD_PTR dw2
);

Parameter

hmi

Pengidentifikasi perangkat MIDI yang menerima pesan. Anda harus melemparkan ID perangkat ke jenis handel HMIDIIN . Jika Anda menyediakan handel alih-alih ID perangkat, fungsi gagal dan mengembalikan kode kesalahan MMSYSERR_NOSUPPORT.

uMsg

Pesan untuk dikirim.

dw1

Parameter pesan.

dw2

Parameter pesan.

Nilai kembali

Mengembalikan nilai yang dikembalikan oleh driver perangkat audio.

Keterangan

Fungsi ini hanya digunakan untuk pesan khusus driver yang tidak didukung oleh API MIDI.

Pesan DRV_QUERYDEVICEINTERFACE meminta nama antarmuka perangkat dari perangkat waveIn, waveOut, midiIn, midiOut, atau mixer .

Untuk DRV_QUERYDEVICEINTERFACE, dwParam1 adalah penunjuk ke buffer yang dialokasikan penelepon tempat fungsi menulis string Unicode yang dihentikan null yang berisi nama antarmuka perangkat. Jika perangkat tidak memiliki antarmuka perangkat, panjang string adalah nol.

Untuk DRV_QUERYDEVICEINTERFACE, dwParam2 menentukan ukuran buffer dalam byte. Ini adalah parameter input untuk fungsi . Pemanggil harus menentukan ukuran yang lebih besar dari atau sama dengan ukuran buffer yang diambil oleh pesan DRV_QUERYDEVICEINTERFACESIZE .

Pesan DRV_QUERYDEVICEINTERFACE didukung di Windows Me, dan Windows 2000 dan yang lebih baru. Pesan ini hanya berlaku untuk fungsi waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, dan mixerMessage . Sistem mencegat pesan ini dan mengembalikan nilai yang sesuai tanpa mengirim pesan ke driver perangkat. Untuk informasi umum tentang fungsi xxxMessage yang dicegat sistem, lihat Pesan Perangkat yang Dicegat Sistem.

Dua konstanta pesan berikut digunakan bersama-sama untuk tujuan mendapatkan nama antarmuka perangkat:

  • DRV_QUERYDEVICEINTERFACESIZE
  • DRV_QUERYDEVICEINTERFACE
Pesan pertama memperoleh ukuran dalam byte buffer yang diperlukan untuk menahan string yang berisi nama antarmuka perangkat. Pesan kedua mengambil string nama dalam buffer dengan ukuran yang diperlukan.

Untuk informasi selengkapnya, lihat Mendapatkan Nama Antarmuka Perangkat.

Pesan DRV_QUERYDEVICEINTERFACESIZE meminta ukuran buffer yang diperlukan untuk menahan nama antarmuka perangkat.

Untuk DRV_QUERYDEVICEINTERFACESIZE, dwParam1 adalah penunjuk ke ukuran buffer. Parameter ini menunjuk ke variabel ULONG tempat fungsi menulis ukuran buffer yang diperlukan dalam byte. Ukurannya mencakup ruang penyimpanan untuk string nama yang mengakhiri null. Ukurannya nol jika ID perangkat mengidentifikasi perangkat yang tidak memiliki antarmuka perangkat.

Untuk DRV_QUERYDEVICEINTERFACESIZE, dwParam2 tidak digunakan. Atur parameter ini ke nol.

Pesan ini hanya berlaku untuk fungsi waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, dan mixerMessage . Sistem mencegat pesan ini dan mengembalikan nilai yang sesuai tanpa mengirim pesan ke driver perangkat. Untuk informasi umum tentang fungsi xxxMessage yang dicegat sistem, lihat Pesan Perangkat yang Dicegat Sistem.

Ukuran buffer yang diambil oleh pesan ini dinyatakan sebagai jumlah byte. Ini menentukan ukuran buffer yang diperlukan untuk menahan string Unicode yang dihentikan null yang berisi nama antarmuka perangkat. Pemanggil mengalokasikan buffer dengan ukuran yang ditentukan dan menggunakan pesan DRV_QUERYDEVICEINTERFACE untuk mengambil string nama antarmuka perangkat.

Untuk informasi selengkapnya, lihat Mendapatkan Nama Antarmuka Perangkat.

Pesan DRV_QUERYDEVNODE meminta nomor devnode yang ditetapkan ke perangkat oleh manajer Plug and Play.

Untuk DRV_QUERYDEVNODE, dwParam1 adalah penunjuk ke variabel DWORD yang dialokasikan pemanggil tempat fungsi menulis nomor devnode. Jika tidak ada devnode yang ditetapkan ke perangkat, fungsi mengatur variabel ini ke nol.

Untuk DRV_QUERYDEVNODE, dwParam2 tidak digunakan. Atur parameter ini ke nol.

Di Windows 2000 dan yang lebih baru, pesan selalu mengembalikan MMSYSERR_NOTSUPPORTED. Pesan ini hanya berlaku untuk fungsi waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, dan mixerMessage . Sistem mencegat pesan ini dan mengembalikan nilai yang sesuai tanpa mengirim pesan ke driver perangkat. Untuk informasi umum tentang fungsi xxxMessage yang dicegat sistem, lihat Pesan Perangkat yang Dicegat Sistem.

Pesan DRV_QUERYMAPPABLE meminta apakah perangkat yang ditentukan dapat digunakan oleh pemeta.

Untuk DRV_QUERYMAPPABLE, dwParam1 tidak digunakan. Atur parameter ini ke nol.

Untuk DRV_QUERYMAPPABLE, dwParam2 tidak digunakan. Atur parameter ini ke nol.

Pesan ini hanya berlaku untuk fungsi waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage , dan auxOutMessage . Sistem mencegat pesan ini dan mengembalikan nilai yang sesuai tanpa mengirim pesan ke driver perangkat. Untuk informasi umum tentang fungsi xxxMessage yang dicegat sistem, lihat Pesan Perangkat yang Dicegat Sistem.

Ketika program aplikasi membuka pemeta alih-alih perangkat audio tertentu, sistem menyisipkan pemeta antara aplikasi dan perangkat yang tersedia. Pemeta memilih perangkat yang sesuai dengan memetakan persyaratan aplikasi ke salah satu perangkat yang tersedia. Untuk informasi selengkapnya tentang pemeta, lihat dokumentasi Microsoft Windows SDK.

Pesan DRVM_MAPPER_CONSOLEVOICECOM_GET mengambil ID perangkat dari perangkat komunikasi suara pilihan.

Untuk DRVM_MAPPER_CONSOLEVOICECOM_GET, dwParam1 adalah pointer ke ID perangkat. Parameter ini menunjuk ke variabel DWORD tempat fungsi menulis ID perangkat dari perangkat komunikasi suara pilihan saat ini. Fungsi ini menulis nilai (-1) jika tidak ada perangkat yang tersedia yang memenuhi syarat sebagai perangkat komunikasi suara pilihan.

Untuk DRVM_MAPPER_CONSOLEVOICECOM_GET, dwParam2 adalah penunjuk ke bendera status. Parameter ini menunjuk ke variabel DWORD tempat fungsi menulis bendera status perangkat. Hanya satu bit bendera yang saat ini ditentukan: DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.

Pesan ini hanya berlaku untuk fungsi waveInMessage dan waveOutMessage . Ketika penelepon memanggil kedua fungsi ini dengan pesan DRVM_MAPPER_CONSOLEVOICECOM_GET, pemanggil harus menentukan ID perangkat sebagai WAVE_MAPPER, lalu mentransmisikan nilai ini ke jenis handel yang sesuai. Untuk fungsi waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, atau mixerMessage , pemanggil harus mentransmisikan ID perangkat ke handel jenis HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT, atau HMIXER, masing-masing. Perhatikan bahwa jika pemanggil menyediakan handel yang valid alih-alih ID perangkat untuk parameter ini, fungsi gagal dan mengembalikan kode kesalahan MMSYSERR_NOSUPPORT.

Sistem mencegat pesan ini dan mengembalikan nilai yang sesuai tanpa mengirim pesan ke driver perangkat. Untuk informasi umum tentang fungsi xxxMessage yang dicegat sistem, lihat Pesan Perangkat yang Dicegat Sistem.

Pesan ini menyediakan cara untuk menentukan perangkat mana yang lebih disukai khusus untuk komunikasi suara, berbeda dengan pesan DRVM_MAPPER_PREFERRED_GET , yang menentukan perangkat mana yang lebih disukai untuk semua fungsi audio lainnya.

Misalnya, perangkat waveOut pilihan untuk komunikasi suara mungkin menjadi earpiece dalam headset, tetapi perangkat waveOut pilihan untuk semua fungsi audio lainnya mungkin merupakan sekumpulan speaker stereo.

Ketika bit bendera DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY diatur di lokasi DWORD yang diarahkan oleh dwParam2, API waveIn dan waveOut hanya menggunakan perangkat komunikasi suara pilihan saat ini dan tidak mencari perangkat lain yang tersedia jika perangkat pilihan tidak tersedia. Bendera yang dihasilkan oleh panggilan waveInMessage atau waveOutMessage berlaku untuk perangkat komunikasi suara pilihan untuk WAVEIn dan WAVEOut API, terlepas dari apakah panggilan dilakukan untuk waveInMessage atau waveOutMessage. Untuk informasi selengkapnya, lihat ID Perangkat Voice-Communications pilihan.

Pesan DRVM_MAPPER_PREFERRED_GET mengambil ID perangkat dari perangkat audio pilihan.

Untuk DRVM_MAPPER_PREFERRED_GET, dwParam1 adalah pointer ke ID perangkat. Parameter ini menunjuk ke variabel DWORD tempat fungsi menulis ID perangkat dari perangkat pilihan saat ini. Fungsi ini menulis nilai (-1) jika tidak ada perangkat yang tersedia yang memenuhi syarat sebagai perangkat pilihan.

Untuk DRVM_MAPPER_PREFERRED_GET, dwParam2 adalah penunjuk ke bendera status. Parameter ini menunjuk ke variabel DWORD tempat fungsi menulis bendera status perangkat. Hanya satu bit bendera yang saat ini ditentukan (hanya untuk panggilan waveInMessage dan waveOutMessage ): DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.

Pesan ini hanya berlaku untuk fungsi waveInMessage, waveOutMessage , dan midiOutMessage . Ketika pemanggil memanggil fungsi-fungsi ini dengan pesan DRVM_MAPPER_PREFERRED_GET, pemanggil harus terlebih dahulu menentukan ID perangkat sebagai WAVE_MAPPER (untuk waveInMessage atau waveOutMessage) atau MIDI_MAPPER (untuk midiOutMessage), lalu transmisikan nilai ini ke jenis handel yang sesuai. Untuk fungsi waveInMessage, waveOutMessage, atau midiOutMessage , pemanggil harus mentransmisikan ID perangkat ke jenis handel HWAVEIN, HWAVEOUT atau HMIDIOUT. Perhatikan bahwa jika pemanggil menyediakan handel yang valid alih-alih ID perangkat untuk parameter ini, fungsi gagal dan mengembalikan kode kesalahan MMSYSERR_NOSUPPORT.

Sistem mencegat pesan ini dan mengembalikan nilai yang sesuai tanpa mengirim pesan ke driver perangkat. Untuk informasi umum tentang fungsi xxxMessage yang dicegat sistem, lihat Pesan Perangkat yang Dicegat Sistem.

Pesan ini menyediakan cara untuk menentukan perangkat mana yang lebih disukai untuk fungsi audio secara umum, berbeda dengan pesan DRVM_MAPPER_CONSOLEVOICECOM_GET , yang menentukan perangkat mana yang lebih disukai khusus untuk komunikasi suara.

Ketika bit bendera DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY diatur di lokasi DWORD yang diarahkan oleh dwParam2, API waveIn dan waveOut hanya menggunakan perangkat pilihan saat ini dan tidak mencari perangkat lain yang tersedia jika perangkat pilihan tidak tersedia. Perhatikan bahwa fungsi midiOutMessage tidak menghasilkan bendera ini--API midiOut hanya menggunakan perangkat pilihan. Bendera yang merupakan output oleh panggilan waveInMessage atau waveOutMessage berlaku untuk perangkat pilihan untuk WAVEIn dan WAVEOut API, terlepas dari apakah panggilan dilakukan ke waveInMessage atau waveOutMessage.

Fungsi Pesan xxxmenerima nilai ini sebagai ganti handel perangkat yang valid untuk memungkinkan aplikasi menentukan ID perangkat default tanpa harus membuka perangkat terlebih dahulu. Untuk informasi selengkapnya, lihat Mengakses ID Perangkat Pilihan.

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