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__ */ 1157