1 2 3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 4 5 6 /* File created by MIDL compiler version 7.00.0499 */ 7 /* Compiler settings for mmdeviceapi.idl: 8 Oicf, W1, Zp8, env=Win32 (32b run) 9 protocol : dce , ms_ext, c_ext, robust 10 error checks: allocation ref bounds_check enum stub_data 11 VC __declspec() decoration level: 12 __declspec(uuid()), __declspec(selectany), __declspec(novtable) 13 DECLSPEC_UUID(), MIDL_INTERFACE() 14 */ 15 //@@MIDL_FILE_HEADING( ) 16 17 #pragma warning( disable: 4049 ) /* more than 64k source lines */ 18 19 20 /* verify that the <rpcndr.h> version is high enough to compile this file*/ 21 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 22 #define __REQUIRED_RPCNDR_H_VERSION__ 500 23 #endif 24 25 /* verify that the <rpcsal.h> version is high enough to compile this file*/ 26 #ifndef __REQUIRED_RPCSAL_H_VERSION__ 27 #define __REQUIRED_RPCSAL_H_VERSION__ 100 28 #endif 29 30 #include "rpc.h" 31 #include "rpcndr.h" 32 33 #ifndef __RPCNDR_H_VERSION__ 34 #error this stub requires an updated version of <rpcndr.h> 35 #endif // __RPCNDR_H_VERSION__ 36 37 #ifndef COM_NO_WINDOWS_H 38 #include "windows.h" 39 #include "ole2.h" 40 #endif /*COM_NO_WINDOWS_H*/ 41 42 #ifndef __mmdeviceapi_h__ 43 #define __mmdeviceapi_h__ 44 45 #if __GNUC__ >=3 46 #pragma GCC system_header 47 #endif 48 49 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 50 #pragma once 51 #endif 52 53 /* Forward Declarations */ 54 55 #ifndef __IMMNotificationClient_FWD_DEFINED__ 56 #define __IMMNotificationClient_FWD_DEFINED__ 57 typedef interface IMMNotificationClient IMMNotificationClient; 58 #endif /* __IMMNotificationClient_FWD_DEFINED__ */ 59 60 61 #ifndef __IMMDevice_FWD_DEFINED__ 62 #define __IMMDevice_FWD_DEFINED__ 63 typedef interface IMMDevice IMMDevice; 64 #endif /* __IMMDevice_FWD_DEFINED__ */ 65 66 67 #ifndef __IMMDeviceCollection_FWD_DEFINED__ 68 #define __IMMDeviceCollection_FWD_DEFINED__ 69 typedef interface IMMDeviceCollection IMMDeviceCollection; 70 #endif /* __IMMDeviceCollection_FWD_DEFINED__ */ 71 72 73 #ifndef __IMMEndpoint_FWD_DEFINED__ 74 #define __IMMEndpoint_FWD_DEFINED__ 75 typedef interface IMMEndpoint IMMEndpoint; 76 #endif /* __IMMEndpoint_FWD_DEFINED__ */ 77 78 79 #ifndef __IMMDeviceEnumerator_FWD_DEFINED__ 80 #define __IMMDeviceEnumerator_FWD_DEFINED__ 81 typedef interface IMMDeviceEnumerator IMMDeviceEnumerator; 82 #endif /* __IMMDeviceEnumerator_FWD_DEFINED__ */ 83 84 85 #ifndef __IMMDeviceActivator_FWD_DEFINED__ 86 #define __IMMDeviceActivator_FWD_DEFINED__ 87 typedef interface IMMDeviceActivator IMMDeviceActivator; 88 #endif /* __IMMDeviceActivator_FWD_DEFINED__ */ 89 90 91 #ifndef __MMDeviceEnumerator_FWD_DEFINED__ 92 #define __MMDeviceEnumerator_FWD_DEFINED__ 93 94 #ifdef __cplusplus 95 typedef class MMDeviceEnumerator MMDeviceEnumerator; 96 #else 97 typedef struct MMDeviceEnumerator MMDeviceEnumerator; 98 #endif /* __cplusplus */ 99 100 #endif /* __MMDeviceEnumerator_FWD_DEFINED__ */ 101 102 103 /* header files for imported files */ 104 #include "unknwn.h" 105 #include "propsys.h" 106 107 #ifdef __cplusplus 108 extern "C"{ 109 #endif 110 111 112 /* interface __MIDL_itf_mmdeviceapi_0000_0000 */ 113 /* [local] */ 114 115 #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND) 116 #define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE) 117 #define DEVICE_STATE_ACTIVE 0x00000001 118 #define DEVICE_STATE_DISABLED 0x00000002 119 #define DEVICE_STATE_NOTPRESENT 0x00000004 120 #define DEVICE_STATE_UNPLUGGED 0x00000008 121 #define DEVICE_STATEMASK_ALL 0x0000000f 122 #ifdef DEFINE_PROPERTYKEY 123 #undef DEFINE_PROPERTYKEY 124 #endif 125 #ifdef INITGUID 126 #define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const PROPERTYKEY name = { { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid } 127 #else 128 #define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const PROPERTYKEY name 129 #endif // INITGUID 130 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 0); 131 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 1); 132 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 2); 133 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 3); 134 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 4); 135 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 5); 136 #define ENDPOINT_SYSFX_ENABLED 0x00000000 // System Effects are enabled. 137 #define ENDPOINT_SYSFX_DISABLED 0x00000001 // System Effects are disabled. 138 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 6); 139 DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat, 0xf19f064d, 0x82c, 0x4e27, 0xbc, 0x73, 0x68, 0x82, 0xa1, 0xbb, 0x8e, 0x4c, 0); 140 typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS 141 { 142 DWORD cbDirectXAudioActivationParams; 143 GUID guidAudioSession; 144 DWORD dwAudioStreamFlags; 145 } DIRECTX_AUDIO_ACTIVATION_PARAMS; 146 147 typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS *PDIRECTX_AUDIO_ACTIVATION_PARAMS; 148 149 typedef /* [public][public][public][public][public] */ 150 enum __MIDL___MIDL_itf_mmdeviceapi_0000_0000_0001 151 { eRender = 0, 152 eCapture = ( eRender + 1 ) , 153 eAll = ( eCapture + 1 ) , 154 EDataFlow_enum_count = ( eAll + 1 ) 155 } EDataFlow; 156 157 typedef /* [public][public][public] */ 158 enum __MIDL___MIDL_itf_mmdeviceapi_0000_0000_0002 159 { eConsole = 0, 160 eMultimedia = ( eConsole + 1 ) , 161 eCommunications = ( eMultimedia + 1 ) , 162 ERole_enum_count = ( eCommunications + 1 ) 163 } ERole; 164 165 typedef /* [public] */ 166 enum __MIDL___MIDL_itf_mmdeviceapi_0000_0000_0003 167 { RemoteNetworkDevice = 0, 168 Speakers = ( RemoteNetworkDevice + 1 ) , 169 LineLevel = ( Speakers + 1 ) , 170 Headphones = ( LineLevel + 1 ) , 171 Microphone = ( Headphones + 1 ) , 172 Headset = ( Microphone + 1 ) , 173 Handset = ( Headset + 1 ) , 174 UnknownDigitalPassthrough = ( Handset + 1 ) , 175 SPDIF = ( UnknownDigitalPassthrough + 1 ) , 176 HDMI = ( SPDIF + 1 ) , 177 UnknownFormFactor = ( HDMI + 1 ) 178 } EndpointFormFactor; 179 180 181 182 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0000_v0_0_c_ifspec; 183 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0000_v0_0_s_ifspec; 184 185 #ifndef __IMMNotificationClient_INTERFACE_DEFINED__ 186 #define __IMMNotificationClient_INTERFACE_DEFINED__ 187 188 /* interface IMMNotificationClient */ 189 /* [unique][helpstring][nonextensible][uuid][local][object] */ 190 191 192 EXTERN_C const IID IID_IMMNotificationClient; 193 194 #if defined(__cplusplus) && !defined(CINTERFACE) 195 196 MIDL_INTERFACE("7991EEC9-7E89-4D85-8390-6C703CEC60C0") 197 IMMNotificationClient : public IUnknown 198 { 199 public: 200 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceStateChanged( 201 /* [in] */ 202 __in LPCWSTR pwstrDeviceId, 203 /* [in] */ 204 __in DWORD dwNewState) = 0; 205 206 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceAdded( 207 /* [in] */ 208 __in LPCWSTR pwstrDeviceId) = 0; 209 210 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceRemoved( 211 /* [in] */ 212 __in LPCWSTR pwstrDeviceId) = 0; 213 214 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged( 215 /* [in] */ 216 __in EDataFlow flow, 217 /* [in] */ 218 __in ERole role, 219 /* [in] */ 220 __in LPCWSTR pwstrDefaultDeviceId) = 0; 221 222 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnPropertyValueChanged( 223 /* [in] */ 224 __in LPCWSTR pwstrDeviceId, 225 /* [in] */ 226 __in const PROPERTYKEY key) = 0; 227 228 }; 229 230 #else /* C style interface */ 231 232 typedef struct IMMNotificationClientVtbl 233 { 234 BEGIN_INTERFACE 235 236 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 237 IMMNotificationClient * This, 238 /* [in] */ REFIID riid, 239 /* [iid_is][out] */ 240 __RPC__deref_out void **ppvObject); 241 242 ULONG ( STDMETHODCALLTYPE *AddRef )( 243 IMMNotificationClient * This); 244 245 ULONG ( STDMETHODCALLTYPE *Release )( 246 IMMNotificationClient * This); 247 248 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceStateChanged )( 249 IMMNotificationClient * This, 250 /* [in] */ 251 __in LPCWSTR pwstrDeviceId, 252 /* [in] */ 253 __in DWORD dwNewState); 254 255 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceAdded )( 256 IMMNotificationClient * This, 257 /* [in] */ 258 __in LPCWSTR pwstrDeviceId); 259 260 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceRemoved )( 261 IMMNotificationClient * This, 262 /* [in] */ 263 __in LPCWSTR pwstrDeviceId); 264 265 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDefaultDeviceChanged )( 266 IMMNotificationClient * This, 267 /* [in] */ 268 __in EDataFlow flow, 269 /* [in] */ 270 __in ERole role, 271 /* [in] */ 272 __in LPCWSTR pwstrDefaultDeviceId); 273 274 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnPropertyValueChanged )( 275 IMMNotificationClient * This, 276 /* [in] */ 277 __in LPCWSTR pwstrDeviceId, 278 /* [in] */ 279 __in const PROPERTYKEY key); 280 281 END_INTERFACE 282 } IMMNotificationClientVtbl; 283 284 interface IMMNotificationClient 285 { 286 CONST_VTBL struct IMMNotificationClientVtbl *lpVtbl; 287 }; 288 289 290 291 #ifdef COBJMACROS 292 293 294 #define IMMNotificationClient_QueryInterface(This,riid,ppvObject) \ 295 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 296 297 #define IMMNotificationClient_AddRef(This) \ 298 ( (This)->lpVtbl -> AddRef(This) ) 299 300 #define IMMNotificationClient_Release(This) \ 301 ( (This)->lpVtbl -> Release(This) ) 302 303 304 #define IMMNotificationClient_OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) \ 305 ( (This)->lpVtbl -> OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) ) 306 307 #define IMMNotificationClient_OnDeviceAdded(This,pwstrDeviceId) \ 308 ( (This)->lpVtbl -> OnDeviceAdded(This,pwstrDeviceId) ) 309 310 #define IMMNotificationClient_OnDeviceRemoved(This,pwstrDeviceId) \ 311 ( (This)->lpVtbl -> OnDeviceRemoved(This,pwstrDeviceId) ) 312 313 #define IMMNotificationClient_OnDefaultDeviceChanged(This,flow,role,pwstrDefaultDeviceId) \ 314 ( (This)->lpVtbl -> OnDefaultDeviceChanged(This,flow,role,pwstrDefaultDeviceId) ) 315 316 #define IMMNotificationClient_OnPropertyValueChanged(This,pwstrDeviceId,key) \ 317 ( (This)->lpVtbl -> OnPropertyValueChanged(This,pwstrDeviceId,key) ) 318 319 #endif /* COBJMACROS */ 320 321 322 #endif /* C style interface */ 323 324 325 326 327 #endif /* __IMMNotificationClient_INTERFACE_DEFINED__ */ 328 329 330 #ifndef __IMMDevice_INTERFACE_DEFINED__ 331 #define __IMMDevice_INTERFACE_DEFINED__ 332 333 /* interface IMMDevice */ 334 /* [unique][helpstring][nonextensible][uuid][local][object] */ 335 336 337 EXTERN_C const IID IID_IMMDevice; 338 339 #if defined(__cplusplus) && !defined(CINTERFACE) 340 341 MIDL_INTERFACE("D666063F-1587-4E43-81F1-B948E807363F") 342 IMMDevice : public IUnknown 343 { 344 public: 345 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( 346 /* [in] */ 347 __in REFIID iid, 348 /* [in] */ 349 __in DWORD dwClsCtx, 350 /* [unique][in] */ 351 __in_opt PROPVARIANT *pActivationParams, 352 /* [iid_is][out] */ 353 __out void **ppInterface) = 0; 354 355 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenPropertyStore( 356 /* [in] */ 357 __in DWORD stgmAccess, 358 /* [out] */ 359 __out IPropertyStore **ppProperties) = 0; 360 361 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetId( 362 /* [out] */ 363 __deref_out LPWSTR *ppstrId) = 0; 364 365 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetState( 366 /* [out] */ 367 __out DWORD *pdwState) = 0; 368 369 }; 370 371 #else /* C style interface */ 372 373 typedef struct IMMDeviceVtbl 374 { 375 BEGIN_INTERFACE 376 377 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 378 IMMDevice * This, 379 /* [in] */ REFIID riid, 380 /* [iid_is][out] */ 381 __RPC__deref_out void **ppvObject); 382 383 ULONG ( STDMETHODCALLTYPE *AddRef )( 384 IMMDevice * This); 385 386 ULONG ( STDMETHODCALLTYPE *Release )( 387 IMMDevice * This); 388 389 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( 390 IMMDevice * This, 391 /* [in] */ 392 __in REFIID iid, 393 /* [in] */ 394 __in DWORD dwClsCtx, 395 /* [unique][in] */ 396 __in_opt PROPVARIANT *pActivationParams, 397 /* [iid_is][out] */ 398 __out void **ppInterface); 399 400 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenPropertyStore )( 401 IMMDevice * This, 402 /* [in] */ 403 __in DWORD stgmAccess, 404 /* [out] */ 405 __out IPropertyStore **ppProperties); 406 407 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetId )( 408 IMMDevice * This, 409 /* [out] */ 410 __deref_out LPWSTR *ppstrId); 411 412 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetState )( 413 IMMDevice * This, 414 /* [out] */ 415 __out DWORD *pdwState); 416 417 END_INTERFACE 418 } IMMDeviceVtbl; 419 420 interface IMMDevice 421 { 422 CONST_VTBL struct IMMDeviceVtbl *lpVtbl; 423 }; 424 425 426 427 #ifdef COBJMACROS 428 429 430 #define IMMDevice_QueryInterface(This,riid,ppvObject) \ 431 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 432 433 #define IMMDevice_AddRef(This) \ 434 ( (This)->lpVtbl -> AddRef(This) ) 435 436 #define IMMDevice_Release(This) \ 437 ( (This)->lpVtbl -> Release(This) ) 438 439 440 #define IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppInterface) \ 441 ( (This)->lpVtbl -> Activate(This,iid,dwClsCtx,pActivationParams,ppInterface) ) 442 443 #define IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) \ 444 ( (This)->lpVtbl -> OpenPropertyStore(This,stgmAccess,ppProperties) ) 445 446 #define IMMDevice_GetId(This,ppstrId) \ 447 ( (This)->lpVtbl -> GetId(This,ppstrId) ) 448 449 #define IMMDevice_GetState(This,pdwState) \ 450 ( (This)->lpVtbl -> GetState(This,pdwState) ) 451 452 #endif /* COBJMACROS */ 453 454 455 #endif /* C style interface */ 456 457 458 459 460 #endif /* __IMMDevice_INTERFACE_DEFINED__ */ 461 462 463 #ifndef __IMMDeviceCollection_INTERFACE_DEFINED__ 464 #define __IMMDeviceCollection_INTERFACE_DEFINED__ 465 466 /* interface IMMDeviceCollection */ 467 /* [unique][helpstring][nonextensible][uuid][local][object] */ 468 469 470 EXTERN_C const IID IID_IMMDeviceCollection; 471 472 #if defined(__cplusplus) && !defined(CINTERFACE) 473 474 MIDL_INTERFACE("0BD7A1BE-7A1A-44DB-8397-CC5392387B5E") 475 IMMDeviceCollection : public IUnknown 476 { 477 public: 478 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( 479 /* [out] */ 480 __out UINT *pcDevices) = 0; 481 482 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 483 /* [in] */ 484 __in UINT nDevice, 485 /* [out] */ 486 __out IMMDevice **ppDevice) = 0; 487 488 }; 489 490 #else /* C style interface */ 491 492 typedef struct IMMDeviceCollectionVtbl 493 { 494 BEGIN_INTERFACE 495 496 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 497 IMMDeviceCollection * This, 498 /* [in] */ REFIID riid, 499 /* [iid_is][out] */ 500 __RPC__deref_out void **ppvObject); 501 502 ULONG ( STDMETHODCALLTYPE *AddRef )( 503 IMMDeviceCollection * This); 504 505 ULONG ( STDMETHODCALLTYPE *Release )( 506 IMMDeviceCollection * This); 507 508 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 509 IMMDeviceCollection * This, 510 /* [out] */ 511 __out UINT *pcDevices); 512 513 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 514 IMMDeviceCollection * This, 515 /* [in] */ 516 __in UINT nDevice, 517 /* [out] */ 518 __out IMMDevice **ppDevice); 519 520 END_INTERFACE 521 } IMMDeviceCollectionVtbl; 522 523 interface IMMDeviceCollection 524 { 525 CONST_VTBL struct IMMDeviceCollectionVtbl *lpVtbl; 526 }; 527 528 529 530 #ifdef COBJMACROS 531 532 533 #define IMMDeviceCollection_QueryInterface(This,riid,ppvObject) \ 534 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 535 536 #define IMMDeviceCollection_AddRef(This) \ 537 ( (This)->lpVtbl -> AddRef(This) ) 538 539 #define IMMDeviceCollection_Release(This) \ 540 ( (This)->lpVtbl -> Release(This) ) 541 542 543 #define IMMDeviceCollection_GetCount(This,pcDevices) \ 544 ( (This)->lpVtbl -> GetCount(This,pcDevices) ) 545 546 #define IMMDeviceCollection_Item(This,nDevice,ppDevice) \ 547 ( (This)->lpVtbl -> Item(This,nDevice,ppDevice) ) 548 549 #endif /* COBJMACROS */ 550 551 552 #endif /* C style interface */ 553 554 555 556 557 #endif /* __IMMDeviceCollection_INTERFACE_DEFINED__ */ 558 559 560 #ifndef __IMMEndpoint_INTERFACE_DEFINED__ 561 #define __IMMEndpoint_INTERFACE_DEFINED__ 562 563 /* interface IMMEndpoint */ 564 /* [unique][helpstring][nonextensible][uuid][local][object] */ 565 566 567 EXTERN_C const IID IID_IMMEndpoint; 568 569 #if defined(__cplusplus) && !defined(CINTERFACE) 570 571 MIDL_INTERFACE("1BE09788-6894-4089-8586-9A2A6C265AC5") 572 IMMEndpoint : public IUnknown 573 { 574 public: 575 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataFlow( 576 /* [out] */ 577 __out EDataFlow *pDataFlow) = 0; 578 579 }; 580 581 #else /* C style interface */ 582 583 typedef struct IMMEndpointVtbl 584 { 585 BEGIN_INTERFACE 586 587 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 588 IMMEndpoint * This, 589 /* [in] */ REFIID riid, 590 /* [iid_is][out] */ 591 __RPC__deref_out void **ppvObject); 592 593 ULONG ( STDMETHODCALLTYPE *AddRef )( 594 IMMEndpoint * This); 595 596 ULONG ( STDMETHODCALLTYPE *Release )( 597 IMMEndpoint * This); 598 599 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataFlow )( 600 IMMEndpoint * This, 601 /* [out] */ 602 __out EDataFlow *pDataFlow); 603 604 END_INTERFACE 605 } IMMEndpointVtbl; 606 607 interface IMMEndpoint 608 { 609 CONST_VTBL struct IMMEndpointVtbl *lpVtbl; 610 }; 611 612 613 614 #ifdef COBJMACROS 615 616 617 #define IMMEndpoint_QueryInterface(This,riid,ppvObject) \ 618 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 619 620 #define IMMEndpoint_AddRef(This) \ 621 ( (This)->lpVtbl -> AddRef(This) ) 622 623 #define IMMEndpoint_Release(This) \ 624 ( (This)->lpVtbl -> Release(This) ) 625 626 627 #define IMMEndpoint_GetDataFlow(This,pDataFlow) \ 628 ( (This)->lpVtbl -> GetDataFlow(This,pDataFlow) ) 629 630 #endif /* COBJMACROS */ 631 632 633 #endif /* C style interface */ 634 635 636 637 638 #endif /* __IMMEndpoint_INTERFACE_DEFINED__ */ 639 640 641 #ifndef __IMMDeviceEnumerator_INTERFACE_DEFINED__ 642 #define __IMMDeviceEnumerator_INTERFACE_DEFINED__ 643 644 /* interface IMMDeviceEnumerator */ 645 /* [unique][helpstring][nonextensible][uuid][local][object] */ 646 647 648 EXTERN_C const IID IID_IMMDeviceEnumerator; 649 650 #if defined(__cplusplus) && !defined(CINTERFACE) 651 652 MIDL_INTERFACE("A95664D2-9614-4F35-A746-DE8DB63617E6") 653 IMMDeviceEnumerator : public IUnknown 654 { 655 public: 656 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnumAudioEndpoints( 657 /* [in] */ 658 __in EDataFlow dataFlow, 659 /* [in] */ 660 __in DWORD dwStateMask, 661 /* [out] */ 662 __out IMMDeviceCollection **ppDevices) = 0; 663 664 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDefaultAudioEndpoint( 665 /* [in] */ 666 __in EDataFlow dataFlow, 667 /* [in] */ 668 __in ERole role, 669 /* [out] */ 670 __out IMMDevice **ppEndpoint) = 0; 671 672 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDevice( 673 /* */ 674 __in LPCWSTR pwstrId, 675 /* [out] */ 676 __out IMMDevice **ppDevice) = 0; 677 678 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterEndpointNotificationCallback( 679 /* [in] */ 680 __in IMMNotificationClient *pClient) = 0; 681 682 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnregisterEndpointNotificationCallback( 683 /* [in] */ 684 __in IMMNotificationClient *pClient) = 0; 685 686 }; 687 688 #else /* C style interface */ 689 690 typedef struct IMMDeviceEnumeratorVtbl 691 { 692 BEGIN_INTERFACE 693 694 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 695 IMMDeviceEnumerator * This, 696 /* [in] */ REFIID riid, 697 /* [iid_is][out] */ 698 __RPC__deref_out void **ppvObject); 699 700 ULONG ( STDMETHODCALLTYPE *AddRef )( 701 IMMDeviceEnumerator * This); 702 703 ULONG ( STDMETHODCALLTYPE *Release )( 704 IMMDeviceEnumerator * This); 705 706 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumAudioEndpoints )( 707 IMMDeviceEnumerator * This, 708 /* [in] */ 709 __in EDataFlow dataFlow, 710 /* [in] */ 711 __in DWORD dwStateMask, 712 /* [out] */ 713 __out IMMDeviceCollection **ppDevices); 714 715 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultAudioEndpoint )( 716 IMMDeviceEnumerator * This, 717 /* [in] */ 718 __in EDataFlow dataFlow, 719 /* [in] */ 720 __in ERole role, 721 /* [out] */ 722 __out IMMDevice **ppEndpoint); 723 724 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDevice )( 725 IMMDeviceEnumerator * This, 726 /* */ 727 __in LPCWSTR pwstrId, 728 /* [out] */ 729 __out IMMDevice **ppDevice); 730 731 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterEndpointNotificationCallback )( 732 IMMDeviceEnumerator * This, 733 /* [in] */ 734 __in IMMNotificationClient *pClient); 735 736 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterEndpointNotificationCallback )( 737 IMMDeviceEnumerator * This, 738 /* [in] */ 739 __in IMMNotificationClient *pClient); 740 741 END_INTERFACE 742 } IMMDeviceEnumeratorVtbl; 743 744 interface IMMDeviceEnumerator 745 { 746 CONST_VTBL struct IMMDeviceEnumeratorVtbl *lpVtbl; 747 }; 748 749 750 751 #ifdef COBJMACROS 752 753 754 #define IMMDeviceEnumerator_QueryInterface(This,riid,ppvObject) \ 755 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 756 757 #define IMMDeviceEnumerator_AddRef(This) \ 758 ( (This)->lpVtbl -> AddRef(This) ) 759 760 #define IMMDeviceEnumerator_Release(This) \ 761 ( (This)->lpVtbl -> Release(This) ) 762 763 764 #define IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) \ 765 ( (This)->lpVtbl -> EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) ) 766 767 #define IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) \ 768 ( (This)->lpVtbl -> GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) ) 769 770 #define IMMDeviceEnumerator_GetDevice(This,pwstrId,ppDevice) \ 771 ( (This)->lpVtbl -> GetDevice(This,pwstrId,ppDevice) ) 772 773 #define IMMDeviceEnumerator_RegisterEndpointNotificationCallback(This,pClient) \ 774 ( (This)->lpVtbl -> RegisterEndpointNotificationCallback(This,pClient) ) 775 776 #define IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(This,pClient) \ 777 ( (This)->lpVtbl -> UnregisterEndpointNotificationCallback(This,pClient) ) 778 779 #endif /* COBJMACROS */ 780 781 782 #endif /* C style interface */ 783 784 785 786 787 #endif /* __IMMDeviceEnumerator_INTERFACE_DEFINED__ */ 788 789 790 #ifndef __IMMDeviceActivator_INTERFACE_DEFINED__ 791 #define __IMMDeviceActivator_INTERFACE_DEFINED__ 792 793 /* interface IMMDeviceActivator */ 794 /* [unique][helpstring][nonextensible][uuid][local][object] */ 795 796 797 EXTERN_C const IID IID_IMMDeviceActivator; 798 799 #if defined(__cplusplus) && !defined(CINTERFACE) 800 801 MIDL_INTERFACE("3B0D0EA4-D0A9-4B0E-935B-09516746FAC0") 802 IMMDeviceActivator : public IUnknown 803 { 804 public: 805 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( 806 /* [in] */ 807 __in REFIID iid, 808 /* [in] */ 809 __in IMMDevice *pDevice, 810 /* [in] */ 811 __in_opt PROPVARIANT *pActivationParams, 812 /* [iid_is][out] */ 813 __out void **ppInterface) = 0; 814 815 }; 816 817 #else /* C style interface */ 818 819 typedef struct IMMDeviceActivatorVtbl 820 { 821 BEGIN_INTERFACE 822 823 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 824 IMMDeviceActivator * This, 825 /* [in] */ REFIID riid, 826 /* [iid_is][out] */ 827 __RPC__deref_out void **ppvObject); 828 829 ULONG ( STDMETHODCALLTYPE *AddRef )( 830 IMMDeviceActivator * This); 831 832 ULONG ( STDMETHODCALLTYPE *Release )( 833 IMMDeviceActivator * This); 834 835 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( 836 IMMDeviceActivator * This, 837 /* [in] */ 838 __in REFIID iid, 839 /* [in] */ 840 __in IMMDevice *pDevice, 841 /* [in] */ 842 __in_opt PROPVARIANT *pActivationParams, 843 /* [iid_is][out] */ 844 __out void **ppInterface); 845 846 END_INTERFACE 847 } IMMDeviceActivatorVtbl; 848 849 interface IMMDeviceActivator 850 { 851 CONST_VTBL struct IMMDeviceActivatorVtbl *lpVtbl; 852 }; 853 854 855 856 #ifdef COBJMACROS 857 858 859 #define IMMDeviceActivator_QueryInterface(This,riid,ppvObject) \ 860 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 861 862 #define IMMDeviceActivator_AddRef(This) \ 863 ( (This)->lpVtbl -> AddRef(This) ) 864 865 #define IMMDeviceActivator_Release(This) \ 866 ( (This)->lpVtbl -> Release(This) ) 867 868 869 #define IMMDeviceActivator_Activate(This,iid,pDevice,pActivationParams,ppInterface) \ 870 ( (This)->lpVtbl -> Activate(This,iid,pDevice,pActivationParams,ppInterface) ) 871 872 #endif /* COBJMACROS */ 873 874 875 #endif /* C style interface */ 876 877 878 879 880 #endif /* __IMMDeviceActivator_INTERFACE_DEFINED__ */ 881 882 883 /* interface __MIDL_itf_mmdeviceapi_0000_0006 */ 884 /* [local] */ 885 886 typedef /* [public] */ struct __MIDL___MIDL_itf_mmdeviceapi_0000_0006_0001 887 { 888 LPARAM AddPageParam; 889 IMMDevice *pEndpoint; 890 IMMDevice *pPnpInterface; 891 IMMDevice *pPnpDevnode; 892 } AudioExtensionParams; 893 894 895 896 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0006_v0_0_c_ifspec; 897 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0006_v0_0_s_ifspec; 898 899 900 #ifndef __MMDeviceAPILib_LIBRARY_DEFINED__ 901 #define __MMDeviceAPILib_LIBRARY_DEFINED__ 902 903 /* library MMDeviceAPILib */ 904 /* [helpstring][version][uuid] */ 905 906 907 EXTERN_C const IID LIBID_MMDeviceAPILib; 908 909 EXTERN_C const CLSID CLSID_MMDeviceEnumerator; 910 911 #ifdef __cplusplus 912 913 class DECLSPEC_UUID("BCDE0395-E52F-467C-8E3D-C4579291692E") 914 MMDeviceEnumerator; 915 #endif 916 #endif /* __MMDeviceAPILib_LIBRARY_DEFINED__ */ 917 918 /* Additional Prototypes for ALL interfaces */ 919 920 /* end of Additional Prototypes */ 921 922 #ifdef __cplusplus 923 } 924 #endif 925 926 #endif 927 928 929 930