xpmgr/BuildTools/Include/audiopolicy.h

1218 lines
39 KiB
C++

/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 7.00.0555 */
/* Compiler settings for audiopolicy.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING( ) */
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif
/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __audiopolicy_h__
#define __audiopolicy_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
#ifndef __IAudioSessionEvents_FWD_DEFINED__
#define __IAudioSessionEvents_FWD_DEFINED__
typedef interface IAudioSessionEvents IAudioSessionEvents;
#endif /* __IAudioSessionEvents_FWD_DEFINED__ */
#ifndef __IAudioSessionControl_FWD_DEFINED__
#define __IAudioSessionControl_FWD_DEFINED__
typedef interface IAudioSessionControl IAudioSessionControl;
#endif /* __IAudioSessionControl_FWD_DEFINED__ */
#ifndef __IAudioSessionControl2_FWD_DEFINED__
#define __IAudioSessionControl2_FWD_DEFINED__
typedef interface IAudioSessionControl2 IAudioSessionControl2;
#endif /* __IAudioSessionControl2_FWD_DEFINED__ */
#ifndef __IAudioSessionManager_FWD_DEFINED__
#define __IAudioSessionManager_FWD_DEFINED__
typedef interface IAudioSessionManager IAudioSessionManager;
#endif /* __IAudioSessionManager_FWD_DEFINED__ */
#ifndef __IAudioVolumeDuckNotification_FWD_DEFINED__
#define __IAudioVolumeDuckNotification_FWD_DEFINED__
typedef interface IAudioVolumeDuckNotification IAudioVolumeDuckNotification;
#endif /* __IAudioVolumeDuckNotification_FWD_DEFINED__ */
#ifndef __IAudioSessionNotification_FWD_DEFINED__
#define __IAudioSessionNotification_FWD_DEFINED__
typedef interface IAudioSessionNotification IAudioSessionNotification;
#endif /* __IAudioSessionNotification_FWD_DEFINED__ */
#ifndef __IAudioSessionEnumerator_FWD_DEFINED__
#define __IAudioSessionEnumerator_FWD_DEFINED__
typedef interface IAudioSessionEnumerator IAudioSessionEnumerator;
#endif /* __IAudioSessionEnumerator_FWD_DEFINED__ */
#ifndef __IAudioSessionManager2_FWD_DEFINED__
#define __IAudioSessionManager2_FWD_DEFINED__
typedef interface IAudioSessionManager2 IAudioSessionManager2;
#endif /* __IAudioSessionManager2_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "propidl.h"
#include "AudioSessionTypes.h"
#include "AudioClient.h"
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_audiopolicy_0000_0000 */
/* [local] */
typedef
enum AudioSessionDisconnectReason
{ DisconnectReasonDeviceRemoval = 0,
DisconnectReasonServerShutdown = ( DisconnectReasonDeviceRemoval + 1 ) ,
DisconnectReasonFormatChanged = ( DisconnectReasonServerShutdown + 1 ) ,
DisconnectReasonSessionLogoff = ( DisconnectReasonFormatChanged + 1 ) ,
DisconnectReasonSessionDisconnected = ( DisconnectReasonSessionLogoff + 1 ) ,
DisconnectReasonExclusiveModeOverride = ( DisconnectReasonSessionDisconnected + 1 )
} AudioSessionDisconnectReason;
extern RPC_IF_HANDLE __MIDL_itf_audiopolicy_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_audiopolicy_0000_0000_v0_0_s_ifspec;
#ifndef __IAudioSessionEvents_INTERFACE_DEFINED__
#define __IAudioSessionEvents_INTERFACE_DEFINED__
/* interface IAudioSessionEvents */
/* [local][uuid][unique][object] */
EXTERN_C const IID IID_IAudioSessionEvents;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("24918ACC-64B3-37C1-8CA9-74A66E9957A8")
IAudioSessionEvents : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnDisplayNameChanged(
/* [annotation][string][in] */
__in LPCWSTR NewDisplayName,
/* [in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE OnIconPathChanged(
/* [annotation][string][in] */
__in LPCWSTR NewIconPath,
/* [in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE OnSimpleVolumeChanged(
/* [annotation][in] */
__in float NewVolume,
/* [annotation][in] */
__in BOOL NewMute,
/* [in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE OnChannelVolumeChanged(
/* [annotation][in] */
__in DWORD ChannelCount,
/* [annotation][size_is][in] */
__in_ecount(ChannelCount) float NewChannelVolumeArray[ ],
/* [annotation][in] */
__in DWORD ChangedChannel,
/* [in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE OnGroupingParamChanged(
/* [annotation][in] */
__in LPCGUID NewGroupingParam,
/* [in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
/* [annotation][in] */
__in AudioSessionState NewState) = 0;
virtual HRESULT STDMETHODCALLTYPE OnSessionDisconnected(
/* [annotation][in] */
__in AudioSessionDisconnectReason DisconnectReason) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionEventsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionEvents * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionEvents * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionEvents * This);
HRESULT ( STDMETHODCALLTYPE *OnDisplayNameChanged )(
IAudioSessionEvents * This,
/* [annotation][string][in] */
__in LPCWSTR NewDisplayName,
/* [in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *OnIconPathChanged )(
IAudioSessionEvents * This,
/* [annotation][string][in] */
__in LPCWSTR NewIconPath,
/* [in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *OnSimpleVolumeChanged )(
IAudioSessionEvents * This,
/* [annotation][in] */
__in float NewVolume,
/* [annotation][in] */
__in BOOL NewMute,
/* [in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *OnChannelVolumeChanged )(
IAudioSessionEvents * This,
/* [annotation][in] */
__in DWORD ChannelCount,
/* [annotation][size_is][in] */
__in_ecount(ChannelCount) float NewChannelVolumeArray[ ],
/* [annotation][in] */
__in DWORD ChangedChannel,
/* [in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *OnGroupingParamChanged )(
IAudioSessionEvents * This,
/* [annotation][in] */
__in LPCGUID NewGroupingParam,
/* [in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *OnStateChanged )(
IAudioSessionEvents * This,
/* [annotation][in] */
__in AudioSessionState NewState);
HRESULT ( STDMETHODCALLTYPE *OnSessionDisconnected )(
IAudioSessionEvents * This,
/* [annotation][in] */
__in AudioSessionDisconnectReason DisconnectReason);
END_INTERFACE
} IAudioSessionEventsVtbl;
interface IAudioSessionEvents
{
CONST_VTBL struct IAudioSessionEventsVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionEvents_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionEvents_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionEvents_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionEvents_OnDisplayNameChanged(This,NewDisplayName,EventContext) \
( (This)->lpVtbl -> OnDisplayNameChanged(This,NewDisplayName,EventContext) )
#define IAudioSessionEvents_OnIconPathChanged(This,NewIconPath,EventContext) \
( (This)->lpVtbl -> OnIconPathChanged(This,NewIconPath,EventContext) )
#define IAudioSessionEvents_OnSimpleVolumeChanged(This,NewVolume,NewMute,EventContext) \
( (This)->lpVtbl -> OnSimpleVolumeChanged(This,NewVolume,NewMute,EventContext) )
#define IAudioSessionEvents_OnChannelVolumeChanged(This,ChannelCount,NewChannelVolumeArray,ChangedChannel,EventContext) \
( (This)->lpVtbl -> OnChannelVolumeChanged(This,ChannelCount,NewChannelVolumeArray,ChangedChannel,EventContext) )
#define IAudioSessionEvents_OnGroupingParamChanged(This,NewGroupingParam,EventContext) \
( (This)->lpVtbl -> OnGroupingParamChanged(This,NewGroupingParam,EventContext) )
#define IAudioSessionEvents_OnStateChanged(This,NewState) \
( (This)->lpVtbl -> OnStateChanged(This,NewState) )
#define IAudioSessionEvents_OnSessionDisconnected(This,DisconnectReason) \
( (This)->lpVtbl -> OnSessionDisconnected(This,DisconnectReason) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionEvents_INTERFACE_DEFINED__ */
#ifndef __IAudioSessionControl_INTERFACE_DEFINED__
#define __IAudioSessionControl_INTERFACE_DEFINED__
/* interface IAudioSessionControl */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioSessionControl;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("F4B1A599-7266-4319-A8CA-E70ACB11E8CD")
IAudioSessionControl : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetState(
/* [annotation][out] */
__out AudioSessionState *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
/* [annotation][string][out] */
__out LPWSTR *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
/* [annotation][string][in] */
__in LPCWSTR Value,
/* [unique][in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE GetIconPath(
/* [annotation][string][out] */
__out LPWSTR *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetIconPath(
/* [annotation][string][in] */
__in LPCWSTR Value,
/* [unique][in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE GetGroupingParam(
/* [annotation][out] */
__out GUID *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE SetGroupingParam(
/* [annotation][in] */
__in LPCGUID Override,
/* [unique][in] */ LPCGUID EventContext) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterAudioSessionNotification(
/* [annotation][in] */
__in IAudioSessionEvents *NewNotifications) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterAudioSessionNotification(
/* [annotation][in] */
__in IAudioSessionEvents *NewNotifications) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionControlVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionControl * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionControl * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionControl * This);
HRESULT ( STDMETHODCALLTYPE *GetState )(
IAudioSessionControl * This,
/* [annotation][out] */
__out AudioSessionState *pRetVal);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
IAudioSessionControl * This,
/* [annotation][string][out] */
__out LPWSTR *pRetVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
IAudioSessionControl * This,
/* [annotation][string][in] */
__in LPCWSTR Value,
/* [unique][in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *GetIconPath )(
IAudioSessionControl * This,
/* [annotation][string][out] */
__out LPWSTR *pRetVal);
HRESULT ( STDMETHODCALLTYPE *SetIconPath )(
IAudioSessionControl * This,
/* [annotation][string][in] */
__in LPCWSTR Value,
/* [unique][in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *GetGroupingParam )(
IAudioSessionControl * This,
/* [annotation][out] */
__out GUID *pRetVal);
HRESULT ( STDMETHODCALLTYPE *SetGroupingParam )(
IAudioSessionControl * This,
/* [annotation][in] */
__in LPCGUID Override,
/* [unique][in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *RegisterAudioSessionNotification )(
IAudioSessionControl * This,
/* [annotation][in] */
__in IAudioSessionEvents *NewNotifications);
HRESULT ( STDMETHODCALLTYPE *UnregisterAudioSessionNotification )(
IAudioSessionControl * This,
/* [annotation][in] */
__in IAudioSessionEvents *NewNotifications);
END_INTERFACE
} IAudioSessionControlVtbl;
interface IAudioSessionControl
{
CONST_VTBL struct IAudioSessionControlVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionControl_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionControl_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionControl_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionControl_GetState(This,pRetVal) \
( (This)->lpVtbl -> GetState(This,pRetVal) )
#define IAudioSessionControl_GetDisplayName(This,pRetVal) \
( (This)->lpVtbl -> GetDisplayName(This,pRetVal) )
#define IAudioSessionControl_SetDisplayName(This,Value,EventContext) \
( (This)->lpVtbl -> SetDisplayName(This,Value,EventContext) )
#define IAudioSessionControl_GetIconPath(This,pRetVal) \
( (This)->lpVtbl -> GetIconPath(This,pRetVal) )
#define IAudioSessionControl_SetIconPath(This,Value,EventContext) \
( (This)->lpVtbl -> SetIconPath(This,Value,EventContext) )
#define IAudioSessionControl_GetGroupingParam(This,pRetVal) \
( (This)->lpVtbl -> GetGroupingParam(This,pRetVal) )
#define IAudioSessionControl_SetGroupingParam(This,Override,EventContext) \
( (This)->lpVtbl -> SetGroupingParam(This,Override,EventContext) )
#define IAudioSessionControl_RegisterAudioSessionNotification(This,NewNotifications) \
( (This)->lpVtbl -> RegisterAudioSessionNotification(This,NewNotifications) )
#define IAudioSessionControl_UnregisterAudioSessionNotification(This,NewNotifications) \
( (This)->lpVtbl -> UnregisterAudioSessionNotification(This,NewNotifications) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionControl_INTERFACE_DEFINED__ */
#ifndef __IAudioSessionControl2_INTERFACE_DEFINED__
#define __IAudioSessionControl2_INTERFACE_DEFINED__
/* interface IAudioSessionControl2 */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioSessionControl2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("bfb7ff88-7239-4fc9-8fa2-07c950be9c6d")
IAudioSessionControl2 : public IAudioSessionControl
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSessionIdentifier(
/* [annotation][string][out] */
__out LPWSTR *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSessionInstanceIdentifier(
/* [annotation][string][out] */
__out LPWSTR *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE GetProcessId(
/* [annotation][out] */
__out DWORD *pRetVal) = 0;
virtual HRESULT STDMETHODCALLTYPE IsSystemSoundsSession( void) = 0;
virtual HRESULT STDMETHODCALLTYPE SetDuckingPreference(
/* [in] */ BOOL optOut) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionControl2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionControl2 * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionControl2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionControl2 * This);
HRESULT ( STDMETHODCALLTYPE *GetState )(
IAudioSessionControl2 * This,
/* [annotation][out] */
__out AudioSessionState *pRetVal);
HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
IAudioSessionControl2 * This,
/* [annotation][string][out] */
__out LPWSTR *pRetVal);
HRESULT ( STDMETHODCALLTYPE *SetDisplayName )(
IAudioSessionControl2 * This,
/* [annotation][string][in] */
__in LPCWSTR Value,
/* [unique][in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *GetIconPath )(
IAudioSessionControl2 * This,
/* [annotation][string][out] */
__out LPWSTR *pRetVal);
HRESULT ( STDMETHODCALLTYPE *SetIconPath )(
IAudioSessionControl2 * This,
/* [annotation][string][in] */
__in LPCWSTR Value,
/* [unique][in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *GetGroupingParam )(
IAudioSessionControl2 * This,
/* [annotation][out] */
__out GUID *pRetVal);
HRESULT ( STDMETHODCALLTYPE *SetGroupingParam )(
IAudioSessionControl2 * This,
/* [annotation][in] */
__in LPCGUID Override,
/* [unique][in] */ LPCGUID EventContext);
HRESULT ( STDMETHODCALLTYPE *RegisterAudioSessionNotification )(
IAudioSessionControl2 * This,
/* [annotation][in] */
__in IAudioSessionEvents *NewNotifications);
HRESULT ( STDMETHODCALLTYPE *UnregisterAudioSessionNotification )(
IAudioSessionControl2 * This,
/* [annotation][in] */
__in IAudioSessionEvents *NewNotifications);
HRESULT ( STDMETHODCALLTYPE *GetSessionIdentifier )(
IAudioSessionControl2 * This,
/* [annotation][string][out] */
__out LPWSTR *pRetVal);
HRESULT ( STDMETHODCALLTYPE *GetSessionInstanceIdentifier )(
IAudioSessionControl2 * This,
/* [annotation][string][out] */
__out LPWSTR *pRetVal);
HRESULT ( STDMETHODCALLTYPE *GetProcessId )(
IAudioSessionControl2 * This,
/* [annotation][out] */
__out DWORD *pRetVal);
HRESULT ( STDMETHODCALLTYPE *IsSystemSoundsSession )(
IAudioSessionControl2 * This);
HRESULT ( STDMETHODCALLTYPE *SetDuckingPreference )(
IAudioSessionControl2 * This,
/* [in] */ BOOL optOut);
END_INTERFACE
} IAudioSessionControl2Vtbl;
interface IAudioSessionControl2
{
CONST_VTBL struct IAudioSessionControl2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionControl2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionControl2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionControl2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionControl2_GetState(This,pRetVal) \
( (This)->lpVtbl -> GetState(This,pRetVal) )
#define IAudioSessionControl2_GetDisplayName(This,pRetVal) \
( (This)->lpVtbl -> GetDisplayName(This,pRetVal) )
#define IAudioSessionControl2_SetDisplayName(This,Value,EventContext) \
( (This)->lpVtbl -> SetDisplayName(This,Value,EventContext) )
#define IAudioSessionControl2_GetIconPath(This,pRetVal) \
( (This)->lpVtbl -> GetIconPath(This,pRetVal) )
#define IAudioSessionControl2_SetIconPath(This,Value,EventContext) \
( (This)->lpVtbl -> SetIconPath(This,Value,EventContext) )
#define IAudioSessionControl2_GetGroupingParam(This,pRetVal) \
( (This)->lpVtbl -> GetGroupingParam(This,pRetVal) )
#define IAudioSessionControl2_SetGroupingParam(This,Override,EventContext) \
( (This)->lpVtbl -> SetGroupingParam(This,Override,EventContext) )
#define IAudioSessionControl2_RegisterAudioSessionNotification(This,NewNotifications) \
( (This)->lpVtbl -> RegisterAudioSessionNotification(This,NewNotifications) )
#define IAudioSessionControl2_UnregisterAudioSessionNotification(This,NewNotifications) \
( (This)->lpVtbl -> UnregisterAudioSessionNotification(This,NewNotifications) )
#define IAudioSessionControl2_GetSessionIdentifier(This,pRetVal) \
( (This)->lpVtbl -> GetSessionIdentifier(This,pRetVal) )
#define IAudioSessionControl2_GetSessionInstanceIdentifier(This,pRetVal) \
( (This)->lpVtbl -> GetSessionInstanceIdentifier(This,pRetVal) )
#define IAudioSessionControl2_GetProcessId(This,pRetVal) \
( (This)->lpVtbl -> GetProcessId(This,pRetVal) )
#define IAudioSessionControl2_IsSystemSoundsSession(This) \
( (This)->lpVtbl -> IsSystemSoundsSession(This) )
#define IAudioSessionControl2_SetDuckingPreference(This,optOut) \
( (This)->lpVtbl -> SetDuckingPreference(This,optOut) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionControl2_INTERFACE_DEFINED__ */
#ifndef __IAudioSessionManager_INTERFACE_DEFINED__
#define __IAudioSessionManager_INTERFACE_DEFINED__
/* interface IAudioSessionManager */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioSessionManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("BFA971F1-4D5E-40BB-935E-967039BFBEE4")
IAudioSessionManager : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetAudioSessionControl(
/* [annotation][in] */
__in_opt LPCGUID AudioSessionGuid,
/* [annotation][in] */
__in DWORD StreamFlags,
/* [annotation][out] */
__deref_out IAudioSessionControl **SessionControl) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSimpleAudioVolume(
/* [annotation][in] */
__in_opt LPCGUID AudioSessionGuid,
/* [annotation][in] */
__in DWORD StreamFlags,
/* [annotation][out] */
__deref_out ISimpleAudioVolume **AudioVolume) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionManagerVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionManager * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionManager * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionManager * This);
HRESULT ( STDMETHODCALLTYPE *GetAudioSessionControl )(
IAudioSessionManager * This,
/* [annotation][in] */
__in_opt LPCGUID AudioSessionGuid,
/* [annotation][in] */
__in DWORD StreamFlags,
/* [annotation][out] */
__deref_out IAudioSessionControl **SessionControl);
HRESULT ( STDMETHODCALLTYPE *GetSimpleAudioVolume )(
IAudioSessionManager * This,
/* [annotation][in] */
__in_opt LPCGUID AudioSessionGuid,
/* [annotation][in] */
__in DWORD StreamFlags,
/* [annotation][out] */
__deref_out ISimpleAudioVolume **AudioVolume);
END_INTERFACE
} IAudioSessionManagerVtbl;
interface IAudioSessionManager
{
CONST_VTBL struct IAudioSessionManagerVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionManager_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionManager_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionManager_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionManager_GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl) \
( (This)->lpVtbl -> GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl) )
#define IAudioSessionManager_GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume) \
( (This)->lpVtbl -> GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionManager_INTERFACE_DEFINED__ */
#ifndef __IAudioVolumeDuckNotification_INTERFACE_DEFINED__
#define __IAudioVolumeDuckNotification_INTERFACE_DEFINED__
/* interface IAudioVolumeDuckNotification */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioVolumeDuckNotification;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("C3B284D4-6D39-4359-B3CF-B56DDB3BB39C")
IAudioVolumeDuckNotification : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnVolumeDuckNotification(
/* [in] */ LPCWSTR sessionID,
/* [in] */ UINT32 countCommunicationSessions) = 0;
virtual HRESULT STDMETHODCALLTYPE OnVolumeUnduckNotification(
/* [in] */ LPCWSTR sessionID) = 0;
};
#else /* C style interface */
typedef struct IAudioVolumeDuckNotificationVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioVolumeDuckNotification * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioVolumeDuckNotification * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioVolumeDuckNotification * This);
HRESULT ( STDMETHODCALLTYPE *OnVolumeDuckNotification )(
IAudioVolumeDuckNotification * This,
/* [in] */ LPCWSTR sessionID,
/* [in] */ UINT32 countCommunicationSessions);
HRESULT ( STDMETHODCALLTYPE *OnVolumeUnduckNotification )(
IAudioVolumeDuckNotification * This,
/* [in] */ LPCWSTR sessionID);
END_INTERFACE
} IAudioVolumeDuckNotificationVtbl;
interface IAudioVolumeDuckNotification
{
CONST_VTBL struct IAudioVolumeDuckNotificationVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioVolumeDuckNotification_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioVolumeDuckNotification_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioVolumeDuckNotification_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioVolumeDuckNotification_OnVolumeDuckNotification(This,sessionID,countCommunicationSessions) \
( (This)->lpVtbl -> OnVolumeDuckNotification(This,sessionID,countCommunicationSessions) )
#define IAudioVolumeDuckNotification_OnVolumeUnduckNotification(This,sessionID) \
( (This)->lpVtbl -> OnVolumeUnduckNotification(This,sessionID) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioVolumeDuckNotification_INTERFACE_DEFINED__ */
#ifndef __IAudioSessionNotification_INTERFACE_DEFINED__
#define __IAudioSessionNotification_INTERFACE_DEFINED__
/* interface IAudioSessionNotification */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioSessionNotification;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("641DD20B-4D41-49CC-ABA3-174B9477BB08")
IAudioSessionNotification : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnSessionCreated(
/* [in] */ IAudioSessionControl *NewSession) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionNotificationVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionNotification * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionNotification * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionNotification * This);
HRESULT ( STDMETHODCALLTYPE *OnSessionCreated )(
IAudioSessionNotification * This,
/* [in] */ IAudioSessionControl *NewSession);
END_INTERFACE
} IAudioSessionNotificationVtbl;
interface IAudioSessionNotification
{
CONST_VTBL struct IAudioSessionNotificationVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionNotification_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionNotification_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionNotification_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionNotification_OnSessionCreated(This,NewSession) \
( (This)->lpVtbl -> OnSessionCreated(This,NewSession) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionNotification_INTERFACE_DEFINED__ */
#ifndef __IAudioSessionEnumerator_INTERFACE_DEFINED__
#define __IAudioSessionEnumerator_INTERFACE_DEFINED__
/* interface IAudioSessionEnumerator */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioSessionEnumerator;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("E2F5BB11-0570-40CA-ACDD-3AA01277DEE8")
IAudioSessionEnumerator : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetCount(
/* [out] */ int *SessionCount) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSession(
/* [in] */ int SessionCount,
/* [out] */ IAudioSessionControl **Session) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionEnumeratorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionEnumerator * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionEnumerator * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionEnumerator * This);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
IAudioSessionEnumerator * This,
/* [out] */ int *SessionCount);
HRESULT ( STDMETHODCALLTYPE *GetSession )(
IAudioSessionEnumerator * This,
/* [in] */ int SessionCount,
/* [out] */ IAudioSessionControl **Session);
END_INTERFACE
} IAudioSessionEnumeratorVtbl;
interface IAudioSessionEnumerator
{
CONST_VTBL struct IAudioSessionEnumeratorVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionEnumerator_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionEnumerator_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionEnumerator_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionEnumerator_GetCount(This,SessionCount) \
( (This)->lpVtbl -> GetCount(This,SessionCount) )
#define IAudioSessionEnumerator_GetSession(This,SessionCount,Session) \
( (This)->lpVtbl -> GetSession(This,SessionCount,Session) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionEnumerator_INTERFACE_DEFINED__ */
#ifndef __IAudioSessionManager2_INTERFACE_DEFINED__
#define __IAudioSessionManager2_INTERFACE_DEFINED__
/* interface IAudioSessionManager2 */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAudioSessionManager2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("77AA99A0-1BD6-484F-8BC7-2C654C9A9B6F")
IAudioSessionManager2 : public IAudioSessionManager
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSessionEnumerator(
/* [retval][out] */ IAudioSessionEnumerator **SessionEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterSessionNotification(
IAudioSessionNotification *SessionNotification) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterSessionNotification(
IAudioSessionNotification *SessionNotification) = 0;
virtual HRESULT STDMETHODCALLTYPE RegisterDuckNotification(
/* [string][in] */ LPCWSTR sessionID,
/* [annotation][in] */
__in IAudioVolumeDuckNotification *duckNotification) = 0;
virtual HRESULT STDMETHODCALLTYPE UnregisterDuckNotification(
/* [annotation][in] */
__in IAudioVolumeDuckNotification *duckNotification) = 0;
};
#else /* C style interface */
typedef struct IAudioSessionManager2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAudioSessionManager2 * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAudioSessionManager2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAudioSessionManager2 * This);
HRESULT ( STDMETHODCALLTYPE *GetAudioSessionControl )(
IAudioSessionManager2 * This,
/* [annotation][in] */
__in_opt LPCGUID AudioSessionGuid,
/* [annotation][in] */
__in DWORD StreamFlags,
/* [annotation][out] */
__deref_out IAudioSessionControl **SessionControl);
HRESULT ( STDMETHODCALLTYPE *GetSimpleAudioVolume )(
IAudioSessionManager2 * This,
/* [annotation][in] */
__in_opt LPCGUID AudioSessionGuid,
/* [annotation][in] */
__in DWORD StreamFlags,
/* [annotation][out] */
__deref_out ISimpleAudioVolume **AudioVolume);
HRESULT ( STDMETHODCALLTYPE *GetSessionEnumerator )(
IAudioSessionManager2 * This,
/* [retval][out] */ IAudioSessionEnumerator **SessionEnum);
HRESULT ( STDMETHODCALLTYPE *RegisterSessionNotification )(
IAudioSessionManager2 * This,
IAudioSessionNotification *SessionNotification);
HRESULT ( STDMETHODCALLTYPE *UnregisterSessionNotification )(
IAudioSessionManager2 * This,
IAudioSessionNotification *SessionNotification);
HRESULT ( STDMETHODCALLTYPE *RegisterDuckNotification )(
IAudioSessionManager2 * This,
/* [string][in] */ LPCWSTR sessionID,
/* [annotation][in] */
__in IAudioVolumeDuckNotification *duckNotification);
HRESULT ( STDMETHODCALLTYPE *UnregisterDuckNotification )(
IAudioSessionManager2 * This,
/* [annotation][in] */
__in IAudioVolumeDuckNotification *duckNotification);
END_INTERFACE
} IAudioSessionManager2Vtbl;
interface IAudioSessionManager2
{
CONST_VTBL struct IAudioSessionManager2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioSessionManager2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAudioSessionManager2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAudioSessionManager2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAudioSessionManager2_GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl) \
( (This)->lpVtbl -> GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl) )
#define IAudioSessionManager2_GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume) \
( (This)->lpVtbl -> GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume) )
#define IAudioSessionManager2_GetSessionEnumerator(This,SessionEnum) \
( (This)->lpVtbl -> GetSessionEnumerator(This,SessionEnum) )
#define IAudioSessionManager2_RegisterSessionNotification(This,SessionNotification) \
( (This)->lpVtbl -> RegisterSessionNotification(This,SessionNotification) )
#define IAudioSessionManager2_UnregisterSessionNotification(This,SessionNotification) \
( (This)->lpVtbl -> UnregisterSessionNotification(This,SessionNotification) )
#define IAudioSessionManager2_RegisterDuckNotification(This,sessionID,duckNotification) \
( (This)->lpVtbl -> RegisterDuckNotification(This,sessionID,duckNotification) )
#define IAudioSessionManager2_UnregisterDuckNotification(This,duckNotification) \
( (This)->lpVtbl -> UnregisterDuckNotification(This,duckNotification) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAudioSessionManager2_INTERFACE_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif