' ########################################################################################
' Microsoft Windows
' File: AMAudio.inc
' Contents: Audio related definitions and interfaces for ActiveMovie.
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_amaudio_PBI)
#DEFINE PBX_amaudio_PBI
%EQUATE `AMAUDIO_INC = 1
#INCLUDE ONCE "Legacy/System/MMSystem.inc"
#INCLUDE ONCE "Legacy/Media/dsound.inc"
'// This is the interface the audio renderer supports to give the application
'// access to the direct sound object and the buffers it is using, to allow the
'// application to use things like the 3D features of Direct Sound for the
'// soundtrack of a movie being played with Active Movie.
' ########################################################################################
' Interface name = IAMDirectSound
' IID = {546F4260-D53E-11CF-B3F0-00AA003761C5}
' Inherited interface = IUnknown
' ########################################################################################
$IID_IAMDirectSound = GUID$("{546F4260-D53E-11CF-B3F0-00AA003761C5}")
INTERFACE IAMDirectSound $IID_IAMDirectSound
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetDirectSoundInterface ( ' VTable offset = 12
 BYREF lplpds AS IDirectSound
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrimaryBufferInterface ( ' VTable offset = 16
 BYREF lplpdsb AS IDirectSoundBuffer
 ) AS LONG
 ' =====================================================================================
 METHOD GetSecondaryBufferInterface ( ' VTable offset = 20
 BYREF lplpdsb AS IDirectSoundBuffer
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseDirectSoundInterface ( ' VTable offset = 24
 BYVAL lpds AS IDirectSound
 ) AS LONG
 ' =====================================================================================
 METHOD ReleasePrimaryBufferInterface ( ' VTable offset = 28
 BYVAL lpdsb AS IDirectSoundBuffer
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseSecondaryBufferInterface ( ' VTable offset = 32
 BYVAL lpdsb AS IDirectSoundBuffer
 ) AS LONG
 ' =====================================================================================
 METHOD SetFocusWindow ( ' VTable offset = 36
 BYVAL hWnd AS DWORD
 , BYVAL bMixingOnOrOff AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetFocusWindow ( ' VTable offset = 40
 BYREF hWnd AS DWORD
 , BYREF bMixingOnOrOff AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF
