source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/audiopolicy.h@ 1166

Last change on this file since 1166 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 45.5 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/audiopolicy.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __audiopolicy_h__
17#define __audiopolicy_h__
18
19/* Forward declarations */
20
21#ifndef __IAudioSessionEvents_FWD_DEFINED__
22#define __IAudioSessionEvents_FWD_DEFINED__
23typedef interface IAudioSessionEvents IAudioSessionEvents;
24#ifdef __cplusplus
25interface IAudioSessionEvents;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IAudioSessionControl_FWD_DEFINED__
30#define __IAudioSessionControl_FWD_DEFINED__
31typedef interface IAudioSessionControl IAudioSessionControl;
32#ifdef __cplusplus
33interface IAudioSessionControl;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IAudioSessionControl2_FWD_DEFINED__
38#define __IAudioSessionControl2_FWD_DEFINED__
39typedef interface IAudioSessionControl2 IAudioSessionControl2;
40#ifdef __cplusplus
41interface IAudioSessionControl2;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IAudioSessionManager_FWD_DEFINED__
46#define __IAudioSessionManager_FWD_DEFINED__
47typedef interface IAudioSessionManager IAudioSessionManager;
48#ifdef __cplusplus
49interface IAudioSessionManager;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IAudioVolumeDuckNotification_FWD_DEFINED__
54#define __IAudioVolumeDuckNotification_FWD_DEFINED__
55typedef interface IAudioVolumeDuckNotification IAudioVolumeDuckNotification;
56#ifdef __cplusplus
57interface IAudioVolumeDuckNotification;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IAudioSessionNotification_FWD_DEFINED__
62#define __IAudioSessionNotification_FWD_DEFINED__
63typedef interface IAudioSessionNotification IAudioSessionNotification;
64#ifdef __cplusplus
65interface IAudioSessionNotification;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IAudioSessionEnumerator_FWD_DEFINED__
70#define __IAudioSessionEnumerator_FWD_DEFINED__
71typedef interface IAudioSessionEnumerator IAudioSessionEnumerator;
72#ifdef __cplusplus
73interface IAudioSessionEnumerator;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IAudioSessionManager2_FWD_DEFINED__
78#define __IAudioSessionManager2_FWD_DEFINED__
79typedef interface IAudioSessionManager2 IAudioSessionManager2;
80#ifdef __cplusplus
81interface IAudioSessionManager2;
82#endif /* __cplusplus */
83#endif
84
85/* Headers for imported files */
86
87#include <oaidl.h>
88#include <ocidl.h>
89#include <propidl.h>
90#include <audiosessiontypes.h>
91#include <audioclient.h>
92
93#ifdef __cplusplus
94extern "C" {
95#endif
96
97#include <winapifamily.h>
98
99
100#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
101typedef enum AudioSessionDisconnectReason {
102 DisconnectReasonDeviceRemoval = 0,
103 DisconnectReasonServerShutdown = 1,
104 DisconnectReasonFormatChanged = 2,
105 DisconnectReasonSessionLogoff = 3,
106 DisconnectReasonSessionDisconnected = 4,
107 DisconnectReasonExclusiveModeOverride = 5
108} AudioSessionDisconnectReason;
109
110/*****************************************************************************
111 * IAudioSessionEvents interface
112 */
113#ifndef __IAudioSessionEvents_INTERFACE_DEFINED__
114#define __IAudioSessionEvents_INTERFACE_DEFINED__
115
116DEFINE_GUID(IID_IAudioSessionEvents, 0x24918acc, 0x64b3, 0x37c1, 0x8c,0xa9, 0x74,0xa6,0x6e,0x99,0x57,0xa8);
117#if defined(__cplusplus) && !defined(CINTERFACE)
118MIDL_INTERFACE("24918acc-64b3-37c1-8ca9-74a66e9957a8")
119IAudioSessionEvents : public IUnknown
120{
121 virtual HRESULT STDMETHODCALLTYPE OnDisplayNameChanged(
122 LPCWSTR NewDisplayName,
123 LPCGUID EventContext) = 0;
124
125 virtual HRESULT STDMETHODCALLTYPE OnIconPathChanged(
126 LPCWSTR NewIconPath,
127 LPCGUID EventContext) = 0;
128
129 virtual HRESULT STDMETHODCALLTYPE OnSimpleVolumeChanged(
130 float NewVolume,
131 WINBOOL NewMute,
132 LPCGUID EventContext) = 0;
133
134 virtual HRESULT STDMETHODCALLTYPE OnChannelVolumeChanged(
135 DWORD ChannelCount,
136 float NewChannelVolumeArray[],
137 DWORD ChangedChannel,
138 LPCGUID EventContext) = 0;
139
140 virtual HRESULT STDMETHODCALLTYPE OnGroupingParamChanged(
141 LPCGUID NewGroupingParam,
142 LPCGUID EventContext) = 0;
143
144 virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
145 AudioSessionState NewState) = 0;
146
147 virtual HRESULT STDMETHODCALLTYPE OnSessionDisconnected(
148 AudioSessionDisconnectReason DisconnectReason) = 0;
149
150};
151#ifdef __CRT_UUID_DECL
152__CRT_UUID_DECL(IAudioSessionEvents, 0x24918acc, 0x64b3, 0x37c1, 0x8c,0xa9, 0x74,0xa6,0x6e,0x99,0x57,0xa8)
153#endif
154#else
155typedef struct IAudioSessionEventsVtbl {
156 BEGIN_INTERFACE
157
158 /*** IUnknown methods ***/
159 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
160 IAudioSessionEvents *This,
161 REFIID riid,
162 void **ppvObject);
163
164 ULONG (STDMETHODCALLTYPE *AddRef)(
165 IAudioSessionEvents *This);
166
167 ULONG (STDMETHODCALLTYPE *Release)(
168 IAudioSessionEvents *This);
169
170 /*** IAudioSessionEvents methods ***/
171 HRESULT (STDMETHODCALLTYPE *OnDisplayNameChanged)(
172 IAudioSessionEvents *This,
173 LPCWSTR NewDisplayName,
174 LPCGUID EventContext);
175
176 HRESULT (STDMETHODCALLTYPE *OnIconPathChanged)(
177 IAudioSessionEvents *This,
178 LPCWSTR NewIconPath,
179 LPCGUID EventContext);
180
181 HRESULT (STDMETHODCALLTYPE *OnSimpleVolumeChanged)(
182 IAudioSessionEvents *This,
183 float NewVolume,
184 WINBOOL NewMute,
185 LPCGUID EventContext);
186
187 HRESULT (STDMETHODCALLTYPE *OnChannelVolumeChanged)(
188 IAudioSessionEvents *This,
189 DWORD ChannelCount,
190 float NewChannelVolumeArray[],
191 DWORD ChangedChannel,
192 LPCGUID EventContext);
193
194 HRESULT (STDMETHODCALLTYPE *OnGroupingParamChanged)(
195 IAudioSessionEvents *This,
196 LPCGUID NewGroupingParam,
197 LPCGUID EventContext);
198
199 HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
200 IAudioSessionEvents *This,
201 AudioSessionState NewState);
202
203 HRESULT (STDMETHODCALLTYPE *OnSessionDisconnected)(
204 IAudioSessionEvents *This,
205 AudioSessionDisconnectReason DisconnectReason);
206
207 END_INTERFACE
208} IAudioSessionEventsVtbl;
209
210interface IAudioSessionEvents {
211 CONST_VTBL IAudioSessionEventsVtbl* lpVtbl;
212};
213
214#ifdef COBJMACROS
215#ifndef WIDL_C_INLINE_WRAPPERS
216/*** IUnknown methods ***/
217#define IAudioSessionEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
218#define IAudioSessionEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
219#define IAudioSessionEvents_Release(This) (This)->lpVtbl->Release(This)
220/*** IAudioSessionEvents methods ***/
221#define IAudioSessionEvents_OnDisplayNameChanged(This,NewDisplayName,EventContext) (This)->lpVtbl->OnDisplayNameChanged(This,NewDisplayName,EventContext)
222#define IAudioSessionEvents_OnIconPathChanged(This,NewIconPath,EventContext) (This)->lpVtbl->OnIconPathChanged(This,NewIconPath,EventContext)
223#define IAudioSessionEvents_OnSimpleVolumeChanged(This,NewVolume,NewMute,EventContext) (This)->lpVtbl->OnSimpleVolumeChanged(This,NewVolume,NewMute,EventContext)
224#define IAudioSessionEvents_OnChannelVolumeChanged(This,ChannelCount,NewChannelVolumeArray,ChangedChannel,EventContext) (This)->lpVtbl->OnChannelVolumeChanged(This,ChannelCount,NewChannelVolumeArray,ChangedChannel,EventContext)
225#define IAudioSessionEvents_OnGroupingParamChanged(This,NewGroupingParam,EventContext) (This)->lpVtbl->OnGroupingParamChanged(This,NewGroupingParam,EventContext)
226#define IAudioSessionEvents_OnStateChanged(This,NewState) (This)->lpVtbl->OnStateChanged(This,NewState)
227#define IAudioSessionEvents_OnSessionDisconnected(This,DisconnectReason) (This)->lpVtbl->OnSessionDisconnected(This,DisconnectReason)
228#else
229/*** IUnknown methods ***/
230static FORCEINLINE HRESULT IAudioSessionEvents_QueryInterface(IAudioSessionEvents* This,REFIID riid,void **ppvObject) {
231 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
232}
233static FORCEINLINE ULONG IAudioSessionEvents_AddRef(IAudioSessionEvents* This) {
234 return This->lpVtbl->AddRef(This);
235}
236static FORCEINLINE ULONG IAudioSessionEvents_Release(IAudioSessionEvents* This) {
237 return This->lpVtbl->Release(This);
238}
239/*** IAudioSessionEvents methods ***/
240static FORCEINLINE HRESULT IAudioSessionEvents_OnDisplayNameChanged(IAudioSessionEvents* This,LPCWSTR NewDisplayName,LPCGUID EventContext) {
241 return This->lpVtbl->OnDisplayNameChanged(This,NewDisplayName,EventContext);
242}
243static FORCEINLINE HRESULT IAudioSessionEvents_OnIconPathChanged(IAudioSessionEvents* This,LPCWSTR NewIconPath,LPCGUID EventContext) {
244 return This->lpVtbl->OnIconPathChanged(This,NewIconPath,EventContext);
245}
246static FORCEINLINE HRESULT IAudioSessionEvents_OnSimpleVolumeChanged(IAudioSessionEvents* This,float NewVolume,WINBOOL NewMute,LPCGUID EventContext) {
247 return This->lpVtbl->OnSimpleVolumeChanged(This,NewVolume,NewMute,EventContext);
248}
249static FORCEINLINE HRESULT IAudioSessionEvents_OnChannelVolumeChanged(IAudioSessionEvents* This,DWORD ChannelCount,float NewChannelVolumeArray[],DWORD ChangedChannel,LPCGUID EventContext) {
250 return This->lpVtbl->OnChannelVolumeChanged(This,ChannelCount,NewChannelVolumeArray,ChangedChannel,EventContext);
251}
252static FORCEINLINE HRESULT IAudioSessionEvents_OnGroupingParamChanged(IAudioSessionEvents* This,LPCGUID NewGroupingParam,LPCGUID EventContext) {
253 return This->lpVtbl->OnGroupingParamChanged(This,NewGroupingParam,EventContext);
254}
255static FORCEINLINE HRESULT IAudioSessionEvents_OnStateChanged(IAudioSessionEvents* This,AudioSessionState NewState) {
256 return This->lpVtbl->OnStateChanged(This,NewState);
257}
258static FORCEINLINE HRESULT IAudioSessionEvents_OnSessionDisconnected(IAudioSessionEvents* This,AudioSessionDisconnectReason DisconnectReason) {
259 return This->lpVtbl->OnSessionDisconnected(This,DisconnectReason);
260}
261#endif
262#endif
263
264#endif
265
266
267#endif /* __IAudioSessionEvents_INTERFACE_DEFINED__ */
268
269
270/*****************************************************************************
271 * IAudioSessionControl interface
272 */
273#ifndef __IAudioSessionControl_INTERFACE_DEFINED__
274#define __IAudioSessionControl_INTERFACE_DEFINED__
275
276DEFINE_GUID(IID_IAudioSessionControl, 0xf4b1a599, 0x7266, 0x4319, 0xa8,0xca, 0xe7,0x0a,0xcb,0x11,0xe8,0xcd);
277#if defined(__cplusplus) && !defined(CINTERFACE)
278MIDL_INTERFACE("f4b1a599-7266-4319-a8ca-e70acb11e8cd")
279IAudioSessionControl : public IUnknown
280{
281 virtual HRESULT STDMETHODCALLTYPE GetState(
282 AudioSessionState *pRetVal) = 0;
283
284 virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
285 LPWSTR *pRetVal) = 0;
286
287 virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
288 LPCWSTR Value,
289 LPCGUID EventContext) = 0;
290
291 virtual HRESULT STDMETHODCALLTYPE GetIconPath(
292 LPWSTR *pRetVal) = 0;
293
294 virtual HRESULT STDMETHODCALLTYPE SetIconPath(
295 LPCWSTR Value,
296 LPCGUID EventContext) = 0;
297
298 virtual HRESULT STDMETHODCALLTYPE GetGroupingParam(
299 GUID *pRetVal) = 0;
300
301 virtual HRESULT STDMETHODCALLTYPE SetGroupingParam(
302 LPCGUID Override,
303 LPCGUID EventContext) = 0;
304
305 virtual HRESULT STDMETHODCALLTYPE RegisterAudioSessionNotification(
306 IAudioSessionEvents *NewNotifications) = 0;
307
308 virtual HRESULT STDMETHODCALLTYPE UnregisterAudioSessionNotification(
309 IAudioSessionEvents *NewNotifications) = 0;
310
311};
312#ifdef __CRT_UUID_DECL
313__CRT_UUID_DECL(IAudioSessionControl, 0xf4b1a599, 0x7266, 0x4319, 0xa8,0xca, 0xe7,0x0a,0xcb,0x11,0xe8,0xcd)
314#endif
315#else
316typedef struct IAudioSessionControlVtbl {
317 BEGIN_INTERFACE
318
319 /*** IUnknown methods ***/
320 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
321 IAudioSessionControl *This,
322 REFIID riid,
323 void **ppvObject);
324
325 ULONG (STDMETHODCALLTYPE *AddRef)(
326 IAudioSessionControl *This);
327
328 ULONG (STDMETHODCALLTYPE *Release)(
329 IAudioSessionControl *This);
330
331 /*** IAudioSessionControl methods ***/
332 HRESULT (STDMETHODCALLTYPE *GetState)(
333 IAudioSessionControl *This,
334 AudioSessionState *pRetVal);
335
336 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
337 IAudioSessionControl *This,
338 LPWSTR *pRetVal);
339
340 HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
341 IAudioSessionControl *This,
342 LPCWSTR Value,
343 LPCGUID EventContext);
344
345 HRESULT (STDMETHODCALLTYPE *GetIconPath)(
346 IAudioSessionControl *This,
347 LPWSTR *pRetVal);
348
349 HRESULT (STDMETHODCALLTYPE *SetIconPath)(
350 IAudioSessionControl *This,
351 LPCWSTR Value,
352 LPCGUID EventContext);
353
354 HRESULT (STDMETHODCALLTYPE *GetGroupingParam)(
355 IAudioSessionControl *This,
356 GUID *pRetVal);
357
358 HRESULT (STDMETHODCALLTYPE *SetGroupingParam)(
359 IAudioSessionControl *This,
360 LPCGUID Override,
361 LPCGUID EventContext);
362
363 HRESULT (STDMETHODCALLTYPE *RegisterAudioSessionNotification)(
364 IAudioSessionControl *This,
365 IAudioSessionEvents *NewNotifications);
366
367 HRESULT (STDMETHODCALLTYPE *UnregisterAudioSessionNotification)(
368 IAudioSessionControl *This,
369 IAudioSessionEvents *NewNotifications);
370
371 END_INTERFACE
372} IAudioSessionControlVtbl;
373
374interface IAudioSessionControl {
375 CONST_VTBL IAudioSessionControlVtbl* lpVtbl;
376};
377
378#ifdef COBJMACROS
379#ifndef WIDL_C_INLINE_WRAPPERS
380/*** IUnknown methods ***/
381#define IAudioSessionControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
382#define IAudioSessionControl_AddRef(This) (This)->lpVtbl->AddRef(This)
383#define IAudioSessionControl_Release(This) (This)->lpVtbl->Release(This)
384/*** IAudioSessionControl methods ***/
385#define IAudioSessionControl_GetState(This,pRetVal) (This)->lpVtbl->GetState(This,pRetVal)
386#define IAudioSessionControl_GetDisplayName(This,pRetVal) (This)->lpVtbl->GetDisplayName(This,pRetVal)
387#define IAudioSessionControl_SetDisplayName(This,Value,EventContext) (This)->lpVtbl->SetDisplayName(This,Value,EventContext)
388#define IAudioSessionControl_GetIconPath(This,pRetVal) (This)->lpVtbl->GetIconPath(This,pRetVal)
389#define IAudioSessionControl_SetIconPath(This,Value,EventContext) (This)->lpVtbl->SetIconPath(This,Value,EventContext)
390#define IAudioSessionControl_GetGroupingParam(This,pRetVal) (This)->lpVtbl->GetGroupingParam(This,pRetVal)
391#define IAudioSessionControl_SetGroupingParam(This,Override,EventContext) (This)->lpVtbl->SetGroupingParam(This,Override,EventContext)
392#define IAudioSessionControl_RegisterAudioSessionNotification(This,NewNotifications) (This)->lpVtbl->RegisterAudioSessionNotification(This,NewNotifications)
393#define IAudioSessionControl_UnregisterAudioSessionNotification(This,NewNotifications) (This)->lpVtbl->UnregisterAudioSessionNotification(This,NewNotifications)
394#else
395/*** IUnknown methods ***/
396static FORCEINLINE HRESULT IAudioSessionControl_QueryInterface(IAudioSessionControl* This,REFIID riid,void **ppvObject) {
397 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
398}
399static FORCEINLINE ULONG IAudioSessionControl_AddRef(IAudioSessionControl* This) {
400 return This->lpVtbl->AddRef(This);
401}
402static FORCEINLINE ULONG IAudioSessionControl_Release(IAudioSessionControl* This) {
403 return This->lpVtbl->Release(This);
404}
405/*** IAudioSessionControl methods ***/
406static FORCEINLINE HRESULT IAudioSessionControl_GetState(IAudioSessionControl* This,AudioSessionState *pRetVal) {
407 return This->lpVtbl->GetState(This,pRetVal);
408}
409static FORCEINLINE HRESULT IAudioSessionControl_GetDisplayName(IAudioSessionControl* This,LPWSTR *pRetVal) {
410 return This->lpVtbl->GetDisplayName(This,pRetVal);
411}
412static FORCEINLINE HRESULT IAudioSessionControl_SetDisplayName(IAudioSessionControl* This,LPCWSTR Value,LPCGUID EventContext) {
413 return This->lpVtbl->SetDisplayName(This,Value,EventContext);
414}
415static FORCEINLINE HRESULT IAudioSessionControl_GetIconPath(IAudioSessionControl* This,LPWSTR *pRetVal) {
416 return This->lpVtbl->GetIconPath(This,pRetVal);
417}
418static FORCEINLINE HRESULT IAudioSessionControl_SetIconPath(IAudioSessionControl* This,LPCWSTR Value,LPCGUID EventContext) {
419 return This->lpVtbl->SetIconPath(This,Value,EventContext);
420}
421static FORCEINLINE HRESULT IAudioSessionControl_GetGroupingParam(IAudioSessionControl* This,GUID *pRetVal) {
422 return This->lpVtbl->GetGroupingParam(This,pRetVal);
423}
424static FORCEINLINE HRESULT IAudioSessionControl_SetGroupingParam(IAudioSessionControl* This,LPCGUID Override,LPCGUID EventContext) {
425 return This->lpVtbl->SetGroupingParam(This,Override,EventContext);
426}
427static FORCEINLINE HRESULT IAudioSessionControl_RegisterAudioSessionNotification(IAudioSessionControl* This,IAudioSessionEvents *NewNotifications) {
428 return This->lpVtbl->RegisterAudioSessionNotification(This,NewNotifications);
429}
430static FORCEINLINE HRESULT IAudioSessionControl_UnregisterAudioSessionNotification(IAudioSessionControl* This,IAudioSessionEvents *NewNotifications) {
431 return This->lpVtbl->UnregisterAudioSessionNotification(This,NewNotifications);
432}
433#endif
434#endif
435
436#endif
437
438
439#endif /* __IAudioSessionControl_INTERFACE_DEFINED__ */
440
441#endif
442
443#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
444/*****************************************************************************
445 * IAudioSessionControl2 interface
446 */
447#ifndef __IAudioSessionControl2_INTERFACE_DEFINED__
448#define __IAudioSessionControl2_INTERFACE_DEFINED__
449
450DEFINE_GUID(IID_IAudioSessionControl2, 0xbfb7ff88, 0x7239, 0x4fc9, 0x8f,0xa2, 0x07,0xc9,0x50,0xbe,0x9c,0x6d);
451#if defined(__cplusplus) && !defined(CINTERFACE)
452MIDL_INTERFACE("bfb7ff88-7239-4fc9-8fa2-07c950be9c6d")
453IAudioSessionControl2 : public IAudioSessionControl
454{
455 virtual HRESULT STDMETHODCALLTYPE GetSessionIdentifier(
456 LPWSTR *pRetVal) = 0;
457
458 virtual HRESULT STDMETHODCALLTYPE GetSessionInstanceIdentifier(
459 LPWSTR *pRetVal) = 0;
460
461 virtual HRESULT STDMETHODCALLTYPE GetProcessId(
462 DWORD *pRetVal) = 0;
463
464 virtual HRESULT STDMETHODCALLTYPE IsSystemSoundsSession(
465 ) = 0;
466
467 virtual HRESULT STDMETHODCALLTYPE SetDuckingPreference(
468 WINBOOL optOut) = 0;
469
470};
471#ifdef __CRT_UUID_DECL
472__CRT_UUID_DECL(IAudioSessionControl2, 0xbfb7ff88, 0x7239, 0x4fc9, 0x8f,0xa2, 0x07,0xc9,0x50,0xbe,0x9c,0x6d)
473#endif
474#else
475typedef struct IAudioSessionControl2Vtbl {
476 BEGIN_INTERFACE
477
478 /*** IUnknown methods ***/
479 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
480 IAudioSessionControl2 *This,
481 REFIID riid,
482 void **ppvObject);
483
484 ULONG (STDMETHODCALLTYPE *AddRef)(
485 IAudioSessionControl2 *This);
486
487 ULONG (STDMETHODCALLTYPE *Release)(
488 IAudioSessionControl2 *This);
489
490 /*** IAudioSessionControl methods ***/
491 HRESULT (STDMETHODCALLTYPE *GetState)(
492 IAudioSessionControl2 *This,
493 AudioSessionState *pRetVal);
494
495 HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
496 IAudioSessionControl2 *This,
497 LPWSTR *pRetVal);
498
499 HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
500 IAudioSessionControl2 *This,
501 LPCWSTR Value,
502 LPCGUID EventContext);
503
504 HRESULT (STDMETHODCALLTYPE *GetIconPath)(
505 IAudioSessionControl2 *This,
506 LPWSTR *pRetVal);
507
508 HRESULT (STDMETHODCALLTYPE *SetIconPath)(
509 IAudioSessionControl2 *This,
510 LPCWSTR Value,
511 LPCGUID EventContext);
512
513 HRESULT (STDMETHODCALLTYPE *GetGroupingParam)(
514 IAudioSessionControl2 *This,
515 GUID *pRetVal);
516
517 HRESULT (STDMETHODCALLTYPE *SetGroupingParam)(
518 IAudioSessionControl2 *This,
519 LPCGUID Override,
520 LPCGUID EventContext);
521
522 HRESULT (STDMETHODCALLTYPE *RegisterAudioSessionNotification)(
523 IAudioSessionControl2 *This,
524 IAudioSessionEvents *NewNotifications);
525
526 HRESULT (STDMETHODCALLTYPE *UnregisterAudioSessionNotification)(
527 IAudioSessionControl2 *This,
528 IAudioSessionEvents *NewNotifications);
529
530 /*** IAudioSessionControl2 methods ***/
531 HRESULT (STDMETHODCALLTYPE *GetSessionIdentifier)(
532 IAudioSessionControl2 *This,
533 LPWSTR *pRetVal);
534
535 HRESULT (STDMETHODCALLTYPE *GetSessionInstanceIdentifier)(
536 IAudioSessionControl2 *This,
537 LPWSTR *pRetVal);
538
539 HRESULT (STDMETHODCALLTYPE *GetProcessId)(
540 IAudioSessionControl2 *This,
541 DWORD *pRetVal);
542
543 HRESULT (STDMETHODCALLTYPE *IsSystemSoundsSession)(
544 IAudioSessionControl2 *This);
545
546 HRESULT (STDMETHODCALLTYPE *SetDuckingPreference)(
547 IAudioSessionControl2 *This,
548 WINBOOL optOut);
549
550 END_INTERFACE
551} IAudioSessionControl2Vtbl;
552
553interface IAudioSessionControl2 {
554 CONST_VTBL IAudioSessionControl2Vtbl* lpVtbl;
555};
556
557#ifdef COBJMACROS
558#ifndef WIDL_C_INLINE_WRAPPERS
559/*** IUnknown methods ***/
560#define IAudioSessionControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
561#define IAudioSessionControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
562#define IAudioSessionControl2_Release(This) (This)->lpVtbl->Release(This)
563/*** IAudioSessionControl methods ***/
564#define IAudioSessionControl2_GetState(This,pRetVal) (This)->lpVtbl->GetState(This,pRetVal)
565#define IAudioSessionControl2_GetDisplayName(This,pRetVal) (This)->lpVtbl->GetDisplayName(This,pRetVal)
566#define IAudioSessionControl2_SetDisplayName(This,Value,EventContext) (This)->lpVtbl->SetDisplayName(This,Value,EventContext)
567#define IAudioSessionControl2_GetIconPath(This,pRetVal) (This)->lpVtbl->GetIconPath(This,pRetVal)
568#define IAudioSessionControl2_SetIconPath(This,Value,EventContext) (This)->lpVtbl->SetIconPath(This,Value,EventContext)
569#define IAudioSessionControl2_GetGroupingParam(This,pRetVal) (This)->lpVtbl->GetGroupingParam(This,pRetVal)
570#define IAudioSessionControl2_SetGroupingParam(This,Override,EventContext) (This)->lpVtbl->SetGroupingParam(This,Override,EventContext)
571#define IAudioSessionControl2_RegisterAudioSessionNotification(This,NewNotifications) (This)->lpVtbl->RegisterAudioSessionNotification(This,NewNotifications)
572#define IAudioSessionControl2_UnregisterAudioSessionNotification(This,NewNotifications) (This)->lpVtbl->UnregisterAudioSessionNotification(This,NewNotifications)
573/*** IAudioSessionControl2 methods ***/
574#define IAudioSessionControl2_GetSessionIdentifier(This,pRetVal) (This)->lpVtbl->GetSessionIdentifier(This,pRetVal)
575#define IAudioSessionControl2_GetSessionInstanceIdentifier(This,pRetVal) (This)->lpVtbl->GetSessionInstanceIdentifier(This,pRetVal)
576#define IAudioSessionControl2_GetProcessId(This,pRetVal) (This)->lpVtbl->GetProcessId(This,pRetVal)
577#define IAudioSessionControl2_IsSystemSoundsSession(This) (This)->lpVtbl->IsSystemSoundsSession(This)
578#define IAudioSessionControl2_SetDuckingPreference(This,optOut) (This)->lpVtbl->SetDuckingPreference(This,optOut)
579#else
580/*** IUnknown methods ***/
581static FORCEINLINE HRESULT IAudioSessionControl2_QueryInterface(IAudioSessionControl2* This,REFIID riid,void **ppvObject) {
582 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
583}
584static FORCEINLINE ULONG IAudioSessionControl2_AddRef(IAudioSessionControl2* This) {
585 return This->lpVtbl->AddRef(This);
586}
587static FORCEINLINE ULONG IAudioSessionControl2_Release(IAudioSessionControl2* This) {
588 return This->lpVtbl->Release(This);
589}
590/*** IAudioSessionControl methods ***/
591static FORCEINLINE HRESULT IAudioSessionControl2_GetState(IAudioSessionControl2* This,AudioSessionState *pRetVal) {
592 return This->lpVtbl->GetState(This,pRetVal);
593}
594static FORCEINLINE HRESULT IAudioSessionControl2_GetDisplayName(IAudioSessionControl2* This,LPWSTR *pRetVal) {
595 return This->lpVtbl->GetDisplayName(This,pRetVal);
596}
597static FORCEINLINE HRESULT IAudioSessionControl2_SetDisplayName(IAudioSessionControl2* This,LPCWSTR Value,LPCGUID EventContext) {
598 return This->lpVtbl->SetDisplayName(This,Value,EventContext);
599}
600static FORCEINLINE HRESULT IAudioSessionControl2_GetIconPath(IAudioSessionControl2* This,LPWSTR *pRetVal) {
601 return This->lpVtbl->GetIconPath(This,pRetVal);
602}
603static FORCEINLINE HRESULT IAudioSessionControl2_SetIconPath(IAudioSessionControl2* This,LPCWSTR Value,LPCGUID EventContext) {
604 return This->lpVtbl->SetIconPath(This,Value,EventContext);
605}
606static FORCEINLINE HRESULT IAudioSessionControl2_GetGroupingParam(IAudioSessionControl2* This,GUID *pRetVal) {
607 return This->lpVtbl->GetGroupingParam(This,pRetVal);
608}
609static FORCEINLINE HRESULT IAudioSessionControl2_SetGroupingParam(IAudioSessionControl2* This,LPCGUID Override,LPCGUID EventContext) {
610 return This->lpVtbl->SetGroupingParam(This,Override,EventContext);
611}
612static FORCEINLINE HRESULT IAudioSessionControl2_RegisterAudioSessionNotification(IAudioSessionControl2* This,IAudioSessionEvents *NewNotifications) {
613 return This->lpVtbl->RegisterAudioSessionNotification(This,NewNotifications);
614}
615static FORCEINLINE HRESULT IAudioSessionControl2_UnregisterAudioSessionNotification(IAudioSessionControl2* This,IAudioSessionEvents *NewNotifications) {
616 return This->lpVtbl->UnregisterAudioSessionNotification(This,NewNotifications);
617}
618/*** IAudioSessionControl2 methods ***/
619static FORCEINLINE HRESULT IAudioSessionControl2_GetSessionIdentifier(IAudioSessionControl2* This,LPWSTR *pRetVal) {
620 return This->lpVtbl->GetSessionIdentifier(This,pRetVal);
621}
622static FORCEINLINE HRESULT IAudioSessionControl2_GetSessionInstanceIdentifier(IAudioSessionControl2* This,LPWSTR *pRetVal) {
623 return This->lpVtbl->GetSessionInstanceIdentifier(This,pRetVal);
624}
625static FORCEINLINE HRESULT IAudioSessionControl2_GetProcessId(IAudioSessionControl2* This,DWORD *pRetVal) {
626 return This->lpVtbl->GetProcessId(This,pRetVal);
627}
628static FORCEINLINE HRESULT IAudioSessionControl2_IsSystemSoundsSession(IAudioSessionControl2* This) {
629 return This->lpVtbl->IsSystemSoundsSession(This);
630}
631static FORCEINLINE HRESULT IAudioSessionControl2_SetDuckingPreference(IAudioSessionControl2* This,WINBOOL optOut) {
632 return This->lpVtbl->SetDuckingPreference(This,optOut);
633}
634#endif
635#endif
636
637#endif
638
639
640#endif /* __IAudioSessionControl2_INTERFACE_DEFINED__ */
641
642
643/*****************************************************************************
644 * IAudioSessionManager interface
645 */
646#ifndef __IAudioSessionManager_INTERFACE_DEFINED__
647#define __IAudioSessionManager_INTERFACE_DEFINED__
648
649DEFINE_GUID(IID_IAudioSessionManager, 0xbfa971f1, 0x4d5e, 0x40bb, 0x93,0x5e, 0x96,0x70,0x39,0xbf,0xbe,0xe4);
650#if defined(__cplusplus) && !defined(CINTERFACE)
651MIDL_INTERFACE("bfa971f1-4d5e-40bb-935e-967039bfbee4")
652IAudioSessionManager : public IUnknown
653{
654 virtual HRESULT STDMETHODCALLTYPE GetAudioSessionControl(
655 LPCGUID AudioSessionGuid,
656 DWORD StreamFlags,
657 IAudioSessionControl **SessionControl) = 0;
658
659 virtual HRESULT STDMETHODCALLTYPE GetSimpleAudioVolume(
660 LPCGUID AudioSessionGuid,
661 DWORD StreamFlags,
662 ISimpleAudioVolume **AudioVolume) = 0;
663
664};
665#ifdef __CRT_UUID_DECL
666__CRT_UUID_DECL(IAudioSessionManager, 0xbfa971f1, 0x4d5e, 0x40bb, 0x93,0x5e, 0x96,0x70,0x39,0xbf,0xbe,0xe4)
667#endif
668#else
669typedef struct IAudioSessionManagerVtbl {
670 BEGIN_INTERFACE
671
672 /*** IUnknown methods ***/
673 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
674 IAudioSessionManager *This,
675 REFIID riid,
676 void **ppvObject);
677
678 ULONG (STDMETHODCALLTYPE *AddRef)(
679 IAudioSessionManager *This);
680
681 ULONG (STDMETHODCALLTYPE *Release)(
682 IAudioSessionManager *This);
683
684 /*** IAudioSessionManager methods ***/
685 HRESULT (STDMETHODCALLTYPE *GetAudioSessionControl)(
686 IAudioSessionManager *This,
687 LPCGUID AudioSessionGuid,
688 DWORD StreamFlags,
689 IAudioSessionControl **SessionControl);
690
691 HRESULT (STDMETHODCALLTYPE *GetSimpleAudioVolume)(
692 IAudioSessionManager *This,
693 LPCGUID AudioSessionGuid,
694 DWORD StreamFlags,
695 ISimpleAudioVolume **AudioVolume);
696
697 END_INTERFACE
698} IAudioSessionManagerVtbl;
699
700interface IAudioSessionManager {
701 CONST_VTBL IAudioSessionManagerVtbl* lpVtbl;
702};
703
704#ifdef COBJMACROS
705#ifndef WIDL_C_INLINE_WRAPPERS
706/*** IUnknown methods ***/
707#define IAudioSessionManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
708#define IAudioSessionManager_AddRef(This) (This)->lpVtbl->AddRef(This)
709#define IAudioSessionManager_Release(This) (This)->lpVtbl->Release(This)
710/*** IAudioSessionManager methods ***/
711#define IAudioSessionManager_GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl) (This)->lpVtbl->GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl)
712#define IAudioSessionManager_GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume) (This)->lpVtbl->GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume)
713#else
714/*** IUnknown methods ***/
715static FORCEINLINE HRESULT IAudioSessionManager_QueryInterface(IAudioSessionManager* This,REFIID riid,void **ppvObject) {
716 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
717}
718static FORCEINLINE ULONG IAudioSessionManager_AddRef(IAudioSessionManager* This) {
719 return This->lpVtbl->AddRef(This);
720}
721static FORCEINLINE ULONG IAudioSessionManager_Release(IAudioSessionManager* This) {
722 return This->lpVtbl->Release(This);
723}
724/*** IAudioSessionManager methods ***/
725static FORCEINLINE HRESULT IAudioSessionManager_GetAudioSessionControl(IAudioSessionManager* This,LPCGUID AudioSessionGuid,DWORD StreamFlags,IAudioSessionControl **SessionControl) {
726 return This->lpVtbl->GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl);
727}
728static FORCEINLINE HRESULT IAudioSessionManager_GetSimpleAudioVolume(IAudioSessionManager* This,LPCGUID AudioSessionGuid,DWORD StreamFlags,ISimpleAudioVolume **AudioVolume) {
729 return This->lpVtbl->GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume);
730}
731#endif
732#endif
733
734#endif
735
736
737#endif /* __IAudioSessionManager_INTERFACE_DEFINED__ */
738
739
740/*****************************************************************************
741 * IAudioVolumeDuckNotification interface
742 */
743#ifndef __IAudioVolumeDuckNotification_INTERFACE_DEFINED__
744#define __IAudioVolumeDuckNotification_INTERFACE_DEFINED__
745
746DEFINE_GUID(IID_IAudioVolumeDuckNotification, 0xc3b284d4, 0x6d39, 0x4359, 0xb3,0xcf, 0xb5,0x6d,0xdb,0x3b,0xb3,0x9c);
747#if defined(__cplusplus) && !defined(CINTERFACE)
748MIDL_INTERFACE("c3b284d4-6d39-4359-b3cf-b56ddb3bb39c")
749IAudioVolumeDuckNotification : public IUnknown
750{
751 virtual HRESULT STDMETHODCALLTYPE OnVolumeDuckNotification(
752 LPCWSTR sessionID,
753 UINT32 countCommunicationSessions) = 0;
754
755 virtual HRESULT STDMETHODCALLTYPE OnVolumeUnduckNotification(
756 LPCWSTR sessionID) = 0;
757
758};
759#ifdef __CRT_UUID_DECL
760__CRT_UUID_DECL(IAudioVolumeDuckNotification, 0xc3b284d4, 0x6d39, 0x4359, 0xb3,0xcf, 0xb5,0x6d,0xdb,0x3b,0xb3,0x9c)
761#endif
762#else
763typedef struct IAudioVolumeDuckNotificationVtbl {
764 BEGIN_INTERFACE
765
766 /*** IUnknown methods ***/
767 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
768 IAudioVolumeDuckNotification *This,
769 REFIID riid,
770 void **ppvObject);
771
772 ULONG (STDMETHODCALLTYPE *AddRef)(
773 IAudioVolumeDuckNotification *This);
774
775 ULONG (STDMETHODCALLTYPE *Release)(
776 IAudioVolumeDuckNotification *This);
777
778 /*** IAudioVolumeDuckNotification methods ***/
779 HRESULT (STDMETHODCALLTYPE *OnVolumeDuckNotification)(
780 IAudioVolumeDuckNotification *This,
781 LPCWSTR sessionID,
782 UINT32 countCommunicationSessions);
783
784 HRESULT (STDMETHODCALLTYPE *OnVolumeUnduckNotification)(
785 IAudioVolumeDuckNotification *This,
786 LPCWSTR sessionID);
787
788 END_INTERFACE
789} IAudioVolumeDuckNotificationVtbl;
790
791interface IAudioVolumeDuckNotification {
792 CONST_VTBL IAudioVolumeDuckNotificationVtbl* lpVtbl;
793};
794
795#ifdef COBJMACROS
796#ifndef WIDL_C_INLINE_WRAPPERS
797/*** IUnknown methods ***/
798#define IAudioVolumeDuckNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
799#define IAudioVolumeDuckNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
800#define IAudioVolumeDuckNotification_Release(This) (This)->lpVtbl->Release(This)
801/*** IAudioVolumeDuckNotification methods ***/
802#define IAudioVolumeDuckNotification_OnVolumeDuckNotification(This,sessionID,countCommunicationSessions) (This)->lpVtbl->OnVolumeDuckNotification(This,sessionID,countCommunicationSessions)
803#define IAudioVolumeDuckNotification_OnVolumeUnduckNotification(This,sessionID) (This)->lpVtbl->OnVolumeUnduckNotification(This,sessionID)
804#else
805/*** IUnknown methods ***/
806static FORCEINLINE HRESULT IAudioVolumeDuckNotification_QueryInterface(IAudioVolumeDuckNotification* This,REFIID riid,void **ppvObject) {
807 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
808}
809static FORCEINLINE ULONG IAudioVolumeDuckNotification_AddRef(IAudioVolumeDuckNotification* This) {
810 return This->lpVtbl->AddRef(This);
811}
812static FORCEINLINE ULONG IAudioVolumeDuckNotification_Release(IAudioVolumeDuckNotification* This) {
813 return This->lpVtbl->Release(This);
814}
815/*** IAudioVolumeDuckNotification methods ***/
816static FORCEINLINE HRESULT IAudioVolumeDuckNotification_OnVolumeDuckNotification(IAudioVolumeDuckNotification* This,LPCWSTR sessionID,UINT32 countCommunicationSessions) {
817 return This->lpVtbl->OnVolumeDuckNotification(This,sessionID,countCommunicationSessions);
818}
819static FORCEINLINE HRESULT IAudioVolumeDuckNotification_OnVolumeUnduckNotification(IAudioVolumeDuckNotification* This,LPCWSTR sessionID) {
820 return This->lpVtbl->OnVolumeUnduckNotification(This,sessionID);
821}
822#endif
823#endif
824
825#endif
826
827
828#endif /* __IAudioVolumeDuckNotification_INTERFACE_DEFINED__ */
829
830
831/*****************************************************************************
832 * IAudioSessionNotification interface
833 */
834#ifndef __IAudioSessionNotification_INTERFACE_DEFINED__
835#define __IAudioSessionNotification_INTERFACE_DEFINED__
836
837DEFINE_GUID(IID_IAudioSessionNotification, 0x641dd20b, 0x4d41, 0x49cc, 0xab,0xa3, 0x17,0x4b,0x94,0x77,0xbb,0x08);
838#if defined(__cplusplus) && !defined(CINTERFACE)
839MIDL_INTERFACE("641dd20b-4d41-49cc-aba3-174b9477bb08")
840IAudioSessionNotification : public IUnknown
841{
842 virtual HRESULT STDMETHODCALLTYPE OnSessionCreated(
843 IAudioSessionControl *NewSession) = 0;
844
845};
846#ifdef __CRT_UUID_DECL
847__CRT_UUID_DECL(IAudioSessionNotification, 0x641dd20b, 0x4d41, 0x49cc, 0xab,0xa3, 0x17,0x4b,0x94,0x77,0xbb,0x08)
848#endif
849#else
850typedef struct IAudioSessionNotificationVtbl {
851 BEGIN_INTERFACE
852
853 /*** IUnknown methods ***/
854 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
855 IAudioSessionNotification *This,
856 REFIID riid,
857 void **ppvObject);
858
859 ULONG (STDMETHODCALLTYPE *AddRef)(
860 IAudioSessionNotification *This);
861
862 ULONG (STDMETHODCALLTYPE *Release)(
863 IAudioSessionNotification *This);
864
865 /*** IAudioSessionNotification methods ***/
866 HRESULT (STDMETHODCALLTYPE *OnSessionCreated)(
867 IAudioSessionNotification *This,
868 IAudioSessionControl *NewSession);
869
870 END_INTERFACE
871} IAudioSessionNotificationVtbl;
872
873interface IAudioSessionNotification {
874 CONST_VTBL IAudioSessionNotificationVtbl* lpVtbl;
875};
876
877#ifdef COBJMACROS
878#ifndef WIDL_C_INLINE_WRAPPERS
879/*** IUnknown methods ***/
880#define IAudioSessionNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
881#define IAudioSessionNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
882#define IAudioSessionNotification_Release(This) (This)->lpVtbl->Release(This)
883/*** IAudioSessionNotification methods ***/
884#define IAudioSessionNotification_OnSessionCreated(This,NewSession) (This)->lpVtbl->OnSessionCreated(This,NewSession)
885#else
886/*** IUnknown methods ***/
887static FORCEINLINE HRESULT IAudioSessionNotification_QueryInterface(IAudioSessionNotification* This,REFIID riid,void **ppvObject) {
888 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
889}
890static FORCEINLINE ULONG IAudioSessionNotification_AddRef(IAudioSessionNotification* This) {
891 return This->lpVtbl->AddRef(This);
892}
893static FORCEINLINE ULONG IAudioSessionNotification_Release(IAudioSessionNotification* This) {
894 return This->lpVtbl->Release(This);
895}
896/*** IAudioSessionNotification methods ***/
897static FORCEINLINE HRESULT IAudioSessionNotification_OnSessionCreated(IAudioSessionNotification* This,IAudioSessionControl *NewSession) {
898 return This->lpVtbl->OnSessionCreated(This,NewSession);
899}
900#endif
901#endif
902
903#endif
904
905
906#endif /* __IAudioSessionNotification_INTERFACE_DEFINED__ */
907
908
909/*****************************************************************************
910 * IAudioSessionEnumerator interface
911 */
912#ifndef __IAudioSessionEnumerator_INTERFACE_DEFINED__
913#define __IAudioSessionEnumerator_INTERFACE_DEFINED__
914
915DEFINE_GUID(IID_IAudioSessionEnumerator, 0xe2f5bb11, 0x0570, 0x40ca, 0xac,0xdd, 0x3a,0xa0,0x12,0x77,0xde,0xe8);
916#if defined(__cplusplus) && !defined(CINTERFACE)
917MIDL_INTERFACE("e2f5bb11-0570-40ca-acdd-3aa01277dee8")
918IAudioSessionEnumerator : public IUnknown
919{
920 virtual HRESULT STDMETHODCALLTYPE GetCount(
921 int *SessionCount) = 0;
922
923 virtual HRESULT STDMETHODCALLTYPE GetSession(
924 int SessionCount,
925 IAudioSessionControl **Session) = 0;
926
927};
928#ifdef __CRT_UUID_DECL
929__CRT_UUID_DECL(IAudioSessionEnumerator, 0xe2f5bb11, 0x0570, 0x40ca, 0xac,0xdd, 0x3a,0xa0,0x12,0x77,0xde,0xe8)
930#endif
931#else
932typedef struct IAudioSessionEnumeratorVtbl {
933 BEGIN_INTERFACE
934
935 /*** IUnknown methods ***/
936 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
937 IAudioSessionEnumerator *This,
938 REFIID riid,
939 void **ppvObject);
940
941 ULONG (STDMETHODCALLTYPE *AddRef)(
942 IAudioSessionEnumerator *This);
943
944 ULONG (STDMETHODCALLTYPE *Release)(
945 IAudioSessionEnumerator *This);
946
947 /*** IAudioSessionEnumerator methods ***/
948 HRESULT (STDMETHODCALLTYPE *GetCount)(
949 IAudioSessionEnumerator *This,
950 int *SessionCount);
951
952 HRESULT (STDMETHODCALLTYPE *GetSession)(
953 IAudioSessionEnumerator *This,
954 int SessionCount,
955 IAudioSessionControl **Session);
956
957 END_INTERFACE
958} IAudioSessionEnumeratorVtbl;
959
960interface IAudioSessionEnumerator {
961 CONST_VTBL IAudioSessionEnumeratorVtbl* lpVtbl;
962};
963
964#ifdef COBJMACROS
965#ifndef WIDL_C_INLINE_WRAPPERS
966/*** IUnknown methods ***/
967#define IAudioSessionEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
968#define IAudioSessionEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
969#define IAudioSessionEnumerator_Release(This) (This)->lpVtbl->Release(This)
970/*** IAudioSessionEnumerator methods ***/
971#define IAudioSessionEnumerator_GetCount(This,SessionCount) (This)->lpVtbl->GetCount(This,SessionCount)
972#define IAudioSessionEnumerator_GetSession(This,SessionCount,Session) (This)->lpVtbl->GetSession(This,SessionCount,Session)
973#else
974/*** IUnknown methods ***/
975static FORCEINLINE HRESULT IAudioSessionEnumerator_QueryInterface(IAudioSessionEnumerator* This,REFIID riid,void **ppvObject) {
976 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
977}
978static FORCEINLINE ULONG IAudioSessionEnumerator_AddRef(IAudioSessionEnumerator* This) {
979 return This->lpVtbl->AddRef(This);
980}
981static FORCEINLINE ULONG IAudioSessionEnumerator_Release(IAudioSessionEnumerator* This) {
982 return This->lpVtbl->Release(This);
983}
984/*** IAudioSessionEnumerator methods ***/
985static FORCEINLINE HRESULT IAudioSessionEnumerator_GetCount(IAudioSessionEnumerator* This,int *SessionCount) {
986 return This->lpVtbl->GetCount(This,SessionCount);
987}
988static FORCEINLINE HRESULT IAudioSessionEnumerator_GetSession(IAudioSessionEnumerator* This,int SessionCount,IAudioSessionControl **Session) {
989 return This->lpVtbl->GetSession(This,SessionCount,Session);
990}
991#endif
992#endif
993
994#endif
995
996
997#endif /* __IAudioSessionEnumerator_INTERFACE_DEFINED__ */
998
999
1000/*****************************************************************************
1001 * IAudioSessionManager2 interface
1002 */
1003#ifndef __IAudioSessionManager2_INTERFACE_DEFINED__
1004#define __IAudioSessionManager2_INTERFACE_DEFINED__
1005
1006DEFINE_GUID(IID_IAudioSessionManager2, 0x77aa99a0, 0x1bd6, 0x484f, 0x8b,0xc7, 0x2c,0x65,0x4c,0x9a,0x9b,0x6f);
1007#if defined(__cplusplus) && !defined(CINTERFACE)
1008MIDL_INTERFACE("77aa99a0-1bd6-484f-8bc7-2c654c9a9b6f")
1009IAudioSessionManager2 : public IAudioSessionManager
1010{
1011 virtual HRESULT STDMETHODCALLTYPE GetSessionEnumerator(
1012 IAudioSessionEnumerator **SessionEnum) = 0;
1013
1014 virtual HRESULT STDMETHODCALLTYPE RegisterSessionNotification(
1015 IAudioSessionNotification *SessionNotification) = 0;
1016
1017 virtual HRESULT STDMETHODCALLTYPE UnregisterSessionNotification(
1018 IAudioSessionNotification *SessionNotification) = 0;
1019
1020 virtual HRESULT STDMETHODCALLTYPE RegisterDuckNotification(
1021 LPCWSTR sessionID,
1022 IAudioVolumeDuckNotification *duckNotification) = 0;
1023
1024 virtual HRESULT STDMETHODCALLTYPE UnregisterDuckNotification(
1025 IAudioVolumeDuckNotification *duckNotification) = 0;
1026
1027};
1028#ifdef __CRT_UUID_DECL
1029__CRT_UUID_DECL(IAudioSessionManager2, 0x77aa99a0, 0x1bd6, 0x484f, 0x8b,0xc7, 0x2c,0x65,0x4c,0x9a,0x9b,0x6f)
1030#endif
1031#else
1032typedef struct IAudioSessionManager2Vtbl {
1033 BEGIN_INTERFACE
1034
1035 /*** IUnknown methods ***/
1036 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1037 IAudioSessionManager2 *This,
1038 REFIID riid,
1039 void **ppvObject);
1040
1041 ULONG (STDMETHODCALLTYPE *AddRef)(
1042 IAudioSessionManager2 *This);
1043
1044 ULONG (STDMETHODCALLTYPE *Release)(
1045 IAudioSessionManager2 *This);
1046
1047 /*** IAudioSessionManager methods ***/
1048 HRESULT (STDMETHODCALLTYPE *GetAudioSessionControl)(
1049 IAudioSessionManager2 *This,
1050 LPCGUID AudioSessionGuid,
1051 DWORD StreamFlags,
1052 IAudioSessionControl **SessionControl);
1053
1054 HRESULT (STDMETHODCALLTYPE *GetSimpleAudioVolume)(
1055 IAudioSessionManager2 *This,
1056 LPCGUID AudioSessionGuid,
1057 DWORD StreamFlags,
1058 ISimpleAudioVolume **AudioVolume);
1059
1060 /*** IAudioSessionManager2 methods ***/
1061 HRESULT (STDMETHODCALLTYPE *GetSessionEnumerator)(
1062 IAudioSessionManager2 *This,
1063 IAudioSessionEnumerator **SessionEnum);
1064
1065 HRESULT (STDMETHODCALLTYPE *RegisterSessionNotification)(
1066 IAudioSessionManager2 *This,
1067 IAudioSessionNotification *SessionNotification);
1068
1069 HRESULT (STDMETHODCALLTYPE *UnregisterSessionNotification)(
1070 IAudioSessionManager2 *This,
1071 IAudioSessionNotification *SessionNotification);
1072
1073 HRESULT (STDMETHODCALLTYPE *RegisterDuckNotification)(
1074 IAudioSessionManager2 *This,
1075 LPCWSTR sessionID,
1076 IAudioVolumeDuckNotification *duckNotification);
1077
1078 HRESULT (STDMETHODCALLTYPE *UnregisterDuckNotification)(
1079 IAudioSessionManager2 *This,
1080 IAudioVolumeDuckNotification *duckNotification);
1081
1082 END_INTERFACE
1083} IAudioSessionManager2Vtbl;
1084
1085interface IAudioSessionManager2 {
1086 CONST_VTBL IAudioSessionManager2Vtbl* lpVtbl;
1087};
1088
1089#ifdef COBJMACROS
1090#ifndef WIDL_C_INLINE_WRAPPERS
1091/*** IUnknown methods ***/
1092#define IAudioSessionManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1093#define IAudioSessionManager2_AddRef(This) (This)->lpVtbl->AddRef(This)
1094#define IAudioSessionManager2_Release(This) (This)->lpVtbl->Release(This)
1095/*** IAudioSessionManager methods ***/
1096#define IAudioSessionManager2_GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl) (This)->lpVtbl->GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl)
1097#define IAudioSessionManager2_GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume) (This)->lpVtbl->GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume)
1098/*** IAudioSessionManager2 methods ***/
1099#define IAudioSessionManager2_GetSessionEnumerator(This,SessionEnum) (This)->lpVtbl->GetSessionEnumerator(This,SessionEnum)
1100#define IAudioSessionManager2_RegisterSessionNotification(This,SessionNotification) (This)->lpVtbl->RegisterSessionNotification(This,SessionNotification)
1101#define IAudioSessionManager2_UnregisterSessionNotification(This,SessionNotification) (This)->lpVtbl->UnregisterSessionNotification(This,SessionNotification)
1102#define IAudioSessionManager2_RegisterDuckNotification(This,sessionID,duckNotification) (This)->lpVtbl->RegisterDuckNotification(This,sessionID,duckNotification)
1103#define IAudioSessionManager2_UnregisterDuckNotification(This,duckNotification) (This)->lpVtbl->UnregisterDuckNotification(This,duckNotification)
1104#else
1105/*** IUnknown methods ***/
1106static FORCEINLINE HRESULT IAudioSessionManager2_QueryInterface(IAudioSessionManager2* This,REFIID riid,void **ppvObject) {
1107 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1108}
1109static FORCEINLINE ULONG IAudioSessionManager2_AddRef(IAudioSessionManager2* This) {
1110 return This->lpVtbl->AddRef(This);
1111}
1112static FORCEINLINE ULONG IAudioSessionManager2_Release(IAudioSessionManager2* This) {
1113 return This->lpVtbl->Release(This);
1114}
1115/*** IAudioSessionManager methods ***/
1116static FORCEINLINE HRESULT IAudioSessionManager2_GetAudioSessionControl(IAudioSessionManager2* This,LPCGUID AudioSessionGuid,DWORD StreamFlags,IAudioSessionControl **SessionControl) {
1117 return This->lpVtbl->GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl);
1118}
1119static FORCEINLINE HRESULT IAudioSessionManager2_GetSimpleAudioVolume(IAudioSessionManager2* This,LPCGUID AudioSessionGuid,DWORD StreamFlags,ISimpleAudioVolume **AudioVolume) {
1120 return This->lpVtbl->GetSimpleAudioVolume(This,AudioSessionGuid,StreamFlags,AudioVolume);
1121}
1122/*** IAudioSessionManager2 methods ***/
1123static FORCEINLINE HRESULT IAudioSessionManager2_GetSessionEnumerator(IAudioSessionManager2* This,IAudioSessionEnumerator **SessionEnum) {
1124 return This->lpVtbl->GetSessionEnumerator(This,SessionEnum);
1125}
1126static FORCEINLINE HRESULT IAudioSessionManager2_RegisterSessionNotification(IAudioSessionManager2* This,IAudioSessionNotification *SessionNotification) {
1127 return This->lpVtbl->RegisterSessionNotification(This,SessionNotification);
1128}
1129static FORCEINLINE HRESULT IAudioSessionManager2_UnregisterSessionNotification(IAudioSessionManager2* This,IAudioSessionNotification *SessionNotification) {
1130 return This->lpVtbl->UnregisterSessionNotification(This,SessionNotification);
1131}
1132static FORCEINLINE HRESULT IAudioSessionManager2_RegisterDuckNotification(IAudioSessionManager2* This,LPCWSTR sessionID,IAudioVolumeDuckNotification *duckNotification) {
1133 return This->lpVtbl->RegisterDuckNotification(This,sessionID,duckNotification);
1134}
1135static FORCEINLINE HRESULT IAudioSessionManager2_UnregisterDuckNotification(IAudioSessionManager2* This,IAudioVolumeDuckNotification *duckNotification) {
1136 return This->lpVtbl->UnregisterDuckNotification(This,duckNotification);
1137}
1138#endif
1139#endif
1140
1141#endif
1142
1143
1144#endif /* __IAudioSessionManager2_INTERFACE_DEFINED__ */
1145
1146#endif
1147/* Begin additional prototypes for all interfaces */
1148
1149
1150/* End additional prototypes */
1151
1152#ifdef __cplusplus
1153}
1154#endif
1155
1156#endif /* __audiopolicy_h__ */
Note: See TracBrowser for help on using the repository browser.