Sent to a MIDI output driver to request that it cache or uncache the specified drum keys. This allows internal synthesizer drivers to load the patches needed by a client application.
MMSYSERR_NOTENABLED | The driver failed to load or initialize. |
MMSYSERR_NOTSUPPORTED | Function isn't supported. |
MIDI_CACHE_ALL | All patches specified in the array should be cached. If the synthesizer cannot cache all the patches, it should cache none at all, clear the KEYARRAY and return MMSYSERR_NOMEM. |
MIDI_CACHE_BESTFIT | If the driver can cache all of the patches specified in the array, it should do so. Otherwise, it should cache as many as it can (selection of which patches to cache is at the discretion of the driver), alter the KEYARRAY to reflect what it has actually cached, and return MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | The KEYARRAY should be changed to reflect which patches the driver actually has cached. |
MIDI_UNCACHE | Patches specified in the array should be uncached and the KEYARRAY should be cleared. |
Only drivers for internal synthesizer devices can support patch caching. Drivers for MIDI output ports should return a MMSYSERR_NOTSUPPORTED error for this message. Support for patch caching is optional for internal synthesizer devices. When a driver receives a MODM_GETDEVCAPS message, it should indicate support for patch caching by setting or clearing the MIDICAPS_CACHE bit in the dwSupport field of the MIDIOUTCAPS data structure.