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