114 lines
4.0 KiB
C
114 lines
4.0 KiB
C
#ifndef _AUDIOSESSIONECENTS_H_
|
|
#define _AUDIOSESSIONECENTS_H_
|
|
|
|
#include <combaseapi.h>
|
|
#include <audiopolicy.h>
|
|
#include <cstdbool>
|
|
#include <stdio.h>
|
|
|
|
|
|
#ifndef __IAudioSessionEvents_FWD_DEFINED__
|
|
#define __IAudioSessionEvents_FWD_DEFINED__
|
|
typedef interface IAudioSessionEvents IAudioSessionEvents;
|
|
|
|
#endif /* __IAudioSessionEvents_FWD_DEFINED__ */
|
|
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryInterface(IAudioSessionNotification*, REFIID, void**);
|
|
ULONG STDMETHODCALLTYPE AddRef(IAudioSessionEvents*);
|
|
ULONG STDMETHODCALLTYPE Release(IAudioSessionEvents*);
|
|
HRESULT OnChannelVolumeChanged(IAudioSessionEvents*, DWORD, float*, DWORD, LPCGUID);
|
|
HRESULT OnDisplayNameChanged(IAudioSessionEvents*, LPCWSTR, LPCGUID);
|
|
HRESULT OnGroupingParamChanged(IAudioSessionEvents*, LPCGUID, LPCGUID);
|
|
HRESULT OnIconPathChanged(IAudioSessionEvents*, LPCWSTR, LPCGUID);
|
|
HRESULT OnSessionDisconnected(IAudioSessionEvents*, AudioSessionDisconnectReason);
|
|
HRESULT OnSimpleVolumeChanged(IAudioSessionEvents*, float, BOOL, LPCGUID);
|
|
HRESULT OnStateChanged(IAudioSessionEvents*, AudioSessionState);
|
|
|
|
typedef struct IAudioSessionEventsVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
|
|
HRESULT(STDMETHODCALLTYPE* QueryInterface)(
|
|
IAudioSessionEvents* This,
|
|
/* [in] */ REFIID riid,
|
|
/* [annotation][iid_is][out] */
|
|
_COM_Outptr_ void** ppvObject);
|
|
|
|
DECLSPEC_XFGVIRT(IUnknown, AddRef)
|
|
ULONG(STDMETHODCALLTYPE* AddRef)(
|
|
IAudioSessionEvents* This);
|
|
|
|
DECLSPEC_XFGVIRT(IUnknown, Release)
|
|
ULONG(STDMETHODCALLTYPE* Release)(
|
|
IAudioSessionEvents* This);
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnChannelVolumeChange)
|
|
HRESULT(STDMETHODCALLTYPE* OnChannelVolumeChange)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ DWORD ChannelCount,
|
|
/* [annotation][in] */
|
|
_In_ float* NewChannelVolumeArray,
|
|
/* [annotation][in] */
|
|
_In_ DWORD ChangedChannel,
|
|
/* [annotation][in] */
|
|
_In_ LPCGUID EventContext );
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnDisplayNameChanged)
|
|
HRESULT(STDMETHODCALLTYPE* OnDisplayNameChanged)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ LPCWSTR NewDisplayName,
|
|
/* [annotation][in] */
|
|
_In_ LPCGUID EventContext);
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnGroupingParamChanged)
|
|
HRESULT(STDMETHODCALLTYPE* OnGroupingParamChanged)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ LPCGUID NewGroupingParam,
|
|
/* [annotation][in] */
|
|
_In_ LPCGUID EventContext);
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnIconPathChanged)
|
|
HRESULT(STDMETHODCALLTYPE* OnIconPathChanged)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ LPCWSTR NewIconPath,
|
|
/* [annotation][in] */
|
|
_In_ LPCGUID EventContext);
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnSessionDisconnected)
|
|
HRESULT(STDMETHODCALLTYPE* OnSessionDisconnected)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ AudioSessionDisconnectReason DisconnectReason );
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnSimpleVolumeChanged)
|
|
HRESULT(STDMETHODCALLTYPE* OnSimpleVolumeChanged)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ float NewVolume,
|
|
/* [annotation][in] */
|
|
_In_ BOOL NewMute,
|
|
/* [annotation][in] */
|
|
_In_ LPCGUID EventContext );
|
|
|
|
DECLSPEC_XFGVIRT(IAudioSessionEvents, OnStateChanged)
|
|
HRESULT(STDMETHODCALLTYPE* OnStateChanged)(
|
|
IAudioSessionEvents* This,
|
|
/* [annotation][in] */
|
|
_In_ AudioSessionState NewState );
|
|
|
|
END_INTERFACE
|
|
} IAudioSessionEventsVtbl;
|
|
|
|
interface IAudioSessionEvents
|
|
{
|
|
CONST_VTBL struct IAudioSessionEventsVtbl* lpVtbl;
|
|
LONG m_cRefAll;
|
|
};
|
|
#endif
|