PortAudio
2.0
|
00001 00002 00003 /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 00004 00005 00006 /* File created by MIDL compiler version 7.00.0499 */ 00007 /* Compiler settings for mmdeviceapi.idl: 00008 Oicf, W1, Zp8, env=Win32 (32b run) 00009 protocol : dce , ms_ext, c_ext, robust 00010 error checks: allocation ref bounds_check enum stub_data 00011 VC __declspec() decoration level: 00012 __declspec(uuid()), __declspec(selectany), __declspec(novtable) 00013 DECLSPEC_UUID(), MIDL_INTERFACE() 00014 */ 00015 //@@MIDL_FILE_HEADING( ) 00016 00017 #pragma warning( disable: 4049 ) /* more than 64k source lines */ 00018 00019 00020 /* verify that the <rpcndr.h> version is high enough to compile this file*/ 00021 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 00022 #define __REQUIRED_RPCNDR_H_VERSION__ 500 00023 #endif 00024 00025 /* verify that the <rpcsal.h> version is high enough to compile this file*/ 00026 #ifndef __REQUIRED_RPCSAL_H_VERSION__ 00027 #define __REQUIRED_RPCSAL_H_VERSION__ 100 00028 #endif 00029 00030 #include "rpc.h" 00031 #include "rpcndr.h" 00032 00033 #ifndef __RPCNDR_H_VERSION__ 00034 #error this stub requires an updated version of <rpcndr.h> 00035 #endif // __RPCNDR_H_VERSION__ 00036 00037 #ifndef COM_NO_WINDOWS_H 00038 #include "windows.h" 00039 #include "ole2.h" 00040 #endif /*COM_NO_WINDOWS_H*/ 00041 00042 #ifndef __mmdeviceapi_h__ 00043 #define __mmdeviceapi_h__ 00044 00045 #if __GNUC__ >=3 00046 #pragma GCC system_header 00047 #endif 00048 00049 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 00050 #pragma once 00051 #endif 00052 00053 /* Forward Declarations */ 00054 00055 #ifndef __IMMNotificationClient_FWD_DEFINED__ 00056 #define __IMMNotificationClient_FWD_DEFINED__ 00057 typedef interface IMMNotificationClient IMMNotificationClient; 00058 #endif /* __IMMNotificationClient_FWD_DEFINED__ */ 00059 00060 00061 #ifndef __IMMDevice_FWD_DEFINED__ 00062 #define __IMMDevice_FWD_DEFINED__ 00063 typedef interface IMMDevice IMMDevice; 00064 #endif /* __IMMDevice_FWD_DEFINED__ */ 00065 00066 00067 #ifndef __IMMDeviceCollection_FWD_DEFINED__ 00068 #define __IMMDeviceCollection_FWD_DEFINED__ 00069 typedef interface IMMDeviceCollection IMMDeviceCollection; 00070 #endif /* __IMMDeviceCollection_FWD_DEFINED__ */ 00071 00072 00073 #ifndef __IMMEndpoint_FWD_DEFINED__ 00074 #define __IMMEndpoint_FWD_DEFINED__ 00075 typedef interface IMMEndpoint IMMEndpoint; 00076 #endif /* __IMMEndpoint_FWD_DEFINED__ */ 00077 00078 00079 #ifndef __IMMDeviceEnumerator_FWD_DEFINED__ 00080 #define __IMMDeviceEnumerator_FWD_DEFINED__ 00081 typedef interface IMMDeviceEnumerator IMMDeviceEnumerator; 00082 #endif /* __IMMDeviceEnumerator_FWD_DEFINED__ */ 00083 00084 00085 #ifndef __IMMDeviceActivator_FWD_DEFINED__ 00086 #define __IMMDeviceActivator_FWD_DEFINED__ 00087 typedef interface IMMDeviceActivator IMMDeviceActivator; 00088 #endif /* __IMMDeviceActivator_FWD_DEFINED__ */ 00089 00090 00091 #ifndef __MMDeviceEnumerator_FWD_DEFINED__ 00092 #define __MMDeviceEnumerator_FWD_DEFINED__ 00093 00094 #ifdef __cplusplus 00095 typedef class MMDeviceEnumerator MMDeviceEnumerator; 00096 #else 00097 typedef struct MMDeviceEnumerator MMDeviceEnumerator; 00098 #endif /* __cplusplus */ 00099 00100 #endif /* __MMDeviceEnumerator_FWD_DEFINED__ */ 00101 00102 00103 /* header files for imported files */ 00104 #include "unknwn.h" 00105 #include "propsys.h" 00106 00107 #ifdef __cplusplus 00108 extern "C"{ 00109 #endif 00110 00111 00112 /* interface __MIDL_itf_mmdeviceapi_0000_0000 */ 00113 /* [local] */ 00114 00115 #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND) 00116 #define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE) 00117 #define DEVICE_STATE_ACTIVE 0x00000001 00118 #define DEVICE_STATE_DISABLED 0x00000002 00119 #define DEVICE_STATE_NOTPRESENT 0x00000004 00120 #define DEVICE_STATE_UNPLUGGED 0x00000008 00121 #define DEVICE_STATEMASK_ALL 0x0000000f 00122 #ifdef DEFINE_PROPERTYKEY 00123 #undef DEFINE_PROPERTYKEY 00124 #endif 00125 #ifdef INITGUID 00126 #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 } 00127 #else 00128 #define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const PROPERTYKEY name 00129 #endif // INITGUID 00130 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 0); 00131 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 1); 00132 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 2); 00133 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 3); 00134 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 4); 00135 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 5); 00136 #define ENDPOINT_SYSFX_ENABLED 0x00000000 // System Effects are enabled. 00137 #define ENDPOINT_SYSFX_DISABLED 0x00000001 // System Effects are disabled. 00138 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 6); 00139 DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat, 0xf19f064d, 0x82c, 0x4e27, 0xbc, 0x73, 0x68, 0x82, 0xa1, 0xbb, 0x8e, 0x4c, 0); 00140 typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS 00141 { 00142 DWORD cbDirectXAudioActivationParams; 00143 GUID guidAudioSession; 00144 DWORD dwAudioStreamFlags; 00145 } DIRECTX_AUDIO_ACTIVATION_PARAMS; 00146 00147 typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS *PDIRECTX_AUDIO_ACTIVATION_PARAMS; 00148 00149 typedef /* [public][public][public][public][public] */ 00150 enum __MIDL___MIDL_itf_mmdeviceapi_0000_0000_0001 00151 { eRender = 0, 00152 eCapture = ( eRender + 1 ) , 00153 eAll = ( eCapture + 1 ) , 00154 EDataFlow_enum_count = ( eAll + 1 ) 00155 } EDataFlow; 00156 00157 typedef /* [public][public][public] */ 00158 enum __MIDL___MIDL_itf_mmdeviceapi_0000_0000_0002 00159 { eConsole = 0, 00160 eMultimedia = ( eConsole + 1 ) , 00161 eCommunications = ( eMultimedia + 1 ) , 00162 ERole_enum_count = ( eCommunications + 1 ) 00163 } ERole; 00164 00165 typedef /* [public] */ 00166 enum __MIDL___MIDL_itf_mmdeviceapi_0000_0000_0003 00167 { RemoteNetworkDevice = 0, 00168 Speakers = ( RemoteNetworkDevice + 1 ) , 00169 LineLevel = ( Speakers + 1 ) , 00170 Headphones = ( LineLevel + 1 ) , 00171 Microphone = ( Headphones + 1 ) , 00172 Headset = ( Microphone + 1 ) , 00173 Handset = ( Headset + 1 ) , 00174 UnknownDigitalPassthrough = ( Handset + 1 ) , 00175 SPDIF = ( UnknownDigitalPassthrough + 1 ) , 00176 HDMI = ( SPDIF + 1 ) , 00177 UnknownFormFactor = ( HDMI + 1 ) 00178 } EndpointFormFactor; 00179 00180 00181 00182 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0000_v0_0_c_ifspec; 00183 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0000_v0_0_s_ifspec; 00184 00185 #ifndef __IMMNotificationClient_INTERFACE_DEFINED__ 00186 #define __IMMNotificationClient_INTERFACE_DEFINED__ 00187 00188 /* interface IMMNotificationClient */ 00189 /* [unique][helpstring][nonextensible][uuid][local][object] */ 00190 00191 00192 EXTERN_C const IID IID_IMMNotificationClient; 00193 00194 #if defined(__cplusplus) && !defined(CINTERFACE) 00195 00196 MIDL_INTERFACE("7991EEC9-7E89-4D85-8390-6C703CEC60C0") 00197 IMMNotificationClient : public IUnknown 00198 { 00199 public: 00200 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceStateChanged( 00201 /* [in] */ 00202 __in LPCWSTR pwstrDeviceId, 00203 /* [in] */ 00204 __in DWORD dwNewState) = 0; 00205 00206 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceAdded( 00207 /* [in] */ 00208 __in LPCWSTR pwstrDeviceId) = 0; 00209 00210 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceRemoved( 00211 /* [in] */ 00212 __in LPCWSTR pwstrDeviceId) = 0; 00213 00214 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged( 00215 /* [in] */ 00216 __in EDataFlow flow, 00217 /* [in] */ 00218 __in ERole role, 00219 /* [in] */ 00220 __in LPCWSTR pwstrDefaultDeviceId) = 0; 00221 00222 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnPropertyValueChanged( 00223 /* [in] */ 00224 __in LPCWSTR pwstrDeviceId, 00225 /* [in] */ 00226 __in const PROPERTYKEY key) = 0; 00227 00228 }; 00229 00230 #else /* C style interface */ 00231 00232 typedef struct IMMNotificationClientVtbl 00233 { 00234 BEGIN_INTERFACE 00235 00236 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00237 IMMNotificationClient * This, 00238 /* [in] */ REFIID riid, 00239 /* [iid_is][out] */ 00240 __RPC__deref_out void **ppvObject); 00241 00242 ULONG ( STDMETHODCALLTYPE *AddRef )( 00243 IMMNotificationClient * This); 00244 00245 ULONG ( STDMETHODCALLTYPE *Release )( 00246 IMMNotificationClient * This); 00247 00248 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceStateChanged )( 00249 IMMNotificationClient * This, 00250 /* [in] */ 00251 __in LPCWSTR pwstrDeviceId, 00252 /* [in] */ 00253 __in DWORD dwNewState); 00254 00255 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceAdded )( 00256 IMMNotificationClient * This, 00257 /* [in] */ 00258 __in LPCWSTR pwstrDeviceId); 00259 00260 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceRemoved )( 00261 IMMNotificationClient * This, 00262 /* [in] */ 00263 __in LPCWSTR pwstrDeviceId); 00264 00265 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDefaultDeviceChanged )( 00266 IMMNotificationClient * This, 00267 /* [in] */ 00268 __in EDataFlow flow, 00269 /* [in] */ 00270 __in ERole role, 00271 /* [in] */ 00272 __in LPCWSTR pwstrDefaultDeviceId); 00273 00274 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnPropertyValueChanged )( 00275 IMMNotificationClient * This, 00276 /* [in] */ 00277 __in LPCWSTR pwstrDeviceId, 00278 /* [in] */ 00279 __in const PROPERTYKEY key); 00280 00281 END_INTERFACE 00282 } IMMNotificationClientVtbl; 00283 00284 interface IMMNotificationClient 00285 { 00286 CONST_VTBL struct IMMNotificationClientVtbl *lpVtbl; 00287 }; 00288 00289 00290 00291 #ifdef COBJMACROS 00292 00293 00294 #define IMMNotificationClient_QueryInterface(This,riid,ppvObject) \ 00295 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00296 00297 #define IMMNotificationClient_AddRef(This) \ 00298 ( (This)->lpVtbl -> AddRef(This) ) 00299 00300 #define IMMNotificationClient_Release(This) \ 00301 ( (This)->lpVtbl -> Release(This) ) 00302 00303 00304 #define IMMNotificationClient_OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) \ 00305 ( (This)->lpVtbl -> OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) ) 00306 00307 #define IMMNotificationClient_OnDeviceAdded(This,pwstrDeviceId) \ 00308 ( (This)->lpVtbl -> OnDeviceAdded(This,pwstrDeviceId) ) 00309 00310 #define IMMNotificationClient_OnDeviceRemoved(This,pwstrDeviceId) \ 00311 ( (This)->lpVtbl -> OnDeviceRemoved(This,pwstrDeviceId) ) 00312 00313 #define IMMNotificationClient_OnDefaultDeviceChanged(This,flow,role,pwstrDefaultDeviceId) \ 00314 ( (This)->lpVtbl -> OnDefaultDeviceChanged(This,flow,role,pwstrDefaultDeviceId) ) 00315 00316 #define IMMNotificationClient_OnPropertyValueChanged(This,pwstrDeviceId,key) \ 00317 ( (This)->lpVtbl -> OnPropertyValueChanged(This,pwstrDeviceId,key) ) 00318 00319 #endif /* COBJMACROS */ 00320 00321 00322 #endif /* C style interface */ 00323 00324 00325 00326 00327 #endif /* __IMMNotificationClient_INTERFACE_DEFINED__ */ 00328 00329 00330 #ifndef __IMMDevice_INTERFACE_DEFINED__ 00331 #define __IMMDevice_INTERFACE_DEFINED__ 00332 00333 /* interface IMMDevice */ 00334 /* [unique][helpstring][nonextensible][uuid][local][object] */ 00335 00336 00337 EXTERN_C const IID IID_IMMDevice; 00338 00339 #if defined(__cplusplus) && !defined(CINTERFACE) 00340 00341 MIDL_INTERFACE("D666063F-1587-4E43-81F1-B948E807363F") 00342 IMMDevice : public IUnknown 00343 { 00344 public: 00345 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( 00346 /* [in] */ 00347 __in REFIID iid, 00348 /* [in] */ 00349 __in DWORD dwClsCtx, 00350 /* [unique][in] */ 00351 __in_opt PROPVARIANT *pActivationParams, 00352 /* [iid_is][out] */ 00353 __out void **ppInterface) = 0; 00354 00355 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenPropertyStore( 00356 /* [in] */ 00357 __in DWORD stgmAccess, 00358 /* [out] */ 00359 __out IPropertyStore **ppProperties) = 0; 00360 00361 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetId( 00362 /* [out] */ 00363 __deref_out LPWSTR *ppstrId) = 0; 00364 00365 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetState( 00366 /* [out] */ 00367 __out DWORD *pdwState) = 0; 00368 00369 }; 00370 00371 #else /* C style interface */ 00372 00373 typedef struct IMMDeviceVtbl 00374 { 00375 BEGIN_INTERFACE 00376 00377 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00378 IMMDevice * This, 00379 /* [in] */ REFIID riid, 00380 /* [iid_is][out] */ 00381 __RPC__deref_out void **ppvObject); 00382 00383 ULONG ( STDMETHODCALLTYPE *AddRef )( 00384 IMMDevice * This); 00385 00386 ULONG ( STDMETHODCALLTYPE *Release )( 00387 IMMDevice * This); 00388 00389 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( 00390 IMMDevice * This, 00391 /* [in] */ 00392 __in REFIID iid, 00393 /* [in] */ 00394 __in DWORD dwClsCtx, 00395 /* [unique][in] */ 00396 __in_opt PROPVARIANT *pActivationParams, 00397 /* [iid_is][out] */ 00398 __out void **ppInterface); 00399 00400 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenPropertyStore )( 00401 IMMDevice * This, 00402 /* [in] */ 00403 __in DWORD stgmAccess, 00404 /* [out] */ 00405 __out IPropertyStore **ppProperties); 00406 00407 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetId )( 00408 IMMDevice * This, 00409 /* [out] */ 00410 __deref_out LPWSTR *ppstrId); 00411 00412 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetState )( 00413 IMMDevice * This, 00414 /* [out] */ 00415 __out DWORD *pdwState); 00416 00417 END_INTERFACE 00418 } IMMDeviceVtbl; 00419 00420 interface IMMDevice 00421 { 00422 CONST_VTBL struct IMMDeviceVtbl *lpVtbl; 00423 }; 00424 00425 00426 00427 #ifdef COBJMACROS 00428 00429 00430 #define IMMDevice_QueryInterface(This,riid,ppvObject) \ 00431 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00432 00433 #define IMMDevice_AddRef(This) \ 00434 ( (This)->lpVtbl -> AddRef(This) ) 00435 00436 #define IMMDevice_Release(This) \ 00437 ( (This)->lpVtbl -> Release(This) ) 00438 00439 00440 #define IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppInterface) \ 00441 ( (This)->lpVtbl -> Activate(This,iid,dwClsCtx,pActivationParams,ppInterface) ) 00442 00443 #define IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) \ 00444 ( (This)->lpVtbl -> OpenPropertyStore(This,stgmAccess,ppProperties) ) 00445 00446 #define IMMDevice_GetId(This,ppstrId) \ 00447 ( (This)->lpVtbl -> GetId(This,ppstrId) ) 00448 00449 #define IMMDevice_GetState(This,pdwState) \ 00450 ( (This)->lpVtbl -> GetState(This,pdwState) ) 00451 00452 #endif /* COBJMACROS */ 00453 00454 00455 #endif /* C style interface */ 00456 00457 00458 00459 00460 #endif /* __IMMDevice_INTERFACE_DEFINED__ */ 00461 00462 00463 #ifndef __IMMDeviceCollection_INTERFACE_DEFINED__ 00464 #define __IMMDeviceCollection_INTERFACE_DEFINED__ 00465 00466 /* interface IMMDeviceCollection */ 00467 /* [unique][helpstring][nonextensible][uuid][local][object] */ 00468 00469 00470 EXTERN_C const IID IID_IMMDeviceCollection; 00471 00472 #if defined(__cplusplus) && !defined(CINTERFACE) 00473 00474 MIDL_INTERFACE("0BD7A1BE-7A1A-44DB-8397-CC5392387B5E") 00475 IMMDeviceCollection : public IUnknown 00476 { 00477 public: 00478 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( 00479 /* [out] */ 00480 __out UINT *pcDevices) = 0; 00481 00482 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( 00483 /* [in] */ 00484 __in UINT nDevice, 00485 /* [out] */ 00486 __out IMMDevice **ppDevice) = 0; 00487 00488 }; 00489 00490 #else /* C style interface */ 00491 00492 typedef struct IMMDeviceCollectionVtbl 00493 { 00494 BEGIN_INTERFACE 00495 00496 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00497 IMMDeviceCollection * This, 00498 /* [in] */ REFIID riid, 00499 /* [iid_is][out] */ 00500 __RPC__deref_out void **ppvObject); 00501 00502 ULONG ( STDMETHODCALLTYPE *AddRef )( 00503 IMMDeviceCollection * This); 00504 00505 ULONG ( STDMETHODCALLTYPE *Release )( 00506 IMMDeviceCollection * This); 00507 00508 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 00509 IMMDeviceCollection * This, 00510 /* [out] */ 00511 __out UINT *pcDevices); 00512 00513 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 00514 IMMDeviceCollection * This, 00515 /* [in] */ 00516 __in UINT nDevice, 00517 /* [out] */ 00518 __out IMMDevice **ppDevice); 00519 00520 END_INTERFACE 00521 } IMMDeviceCollectionVtbl; 00522 00523 interface IMMDeviceCollection 00524 { 00525 CONST_VTBL struct IMMDeviceCollectionVtbl *lpVtbl; 00526 }; 00527 00528 00529 00530 #ifdef COBJMACROS 00531 00532 00533 #define IMMDeviceCollection_QueryInterface(This,riid,ppvObject) \ 00534 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00535 00536 #define IMMDeviceCollection_AddRef(This) \ 00537 ( (This)->lpVtbl -> AddRef(This) ) 00538 00539 #define IMMDeviceCollection_Release(This) \ 00540 ( (This)->lpVtbl -> Release(This) ) 00541 00542 00543 #define IMMDeviceCollection_GetCount(This,pcDevices) \ 00544 ( (This)->lpVtbl -> GetCount(This,pcDevices) ) 00545 00546 #define IMMDeviceCollection_Item(This,nDevice,ppDevice) \ 00547 ( (This)->lpVtbl -> Item(This,nDevice,ppDevice) ) 00548 00549 #endif /* COBJMACROS */ 00550 00551 00552 #endif /* C style interface */ 00553 00554 00555 00556 00557 #endif /* __IMMDeviceCollection_INTERFACE_DEFINED__ */ 00558 00559 00560 #ifndef __IMMEndpoint_INTERFACE_DEFINED__ 00561 #define __IMMEndpoint_INTERFACE_DEFINED__ 00562 00563 /* interface IMMEndpoint */ 00564 /* [unique][helpstring][nonextensible][uuid][local][object] */ 00565 00566 00567 EXTERN_C const IID IID_IMMEndpoint; 00568 00569 #if defined(__cplusplus) && !defined(CINTERFACE) 00570 00571 MIDL_INTERFACE("1BE09788-6894-4089-8586-9A2A6C265AC5") 00572 IMMEndpoint : public IUnknown 00573 { 00574 public: 00575 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataFlow( 00576 /* [out] */ 00577 __out EDataFlow *pDataFlow) = 0; 00578 00579 }; 00580 00581 #else /* C style interface */ 00582 00583 typedef struct IMMEndpointVtbl 00584 { 00585 BEGIN_INTERFACE 00586 00587 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00588 IMMEndpoint * This, 00589 /* [in] */ REFIID riid, 00590 /* [iid_is][out] */ 00591 __RPC__deref_out void **ppvObject); 00592 00593 ULONG ( STDMETHODCALLTYPE *AddRef )( 00594 IMMEndpoint * This); 00595 00596 ULONG ( STDMETHODCALLTYPE *Release )( 00597 IMMEndpoint * This); 00598 00599 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataFlow )( 00600 IMMEndpoint * This, 00601 /* [out] */ 00602 __out EDataFlow *pDataFlow); 00603 00604 END_INTERFACE 00605 } IMMEndpointVtbl; 00606 00607 interface IMMEndpoint 00608 { 00609 CONST_VTBL struct IMMEndpointVtbl *lpVtbl; 00610 }; 00611 00612 00613 00614 #ifdef COBJMACROS 00615 00616 00617 #define IMMEndpoint_QueryInterface(This,riid,ppvObject) \ 00618 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00619 00620 #define IMMEndpoint_AddRef(This) \ 00621 ( (This)->lpVtbl -> AddRef(This) ) 00622 00623 #define IMMEndpoint_Release(This) \ 00624 ( (This)->lpVtbl -> Release(This) ) 00625 00626 00627 #define IMMEndpoint_GetDataFlow(This,pDataFlow) \ 00628 ( (This)->lpVtbl -> GetDataFlow(This,pDataFlow) ) 00629 00630 #endif /* COBJMACROS */ 00631 00632 00633 #endif /* C style interface */ 00634 00635 00636 00637 00638 #endif /* __IMMEndpoint_INTERFACE_DEFINED__ */ 00639 00640 00641 #ifndef __IMMDeviceEnumerator_INTERFACE_DEFINED__ 00642 #define __IMMDeviceEnumerator_INTERFACE_DEFINED__ 00643 00644 /* interface IMMDeviceEnumerator */ 00645 /* [unique][helpstring][nonextensible][uuid][local][object] */ 00646 00647 00648 EXTERN_C const IID IID_IMMDeviceEnumerator; 00649 00650 #if defined(__cplusplus) && !defined(CINTERFACE) 00651 00652 MIDL_INTERFACE("A95664D2-9614-4F35-A746-DE8DB63617E6") 00653 IMMDeviceEnumerator : public IUnknown 00654 { 00655 public: 00656 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnumAudioEndpoints( 00657 /* [in] */ 00658 __in EDataFlow dataFlow, 00659 /* [in] */ 00660 __in DWORD dwStateMask, 00661 /* [out] */ 00662 __out IMMDeviceCollection **ppDevices) = 0; 00663 00664 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDefaultAudioEndpoint( 00665 /* [in] */ 00666 __in EDataFlow dataFlow, 00667 /* [in] */ 00668 __in ERole role, 00669 /* [out] */ 00670 __out IMMDevice **ppEndpoint) = 0; 00671 00672 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDevice( 00673 /* */ 00674 __in LPCWSTR pwstrId, 00675 /* [out] */ 00676 __out IMMDevice **ppDevice) = 0; 00677 00678 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterEndpointNotificationCallback( 00679 /* [in] */ 00680 __in IMMNotificationClient *pClient) = 0; 00681 00682 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnregisterEndpointNotificationCallback( 00683 /* [in] */ 00684 __in IMMNotificationClient *pClient) = 0; 00685 00686 }; 00687 00688 #else /* C style interface */ 00689 00690 typedef struct IMMDeviceEnumeratorVtbl 00691 { 00692 BEGIN_INTERFACE 00693 00694 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00695 IMMDeviceEnumerator * This, 00696 /* [in] */ REFIID riid, 00697 /* [iid_is][out] */ 00698 __RPC__deref_out void **ppvObject); 00699 00700 ULONG ( STDMETHODCALLTYPE *AddRef )( 00701 IMMDeviceEnumerator * This); 00702 00703 ULONG ( STDMETHODCALLTYPE *Release )( 00704 IMMDeviceEnumerator * This); 00705 00706 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumAudioEndpoints )( 00707 IMMDeviceEnumerator * This, 00708 /* [in] */ 00709 __in EDataFlow dataFlow, 00710 /* [in] */ 00711 __in DWORD dwStateMask, 00712 /* [out] */ 00713 __out IMMDeviceCollection **ppDevices); 00714 00715 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultAudioEndpoint )( 00716 IMMDeviceEnumerator * This, 00717 /* [in] */ 00718 __in EDataFlow dataFlow, 00719 /* [in] */ 00720 __in ERole role, 00721 /* [out] */ 00722 __out IMMDevice **ppEndpoint); 00723 00724 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDevice )( 00725 IMMDeviceEnumerator * This, 00726 /* */ 00727 __in LPCWSTR pwstrId, 00728 /* [out] */ 00729 __out IMMDevice **ppDevice); 00730 00731 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterEndpointNotificationCallback )( 00732 IMMDeviceEnumerator * This, 00733 /* [in] */ 00734 __in IMMNotificationClient *pClient); 00735 00736 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterEndpointNotificationCallback )( 00737 IMMDeviceEnumerator * This, 00738 /* [in] */ 00739 __in IMMNotificationClient *pClient); 00740 00741 END_INTERFACE 00742 } IMMDeviceEnumeratorVtbl; 00743 00744 interface IMMDeviceEnumerator 00745 { 00746 CONST_VTBL struct IMMDeviceEnumeratorVtbl *lpVtbl; 00747 }; 00748 00749 00750 00751 #ifdef COBJMACROS 00752 00753 00754 #define IMMDeviceEnumerator_QueryInterface(This,riid,ppvObject) \ 00755 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00756 00757 #define IMMDeviceEnumerator_AddRef(This) \ 00758 ( (This)->lpVtbl -> AddRef(This) ) 00759 00760 #define IMMDeviceEnumerator_Release(This) \ 00761 ( (This)->lpVtbl -> Release(This) ) 00762 00763 00764 #define IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) \ 00765 ( (This)->lpVtbl -> EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) ) 00766 00767 #define IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) \ 00768 ( (This)->lpVtbl -> GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) ) 00769 00770 #define IMMDeviceEnumerator_GetDevice(This,pwstrId,ppDevice) \ 00771 ( (This)->lpVtbl -> GetDevice(This,pwstrId,ppDevice) ) 00772 00773 #define IMMDeviceEnumerator_RegisterEndpointNotificationCallback(This,pClient) \ 00774 ( (This)->lpVtbl -> RegisterEndpointNotificationCallback(This,pClient) ) 00775 00776 #define IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(This,pClient) \ 00777 ( (This)->lpVtbl -> UnregisterEndpointNotificationCallback(This,pClient) ) 00778 00779 #endif /* COBJMACROS */ 00780 00781 00782 #endif /* C style interface */ 00783 00784 00785 00786 00787 #endif /* __IMMDeviceEnumerator_INTERFACE_DEFINED__ */ 00788 00789 00790 #ifndef __IMMDeviceActivator_INTERFACE_DEFINED__ 00791 #define __IMMDeviceActivator_INTERFACE_DEFINED__ 00792 00793 /* interface IMMDeviceActivator */ 00794 /* [unique][helpstring][nonextensible][uuid][local][object] */ 00795 00796 00797 EXTERN_C const IID IID_IMMDeviceActivator; 00798 00799 #if defined(__cplusplus) && !defined(CINTERFACE) 00800 00801 MIDL_INTERFACE("3B0D0EA4-D0A9-4B0E-935B-09516746FAC0") 00802 IMMDeviceActivator : public IUnknown 00803 { 00804 public: 00805 virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( 00806 /* [in] */ 00807 __in REFIID iid, 00808 /* [in] */ 00809 __in IMMDevice *pDevice, 00810 /* [in] */ 00811 __in_opt PROPVARIANT *pActivationParams, 00812 /* [iid_is][out] */ 00813 __out void **ppInterface) = 0; 00814 00815 }; 00816 00817 #else /* C style interface */ 00818 00819 typedef struct IMMDeviceActivatorVtbl 00820 { 00821 BEGIN_INTERFACE 00822 00823 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00824 IMMDeviceActivator * This, 00825 /* [in] */ REFIID riid, 00826 /* [iid_is][out] */ 00827 __RPC__deref_out void **ppvObject); 00828 00829 ULONG ( STDMETHODCALLTYPE *AddRef )( 00830 IMMDeviceActivator * This); 00831 00832 ULONG ( STDMETHODCALLTYPE *Release )( 00833 IMMDeviceActivator * This); 00834 00835 /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( 00836 IMMDeviceActivator * This, 00837 /* [in] */ 00838 __in REFIID iid, 00839 /* [in] */ 00840 __in IMMDevice *pDevice, 00841 /* [in] */ 00842 __in_opt PROPVARIANT *pActivationParams, 00843 /* [iid_is][out] */ 00844 __out void **ppInterface); 00845 00846 END_INTERFACE 00847 } IMMDeviceActivatorVtbl; 00848 00849 interface IMMDeviceActivator 00850 { 00851 CONST_VTBL struct IMMDeviceActivatorVtbl *lpVtbl; 00852 }; 00853 00854 00855 00856 #ifdef COBJMACROS 00857 00858 00859 #define IMMDeviceActivator_QueryInterface(This,riid,ppvObject) \ 00860 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00861 00862 #define IMMDeviceActivator_AddRef(This) \ 00863 ( (This)->lpVtbl -> AddRef(This) ) 00864 00865 #define IMMDeviceActivator_Release(This) \ 00866 ( (This)->lpVtbl -> Release(This) ) 00867 00868 00869 #define IMMDeviceActivator_Activate(This,iid,pDevice,pActivationParams,ppInterface) \ 00870 ( (This)->lpVtbl -> Activate(This,iid,pDevice,pActivationParams,ppInterface) ) 00871 00872 #endif /* COBJMACROS */ 00873 00874 00875 #endif /* C style interface */ 00876 00877 00878 00879 00880 #endif /* __IMMDeviceActivator_INTERFACE_DEFINED__ */ 00881 00882 00883 /* interface __MIDL_itf_mmdeviceapi_0000_0006 */ 00884 /* [local] */ 00885 00886 typedef /* [public] */ struct __MIDL___MIDL_itf_mmdeviceapi_0000_0006_0001 00887 { 00888 LPARAM AddPageParam; 00889 IMMDevice *pEndpoint; 00890 IMMDevice *pPnpInterface; 00891 IMMDevice *pPnpDevnode; 00892 } AudioExtensionParams; 00893 00894 00895 00896 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0006_v0_0_c_ifspec; 00897 extern RPC_IF_HANDLE __MIDL_itf_mmdeviceapi_0000_0006_v0_0_s_ifspec; 00898 00899 00900 #ifndef __MMDeviceAPILib_LIBRARY_DEFINED__ 00901 #define __MMDeviceAPILib_LIBRARY_DEFINED__ 00902 00903 /* library MMDeviceAPILib */ 00904 /* [helpstring][version][uuid] */ 00905 00906 00907 EXTERN_C const IID LIBID_MMDeviceAPILib; 00908 00909 EXTERN_C const CLSID CLSID_MMDeviceEnumerator; 00910 00911 #ifdef __cplusplus 00912 00913 class DECLSPEC_UUID("BCDE0395-E52F-467C-8E3D-C4579291692E") 00914 MMDeviceEnumerator; 00915 #endif 00916 #endif /* __MMDeviceAPILib_LIBRARY_DEFINED__ */ 00917 00918 /* Additional Prototypes for ALL interfaces */ 00919 00920 /* end of Additional Prototypes */ 00921 00922 #ifdef __cplusplus 00923 } 00924 #endif 00925 00926 #endif 00927 00928 00929