DirectMusic Interfaces
This section contains references for DirectMusic COM interfaces.
Interfaces in the current version (other than IKsControl and IReferenceClock) are either declared or defined with names ending in 8. To be sure of using the latest version of an interface, always include this suffix when declaring the interface pointer.
Interfaces retrieved by methods are always the base version. Where a newer version exists, you must call QueryInterface to obtain it, as in the following example, where lpdmBand is an IDirectMusicBand8 interface pointer:
IDirectMusicSegment * lpdmseg;
IDirectMusicSegment8 * lpdmseg8;
HRESULT hr = lpdmBand->CreateSegment(&lpdmseg);
if (SUCCEEDED(hr))
{
hr = lpdmseg->QueryInterface(IID_IDirectMusicSegment8,
(LPVOID*)&lpdmseg8);
}
Where there is no new version of an interface, the interface name with the suffix 8 is only a define. For example, IDirectMusicGraph8 is equivalent in all respects to IDirectMusicGraph. In such cases it is not necessary to query for a new interface, but doing so does no harm and can make your code easier to maintain for future versions of DirectX.
For information on which methods are supported by earlier versions of an interface, see the declaration of the interface in the appropriate header file.
When a method takes an interface pointer as an in parameter, you can pass in the newer version even where the method is declared as accepting the older version. For example, a pointer to either IDirectMusicSegment or IDirectMusicSegment8 can be passed to IDirectMusicPerformance8::PlaySegmentEx.
This documentation contains full reference topics only for the latest versions of interfaces. Where a define exists, such as IDirectMusicGraph8, the interface is documented under that name.
Interface | Description |
IDirectMusic8 | Provides methods for managing buffers, ports, and the master clock. |
IDirectMusicAudioPath8 | Manages the stages of data flow from the performance to the final mixer. |
IDirectMusicBand8 | Represents a DirectMusic band object. |
IDirectMusicBuffer8 | Represents a buffer containing time-stamped data (typically in the form of MIDI messages) being sequenced to a port. |
IDirectMusicChordMap8 | Represents a chordmap . |
IDirectMusicCollection8 | Manages an instance of a DLS file. |
IDirectMusicComposer8 | Enables access to the composition engine. |
IDirectMusicContainer8 | Provides access to objects in a container, which is a collection of objects used by a segment or performance. |
IDirectMusicDownload8 | Represents a contiguous memory chunk used for downloading to a DLS synthesizer port. |
IDirectMusicDownloadedInstrument8 | Used to identify an instrument that has been downloaded to the synthesizer by using the IDirectMusicPort8::DownloadInstrument or the IDirectMusicPerformance8::DownloadInstrument method. |
IDirectMusicGetLoader8 | Used by an object parsing a stream when the object needs to load another object referenced by the stream. |
IDirectMusicGraph8 | Manages the loading and message flow of tools. |
IDirectMusicInstrument8 | Represents an individual instrument from a DLS collection. |
IDirectMusicLoader8 | Used for finding, enumerating, caching, and loading objects. |
IDirectMusicObject8 | Used by an object parsing a stream when the object needs to load another object referenced by the stream. |
IDirectMusicPatternTrack8 | Represents a track that contains a single pattern . |
IDirectMusicPerformance8 | Manages playback. |
IDirectMusicPort8 | Represents a device that sends or receives sound data. |
IDirectMusicPortDownload8 | Enables an application to communicate directly with a port that supports DLS downloading and to download memory chunks directly to the port. |
IDirectMusicScript8 | Represents a script containing variables that can be set and retrieved by the application, and routines that can be called by the application. |
IDirectMusicSegment8 | Represents a segment, which is a playable unit of data made up of multiple tracks. |
IDirectMusicSegmentState8 | Represents a playing instance of a segment. |
IDirectMusicStyle8 | Represents a style object, which encapsulates a collection of patterns, motifs, and bands used in run-time composition of musical segments. |
IDirectMusicSynth | Implemented by synthesizers. |
IDirectMusicSynthSink | Implemented by synthesizer sinks. |
IDirectMusicThru8 | Supports thruing of MIDI messages from a capture port to another port. |
IDirectMusicTool8 | Represents a tool object that processes messages. |
IDirectMusicTrack8 | Represents a track object, which can store any kind of data for a segment. |
IKsControl | Used to get, set, or query the support of properties, events, and methods. |
IReferenceClock | Represents a system reference clock. |