Microsoft DirectX 8.1 (C++)

IDirectMusicCollection8::EnumInstrument

The EnumInstrument method retrieves the patch and name of an instrument by its index in the collection.

Syntax

HRESULT EnumInstrument(
  DWORD dwIndex,
  DWORD* pdwPatch,
  LPWSTR pwszName,
  DWORD dwNameLen
);

Parameters

dwIndex

Index of the instrument in the collection.

pdwPatch

Address of a variable that receives the patch number.

pwszName

Address of a buffer that receives the instrument name. Can be NULL if the name is not wanted.

dwNameLen

Number of WCHAR values in the instrument name buffer.

Return Values

If the method succeeds, the return value is S_OK, or S_FALSE if there is no instrument with that index number.

If it fails, the method can return one of the error values shown in the following table.

Return code
E_FAIL
E_OUTOFMEMORY
E_POINTER

Remarks

To enumerate all instruments in a collection, start with a dwIndex of 0 and increment until EnumInstrument returns S_FALSE.

The patch number returned in pdwPatch describes the full patch address, including the MIDI parameters for MSB and LSB bank select. For more information, see MIDI Channel Messages.

Although the ordering of the enumeration is consistent within one instance of a DLS collection, it has no relationship to the ordering of instruments in the file, their patch numbers, or their names.

For an example of instrument enumeration, see Working with Instruments.

Requirements

  Header: Declared in dmusicc.h.

See Also