Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251/* * Copyright (C) 2009 Maarten Lankhorst * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */import "unknwn.idl";import "propsys.idl";cpp_quote("#ifndef E_NOTFOUND")cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)")cpp_quote("#endif")cpp_quote("#ifndef E_UNSUPPORTED_TYPE")cpp_quote("#define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)")cpp_quote("#endif")cpp_quote("#define DEVICE_STATE_ACTIVE 0x1")cpp_quote("#define DEVICE_STATE_DISABLED 0x2")cpp_quote("#define DEVICE_STATE_NOTPRESENT 0x4")cpp_quote("#define DEVICE_STATE_UNPLUGGED 0x8")cpp_quote("#define DEVICE_STATEMASK_ALL 0xf")/* Generic PKEY_AudioEndPoint ID for grepping: {1da5d803-d492-4edd-8c23-e0c0ffee7f0e} */cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,5);")cpp_quote("#define ENDPOINT_SYSFX_ENABLED 0")cpp_quote("#define ENDPOINT_SYSFX_DISABLED 1")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0);")cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3);")typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS{ DWORD cbDirectXAudioActivationParams; GUID guidAudioSession; DWORD dwAudioStreamFlags;} DIRECTX_AUDIO_ACTIVATION_PARAMS, *PDIRECTX_AUDIO_ACTIVATION_PARAMS;typedef enum _EDataFlow{ eRender, eCapture, eAll, EDataFlow_enum_count} EDataFlow;typedef enum _ERole{ eConsole, eMultimedia, eCommunications, ERole_enum_count} ERole;typedef enum _EndpointFormFactor{ RemoteNetworkDevice, Speakers, LineLevel, Headphones, Microphone, Headset, Handset, UnknownDigitalPassthrough, SPDIF, DigitalAudioDisplayDevice, UnknownFormFactor, EndpointFormFactor_enum_count} EndpointFormFactor;cpp_quote("#define HDMI DigitalAudioDisplayDevice")[ object, local, uuid(7991eec9-7e89-4d85-8390-6c703cec60c0), nonextensible, pointer_default(unique)]interface IMMNotificationClient : IUnknown{ [id(1)] HRESULT OnDeviceStateChanged( [in] LPCWSTR pwstrDeviceId, [in] DWORD dwNewState ); [id(2)] HRESULT OnDeviceAdded( [in] LPCWSTR pwstrDeviceId ); [id(3)] HRESULT OnDeviceRemoved( [in] LPCWSTR pwstrDeviceId ); [id(4)] HRESULT OnDefaultDeviceChanged( [in] EDataFlow flow, [in] ERole role, [in] LPCWSTR pwstrDeviceId ); [id(5)] HRESULT OnPropertyValueChanged( [in] LPCWSTR pwstrDeviceId, [in] const PROPERTYKEY key );}[ object, local, uuid(d666063f-1587-4e43-81f1-b948e807363f), nonextensible, pointer_default(unique)]interface IMMDevice : IUnknown{ [id(1)] HRESULT Activate( [in] REFIID iid, [in] DWORD dwClsCtx, [in,unique] PROPVARIANT *pActivationParams, [out,iid_is(iid)] void **ppv ); [id(2)] HRESULT OpenPropertyStore( [in] DWORD stgmAccess, [out] IPropertyStore **ppProperties ); [id(3)] HRESULT GetId( [out] LPWSTR *ppstrId ); [id(4)] HRESULT GetState( [out] DWORD *pdwState );}[ object, local, uuid(0bd7a1be-7a1a-44db-8397-cc5392387b5e), nonextensible, pointer_default(unique)]interface IMMDeviceCollection : IUnknown{ [id(1)] HRESULT GetCount( [out] UINT *pcDevices ); [id(2)] HRESULT Item( [in] UINT nDevice, [out] IMMDevice **ppdevice );}[ object, local, uuid(1be09788-6894-4089-8586-9a2a6c265ac5), nonextensible, pointer_default(unique)]interface IMMEndpoint : IUnknown{ [id(1)] HRESULT GetDataFlow( [out] EDataFlow *pDataFlow );}[ object, local, uuid(a95664d2-9614-4f35-a746-de8db63617e6), nonextensible, pointer_default(unique)]interface IMMDeviceEnumerator : IUnknown{ [id(1)] HRESULT EnumAudioEndpoints( [in] EDataFlow dataFlow, [in] DWORD dwStateMask, [out] IMMDeviceCollection **ppDevices ); [id(2)] HRESULT GetDefaultAudioEndpoint( [in] EDataFlow dataFlow, [in] ERole role, [out] IMMDevice **ppEndpoint ); [id(3)] HRESULT GetDevice( [in] LPCWSTR pwstrId, [out] IMMDevice **ppDevice ); [id(4)] HRESULT RegisterEndpointNotificationCallback( [in] IMMNotificationClient *pClient ); [id(5)] HRESULT UnregisterEndpointNotificationCallback( [in] IMMNotificationClient *pClient );}[ object, local, uuid(3b0d0ea4-d0a9-4b0e-935b-09516746fac0), nonextensible, pointer_default(unique)]interface IMMDeviceActivator : IUnknown{ [id(1)] HRESULT Activate( [in] REFIID iid, [in] IMMDevice *pDevice, [in] PROPVARIANT *pActivationParams, [out,iid_is(iid)] void **ppv );}typedef struct _AudioExtensionParams{ LPARAM AddPageParam; IMMDevice *pEndPoint; IMMDevice *pPnpInterface; IMMDevice *pPnpDevnode;} AudioExtensionParams;[ uuid(2fdaafa3-7523-4f66-9957-9d5e7fe698f6), version(1.0)]library MMDeviceAPILib{ [ uuid(bcde0395-e52f-467c-8e3d-c4579291692e) ] coclass MMDeviceEnumerator { [default] interface IMMDeviceEnumerator; }}