Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen modMessage är startpunktsfunktionen för midi-utdatadrivrutiner (Musical Instrument Digital Interface) och för interna synthesizerdrivrutiner. Mer information om ljudenhetsmeddelanden relaterade till MIDI finns i Ljudenhetsmeddelanden för MIDI
Syntax
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parameterar
uDeviceID
Anger målenhetens ID. Enhets-ID:n är sekventiella och har ett initialt värde på noll och ett slutligt värde som är lika med en mindre än antalet enheter som drivrutinen stöder.uMsg
Anger meddelandet som WINMM skickar till drivrutinen som svar på ett anrop från klientprogrammet.dwUser
För meddelandet MODM_OPEN ska drivrutinen fylla den här platsen med sina instansdata. För andra meddelanden returneras instansdata till drivrutinen. Drivrutiner som stöder flera klienter kan använda instansdata för att spåra vilken klient som är associerad med meddelandet.dwParam1
Anger en meddelandeberoende parameter.dwParam2
Anger en meddelandeberoende parameter. Om det finns flaggor som ger ytterligare information till drivrutinen som fungerar med modMessage använder WINMM den här parametern för att skicka flaggorna.
Returvärde
Funktionen modMessage returnerar MMSYSERR_NOERROR om det kan bearbeta meddelandet som det tog emot från MMSYSTEM. Annars returneras något av följande felmeddelanden.
| Returkod | Beskrivning |
|---|---|
| MMSYSERR_ERROR | Ospecificerat fel. |
| MMSYSERR_BADDEVICEID | Det angivna enhets-ID:t ligger utom räckhåll. |
| MMSYSERR_NOTENABLED | Det gick inte att läsa in eller initiera drivrutinen. |
| MMSYSERR_ALLOCATED | Den angivna enheten har redan allokerats. |
| MMSYSERR_INVALHANDLE | Referensen för den angivna enheten är ogiltig. |
| MMSYSERR_NODRIVER | Det finns ingen enhetsdrivrutin. |
| MMSYSERR_NOMEM | Minnesallokeringsfel. |
| MMSYSERR_NOTSUPPORTED | Funktionen som begärs av meddelandet stöds inte. |
| MMSYSERR_BADERRNUM | Felvärdet ligger inom intervallet. Mer information finns i avsnittet Kommentarer. |
| MMSYSERR_INVALFLAG | En ogiltig flagga skickades till modMessage (med hjälp av dwParam2). |
| MMSYSERR_INVALPARAM | En ogiltig parameter skickades till modMessage. |
| MMSYSERR_HANDLEBUSY | Det angivna handtaget används samtidigt av en annan tråd (till exempel en motringningstråd). |
| MMSYSERR_INVALIDALIAS | Det angivna aliaset hittades inte. |
| MMSYSERR_BADDB | Felaktig registerdatabas. |
| MMSYSERR_KEYNOTFOUND | Det gick inte att hitta den angivna registernyckeln. |
| MMSYSERR_READERROR | Registerläsningsfel. |
| MMSYSERR_WRITEERROR | Fel vid registerskrivning. |
| MMSYSERR_DELETEERROR | Fel vid borttagning av register. |
| MMSYSERR_VALNOTFOUND | Det angivna registervärdet hittades inte. |
| MMSYSERR_NODRIVERCB | Drivrutinen som fungerar med modMessage anropar inte DriverCallback. |
| MMSYSERR_MOREDATA | modMessage har mer data att returnera. |
| MMSYSERR_LASTERROR | Anger att det här är det sista felet i intervallet med felvärden. Mer information finns i avsnittet Kommentarer. |
Anmärkningar
Ljudenhetsmeddelanden är systemdefinierade konstanter. Så när modMessage tar emot ett ljudenhetsmeddelande använder den en switch-instruktion för att fastställa vilken åtgärd som ska utföras, baserat på meddelandets värde.
Antalet felmeddelanden som modMessage kan returnera beror på meddelandet som bearbetades när felet inträffade. De numeriska värdena för MMSYSERR_ felmeddelanden börjar med noll (för MMSYSERR_NOERROR) och fortsätter med MMSYSERR_BASE + n, där n är ett heltal från 1 till 21. Värdet för MMSYSERR_BASE är en definierad konstant. Mer information om MSYSERR_BASE och MMSYSERR_ felmeddelanden finns i Mmsystem.h i Windows SDK respektive Mmddk.h i WDK.
Kravspecifikation
Målplattform |
Skrivbord |
Utgåva |
Tillgänglig med Windows XP och senare Windows-operativsystem. |
Header |
Mmddk.h (inklusive Mmddk.h, Mmsystem.h eller Windows.h) |