Bagikan melalui


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 terhadap MODM_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)

Lihat juga

modMessage

MIDIOPENDESC

DriverCallback

MOM_OPEN