Microsoft DirectX 8.1 (C++)

DirectMusic Interfaces

This section contains references for DirectMusic COM interfaces.

Interfaces in the current version 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 pointer.

Note   IKsControl and IReferenceClock are exceptions to this rule.

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.

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 Represents the stages of data flow from the performance to the primary sound buffer.
IDirectMusicBand8 Represents a DirectMusic band object.
IDirectMusicBuffer8 Represents a buffer containing time stamped data.
IDirectMusicChordMap8 Represents a chordmap.
IDirectMusicCollection8 Manages an instance of a DLS file.
IDirectMusicComposer8 Permits 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 Represents an object that can be loaded from a file.
IDirectMusicPatternTrack8 Represents a track that contains a single pattern.
IDirectMusicPerformance8 Manages playback.
IDirectMusicPort8 Provides access to a DirectMusicPort object, which represents a device that sends or receives music 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 that contains variables that can be set and retrieved by the application, and routines that can be called by the application.
IDirectMusicSegment8 Represents a segment, a piece of music made up of multiple tracks.
IDirectMusicSegmentState8 Represents a playing instance of a segment.
IDirectMusicSong8 Not implemented in DirectX 8.1.
IDirectMusicStyle8 Represents a style object.
IDirectMusicThru8 Supports thruing of music messages from a capture port to another port.
IDirectMusicTool8 Represents a tool object that processes messages.
IDirectMusicTrack8 Represents a track object.
IKsControl Used to get, set, or query the support of properties, events, and methods.
IReferenceClock Represents a system reference clock.