funzione MODM_OPEN
WINMM invia il MODM_OPEN
messaggio alla funzione modMessage di un driver di output MIDI per allocare un dispositivo specificato che un'applicazione client può usare.
Sintassi
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parametri
uDeviceID
Specifica l'ID del dispositivo di destinazione. Gli ID dispositivo sono sequenziali e hanno un valore iniziale pari a zero e un valore finale uguale a uno minore del numero di dispositivi supportati dal driver.Umsg
WINMM imposta questo parametro su MODM_OPEN quando chiama modMessage per elaborare questo messaggio.dwUser
Il driver di output MIDI deve riempire questa posizione con i relativi dati di istanza, ma solo in risposta aMODM_OPEN
.dwParam1
Questo parametro specifica un puntatore lontano a una struttura MIDIOPENDESC . Questa struttura contiene informazioni aggiuntive per il driver, ad esempio i dati dell'istanza dal client e una funzione di callback per il client.dwParam2
Questo parametro specifica i flag di opzione che determinano la modalità di apertura del dispositivo. I flag possono essere uno qualsiasi dei valori della tabella seguente.Contrassegno Significato CALLBACK_EVENT
Se questo flag viene specificato, si presuppone che dwCallback nella struttura MIDIOPENDESC sia un handle di evento.
CALLBACK_FUNCTION
Se questo flag viene specificato, si presuppone che dwCallback nella struttura MIDIOPENDESC sia l'indirizzo di una funzione di callback.
CALLBACK_THREAD
Se questo flag viene specificato, si presuppone che dwCallback nella struttura MIDIOPENDESC sia un handle per un thread.
CALLBACK_WINDOW
Se questo flag viene specificato, si presuppone che dwCallback nella struttura MIDIOPENDESC sia un handle di finestra.
MIDI_IO_COOKED
Se questo flag viene specificato, il dispositivo viene aperto in modalità flusso e il driver riceve messaggi di flusso. Il conducente deve essere in grado di gestire eventuali contingenze che si verificano. Ad esempio, il driver deve essere in grado di riprodurre messaggi brevi e messaggi esclusivi del sistema in modo asincrono nel flusso.
Valore restituito
La funzione modMessage restituisce MMSYSERR_NOERROR se l'operazione ha esito positivo. In caso contrario, restituisce uno dei messaggi di errore nella tabella seguente.
Codice restituito | Descrizione |
---|---|
MMSYSERR_NOTENABLED | Impossibile caricare o inizializzare il driver. |
MMSYSERR_ALLOCATED | Il dispositivo MIDI è già allocato dal numero massimo di client supportati dal driver o non può essere aperto a causa di limitazioni delle risorse di sistema diverse dalla memoria. |
MMSYSERR_NOMEM | Impossibile aprire il dispositivo a causa di un errore di allocazione o blocco della memoria. |
Commenti
Il driver deve essere in grado di determinare il numero di client che può consentire l'uso di un determinato dispositivo. Dopo l'apertura di un dispositivo per il numero massimo di client supportati dal driver, il driver restituisce MMSYSERR_ALLOCATED per eventuali richieste aggiuntive per aprire il dispositivo. Se l'operazione di apertura ha esito positivo, il driver usa la funzione DriverCallback per inviare al client un messaggio di MOM_OPEN .
Requisiti
Piattaforma di destinazione |
Desktop |
Versione |
Disponibile in Windows XP e nei sistemi operativi Windows successivi. |
Intestazione |
Mmddk.h (include Mmddk.h, Mmsystem.h o Windows.h) |