ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/audiopolicy.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 46551 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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__
23 typedef interface IAudioSessionEvents IAudioSessionEvents;
24 #ifdef __cplusplus
25 interface IAudioSessionEvents;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IAudioSessionControl_FWD_DEFINED__
30 #define __IAudioSessionControl_FWD_DEFINED__
31 typedef interface IAudioSessionControl IAudioSessionControl;
32 #ifdef __cplusplus
33 interface IAudioSessionControl;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IAudioSessionControl2_FWD_DEFINED__
38 #define __IAudioSessionControl2_FWD_DEFINED__
39 typedef interface IAudioSessionControl2 IAudioSessionControl2;
40 #ifdef __cplusplus
41 interface IAudioSessionControl2;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IAudioSessionManager_FWD_DEFINED__
46 #define __IAudioSessionManager_FWD_DEFINED__
47 typedef interface IAudioSessionManager IAudioSessionManager;
48 #ifdef __cplusplus
49 interface IAudioSessionManager;
50 #endif /* __cplusplus */
51 #endif
52
53 #ifndef __IAudioVolumeDuckNotification_FWD_DEFINED__
54 #define __IAudioVolumeDuckNotification_FWD_DEFINED__
55 typedef interface IAudioVolumeDuckNotification IAudioVolumeDuckNotification;
56 #ifdef __cplusplus
57 interface IAudioVolumeDuckNotification;
58 #endif /* __cplusplus */
59 #endif
60
61 #ifndef __IAudioSessionNotification_FWD_DEFINED__
62 #define __IAudioSessionNotification_FWD_DEFINED__
63 typedef interface IAudioSessionNotification IAudioSessionNotification;
64 #ifdef __cplusplus
65 interface IAudioSessionNotification;
66 #endif /* __cplusplus */
67 #endif
68
69 #ifndef __IAudioSessionEnumerator_FWD_DEFINED__
70 #define __IAudioSessionEnumerator_FWD_DEFINED__
71 typedef interface IAudioSessionEnumerator IAudioSessionEnumerator;
72 #ifdef __cplusplus
73 interface IAudioSessionEnumerator;
74 #endif /* __cplusplus */
75 #endif
76
77 #ifndef __IAudioSessionManager2_FWD_DEFINED__
78 #define __IAudioSessionManager2_FWD_DEFINED__
79 typedef interface IAudioSessionManager2 IAudioSessionManager2;
80 #ifdef __cplusplus
81 interface 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
94 extern "C" {
95 #endif
96
97 #include <winapifamily.h>
98
99
100 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
101 typedef 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
116 DEFINE_GUID(IID_IAudioSessionEvents, 0x24918acc, 0x64b3, 0x37c1, 0x8c,0xa9, 0x74,0xa6,0x6e,0x99,0x57,0xa8);
117 #if defined(__cplusplus) && !defined(CINTERFACE)
118 MIDL_INTERFACE("24918acc-64b3-37c1-8ca9-74a66e9957a8")
119 IAudioSessionEvents : 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
155 typedef 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
210 interface 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 ***/
230 static FORCEINLINE HRESULT IAudioSessionEvents_QueryInterface(IAudioSessionEvents* This,REFIID riid,void **ppvObject) {
231 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
232 }
233 static FORCEINLINE ULONG IAudioSessionEvents_AddRef(IAudioSessionEvents* This) {
234 return This->lpVtbl->AddRef(This);
235 }
236 static FORCEINLINE ULONG IAudioSessionEvents_Release(IAudioSessionEvents* This) {
237 return This->lpVtbl->Release(This);
238 }
239 /*** IAudioSessionEvents methods ***/
240 static FORCEINLINE HRESULT IAudioSessionEvents_OnDisplayNameChanged(IAudioSessionEvents* This,LPCWSTR NewDisplayName,LPCGUID EventContext) {
241 return This->lpVtbl->OnDisplayNameChanged(This,NewDisplayName,EventContext);
242 }
243 static FORCEINLINE HRESULT IAudioSessionEvents_OnIconPathChanged(IAudioSessionEvents* This,LPCWSTR NewIconPath,LPCGUID EventContext) {
244 return This->lpVtbl->OnIconPathChanged(This,NewIconPath,EventContext);
245 }
246 static FORCEINLINE HRESULT IAudioSessionEvents_OnSimpleVolumeChanged(IAudioSessionEvents* This,float NewVolume,WINBOOL NewMute,LPCGUID EventContext) {
247 return This->lpVtbl->OnSimpleVolumeChanged(This,NewVolume,NewMute,EventContext);
248 }
249 static 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 }
252 static FORCEINLINE HRESULT IAudioSessionEvents_OnGroupingParamChanged(IAudioSessionEvents* This,LPCGUID NewGroupingParam,LPCGUID EventContext) {
253 return This->lpVtbl->OnGroupingParamChanged(This,NewGroupingParam,EventContext);
254 }
255 static FORCEINLINE HRESULT IAudioSessionEvents_OnStateChanged(IAudioSessionEvents* This,AudioSessionState NewState) {
256 return This->lpVtbl->OnStateChanged(This,NewState);
257 }
258 static 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
276 DEFINE_GUID(IID_IAudioSessionControl, 0xf4b1a599, 0x7266, 0x4319, 0xa8,0xca, 0xe7,0x0a,0xcb,0x11,0xe8,0xcd);
277 #if defined(__cplusplus) && !defined(CINTERFACE)
278 MIDL_INTERFACE("f4b1a599-7266-4319-a8ca-e70acb11e8cd")
279 IAudioSessionControl : 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
316 typedef 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
374 interface 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 ***/
396 static FORCEINLINE HRESULT IAudioSessionControl_QueryInterface(IAudioSessionControl* This,REFIID riid,void **ppvObject) {
397 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
398 }
399 static FORCEINLINE ULONG IAudioSessionControl_AddRef(IAudioSessionControl* This) {
400 return This->lpVtbl->AddRef(This);
401 }
402 static FORCEINLINE ULONG IAudioSessionControl_Release(IAudioSessionControl* This) {
403 return This->lpVtbl->Release(This);
404 }
405 /*** IAudioSessionControl methods ***/
406 static FORCEINLINE HRESULT IAudioSessionControl_GetState(IAudioSessionControl* This,AudioSessionState *pRetVal) {
407 return This->lpVtbl->GetState(This,pRetVal);
408 }
409 static FORCEINLINE HRESULT IAudioSessionControl_GetDisplayName(IAudioSessionControl* This,LPWSTR *pRetVal) {
410 return This->lpVtbl->GetDisplayName(This,pRetVal);
411 }
412 static FORCEINLINE HRESULT IAudioSessionControl_SetDisplayName(IAudioSessionControl* This,LPCWSTR Value,LPCGUID EventContext) {
413 return This->lpVtbl->SetDisplayName(This,Value,EventContext);
414 }
415 static FORCEINLINE HRESULT IAudioSessionControl_GetIconPath(IAudioSessionControl* This,LPWSTR *pRetVal) {
416 return This->lpVtbl->GetIconPath(This,pRetVal);
417 }
418 static FORCEINLINE HRESULT IAudioSessionControl_SetIconPath(IAudioSessionControl* This,LPCWSTR Value,LPCGUID EventContext) {
419 return This->lpVtbl->SetIconPath(This,Value,EventContext);
420 }
421 static FORCEINLINE HRESULT IAudioSessionControl_GetGroupingParam(IAudioSessionControl* This,GUID *pRetVal) {
422 return This->lpVtbl->GetGroupingParam(This,pRetVal);
423 }
424 static FORCEINLINE HRESULT IAudioSessionControl_SetGroupingParam(IAudioSessionControl* This,LPCGUID Override,LPCGUID EventContext) {
425 return This->lpVtbl->SetGroupingParam(This,Override,EventContext);
426 }
427 static FORCEINLINE HRESULT IAudioSessionControl_RegisterAudioSessionNotification(IAudioSessionControl* This,IAudioSessionEvents *NewNotifications) {
428 return This->lpVtbl->RegisterAudioSessionNotification(This,NewNotifications);
429 }
430 static 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
450 DEFINE_GUID(IID_IAudioSessionControl2, 0xbfb7ff88, 0x7239, 0x4fc9, 0x8f,0xa2, 0x07,0xc9,0x50,0xbe,0x9c,0x6d);
451 #if defined(__cplusplus) && !defined(CINTERFACE)
452 MIDL_INTERFACE("bfb7ff88-7239-4fc9-8fa2-07c950be9c6d")
453 IAudioSessionControl2 : 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
475 typedef 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
553 interface 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 ***/
581 static FORCEINLINE HRESULT IAudioSessionControl2_QueryInterface(IAudioSessionControl2* This,REFIID riid,void **ppvObject) {
582 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
583 }
584 static FORCEINLINE ULONG IAudioSessionControl2_AddRef(IAudioSessionControl2* This) {
585 return This->lpVtbl->AddRef(This);
586 }
587 static FORCEINLINE ULONG IAudioSessionControl2_Release(IAudioSessionControl2* This) {
588 return This->lpVtbl->Release(This);
589 }
590 /*** IAudioSessionControl methods ***/
591 static FORCEINLINE HRESULT IAudioSessionControl2_GetState(IAudioSessionControl2* This,AudioSessionState *pRetVal) {
592 return This->lpVtbl->GetState(This,pRetVal);
593 }
594 static FORCEINLINE HRESULT IAudioSessionControl2_GetDisplayName(IAudioSessionControl2* This,LPWSTR *pRetVal) {
595 return This->lpVtbl->GetDisplayName(This,pRetVal);
596 }
597 static FORCEINLINE HRESULT IAudioSessionControl2_SetDisplayName(IAudioSessionControl2* This,LPCWSTR Value,LPCGUID EventContext) {
598 return This->lpVtbl->SetDisplayName(This,Value,EventContext);
599 }
600 static FORCEINLINE HRESULT IAudioSessionControl2_GetIconPath(IAudioSessionControl2* This,LPWSTR *pRetVal) {
601 return This->lpVtbl->GetIconPath(This,pRetVal);
602 }
603 static FORCEINLINE HRESULT IAudioSessionControl2_SetIconPath(IAudioSessionControl2* This,LPCWSTR Value,LPCGUID EventContext) {
604 return This->lpVtbl->SetIconPath(This,Value,EventContext);
605 }
606 static FORCEINLINE HRESULT IAudioSessionControl2_GetGroupingParam(IAudioSessionControl2* This,GUID *pRetVal) {
607 return This->lpVtbl->GetGroupingParam(This,pRetVal);
608 }
609 static FORCEINLINE HRESULT IAudioSessionControl2_SetGroupingParam(IAudioSessionControl2* This,LPCGUID Override,LPCGUID EventContext) {
610 return This->lpVtbl->SetGroupingParam(This,Override,EventContext);
611 }
612 static FORCEINLINE HRESULT IAudioSessionControl2_RegisterAudioSessionNotification(IAudioSessionControl2* This,IAudioSessionEvents *NewNotifications) {
613 return This->lpVtbl->RegisterAudioSessionNotification(This,NewNotifications);
614 }
615 static FORCEINLINE HRESULT IAudioSessionControl2_UnregisterAudioSessionNotification(IAudioSessionControl2* This,IAudioSessionEvents *NewNotifications) {
616 return This->lpVtbl->UnregisterAudioSessionNotification(This,NewNotifications);
617 }
618 /*** IAudioSessionControl2 methods ***/
619 static FORCEINLINE HRESULT IAudioSessionControl2_GetSessionIdentifier(IAudioSessionControl2* This,LPWSTR *pRetVal) {
620 return This->lpVtbl->GetSessionIdentifier(This,pRetVal);
621 }
622 static FORCEINLINE HRESULT IAudioSessionControl2_GetSessionInstanceIdentifier(IAudioSessionControl2* This,LPWSTR *pRetVal) {
623 return This->lpVtbl->GetSessionInstanceIdentifier(This,pRetVal);
624 }
625 static FORCEINLINE HRESULT IAudioSessionControl2_GetProcessId(IAudioSessionControl2* This,DWORD *pRetVal) {
626 return This->lpVtbl->GetProcessId(This,pRetVal);
627 }
628 static FORCEINLINE HRESULT IAudioSessionControl2_IsSystemSoundsSession(IAudioSessionControl2* This) {
629 return This->lpVtbl->IsSystemSoundsSession(This);
630 }
631 static 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
649 DEFINE_GUID(IID_IAudioSessionManager, 0xbfa971f1, 0x4d5e, 0x40bb, 0x93,0x5e, 0x96,0x70,0x39,0xbf,0xbe,0xe4);
650 #if defined(__cplusplus) && !defined(CINTERFACE)
651 MIDL_INTERFACE("bfa971f1-4d5e-40bb-935e-967039bfbee4")
652 IAudioSessionManager : 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
669 typedef 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
700 interface 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 ***/
715 static FORCEINLINE HRESULT IAudioSessionManager_QueryInterface(IAudioSessionManager* This,REFIID riid,void **ppvObject) {
716 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
717 }
718 static FORCEINLINE ULONG IAudioSessionManager_AddRef(IAudioSessionManager* This) {
719 return This->lpVtbl->AddRef(This);
720 }
721 static FORCEINLINE ULONG IAudioSessionManager_Release(IAudioSessionManager* This) {
722 return This->lpVtbl->Release(This);
723 }
724 /*** IAudioSessionManager methods ***/
725 static FORCEINLINE HRESULT IAudioSessionManager_GetAudioSessionControl(IAudioSessionManager* This,LPCGUID AudioSessionGuid,DWORD StreamFlags,IAudioSessionControl **SessionControl) {
726 return This->lpVtbl->GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl);
727 }
728 static 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
746 DEFINE_GUID(IID_IAudioVolumeDuckNotification, 0xc3b284d4, 0x6d39, 0x4359, 0xb3,0xcf, 0xb5,0x6d,0xdb,0x3b,0xb3,0x9c);
747 #if defined(__cplusplus) && !defined(CINTERFACE)
748 MIDL_INTERFACE("c3b284d4-6d39-4359-b3cf-b56ddb3bb39c")
749 IAudioVolumeDuckNotification : 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
763 typedef 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
791 interface 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 ***/
806 static FORCEINLINE HRESULT IAudioVolumeDuckNotification_QueryInterface(IAudioVolumeDuckNotification* This,REFIID riid,void **ppvObject) {
807 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
808 }
809 static FORCEINLINE ULONG IAudioVolumeDuckNotification_AddRef(IAudioVolumeDuckNotification* This) {
810 return This->lpVtbl->AddRef(This);
811 }
812 static FORCEINLINE ULONG IAudioVolumeDuckNotification_Release(IAudioVolumeDuckNotification* This) {
813 return This->lpVtbl->Release(This);
814 }
815 /*** IAudioVolumeDuckNotification methods ***/
816 static FORCEINLINE HRESULT IAudioVolumeDuckNotification_OnVolumeDuckNotification(IAudioVolumeDuckNotification* This,LPCWSTR sessionID,UINT32 countCommunicationSessions) {
817 return This->lpVtbl->OnVolumeDuckNotification(This,sessionID,countCommunicationSessions);
818 }
819 static 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
837 DEFINE_GUID(IID_IAudioSessionNotification, 0x641dd20b, 0x4d41, 0x49cc, 0xab,0xa3, 0x17,0x4b,0x94,0x77,0xbb,0x08);
838 #if defined(__cplusplus) && !defined(CINTERFACE)
839 MIDL_INTERFACE("641dd20b-4d41-49cc-aba3-174b9477bb08")
840 IAudioSessionNotification : 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
850 typedef 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
873 interface 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 ***/
887 static FORCEINLINE HRESULT IAudioSessionNotification_QueryInterface(IAudioSessionNotification* This,REFIID riid,void **ppvObject) {
888 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
889 }
890 static FORCEINLINE ULONG IAudioSessionNotification_AddRef(IAudioSessionNotification* This) {
891 return This->lpVtbl->AddRef(This);
892 }
893 static FORCEINLINE ULONG IAudioSessionNotification_Release(IAudioSessionNotification* This) {
894 return This->lpVtbl->Release(This);
895 }
896 /*** IAudioSessionNotification methods ***/
897 static 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
915 DEFINE_GUID(IID_IAudioSessionEnumerator, 0xe2f5bb11, 0x0570, 0x40ca, 0xac,0xdd, 0x3a,0xa0,0x12,0x77,0xde,0xe8);
916 #if defined(__cplusplus) && !defined(CINTERFACE)
917 MIDL_INTERFACE("e2f5bb11-0570-40ca-acdd-3aa01277dee8")
918 IAudioSessionEnumerator : 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
932 typedef 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
960 interface 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 ***/
975 static FORCEINLINE HRESULT IAudioSessionEnumerator_QueryInterface(IAudioSessionEnumerator* This,REFIID riid,void **ppvObject) {
976 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
977 }
978 static FORCEINLINE ULONG IAudioSessionEnumerator_AddRef(IAudioSessionEnumerator* This) {
979 return This->lpVtbl->AddRef(This);
980 }
981 static FORCEINLINE ULONG IAudioSessionEnumerator_Release(IAudioSessionEnumerator* This) {
982 return This->lpVtbl->Release(This);
983 }
984 /*** IAudioSessionEnumerator methods ***/
985 static FORCEINLINE HRESULT IAudioSessionEnumerator_GetCount(IAudioSessionEnumerator* This,int *SessionCount) {
986 return This->lpVtbl->GetCount(This,SessionCount);
987 }
988 static 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
1006 DEFINE_GUID(IID_IAudioSessionManager2, 0x77aa99a0, 0x1bd6, 0x484f, 0x8b,0xc7, 0x2c,0x65,0x4c,0x9a,0x9b,0x6f);
1007 #if defined(__cplusplus) && !defined(CINTERFACE)
1008 MIDL_INTERFACE("77aa99a0-1bd6-484f-8bc7-2c654c9a9b6f")
1009 IAudioSessionManager2 : 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
1032 typedef 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
1085 interface 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 ***/
1106 static FORCEINLINE HRESULT IAudioSessionManager2_QueryInterface(IAudioSessionManager2* This,REFIID riid,void **ppvObject) {
1107 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1108 }
1109 static FORCEINLINE ULONG IAudioSessionManager2_AddRef(IAudioSessionManager2* This) {
1110 return This->lpVtbl->AddRef(This);
1111 }
1112 static FORCEINLINE ULONG IAudioSessionManager2_Release(IAudioSessionManager2* This) {
1113 return This->lpVtbl->Release(This);
1114 }
1115 /*** IAudioSessionManager methods ***/
1116 static FORCEINLINE HRESULT IAudioSessionManager2_GetAudioSessionControl(IAudioSessionManager2* This,LPCGUID AudioSessionGuid,DWORD StreamFlags,IAudioSessionControl **SessionControl) {
1117 return This->lpVtbl->GetAudioSessionControl(This,AudioSessionGuid,StreamFlags,SessionControl);
1118 }
1119 static 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 ***/
1123 static FORCEINLINE HRESULT IAudioSessionManager2_GetSessionEnumerator(IAudioSessionManager2* This,IAudioSessionEnumerator **SessionEnum) {
1124 return This->lpVtbl->GetSessionEnumerator(This,SessionEnum);
1125 }
1126 static FORCEINLINE HRESULT IAudioSessionManager2_RegisterSessionNotification(IAudioSessionManager2* This,IAudioSessionNotification *SessionNotification) {
1127 return This->lpVtbl->RegisterSessionNotification(This,SessionNotification);
1128 }
1129 static FORCEINLINE HRESULT IAudioSessionManager2_UnregisterSessionNotification(IAudioSessionManager2* This,IAudioSessionNotification *SessionNotification) {
1130 return This->lpVtbl->UnregisterSessionNotification(This,SessionNotification);
1131 }
1132 static FORCEINLINE HRESULT IAudioSessionManager2_RegisterDuckNotification(IAudioSessionManager2* This,LPCWSTR sessionID,IAudioVolumeDuckNotification *duckNotification) {
1133 return This->lpVtbl->RegisterDuckNotification(This,sessionID,duckNotification);
1134 }
1135 static 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__ */