Microsoft DirectX 8.1 (Visual Basic)

Retrieving Objects from an Audiopath

It is often necessary to retrieve a particular object within the audiopath. Common reasons to do so include the following:

Objects can be retrieved from an audiopath by calling DirectMusicAudioPath8.GetObjectInPath. The following table gives information about the parameters to this method.

lStage guidObject lPChannel
used?
lIndex
used?
iidInterface
(typical)
DMUS_PATH_AUDIOPATH Not supported in DirectX for Visual Basic. The application already has the DirectMusicAudioPath8 object from which GetObjectInPath was called.
DMUS_PATH_AUDIOPATH_GRAPH Not supported in DirectX for Visual Basic.
DMUS_PATH_AUDIOPATH_TOOL Not supported in DirectX for Visual Basic.
DMUS_PATH_BUFFER GUID_ALL Yes No, identify by dwBuffer. IID_DirectSoundSecondaryBuffer8
DMUS_PATH_BUFFER_DMO DMO class ID, such as
GUID_DSFX_STANDARD_GARGLE, or
GUID_ALL to enumerate
Yes No, identify by dwBuffer. IID for standard DMO,
such as IID_DirectSoundGargle
DMUS_PATH_MIXIN_BUFFER GUID_ALL No Yes IID_DirectSoundSecondaryBuffer8
DMUS_PATH_MIXIN_BUFFER_DMO DMO class GUID, or
GUID_ALL to enumerate
No Yes IID for standard DMO,
such as IID_DirectSoundFXI3DL2Reverb
DMUS_PATH_PERFORMANCE Not supported in DirectX for Visual Basic.
DMUS_PATH_PERFORMANCE_GRAPH Not supported in DirectX for Visual Basic.
DMUS_PATH_PERFORMANCE_TOOL Not supported in DirectX for Visual Basic.
DMUS_PATH_PORT Not supported in DirectX for Visual Basic.
DMUS_PATH_PRIMARY_BUFFER GUID_ALL No No IID_DirectSound3DListener8
DMUS_PATH_SEGMENT (*) GUID_ALL No No IID_DirectMusicSegment8
DMUS_PATH_SEGMENT_GRAPH (*) Not supported in DirectX for Visual Basic.
DMUS_PATH_SEGMENT_TOOL (*) Not supported in DirectX for Visual Basic.
DMUS_PATH_SEGMENT_TRACK (*) Not supported in DirectX for Visual Basic.

For more information on the values for lIndex when retrieving standard buffers, see Standard Audiopaths.

If you already have an object for an effects buffer, it is also possible to retrieve a DMO by using DirectSoundSecondaryBuffer8.GetObjectInPath.

You can retrieve a DirectSoundSecondaryBuffer8 object for any buffer in the audiopath, but some methods are not valid. For more information, see DirectSoundSecondaryBuffer8.

If you set a global variable to a buffer object obtained from the audiopath, be sure to set the variable to Nothing before calling DirectMusicPerformance8.CloseDown. If you fail to do so, CloseDown will destroy the buffer and then a memory access violation can occur when the variable goes out of scope as the program exits.