1/*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/src/mingw-w64-svn-r5861/mingw-w64-headers/include/mmdeviceapi.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 __mmdeviceapi_h__ 16#define __mmdeviceapi_h__ 17 18/* Forward declarations */ 19 20#ifndef __IMMNotificationClient_FWD_DEFINED__ 21#define __IMMNotificationClient_FWD_DEFINED__ 22typedef interface IMMNotificationClient IMMNotificationClient; 23#endif 24 25#ifndef __IMMDevice_FWD_DEFINED__ 26#define __IMMDevice_FWD_DEFINED__ 27typedef interface IMMDevice IMMDevice; 28#endif 29 30#ifndef __IMMDeviceCollection_FWD_DEFINED__ 31#define __IMMDeviceCollection_FWD_DEFINED__ 32typedef interface IMMDeviceCollection IMMDeviceCollection; 33#endif 34 35#ifndef __IMMEndpoint_FWD_DEFINED__ 36#define __IMMEndpoint_FWD_DEFINED__ 37typedef interface IMMEndpoint IMMEndpoint; 38#endif 39 40#ifndef __IMMDeviceEnumerator_FWD_DEFINED__ 41#define __IMMDeviceEnumerator_FWD_DEFINED__ 42typedef interface IMMDeviceEnumerator IMMDeviceEnumerator; 43#endif 44 45#ifndef __IMMDeviceActivator_FWD_DEFINED__ 46#define __IMMDeviceActivator_FWD_DEFINED__ 47typedef interface IMMDeviceActivator IMMDeviceActivator; 48#endif 49 50#ifndef __MMDeviceEnumerator_FWD_DEFINED__ 51#define __MMDeviceEnumerator_FWD_DEFINED__ 52#ifdef __cplusplus 53typedef class MMDeviceEnumerator MMDeviceEnumerator; 54#else 55typedef struct MMDeviceEnumerator MMDeviceEnumerator; 56#endif /* defined __cplusplus */ 57#endif /* defined __MMDeviceEnumerator_FWD_DEFINED__ */ 58 59/* Headers for imported files */ 60 61#include <unknwn.h> 62#include <propsys.h> 63 64#ifdef __cplusplus 65extern "C" { 66#endif 67 68#ifndef E_NOTFOUND 69#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND) 70#endif 71#ifndef E_UNSUPPORTED_TYPE 72#define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE) 73#endif 74#define DEVICE_STATE_ACTIVE 0x1 75#define DEVICE_STATE_DISABLED 0x2 76#define DEVICE_STATE_NOTPRESENT 0x4 77#define DEVICE_STATE_UNPLUGGED 0x8 78#define DEVICE_STATEMASK_ALL 0xf 79DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0); 80DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1); 81DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2); 82DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3); 83DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4); 84DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,5); 85#define ENDPOINT_SYSFX_ENABLED 0 86#define ENDPOINT_SYSFX_DISABLED 1 87DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6); 88DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7); 89DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8); 90DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0); 91DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3); 92typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS { 93 DWORD cbDirectXAudioActivationParams; 94 GUID guidAudioSession; 95 DWORD dwAudioStreamFlags; 96} DIRECTX_AUDIO_ACTIVATION_PARAMS; 97typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS *PDIRECTX_AUDIO_ACTIVATION_PARAMS; 98typedef enum _EDataFlow { 99 eRender = 0, 100 eCapture = 1, 101 eAll = 2, 102 EDataFlow_enum_count = 3 103} EDataFlow; 104typedef enum _ERole { 105 eConsole = 0, 106 eMultimedia = 1, 107 eCommunications = 2, 108 ERole_enum_count = 3 109} ERole; 110typedef enum _EndpointFormFactor { 111 RemoteNetworkDevice = 0, 112 Speakers = 1, 113 LineLevel = 2, 114 Headphones = 3, 115 Microphone = 4, 116 Headset = 5, 117 Handset = 6, 118 UnknownDigitalPassthrough = 7, 119 SPDIF = 8, 120 DigitalAudioDisplayDevice = 9, 121 UnknownFormFactor = 10, 122 EndpointFormFactor_enum_count = 11 123} EndpointFormFactor; 124#define HDMI DigitalAudioDisplayDevice 125/***************************************************************************** 126 * IMMNotificationClient interface 127 */ 128#ifndef __IMMNotificationClient_INTERFACE_DEFINED__ 129#define __IMMNotificationClient_INTERFACE_DEFINED__ 130 131DEFINE_GUID(IID_IMMNotificationClient, 0x7991eec9, 0x7e89, 0x4d85, 0x83,0x90, 0x6c,0x70,0x3c,0xec,0x60,0xc0); 132#if defined(__cplusplus) && !defined(CINTERFACE) 133MIDL_INTERFACE("7991eec9-7e89-4d85-8390-6c703cec60c0") 134IMMNotificationClient : public IUnknown 135{ 136 virtual HRESULT STDMETHODCALLTYPE OnDeviceStateChanged( 137 LPCWSTR pwstrDeviceId, 138 DWORD dwNewState) = 0; 139 140 virtual HRESULT STDMETHODCALLTYPE OnDeviceAdded( 141 LPCWSTR pwstrDeviceId) = 0; 142 143 virtual HRESULT STDMETHODCALLTYPE OnDeviceRemoved( 144 LPCWSTR pwstrDeviceId) = 0; 145 146 virtual HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged( 147 EDataFlow flow, 148 ERole role, 149 LPCWSTR pwstrDeviceId) = 0; 150 151 virtual HRESULT STDMETHODCALLTYPE OnPropertyValueChanged( 152 LPCWSTR pwstrDeviceId, 153 const PROPERTYKEY key) = 0; 154 155}; 156#ifdef __CRT_UUID_DECL 157__CRT_UUID_DECL(IMMNotificationClient, 0x7991eec9, 0x7e89, 0x4d85, 0x83,0x90, 0x6c,0x70,0x3c,0xec,0x60,0xc0) 158#endif 159#else 160typedef struct IMMNotificationClientVtbl { 161 BEGIN_INTERFACE 162 163 /*** IUnknown methods ***/ 164 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 165 IMMNotificationClient* This, 166 REFIID riid, 167 void **ppvObject); 168 169 ULONG (STDMETHODCALLTYPE *AddRef)( 170 IMMNotificationClient* This); 171 172 ULONG (STDMETHODCALLTYPE *Release)( 173 IMMNotificationClient* This); 174 175 /*** IMMNotificationClient methods ***/ 176 HRESULT (STDMETHODCALLTYPE *OnDeviceStateChanged)( 177 IMMNotificationClient* This, 178 LPCWSTR pwstrDeviceId, 179 DWORD dwNewState); 180 181 HRESULT (STDMETHODCALLTYPE *OnDeviceAdded)( 182 IMMNotificationClient* This, 183 LPCWSTR pwstrDeviceId); 184 185 HRESULT (STDMETHODCALLTYPE *OnDeviceRemoved)( 186 IMMNotificationClient* This, 187 LPCWSTR pwstrDeviceId); 188 189 HRESULT (STDMETHODCALLTYPE *OnDefaultDeviceChanged)( 190 IMMNotificationClient* This, 191 EDataFlow flow, 192 ERole role, 193 LPCWSTR pwstrDeviceId); 194 195 HRESULT (STDMETHODCALLTYPE *OnPropertyValueChanged)( 196 IMMNotificationClient* This, 197 LPCWSTR pwstrDeviceId, 198 const PROPERTYKEY key); 199 200 END_INTERFACE 201} IMMNotificationClientVtbl; 202interface IMMNotificationClient { 203 CONST_VTBL IMMNotificationClientVtbl* lpVtbl; 204}; 205 206#ifdef COBJMACROS 207#ifndef WIDL_C_INLINE_WRAPPERS 208/*** IUnknown methods ***/ 209#define IMMNotificationClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 210#define IMMNotificationClient_AddRef(This) (This)->lpVtbl->AddRef(This) 211#define IMMNotificationClient_Release(This) (This)->lpVtbl->Release(This) 212/*** IMMNotificationClient methods ***/ 213#define IMMNotificationClient_OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) (This)->lpVtbl->OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) 214#define IMMNotificationClient_OnDeviceAdded(This,pwstrDeviceId) (This)->lpVtbl->OnDeviceAdded(This,pwstrDeviceId) 215#define IMMNotificationClient_OnDeviceRemoved(This,pwstrDeviceId) (This)->lpVtbl->OnDeviceRemoved(This,pwstrDeviceId) 216#define IMMNotificationClient_OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId) (This)->lpVtbl->OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId) 217#define IMMNotificationClient_OnPropertyValueChanged(This,pwstrDeviceId,key) (This)->lpVtbl->OnPropertyValueChanged(This,pwstrDeviceId,key) 218#else 219/*** IUnknown methods ***/ 220static FORCEINLINE HRESULT IMMNotificationClient_QueryInterface(IMMNotificationClient* This,REFIID riid,void **ppvObject) { 221 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 222} 223static FORCEINLINE ULONG IMMNotificationClient_AddRef(IMMNotificationClient* This) { 224 return This->lpVtbl->AddRef(This); 225} 226static FORCEINLINE ULONG IMMNotificationClient_Release(IMMNotificationClient* This) { 227 return This->lpVtbl->Release(This); 228} 229/*** IMMNotificationClient methods ***/ 230static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceStateChanged(IMMNotificationClient* This,LPCWSTR pwstrDeviceId,DWORD dwNewState) { 231 return This->lpVtbl->OnDeviceStateChanged(This,pwstrDeviceId,dwNewState); 232} 233static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceAdded(IMMNotificationClient* This,LPCWSTR pwstrDeviceId) { 234 return This->lpVtbl->OnDeviceAdded(This,pwstrDeviceId); 235} 236static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceRemoved(IMMNotificationClient* This,LPCWSTR pwstrDeviceId) { 237 return This->lpVtbl->OnDeviceRemoved(This,pwstrDeviceId); 238} 239static FORCEINLINE HRESULT IMMNotificationClient_OnDefaultDeviceChanged(IMMNotificationClient* This,EDataFlow flow,ERole role,LPCWSTR pwstrDeviceId) { 240 return This->lpVtbl->OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId); 241} 242static FORCEINLINE HRESULT IMMNotificationClient_OnPropertyValueChanged(IMMNotificationClient* This,LPCWSTR pwstrDeviceId,const PROPERTYKEY key) { 243 return This->lpVtbl->OnPropertyValueChanged(This,pwstrDeviceId,key); 244} 245#endif 246#endif 247 248#endif 249 250HRESULT STDMETHODCALLTYPE IMMNotificationClient_OnDeviceStateChanged_Proxy( 251 IMMNotificationClient* This, 252 LPCWSTR pwstrDeviceId, 253 DWORD dwNewState); 254void __RPC_STUB IMMNotificationClient_OnDeviceStateChanged_Stub( 255 IRpcStubBuffer* This, 256 IRpcChannelBuffer* pRpcChannelBuffer, 257 PRPC_MESSAGE pRpcMessage, 258 DWORD* pdwStubPhase); 259HRESULT STDMETHODCALLTYPE IMMNotificationClient_OnDeviceAdded_Proxy( 260 IMMNotificationClient* This, 261 LPCWSTR pwstrDeviceId); 262void __RPC_STUB IMMNotificationClient_OnDeviceAdded_Stub( 263 IRpcStubBuffer* This, 264 IRpcChannelBuffer* pRpcChannelBuffer, 265 PRPC_MESSAGE pRpcMessage, 266 DWORD* pdwStubPhase); 267HRESULT STDMETHODCALLTYPE IMMNotificationClient_OnDeviceRemoved_Proxy( 268 IMMNotificationClient* This, 269 LPCWSTR pwstrDeviceId); 270void __RPC_STUB IMMNotificationClient_OnDeviceRemoved_Stub( 271 IRpcStubBuffer* This, 272 IRpcChannelBuffer* pRpcChannelBuffer, 273 PRPC_MESSAGE pRpcMessage, 274 DWORD* pdwStubPhase); 275HRESULT STDMETHODCALLTYPE IMMNotificationClient_OnDefaultDeviceChanged_Proxy( 276 IMMNotificationClient* This, 277 EDataFlow flow, 278 ERole role, 279 LPCWSTR pwstrDeviceId); 280void __RPC_STUB IMMNotificationClient_OnDefaultDeviceChanged_Stub( 281 IRpcStubBuffer* This, 282 IRpcChannelBuffer* pRpcChannelBuffer, 283 PRPC_MESSAGE pRpcMessage, 284 DWORD* pdwStubPhase); 285HRESULT STDMETHODCALLTYPE IMMNotificationClient_OnPropertyValueChanged_Proxy( 286 IMMNotificationClient* This, 287 LPCWSTR pwstrDeviceId, 288 const PROPERTYKEY key); 289void __RPC_STUB IMMNotificationClient_OnPropertyValueChanged_Stub( 290 IRpcStubBuffer* This, 291 IRpcChannelBuffer* pRpcChannelBuffer, 292 PRPC_MESSAGE pRpcMessage, 293 DWORD* pdwStubPhase); 294 295#endif /* __IMMNotificationClient_INTERFACE_DEFINED__ */ 296 297/***************************************************************************** 298 * IMMDevice interface 299 */ 300#ifndef __IMMDevice_INTERFACE_DEFINED__ 301#define __IMMDevice_INTERFACE_DEFINED__ 302 303DEFINE_GUID(IID_IMMDevice, 0xd666063f, 0x1587, 0x4e43, 0x81,0xf1, 0xb9,0x48,0xe8,0x07,0x36,0x3f); 304#if defined(__cplusplus) && !defined(CINTERFACE) 305MIDL_INTERFACE("d666063f-1587-4e43-81f1-b948e807363f") 306IMMDevice : public IUnknown 307{ 308 virtual HRESULT STDMETHODCALLTYPE Activate( 309 REFIID iid, 310 DWORD dwClsCtx, 311 PROPVARIANT *pActivationParams, 312 void **ppv) = 0; 313 314 virtual HRESULT STDMETHODCALLTYPE OpenPropertyStore( 315 DWORD stgmAccess, 316 IPropertyStore **ppProperties) = 0; 317 318 virtual HRESULT STDMETHODCALLTYPE GetId( 319 LPWSTR *ppstrId) = 0; 320 321 virtual HRESULT STDMETHODCALLTYPE GetState( 322 DWORD *pdwState) = 0; 323 324}; 325#ifdef __CRT_UUID_DECL 326__CRT_UUID_DECL(IMMDevice, 0xd666063f, 0x1587, 0x4e43, 0x81,0xf1, 0xb9,0x48,0xe8,0x07,0x36,0x3f) 327#endif 328#else 329typedef struct IMMDeviceVtbl { 330 BEGIN_INTERFACE 331 332 /*** IUnknown methods ***/ 333 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 334 IMMDevice* This, 335 REFIID riid, 336 void **ppvObject); 337 338 ULONG (STDMETHODCALLTYPE *AddRef)( 339 IMMDevice* This); 340 341 ULONG (STDMETHODCALLTYPE *Release)( 342 IMMDevice* This); 343 344 /*** IMMDevice methods ***/ 345 HRESULT (STDMETHODCALLTYPE *Activate)( 346 IMMDevice* This, 347 REFIID iid, 348 DWORD dwClsCtx, 349 PROPVARIANT *pActivationParams, 350 void **ppv); 351 352 HRESULT (STDMETHODCALLTYPE *OpenPropertyStore)( 353 IMMDevice* This, 354 DWORD stgmAccess, 355 IPropertyStore **ppProperties); 356 357 HRESULT (STDMETHODCALLTYPE *GetId)( 358 IMMDevice* This, 359 LPWSTR *ppstrId); 360 361 HRESULT (STDMETHODCALLTYPE *GetState)( 362 IMMDevice* This, 363 DWORD *pdwState); 364 365 END_INTERFACE 366} IMMDeviceVtbl; 367interface IMMDevice { 368 CONST_VTBL IMMDeviceVtbl* lpVtbl; 369}; 370 371#ifdef COBJMACROS 372#ifndef WIDL_C_INLINE_WRAPPERS 373/*** IUnknown methods ***/ 374#define IMMDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 375#define IMMDevice_AddRef(This) (This)->lpVtbl->AddRef(This) 376#define IMMDevice_Release(This) (This)->lpVtbl->Release(This) 377/*** IMMDevice methods ***/ 378#define IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppv) (This)->lpVtbl->Activate(This,iid,dwClsCtx,pActivationParams,ppv) 379#define IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) (This)->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties) 380#define IMMDevice_GetId(This,ppstrId) (This)->lpVtbl->GetId(This,ppstrId) 381#define IMMDevice_GetState(This,pdwState) (This)->lpVtbl->GetState(This,pdwState) 382#else 383/*** IUnknown methods ***/ 384static FORCEINLINE HRESULT IMMDevice_QueryInterface(IMMDevice* This,REFIID riid,void **ppvObject) { 385 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 386} 387static FORCEINLINE ULONG IMMDevice_AddRef(IMMDevice* This) { 388 return This->lpVtbl->AddRef(This); 389} 390static FORCEINLINE ULONG IMMDevice_Release(IMMDevice* This) { 391 return This->lpVtbl->Release(This); 392} 393/*** IMMDevice methods ***/ 394static FORCEINLINE HRESULT IMMDevice_Activate(IMMDevice* This,REFIID iid,DWORD dwClsCtx,PROPVARIANT *pActivationParams,void **ppv) { 395 return This->lpVtbl->Activate(This,iid,dwClsCtx,pActivationParams,ppv); 396} 397static FORCEINLINE HRESULT IMMDevice_OpenPropertyStore(IMMDevice* This,DWORD stgmAccess,IPropertyStore **ppProperties) { 398 return This->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties); 399} 400static FORCEINLINE HRESULT IMMDevice_GetId(IMMDevice* This,LPWSTR *ppstrId) { 401 return This->lpVtbl->GetId(This,ppstrId); 402} 403static FORCEINLINE HRESULT IMMDevice_GetState(IMMDevice* This,DWORD *pdwState) { 404 return This->lpVtbl->GetState(This,pdwState); 405} 406#endif 407#endif 408 409#endif 410 411HRESULT STDMETHODCALLTYPE IMMDevice_Activate_Proxy( 412 IMMDevice* This, 413 REFIID iid, 414 DWORD dwClsCtx, 415 PROPVARIANT *pActivationParams, 416 void **ppv); 417void __RPC_STUB IMMDevice_Activate_Stub( 418 IRpcStubBuffer* This, 419 IRpcChannelBuffer* pRpcChannelBuffer, 420 PRPC_MESSAGE pRpcMessage, 421 DWORD* pdwStubPhase); 422HRESULT STDMETHODCALLTYPE IMMDevice_OpenPropertyStore_Proxy( 423 IMMDevice* This, 424 DWORD stgmAccess, 425 IPropertyStore **ppProperties); 426void __RPC_STUB IMMDevice_OpenPropertyStore_Stub( 427 IRpcStubBuffer* This, 428 IRpcChannelBuffer* pRpcChannelBuffer, 429 PRPC_MESSAGE pRpcMessage, 430 DWORD* pdwStubPhase); 431HRESULT STDMETHODCALLTYPE IMMDevice_GetId_Proxy( 432 IMMDevice* This, 433 LPWSTR *ppstrId); 434void __RPC_STUB IMMDevice_GetId_Stub( 435 IRpcStubBuffer* This, 436 IRpcChannelBuffer* pRpcChannelBuffer, 437 PRPC_MESSAGE pRpcMessage, 438 DWORD* pdwStubPhase); 439HRESULT STDMETHODCALLTYPE IMMDevice_GetState_Proxy( 440 IMMDevice* This, 441 DWORD *pdwState); 442void __RPC_STUB IMMDevice_GetState_Stub( 443 IRpcStubBuffer* This, 444 IRpcChannelBuffer* pRpcChannelBuffer, 445 PRPC_MESSAGE pRpcMessage, 446 DWORD* pdwStubPhase); 447 448#endif /* __IMMDevice_INTERFACE_DEFINED__ */ 449 450/***************************************************************************** 451 * IMMDeviceCollection interface 452 */ 453#ifndef __IMMDeviceCollection_INTERFACE_DEFINED__ 454#define __IMMDeviceCollection_INTERFACE_DEFINED__ 455 456DEFINE_GUID(IID_IMMDeviceCollection, 0x0bd7a1be, 0x7a1a, 0x44db, 0x83,0x97, 0xcc,0x53,0x92,0x38,0x7b,0x5e); 457#if defined(__cplusplus) && !defined(CINTERFACE) 458MIDL_INTERFACE("0bd7a1be-7a1a-44db-8397-cc5392387b5e") 459IMMDeviceCollection : public IUnknown 460{ 461 virtual HRESULT STDMETHODCALLTYPE GetCount( 462 UINT *pcDevices) = 0; 463 464 virtual HRESULT STDMETHODCALLTYPE Item( 465 UINT nDevice, 466 IMMDevice **ppdevice) = 0; 467 468}; 469#ifdef __CRT_UUID_DECL 470__CRT_UUID_DECL(IMMDeviceCollection, 0x0bd7a1be, 0x7a1a, 0x44db, 0x83,0x97, 0xcc,0x53,0x92,0x38,0x7b,0x5e) 471#endif 472#else 473typedef struct IMMDeviceCollectionVtbl { 474 BEGIN_INTERFACE 475 476 /*** IUnknown methods ***/ 477 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 478 IMMDeviceCollection* This, 479 REFIID riid, 480 void **ppvObject); 481 482 ULONG (STDMETHODCALLTYPE *AddRef)( 483 IMMDeviceCollection* This); 484 485 ULONG (STDMETHODCALLTYPE *Release)( 486 IMMDeviceCollection* This); 487 488 /*** IMMDeviceCollection methods ***/ 489 HRESULT (STDMETHODCALLTYPE *GetCount)( 490 IMMDeviceCollection* This, 491 UINT *pcDevices); 492 493 HRESULT (STDMETHODCALLTYPE *Item)( 494 IMMDeviceCollection* This, 495 UINT nDevice, 496 IMMDevice **ppdevice); 497 498 END_INTERFACE 499} IMMDeviceCollectionVtbl; 500interface IMMDeviceCollection { 501 CONST_VTBL IMMDeviceCollectionVtbl* lpVtbl; 502}; 503 504#ifdef COBJMACROS 505#ifndef WIDL_C_INLINE_WRAPPERS 506/*** IUnknown methods ***/ 507#define IMMDeviceCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 508#define IMMDeviceCollection_AddRef(This) (This)->lpVtbl->AddRef(This) 509#define IMMDeviceCollection_Release(This) (This)->lpVtbl->Release(This) 510/*** IMMDeviceCollection methods ***/ 511#define IMMDeviceCollection_GetCount(This,pcDevices) (This)->lpVtbl->GetCount(This,pcDevices) 512#define IMMDeviceCollection_Item(This,nDevice,ppdevice) (This)->lpVtbl->Item(This,nDevice,ppdevice) 513#else 514/*** IUnknown methods ***/ 515static FORCEINLINE HRESULT IMMDeviceCollection_QueryInterface(IMMDeviceCollection* This,REFIID riid,void **ppvObject) { 516 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 517} 518static FORCEINLINE ULONG IMMDeviceCollection_AddRef(IMMDeviceCollection* This) { 519 return This->lpVtbl->AddRef(This); 520} 521static FORCEINLINE ULONG IMMDeviceCollection_Release(IMMDeviceCollection* This) { 522 return This->lpVtbl->Release(This); 523} 524/*** IMMDeviceCollection methods ***/ 525static FORCEINLINE HRESULT IMMDeviceCollection_GetCount(IMMDeviceCollection* This,UINT *pcDevices) { 526 return This->lpVtbl->GetCount(This,pcDevices); 527} 528static FORCEINLINE HRESULT IMMDeviceCollection_Item(IMMDeviceCollection* This,UINT nDevice,IMMDevice **ppdevice) { 529 return This->lpVtbl->Item(This,nDevice,ppdevice); 530} 531#endif 532#endif 533 534#endif 535 536HRESULT STDMETHODCALLTYPE IMMDeviceCollection_GetCount_Proxy( 537 IMMDeviceCollection* This, 538 UINT *pcDevices); 539void __RPC_STUB IMMDeviceCollection_GetCount_Stub( 540 IRpcStubBuffer* This, 541 IRpcChannelBuffer* pRpcChannelBuffer, 542 PRPC_MESSAGE pRpcMessage, 543 DWORD* pdwStubPhase); 544HRESULT STDMETHODCALLTYPE IMMDeviceCollection_Item_Proxy( 545 IMMDeviceCollection* This, 546 UINT nDevice, 547 IMMDevice **ppdevice); 548void __RPC_STUB IMMDeviceCollection_Item_Stub( 549 IRpcStubBuffer* This, 550 IRpcChannelBuffer* pRpcChannelBuffer, 551 PRPC_MESSAGE pRpcMessage, 552 DWORD* pdwStubPhase); 553 554#endif /* __IMMDeviceCollection_INTERFACE_DEFINED__ */ 555 556/***************************************************************************** 557 * IMMEndpoint interface 558 */ 559#ifndef __IMMEndpoint_INTERFACE_DEFINED__ 560#define __IMMEndpoint_INTERFACE_DEFINED__ 561 562DEFINE_GUID(IID_IMMEndpoint, 0x1be09788, 0x6894, 0x4089, 0x85,0x86, 0x9a,0x2a,0x6c,0x26,0x5a,0xc5); 563#if defined(__cplusplus) && !defined(CINTERFACE) 564MIDL_INTERFACE("1be09788-6894-4089-8586-9a2a6c265ac5") 565IMMEndpoint : public IUnknown 566{ 567 virtual HRESULT STDMETHODCALLTYPE GetDataFlow( 568 EDataFlow *pDataFlow) = 0; 569 570}; 571#ifdef __CRT_UUID_DECL 572__CRT_UUID_DECL(IMMEndpoint, 0x1be09788, 0x6894, 0x4089, 0x85,0x86, 0x9a,0x2a,0x6c,0x26,0x5a,0xc5) 573#endif 574#else 575typedef struct IMMEndpointVtbl { 576 BEGIN_INTERFACE 577 578 /*** IUnknown methods ***/ 579 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 580 IMMEndpoint* This, 581 REFIID riid, 582 void **ppvObject); 583 584 ULONG (STDMETHODCALLTYPE *AddRef)( 585 IMMEndpoint* This); 586 587 ULONG (STDMETHODCALLTYPE *Release)( 588 IMMEndpoint* This); 589 590 /*** IMMEndpoint methods ***/ 591 HRESULT (STDMETHODCALLTYPE *GetDataFlow)( 592 IMMEndpoint* This, 593 EDataFlow *pDataFlow); 594 595 END_INTERFACE 596} IMMEndpointVtbl; 597interface IMMEndpoint { 598 CONST_VTBL IMMEndpointVtbl* lpVtbl; 599}; 600 601#ifdef COBJMACROS 602#ifndef WIDL_C_INLINE_WRAPPERS 603/*** IUnknown methods ***/ 604#define IMMEndpoint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 605#define IMMEndpoint_AddRef(This) (This)->lpVtbl->AddRef(This) 606#define IMMEndpoint_Release(This) (This)->lpVtbl->Release(This) 607/*** IMMEndpoint methods ***/ 608#define IMMEndpoint_GetDataFlow(This,pDataFlow) (This)->lpVtbl->GetDataFlow(This,pDataFlow) 609#else 610/*** IUnknown methods ***/ 611static FORCEINLINE HRESULT IMMEndpoint_QueryInterface(IMMEndpoint* This,REFIID riid,void **ppvObject) { 612 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 613} 614static FORCEINLINE ULONG IMMEndpoint_AddRef(IMMEndpoint* This) { 615 return This->lpVtbl->AddRef(This); 616} 617static FORCEINLINE ULONG IMMEndpoint_Release(IMMEndpoint* This) { 618 return This->lpVtbl->Release(This); 619} 620/*** IMMEndpoint methods ***/ 621static FORCEINLINE HRESULT IMMEndpoint_GetDataFlow(IMMEndpoint* This,EDataFlow *pDataFlow) { 622 return This->lpVtbl->GetDataFlow(This,pDataFlow); 623} 624#endif 625#endif 626 627#endif 628 629HRESULT STDMETHODCALLTYPE IMMEndpoint_GetDataFlow_Proxy( 630 IMMEndpoint* This, 631 EDataFlow *pDataFlow); 632void __RPC_STUB IMMEndpoint_GetDataFlow_Stub( 633 IRpcStubBuffer* This, 634 IRpcChannelBuffer* pRpcChannelBuffer, 635 PRPC_MESSAGE pRpcMessage, 636 DWORD* pdwStubPhase); 637 638#endif /* __IMMEndpoint_INTERFACE_DEFINED__ */ 639 640/***************************************************************************** 641 * IMMDeviceEnumerator interface 642 */ 643#ifndef __IMMDeviceEnumerator_INTERFACE_DEFINED__ 644#define __IMMDeviceEnumerator_INTERFACE_DEFINED__ 645 646DEFINE_GUID(IID_IMMDeviceEnumerator, 0xa95664d2, 0x9614, 0x4f35, 0xa7,0x46, 0xde,0x8d,0xb6,0x36,0x17,0xe6); 647#if defined(__cplusplus) && !defined(CINTERFACE) 648MIDL_INTERFACE("a95664d2-9614-4f35-a746-de8db63617e6") 649IMMDeviceEnumerator : public IUnknown 650{ 651 virtual HRESULT STDMETHODCALLTYPE EnumAudioEndpoints( 652 EDataFlow dataFlow, 653 DWORD dwStateMask, 654 IMMDeviceCollection **ppDevices) = 0; 655 656 virtual HRESULT STDMETHODCALLTYPE GetDefaultAudioEndpoint( 657 EDataFlow dataFlow, 658 ERole role, 659 IMMDevice **ppEndpoint) = 0; 660 661 virtual HRESULT STDMETHODCALLTYPE GetDevice( 662 LPCWSTR pwstrId, 663 IMMDevice **ppDevice) = 0; 664 665 virtual HRESULT STDMETHODCALLTYPE RegisterEndpointNotificationCallback( 666 IMMNotificationClient *pClient) = 0; 667 668 virtual HRESULT STDMETHODCALLTYPE UnregisterEndpointNotificationCallback( 669 IMMNotificationClient *pClient) = 0; 670 671}; 672#ifdef __CRT_UUID_DECL 673__CRT_UUID_DECL(IMMDeviceEnumerator, 0xa95664d2, 0x9614, 0x4f35, 0xa7,0x46, 0xde,0x8d,0xb6,0x36,0x17,0xe6) 674#endif 675#else 676typedef struct IMMDeviceEnumeratorVtbl { 677 BEGIN_INTERFACE 678 679 /*** IUnknown methods ***/ 680 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 681 IMMDeviceEnumerator* This, 682 REFIID riid, 683 void **ppvObject); 684 685 ULONG (STDMETHODCALLTYPE *AddRef)( 686 IMMDeviceEnumerator* This); 687 688 ULONG (STDMETHODCALLTYPE *Release)( 689 IMMDeviceEnumerator* This); 690 691 /*** IMMDeviceEnumerator methods ***/ 692 HRESULT (STDMETHODCALLTYPE *EnumAudioEndpoints)( 693 IMMDeviceEnumerator* This, 694 EDataFlow dataFlow, 695 DWORD dwStateMask, 696 IMMDeviceCollection **ppDevices); 697 698 HRESULT (STDMETHODCALLTYPE *GetDefaultAudioEndpoint)( 699 IMMDeviceEnumerator* This, 700 EDataFlow dataFlow, 701 ERole role, 702 IMMDevice **ppEndpoint); 703 704 HRESULT (STDMETHODCALLTYPE *GetDevice)( 705 IMMDeviceEnumerator* This, 706 LPCWSTR pwstrId, 707 IMMDevice **ppDevice); 708 709 HRESULT (STDMETHODCALLTYPE *RegisterEndpointNotificationCallback)( 710 IMMDeviceEnumerator* This, 711 IMMNotificationClient *pClient); 712 713 HRESULT (STDMETHODCALLTYPE *UnregisterEndpointNotificationCallback)( 714 IMMDeviceEnumerator* This, 715 IMMNotificationClient *pClient); 716 717 END_INTERFACE 718} IMMDeviceEnumeratorVtbl; 719interface IMMDeviceEnumerator { 720 CONST_VTBL IMMDeviceEnumeratorVtbl* lpVtbl; 721}; 722 723#ifdef COBJMACROS 724#ifndef WIDL_C_INLINE_WRAPPERS 725/*** IUnknown methods ***/ 726#define IMMDeviceEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 727#define IMMDeviceEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) 728#define IMMDeviceEnumerator_Release(This) (This)->lpVtbl->Release(This) 729/*** IMMDeviceEnumerator methods ***/ 730#define IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) (This)->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) 731#define IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) (This)->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) 732#define IMMDeviceEnumerator_GetDevice(This,pwstrId,ppDevice) (This)->lpVtbl->GetDevice(This,pwstrId,ppDevice) 733#define IMMDeviceEnumerator_RegisterEndpointNotificationCallback(This,pClient) (This)->lpVtbl->RegisterEndpointNotificationCallback(This,pClient) 734#define IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(This,pClient) (This)->lpVtbl->UnregisterEndpointNotificationCallback(This,pClient) 735#else 736/*** IUnknown methods ***/ 737static FORCEINLINE HRESULT IMMDeviceEnumerator_QueryInterface(IMMDeviceEnumerator* This,REFIID riid,void **ppvObject) { 738 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 739} 740static FORCEINLINE ULONG IMMDeviceEnumerator_AddRef(IMMDeviceEnumerator* This) { 741 return This->lpVtbl->AddRef(This); 742} 743static FORCEINLINE ULONG IMMDeviceEnumerator_Release(IMMDeviceEnumerator* This) { 744 return This->lpVtbl->Release(This); 745} 746/*** IMMDeviceEnumerator methods ***/ 747static FORCEINLINE HRESULT IMMDeviceEnumerator_EnumAudioEndpoints(IMMDeviceEnumerator* This,EDataFlow dataFlow,DWORD dwStateMask,IMMDeviceCollection **ppDevices) { 748 return This->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices); 749} 750static FORCEINLINE HRESULT IMMDeviceEnumerator_GetDefaultAudioEndpoint(IMMDeviceEnumerator* This,EDataFlow dataFlow,ERole role,IMMDevice **ppEndpoint) { 751 return This->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint); 752} 753static FORCEINLINE HRESULT IMMDeviceEnumerator_GetDevice(IMMDeviceEnumerator* This,LPCWSTR pwstrId,IMMDevice **ppDevice) { 754 return This->lpVtbl->GetDevice(This,pwstrId,ppDevice); 755} 756static FORCEINLINE HRESULT IMMDeviceEnumerator_RegisterEndpointNotificationCallback(IMMDeviceEnumerator* This,IMMNotificationClient *pClient) { 757 return This->lpVtbl->RegisterEndpointNotificationCallback(This,pClient); 758} 759static FORCEINLINE HRESULT IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(IMMDeviceEnumerator* This,IMMNotificationClient *pClient) { 760 return This->lpVtbl->UnregisterEndpointNotificationCallback(This,pClient); 761} 762#endif 763#endif 764 765#endif 766 767HRESULT STDMETHODCALLTYPE IMMDeviceEnumerator_EnumAudioEndpoints_Proxy( 768 IMMDeviceEnumerator* This, 769 EDataFlow dataFlow, 770 DWORD dwStateMask, 771 IMMDeviceCollection **ppDevices); 772void __RPC_STUB IMMDeviceEnumerator_EnumAudioEndpoints_Stub( 773 IRpcStubBuffer* This, 774 IRpcChannelBuffer* pRpcChannelBuffer, 775 PRPC_MESSAGE pRpcMessage, 776 DWORD* pdwStubPhase); 777HRESULT STDMETHODCALLTYPE IMMDeviceEnumerator_GetDefaultAudioEndpoint_Proxy( 778 IMMDeviceEnumerator* This, 779 EDataFlow dataFlow, 780 ERole role, 781 IMMDevice **ppEndpoint); 782void __RPC_STUB IMMDeviceEnumerator_GetDefaultAudioEndpoint_Stub( 783 IRpcStubBuffer* This, 784 IRpcChannelBuffer* pRpcChannelBuffer, 785 PRPC_MESSAGE pRpcMessage, 786 DWORD* pdwStubPhase); 787HRESULT STDMETHODCALLTYPE IMMDeviceEnumerator_GetDevice_Proxy( 788 IMMDeviceEnumerator* This, 789 LPCWSTR pwstrId, 790 IMMDevice **ppDevice); 791void __RPC_STUB IMMDeviceEnumerator_GetDevice_Stub( 792 IRpcStubBuffer* This, 793 IRpcChannelBuffer* pRpcChannelBuffer, 794 PRPC_MESSAGE pRpcMessage, 795 DWORD* pdwStubPhase); 796HRESULT STDMETHODCALLTYPE IMMDeviceEnumerator_RegisterEndpointNotificationCallback_Proxy( 797 IMMDeviceEnumerator* This, 798 IMMNotificationClient *pClient); 799void __RPC_STUB IMMDeviceEnumerator_RegisterEndpointNotificationCallback_Stub( 800 IRpcStubBuffer* This, 801 IRpcChannelBuffer* pRpcChannelBuffer, 802 PRPC_MESSAGE pRpcMessage, 803 DWORD* pdwStubPhase); 804HRESULT STDMETHODCALLTYPE IMMDeviceEnumerator_UnregisterEndpointNotificationCallback_Proxy( 805 IMMDeviceEnumerator* This, 806 IMMNotificationClient *pClient); 807void __RPC_STUB IMMDeviceEnumerator_UnregisterEndpointNotificationCallback_Stub( 808 IRpcStubBuffer* This, 809 IRpcChannelBuffer* pRpcChannelBuffer, 810 PRPC_MESSAGE pRpcMessage, 811 DWORD* pdwStubPhase); 812 813#endif /* __IMMDeviceEnumerator_INTERFACE_DEFINED__ */ 814 815/***************************************************************************** 816 * IMMDeviceActivator interface 817 */ 818#ifndef __IMMDeviceActivator_INTERFACE_DEFINED__ 819#define __IMMDeviceActivator_INTERFACE_DEFINED__ 820 821DEFINE_GUID(IID_IMMDeviceActivator, 0x3b0d0ea4, 0xd0a9, 0x4b0e, 0x93,0x5b, 0x09,0x51,0x67,0x46,0xfa,0xc0); 822#if defined(__cplusplus) && !defined(CINTERFACE) 823MIDL_INTERFACE("3b0d0ea4-d0a9-4b0e-935b-09516746fac0") 824IMMDeviceActivator : public IUnknown 825{ 826 virtual HRESULT STDMETHODCALLTYPE Activate( 827 REFIID iid, 828 IMMDevice *pDevice, 829 PROPVARIANT *pActivationParams, 830 void **ppv) = 0; 831 832}; 833#ifdef __CRT_UUID_DECL 834__CRT_UUID_DECL(IMMDeviceActivator, 0x3b0d0ea4, 0xd0a9, 0x4b0e, 0x93,0x5b, 0x09,0x51,0x67,0x46,0xfa,0xc0) 835#endif 836#else 837typedef struct IMMDeviceActivatorVtbl { 838 BEGIN_INTERFACE 839 840 /*** IUnknown methods ***/ 841 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 842 IMMDeviceActivator* This, 843 REFIID riid, 844 void **ppvObject); 845 846 ULONG (STDMETHODCALLTYPE *AddRef)( 847 IMMDeviceActivator* This); 848 849 ULONG (STDMETHODCALLTYPE *Release)( 850 IMMDeviceActivator* This); 851 852 /*** IMMDeviceActivator methods ***/ 853 HRESULT (STDMETHODCALLTYPE *Activate)( 854 IMMDeviceActivator* This, 855 REFIID iid, 856 IMMDevice *pDevice, 857 PROPVARIANT *pActivationParams, 858 void **ppv); 859 860 END_INTERFACE 861} IMMDeviceActivatorVtbl; 862interface IMMDeviceActivator { 863 CONST_VTBL IMMDeviceActivatorVtbl* lpVtbl; 864}; 865 866#ifdef COBJMACROS 867#ifndef WIDL_C_INLINE_WRAPPERS 868/*** IUnknown methods ***/ 869#define IMMDeviceActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 870#define IMMDeviceActivator_AddRef(This) (This)->lpVtbl->AddRef(This) 871#define IMMDeviceActivator_Release(This) (This)->lpVtbl->Release(This) 872/*** IMMDeviceActivator methods ***/ 873#define IMMDeviceActivator_Activate(This,iid,pDevice,pActivationParams,ppv) (This)->lpVtbl->Activate(This,iid,pDevice,pActivationParams,ppv) 874#else 875/*** IUnknown methods ***/ 876static FORCEINLINE HRESULT IMMDeviceActivator_QueryInterface(IMMDeviceActivator* This,REFIID riid,void **ppvObject) { 877 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 878} 879static FORCEINLINE ULONG IMMDeviceActivator_AddRef(IMMDeviceActivator* This) { 880 return This->lpVtbl->AddRef(This); 881} 882static FORCEINLINE ULONG IMMDeviceActivator_Release(IMMDeviceActivator* This) { 883 return This->lpVtbl->Release(This); 884} 885/*** IMMDeviceActivator methods ***/ 886static FORCEINLINE HRESULT IMMDeviceActivator_Activate(IMMDeviceActivator* This,REFIID iid,IMMDevice *pDevice,PROPVARIANT *pActivationParams,void **ppv) { 887 return This->lpVtbl->Activate(This,iid,pDevice,pActivationParams,ppv); 888} 889#endif 890#endif 891 892#endif 893 894HRESULT STDMETHODCALLTYPE IMMDeviceActivator_Activate_Proxy( 895 IMMDeviceActivator* This, 896 REFIID iid, 897 IMMDevice *pDevice, 898 PROPVARIANT *pActivationParams, 899 void **ppv); 900void __RPC_STUB IMMDeviceActivator_Activate_Stub( 901 IRpcStubBuffer* This, 902 IRpcChannelBuffer* pRpcChannelBuffer, 903 PRPC_MESSAGE pRpcMessage, 904 DWORD* pdwStubPhase); 905 906#endif /* __IMMDeviceActivator_INTERFACE_DEFINED__ */ 907 908typedef struct _AudioExtensionParams { 909 LPARAM AddPageParam; 910 IMMDevice *pEndPoint; 911 IMMDevice *pPnpInterface; 912 IMMDevice *pPnpDevnode; 913} AudioExtensionParams; 914 915DEFINE_GUID(LIBID_MMDeviceAPILib, 0x2fdaafa3, 0x7523, 0x4f66, 0x99,0x57, 0x9d,0x5e,0x7f,0xe6,0x98,0xf6); 916 917/***************************************************************************** 918 * MMDeviceEnumerator coclass 919 */ 920 921DEFINE_GUID(CLSID_MMDeviceEnumerator, 0xbcde0395, 0xe52f, 0x467c, 0x8e,0x3d, 0xc4,0x57,0x92,0x91,0x69,0x2e); 922 923#ifdef __cplusplus 924class DECLSPEC_UUID("bcde0395-e52f-467c-8e3d-c4579291692e") MMDeviceEnumerator; 925#ifdef __CRT_UUID_DECL 926__CRT_UUID_DECL(MMDeviceEnumerator, 0xbcde0395, 0xe52f, 0x467c, 0x8e,0x3d, 0xc4,0x57,0x92,0x91,0x69,0x2e) 927#endif 928#endif 929 930/* Begin additional prototypes for all interfaces */ 931 932 933/* End additional prototypes */ 934 935#ifdef __cplusplus 936} 937#endif 938 939#endif /* __mmdeviceapi_h__ */ 940