Overview of DirectMusic Objects and Interfaces

In DirectMusic it is helpful to make a distinction between objects and their COM interfaces, because many objects have multiple interfaces. The object that supports the IDirectMusicCollection interface, for example, also supports the standard COM IPersistStream interface as well as IDirectMusicObject.

In this documentation, DirectMusic objects are referred to by the name of their principal or unique interface, but without the initial "I"; thus the object represented by IDirectMusicCollection is called the DirectMusicCollection object. Objects may also be referred to by short names such as collection, performance, segment, and track.

Interface pointers are often used as pointers to their objects so that these objects can be accessed through the methods of other interfaces. In fact, one interface, IDirectMusicDownloadedInstrument, has no unique methods of its own and is used only as a parameter to the methods of other interfaces.

DirectMusic consists of many COM objects and interfaces which are related to one another in rather complex ways. However, they may be divided into categories according to their broad functionality, as follows: