gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

devicetopology.h (95009B)


      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 devicetopology.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 __devicetopology_h__
     43 #define __devicetopology_h__
     44 
     45 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
     46 #pragma once
     47 #endif
     48 
     49 /* Forward Declarations */ 
     50 
     51 #ifndef __IKsControl_FWD_DEFINED__
     52 #define __IKsControl_FWD_DEFINED__
     53 typedef interface IKsControl IKsControl;
     54 #endif 	/* __IKsControl_FWD_DEFINED__ */
     55 
     56 
     57 #ifndef __IPerChannelDbLevel_FWD_DEFINED__
     58 #define __IPerChannelDbLevel_FWD_DEFINED__
     59 typedef interface IPerChannelDbLevel IPerChannelDbLevel;
     60 #endif 	/* __IPerChannelDbLevel_FWD_DEFINED__ */
     61 
     62 
     63 #ifndef __IAudioVolumeLevel_FWD_DEFINED__
     64 #define __IAudioVolumeLevel_FWD_DEFINED__
     65 typedef interface IAudioVolumeLevel IAudioVolumeLevel;
     66 #endif 	/* __IAudioVolumeLevel_FWD_DEFINED__ */
     67 
     68 
     69 #ifndef __IAudioChannelConfig_FWD_DEFINED__
     70 #define __IAudioChannelConfig_FWD_DEFINED__
     71 typedef interface IAudioChannelConfig IAudioChannelConfig;
     72 #endif 	/* __IAudioChannelConfig_FWD_DEFINED__ */
     73 
     74 
     75 #ifndef __IAudioLoudness_FWD_DEFINED__
     76 #define __IAudioLoudness_FWD_DEFINED__
     77 typedef interface IAudioLoudness IAudioLoudness;
     78 #endif 	/* __IAudioLoudness_FWD_DEFINED__ */
     79 
     80 
     81 #ifndef __IAudioInputSelector_FWD_DEFINED__
     82 #define __IAudioInputSelector_FWD_DEFINED__
     83 typedef interface IAudioInputSelector IAudioInputSelector;
     84 #endif 	/* __IAudioInputSelector_FWD_DEFINED__ */
     85 
     86 
     87 #ifndef __IAudioOutputSelector_FWD_DEFINED__
     88 #define __IAudioOutputSelector_FWD_DEFINED__
     89 typedef interface IAudioOutputSelector IAudioOutputSelector;
     90 #endif 	/* __IAudioOutputSelector_FWD_DEFINED__ */
     91 
     92 
     93 #ifndef __IAudioMute_FWD_DEFINED__
     94 #define __IAudioMute_FWD_DEFINED__
     95 typedef interface IAudioMute IAudioMute;
     96 #endif 	/* __IAudioMute_FWD_DEFINED__ */
     97 
     98 
     99 #ifndef __IAudioBass_FWD_DEFINED__
    100 #define __IAudioBass_FWD_DEFINED__
    101 typedef interface IAudioBass IAudioBass;
    102 #endif 	/* __IAudioBass_FWD_DEFINED__ */
    103 
    104 
    105 #ifndef __IAudioMidrange_FWD_DEFINED__
    106 #define __IAudioMidrange_FWD_DEFINED__
    107 typedef interface IAudioMidrange IAudioMidrange;
    108 #endif 	/* __IAudioMidrange_FWD_DEFINED__ */
    109 
    110 
    111 #ifndef __IAudioTreble_FWD_DEFINED__
    112 #define __IAudioTreble_FWD_DEFINED__
    113 typedef interface IAudioTreble IAudioTreble;
    114 #endif 	/* __IAudioTreble_FWD_DEFINED__ */
    115 
    116 
    117 #ifndef __IAudioAutoGainControl_FWD_DEFINED__
    118 #define __IAudioAutoGainControl_FWD_DEFINED__
    119 typedef interface IAudioAutoGainControl IAudioAutoGainControl;
    120 #endif 	/* __IAudioAutoGainControl_FWD_DEFINED__ */
    121 
    122 
    123 #ifndef __IAudioPeakMeter_FWD_DEFINED__
    124 #define __IAudioPeakMeter_FWD_DEFINED__
    125 typedef interface IAudioPeakMeter IAudioPeakMeter;
    126 #endif 	/* __IAudioPeakMeter_FWD_DEFINED__ */
    127 
    128 
    129 #ifndef __IDeviceSpecificProperty_FWD_DEFINED__
    130 #define __IDeviceSpecificProperty_FWD_DEFINED__
    131 typedef interface IDeviceSpecificProperty IDeviceSpecificProperty;
    132 #endif 	/* __IDeviceSpecificProperty_FWD_DEFINED__ */
    133 
    134 
    135 #ifndef __IKsFormatSupport_FWD_DEFINED__
    136 #define __IKsFormatSupport_FWD_DEFINED__
    137 typedef interface IKsFormatSupport IKsFormatSupport;
    138 #endif 	/* __IKsFormatSupport_FWD_DEFINED__ */
    139 
    140 
    141 #ifndef __IKsJackDescription_FWD_DEFINED__
    142 #define __IKsJackDescription_FWD_DEFINED__
    143 typedef interface IKsJackDescription IKsJackDescription;
    144 #endif 	/* __IKsJackDescription_FWD_DEFINED__ */
    145 
    146 
    147 #ifndef __IPartsList_FWD_DEFINED__
    148 #define __IPartsList_FWD_DEFINED__
    149 typedef interface IPartsList IPartsList;
    150 #endif 	/* __IPartsList_FWD_DEFINED__ */
    151 
    152 
    153 #ifndef __IPart_FWD_DEFINED__
    154 #define __IPart_FWD_DEFINED__
    155 typedef interface IPart IPart;
    156 #endif 	/* __IPart_FWD_DEFINED__ */
    157 
    158 
    159 #ifndef __IConnector_FWD_DEFINED__
    160 #define __IConnector_FWD_DEFINED__
    161 typedef interface IConnector IConnector;
    162 #endif 	/* __IConnector_FWD_DEFINED__ */
    163 
    164 
    165 #ifndef __ISubunit_FWD_DEFINED__
    166 #define __ISubunit_FWD_DEFINED__
    167 typedef interface ISubunit ISubunit;
    168 #endif 	/* __ISubunit_FWD_DEFINED__ */
    169 
    170 
    171 #ifndef __IControlInterface_FWD_DEFINED__
    172 #define __IControlInterface_FWD_DEFINED__
    173 typedef interface IControlInterface IControlInterface;
    174 #endif 	/* __IControlInterface_FWD_DEFINED__ */
    175 
    176 
    177 #ifndef __IControlChangeNotify_FWD_DEFINED__
    178 #define __IControlChangeNotify_FWD_DEFINED__
    179 typedef interface IControlChangeNotify IControlChangeNotify;
    180 #endif 	/* __IControlChangeNotify_FWD_DEFINED__ */
    181 
    182 
    183 #ifndef __IDeviceTopology_FWD_DEFINED__
    184 #define __IDeviceTopology_FWD_DEFINED__
    185 typedef interface IDeviceTopology IDeviceTopology;
    186 #endif 	/* __IDeviceTopology_FWD_DEFINED__ */
    187 
    188 
    189 #ifndef __DeviceTopology_FWD_DEFINED__
    190 #define __DeviceTopology_FWD_DEFINED__
    191 
    192 #ifdef __cplusplus
    193 typedef class DeviceTopology DeviceTopology;
    194 #else
    195 typedef struct DeviceTopology DeviceTopology;
    196 #endif /* __cplusplus */
    197 
    198 #endif 	/* __DeviceTopology_FWD_DEFINED__ */
    199 
    200 
    201 #ifndef __IPartsList_FWD_DEFINED__
    202 #define __IPartsList_FWD_DEFINED__
    203 typedef interface IPartsList IPartsList;
    204 #endif 	/* __IPartsList_FWD_DEFINED__ */
    205 
    206 
    207 #ifndef __IPerChannelDbLevel_FWD_DEFINED__
    208 #define __IPerChannelDbLevel_FWD_DEFINED__
    209 typedef interface IPerChannelDbLevel IPerChannelDbLevel;
    210 #endif 	/* __IPerChannelDbLevel_FWD_DEFINED__ */
    211 
    212 
    213 #ifndef __IAudioVolumeLevel_FWD_DEFINED__
    214 #define __IAudioVolumeLevel_FWD_DEFINED__
    215 typedef interface IAudioVolumeLevel IAudioVolumeLevel;
    216 #endif 	/* __IAudioVolumeLevel_FWD_DEFINED__ */
    217 
    218 
    219 #ifndef __IAudioLoudness_FWD_DEFINED__
    220 #define __IAudioLoudness_FWD_DEFINED__
    221 typedef interface IAudioLoudness IAudioLoudness;
    222 #endif 	/* __IAudioLoudness_FWD_DEFINED__ */
    223 
    224 
    225 #ifndef __IAudioInputSelector_FWD_DEFINED__
    226 #define __IAudioInputSelector_FWD_DEFINED__
    227 typedef interface IAudioInputSelector IAudioInputSelector;
    228 #endif 	/* __IAudioInputSelector_FWD_DEFINED__ */
    229 
    230 
    231 #ifndef __IAudioMute_FWD_DEFINED__
    232 #define __IAudioMute_FWD_DEFINED__
    233 typedef interface IAudioMute IAudioMute;
    234 #endif 	/* __IAudioMute_FWD_DEFINED__ */
    235 
    236 
    237 #ifndef __IAudioBass_FWD_DEFINED__
    238 #define __IAudioBass_FWD_DEFINED__
    239 typedef interface IAudioBass IAudioBass;
    240 #endif 	/* __IAudioBass_FWD_DEFINED__ */
    241 
    242 
    243 #ifndef __IAudioMidrange_FWD_DEFINED__
    244 #define __IAudioMidrange_FWD_DEFINED__
    245 typedef interface IAudioMidrange IAudioMidrange;
    246 #endif 	/* __IAudioMidrange_FWD_DEFINED__ */
    247 
    248 
    249 #ifndef __IAudioTreble_FWD_DEFINED__
    250 #define __IAudioTreble_FWD_DEFINED__
    251 typedef interface IAudioTreble IAudioTreble;
    252 #endif 	/* __IAudioTreble_FWD_DEFINED__ */
    253 
    254 
    255 #ifndef __IAudioAutoGainControl_FWD_DEFINED__
    256 #define __IAudioAutoGainControl_FWD_DEFINED__
    257 typedef interface IAudioAutoGainControl IAudioAutoGainControl;
    258 #endif 	/* __IAudioAutoGainControl_FWD_DEFINED__ */
    259 
    260 
    261 #ifndef __IAudioOutputSelector_FWD_DEFINED__
    262 #define __IAudioOutputSelector_FWD_DEFINED__
    263 typedef interface IAudioOutputSelector IAudioOutputSelector;
    264 #endif 	/* __IAudioOutputSelector_FWD_DEFINED__ */
    265 
    266 
    267 #ifndef __IAudioPeakMeter_FWD_DEFINED__
    268 #define __IAudioPeakMeter_FWD_DEFINED__
    269 typedef interface IAudioPeakMeter IAudioPeakMeter;
    270 #endif 	/* __IAudioPeakMeter_FWD_DEFINED__ */
    271 
    272 
    273 #ifndef __IDeviceSpecificProperty_FWD_DEFINED__
    274 #define __IDeviceSpecificProperty_FWD_DEFINED__
    275 typedef interface IDeviceSpecificProperty IDeviceSpecificProperty;
    276 #endif 	/* __IDeviceSpecificProperty_FWD_DEFINED__ */
    277 
    278 
    279 #ifndef __IKsFormatSupport_FWD_DEFINED__
    280 #define __IKsFormatSupport_FWD_DEFINED__
    281 typedef interface IKsFormatSupport IKsFormatSupport;
    282 #endif 	/* __IKsFormatSupport_FWD_DEFINED__ */
    283 
    284 
    285 /* header files for imported files */
    286 #include "oaidl.h"
    287 #include "ocidl.h"
    288 #include "propidl.h"
    289 
    290 #ifdef __cplusplus
    291 extern "C"{
    292 #endif 
    293 
    294 
    295 /* interface __MIDL_itf_devicetopology_0000_0000 */
    296 /* [local] */ 
    297 
    298 #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
    299 //
    300 //   Flag for clients of IControlChangeNotify::OnNotify to allow those clients to identify hardware initiated notifications
    301 //
    302 #define DEVTOPO_HARDWARE_INITIATED_EVENTCONTEXT 'draH'
    303 /* E2C2E9DE-09B1-4B04-84E5-07931225EE04 */
    304 DEFINE_GUID(EVENTCONTEXT_VOLUMESLIDER, 0xE2C2E9DE,0x09B1,0x4B04,0x84, 0xE5, 0x07, 0x93, 0x12, 0x25, 0xEE, 0x04);
    305 #define _IKsControl_
    306 #include "ks.h"
    307 #include "ksmedia.h"
    308 #ifndef _KS_
    309 typedef /* [public] */ struct __MIDL___MIDL_itf_devicetopology_0000_0000_0001
    310     {
    311     ULONG FormatSize;
    312     ULONG Flags;
    313     ULONG SampleSize;
    314     ULONG Reserved;
    315     GUID MajorFormat;
    316     GUID SubFormat;
    317     GUID Specifier;
    318     } 	KSDATAFORMAT;
    319 
    320 typedef struct __MIDL___MIDL_itf_devicetopology_0000_0000_0001 *PKSDATAFORMAT;
    321 
    322 typedef /* [public][public][public][public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_devicetopology_0000_0000_0002
    323     {
    324     union 
    325         {
    326         struct 
    327             {
    328             GUID Set;
    329             ULONG Id;
    330             ULONG Flags;
    331             } 	;
    332         LONGLONG Alignment;
    333         } 	;
    334     } 	KSIDENTIFIER;
    335 
    336 typedef struct __MIDL___MIDL_itf_devicetopology_0000_0000_0002 *PKSIDENTIFIER;
    337 
    338 typedef /* [public][public][public][public] */ 
    339 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0005
    340     {	ePcxChanMap_FL_FR	= 0,
    341 	ePcxChanMap_FC_LFE	= ( ePcxChanMap_FL_FR + 1 ) ,
    342 	ePcxChanMap_BL_BR	= ( ePcxChanMap_FC_LFE + 1 ) ,
    343 	ePcxChanMap_FLC_FRC	= ( ePcxChanMap_BL_BR + 1 ) ,
    344 	ePcxChanMap_SL_SR	= ( ePcxChanMap_FLC_FRC + 1 ) ,
    345 	ePcxChanMap_Unknown	= ( ePcxChanMap_SL_SR + 1 ) 
    346     } 	EChannelMapping;
    347 
    348 typedef /* [public][public][public][public] */ 
    349 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0006
    350     {	eConnTypeUnknown	= 0,
    351 	eConnTypeEighth	= ( eConnTypeUnknown + 1 ) ,
    352 	eConnTypeQuarter	= ( eConnTypeEighth + 1 ) ,
    353 	eConnTypeAtapiInternal	= ( eConnTypeQuarter + 1 ) ,
    354 	eConnTypeRCA	= ( eConnTypeAtapiInternal + 1 ) ,
    355 	eConnTypeOptical	= ( eConnTypeRCA + 1 ) ,
    356 	eConnTypeOtherDigital	= ( eConnTypeOptical + 1 ) ,
    357 	eConnTypeOtherAnalog	= ( eConnTypeOtherDigital + 1 ) ,
    358 	eConnTypeMultichannelAnalogDIN	= ( eConnTypeOtherAnalog + 1 ) ,
    359 	eConnTypeXlrProfessional	= ( eConnTypeMultichannelAnalogDIN + 1 ) ,
    360 	eConnTypeRJ11Modem	= ( eConnTypeXlrProfessional + 1 ) ,
    361 	eConnTypeCombination	= ( eConnTypeRJ11Modem + 1 ) 
    362     } 	EPcxConnectionType;
    363 
    364 typedef /* [public][public][public][public] */ 
    365 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0007
    366     {	eGeoLocRear	= 0x1,
    367 	eGeoLocFront	= ( eGeoLocRear + 1 ) ,
    368 	eGeoLocLeft	= ( eGeoLocFront + 1 ) ,
    369 	eGeoLocRight	= ( eGeoLocLeft + 1 ) ,
    370 	eGeoLocTop	= ( eGeoLocRight + 1 ) ,
    371 	eGeoLocBottom	= ( eGeoLocTop + 1 ) ,
    372 	eGeoLocRearOPanel	= ( eGeoLocBottom + 1 ) ,
    373 	eGeoLocRiser	= ( eGeoLocRearOPanel + 1 ) ,
    374 	eGeoLocInsideMobileLid	= ( eGeoLocRiser + 1 ) ,
    375 	eGeoLocDrivebay	= ( eGeoLocInsideMobileLid + 1 ) ,
    376 	eGeoLocHDMI	= ( eGeoLocDrivebay + 1 ) ,
    377 	eGeoLocOutsideMobileLid	= ( eGeoLocHDMI + 1 ) ,
    378 	eGeoLocATAPI	= ( eGeoLocOutsideMobileLid + 1 ) ,
    379 	eGeoLocReserved5	= ( eGeoLocATAPI + 1 ) ,
    380 	eGeoLocReserved6	= ( eGeoLocReserved5 + 1 ) 
    381     } 	EPcxGeoLocation;
    382 
    383 typedef /* [public][public][public][public] */ 
    384 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0008
    385     {	eGenLocPrimaryBox	= 0,
    386 	eGenLocInternal	= ( eGenLocPrimaryBox + 1 ) ,
    387 	eGenLocSeperate	= ( eGenLocInternal + 1 ) ,
    388 	eGenLocOther	= ( eGenLocSeperate + 1 ) 
    389     } 	EPcxGenLocation;
    390 
    391 typedef /* [public][public][public][public] */ 
    392 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0009
    393     {	ePortConnJack	= 0,
    394 	ePortConnIntegratedDevice	= ( ePortConnJack + 1 ) ,
    395 	ePortConnBothIntegratedAndJack	= ( ePortConnIntegratedDevice + 1 ) ,
    396 	ePortConnUnknown	= ( ePortConnBothIntegratedAndJack + 1 ) 
    397     } 	EPxcPortConnection;
    398 
    399 typedef /* [public][public] */ struct __MIDL___MIDL_itf_devicetopology_0000_0000_0010
    400     {
    401     EChannelMapping ChannelMapping;
    402     COLORREF Color;
    403     EPcxConnectionType ConnectionType;
    404     EPcxGeoLocation GeoLocation;
    405     EPcxGenLocation GenLocation;
    406     EPxcPortConnection PortConnection;
    407     BOOL IsConnected;
    408     } 	KSJACK_DESCRIPTION;
    409 
    410 typedef struct __MIDL___MIDL_itf_devicetopology_0000_0000_0010 *PKSJACK_DESCRIPTION;
    411 
    412 typedef KSIDENTIFIER KSPROPERTY;
    413 
    414 typedef KSIDENTIFIER *PKSPROPERTY;
    415 
    416 typedef KSIDENTIFIER KSMETHOD;
    417 
    418 typedef KSIDENTIFIER *PKSMETHOD;
    419 
    420 typedef KSIDENTIFIER KSEVENT;
    421 
    422 typedef KSIDENTIFIER *PKSEVENT;
    423 
    424 #endif
    425 
    426 
    427 
    428 
    429 
    430 
    431 
    432 
    433 typedef /* [public][public] */ 
    434 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0011
    435     {	In	= 0,
    436 	Out	= ( In + 1 ) 
    437     } 	DataFlow;
    438 
    439 typedef /* [public][public] */ 
    440 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0012
    441     {	Connector	= 0,
    442 	Subunit	= ( Connector + 1 ) 
    443     } 	PartType;
    444 
    445 #define PARTTYPE_FLAG_CONNECTOR 0x00010000
    446 #define PARTTYPE_FLAG_SUBUNIT   0x00020000
    447 #define PARTTYPE_MASK           0x00030000
    448 #define PARTID_MASK             0x0000ffff
    449 typedef /* [public][public] */ 
    450 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0013
    451     {	Unknown_Connector	= 0,
    452 	Physical_Internal	= ( Unknown_Connector + 1 ) ,
    453 	Physical_External	= ( Physical_Internal + 1 ) ,
    454 	Software_IO	= ( Physical_External + 1 ) ,
    455 	Software_Fixed	= ( Software_IO + 1 ) ,
    456 	Network	= ( Software_Fixed + 1 ) 
    457     } 	ConnectorType;
    458 
    459 
    460 
    461 extern RPC_IF_HANDLE __MIDL_itf_devicetopology_0000_0000_v0_0_c_ifspec;
    462 extern RPC_IF_HANDLE __MIDL_itf_devicetopology_0000_0000_v0_0_s_ifspec;
    463 
    464 #ifndef __IKsControl_INTERFACE_DEFINED__
    465 #define __IKsControl_INTERFACE_DEFINED__
    466 
    467 /* interface IKsControl */
    468 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
    469 
    470 
    471 EXTERN_C const IID IID_IKsControl;
    472 
    473 #if defined(__cplusplus) && !defined(CINTERFACE)
    474     
    475     MIDL_INTERFACE("28F54685-06FD-11D2-B27A-00A0C9223196")
    476     IKsControl : public IUnknown
    477     {
    478     public:
    479         virtual HRESULT STDMETHODCALLTYPE KsProperty( 
    480             /* [in] */ PKSPROPERTY Property,
    481             /* [in] */ ULONG PropertyLength,
    482             /* [out][in] */ void *PropertyData,
    483             /* [in] */ ULONG DataLength,
    484             /* [out] */ ULONG *BytesReturned) = 0;
    485         
    486         virtual HRESULT STDMETHODCALLTYPE KsMethod( 
    487             /* [in] */ PKSMETHOD Method,
    488             /* [in] */ ULONG MethodLength,
    489             /* [out][in] */ void *MethodData,
    490             /* [in] */ ULONG DataLength,
    491             /* [out] */ ULONG *BytesReturned) = 0;
    492         
    493         virtual HRESULT STDMETHODCALLTYPE KsEvent( 
    494             /* [in] */ PKSEVENT Event,
    495             /* [in] */ ULONG EventLength,
    496             /* [out][in] */ void *EventData,
    497             /* [in] */ ULONG DataLength,
    498             /* [out] */ ULONG *BytesReturned) = 0;
    499         
    500     };
    501     
    502 #else 	/* C style interface */
    503 
    504     typedef struct IKsControlVtbl
    505     {
    506         BEGIN_INTERFACE
    507         
    508         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    509             IKsControl * This,
    510             /* [in] */ REFIID riid,
    511             /* [iid_is][out] */ 
    512             __RPC__deref_out  void **ppvObject);
    513         
    514         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    515             IKsControl * This);
    516         
    517         ULONG ( STDMETHODCALLTYPE *Release )( 
    518             IKsControl * This);
    519         
    520         HRESULT ( STDMETHODCALLTYPE *KsProperty )( 
    521             IKsControl * This,
    522             /* [in] */ PKSPROPERTY Property,
    523             /* [in] */ ULONG PropertyLength,
    524             /* [out][in] */ void *PropertyData,
    525             /* [in] */ ULONG DataLength,
    526             /* [out] */ ULONG *BytesReturned);
    527         
    528         HRESULT ( STDMETHODCALLTYPE *KsMethod )( 
    529             IKsControl * This,
    530             /* [in] */ PKSMETHOD Method,
    531             /* [in] */ ULONG MethodLength,
    532             /* [out][in] */ void *MethodData,
    533             /* [in] */ ULONG DataLength,
    534             /* [out] */ ULONG *BytesReturned);
    535         
    536         HRESULT ( STDMETHODCALLTYPE *KsEvent )( 
    537             IKsControl * This,
    538             /* [in] */ PKSEVENT Event,
    539             /* [in] */ ULONG EventLength,
    540             /* [out][in] */ void *EventData,
    541             /* [in] */ ULONG DataLength,
    542             /* [out] */ ULONG *BytesReturned);
    543         
    544         END_INTERFACE
    545     } IKsControlVtbl;
    546 
    547     interface IKsControl
    548     {
    549         CONST_VTBL struct IKsControlVtbl *lpVtbl;
    550     };
    551 
    552     
    553 
    554 #ifdef COBJMACROS
    555 
    556 
    557 #define IKsControl_QueryInterface(This,riid,ppvObject)	\
    558     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    559 
    560 #define IKsControl_AddRef(This)	\
    561     ( (This)->lpVtbl -> AddRef(This) ) 
    562 
    563 #define IKsControl_Release(This)	\
    564     ( (This)->lpVtbl -> Release(This) ) 
    565 
    566 
    567 #define IKsControl_KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned)	\
    568     ( (This)->lpVtbl -> KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned) ) 
    569 
    570 #define IKsControl_KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned)	\
    571     ( (This)->lpVtbl -> KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned) ) 
    572 
    573 #define IKsControl_KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned)	\
    574     ( (This)->lpVtbl -> KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned) ) 
    575 
    576 #endif /* COBJMACROS */
    577 
    578 
    579 #endif 	/* C style interface */
    580 
    581 
    582 
    583 
    584 #endif 	/* __IKsControl_INTERFACE_DEFINED__ */
    585 
    586 
    587 #ifndef __IPerChannelDbLevel_INTERFACE_DEFINED__
    588 #define __IPerChannelDbLevel_INTERFACE_DEFINED__
    589 
    590 /* interface IPerChannelDbLevel */
    591 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
    592 
    593 
    594 EXTERN_C const IID IID_IPerChannelDbLevel;
    595 
    596 #if defined(__cplusplus) && !defined(CINTERFACE)
    597     
    598     MIDL_INTERFACE("C2F8E001-F205-4BC9-99BC-C13B1E048CCB")
    599     IPerChannelDbLevel : public IUnknown
    600     {
    601     public:
    602         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChannelCount( 
    603             /* [out] */ 
    604             __out  UINT *pcChannels) = 0;
    605         
    606         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLevelRange( 
    607             /* [in] */ 
    608             __in  UINT nChannel,
    609             /* [out] */ 
    610             __out  float *pfMinLevelDB,
    611             /* [out] */ 
    612             __out  float *pfMaxLevelDB,
    613             /* [out] */ 
    614             __out  float *pfStepping) = 0;
    615         
    616         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLevel( 
    617             /* [in] */ 
    618             __in  UINT nChannel,
    619             /* [out] */ 
    620             __out  float *pfLevelDB) = 0;
    621         
    622         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLevel( 
    623             /* [in] */ 
    624             __in  UINT nChannel,
    625             /* [in] */ 
    626             __in  float fLevelDB,
    627             /* [unique][in] */ 
    628             __in_opt  LPCGUID pguidEventContext) = 0;
    629         
    630         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLevelUniform( 
    631             /* [in] */ 
    632             __in  float fLevelDB,
    633             /* [unique][in] */ 
    634             __in_opt  LPCGUID pguidEventContext) = 0;
    635         
    636         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLevelAllChannels( 
    637             /* [size_is][in] */ 
    638             __in_ecount(cChannels)  float aLevelsDB[  ],
    639             /* [in] */ 
    640             __in  ULONG cChannels,
    641             /* [unique][in] */ 
    642             __in_opt  LPCGUID pguidEventContext) = 0;
    643         
    644     };
    645     
    646 #else 	/* C style interface */
    647 
    648     typedef struct IPerChannelDbLevelVtbl
    649     {
    650         BEGIN_INTERFACE
    651         
    652         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    653             IPerChannelDbLevel * This,
    654             /* [in] */ REFIID riid,
    655             /* [iid_is][out] */ 
    656             __RPC__deref_out  void **ppvObject);
    657         
    658         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    659             IPerChannelDbLevel * This);
    660         
    661         ULONG ( STDMETHODCALLTYPE *Release )( 
    662             IPerChannelDbLevel * This);
    663         
    664         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
    665             IPerChannelDbLevel * This,
    666             /* [out] */ 
    667             __out  UINT *pcChannels);
    668         
    669         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )( 
    670             IPerChannelDbLevel * This,
    671             /* [in] */ 
    672             __in  UINT nChannel,
    673             /* [out] */ 
    674             __out  float *pfMinLevelDB,
    675             /* [out] */ 
    676             __out  float *pfMaxLevelDB,
    677             /* [out] */ 
    678             __out  float *pfStepping);
    679         
    680         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )( 
    681             IPerChannelDbLevel * This,
    682             /* [in] */ 
    683             __in  UINT nChannel,
    684             /* [out] */ 
    685             __out  float *pfLevelDB);
    686         
    687         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )( 
    688             IPerChannelDbLevel * This,
    689             /* [in] */ 
    690             __in  UINT nChannel,
    691             /* [in] */ 
    692             __in  float fLevelDB,
    693             /* [unique][in] */ 
    694             __in_opt  LPCGUID pguidEventContext);
    695         
    696         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )( 
    697             IPerChannelDbLevel * This,
    698             /* [in] */ 
    699             __in  float fLevelDB,
    700             /* [unique][in] */ 
    701             __in_opt  LPCGUID pguidEventContext);
    702         
    703         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )( 
    704             IPerChannelDbLevel * This,
    705             /* [size_is][in] */ 
    706             __in_ecount(cChannels)  float aLevelsDB[  ],
    707             /* [in] */ 
    708             __in  ULONG cChannels,
    709             /* [unique][in] */ 
    710             __in_opt  LPCGUID pguidEventContext);
    711         
    712         END_INTERFACE
    713     } IPerChannelDbLevelVtbl;
    714 
    715     interface IPerChannelDbLevel
    716     {
    717         CONST_VTBL struct IPerChannelDbLevelVtbl *lpVtbl;
    718     };
    719 
    720     
    721 
    722 #ifdef COBJMACROS
    723 
    724 
    725 #define IPerChannelDbLevel_QueryInterface(This,riid,ppvObject)	\
    726     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    727 
    728 #define IPerChannelDbLevel_AddRef(This)	\
    729     ( (This)->lpVtbl -> AddRef(This) ) 
    730 
    731 #define IPerChannelDbLevel_Release(This)	\
    732     ( (This)->lpVtbl -> Release(This) ) 
    733 
    734 
    735 #define IPerChannelDbLevel_GetChannelCount(This,pcChannels)	\
    736     ( (This)->lpVtbl -> GetChannelCount(This,pcChannels) ) 
    737 
    738 #define IPerChannelDbLevel_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)	\
    739     ( (This)->lpVtbl -> GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) ) 
    740 
    741 #define IPerChannelDbLevel_GetLevel(This,nChannel,pfLevelDB)	\
    742     ( (This)->lpVtbl -> GetLevel(This,nChannel,pfLevelDB) ) 
    743 
    744 #define IPerChannelDbLevel_SetLevel(This,nChannel,fLevelDB,pguidEventContext)	\
    745     ( (This)->lpVtbl -> SetLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
    746 
    747 #define IPerChannelDbLevel_SetLevelUniform(This,fLevelDB,pguidEventContext)	\
    748     ( (This)->lpVtbl -> SetLevelUniform(This,fLevelDB,pguidEventContext) ) 
    749 
    750 #define IPerChannelDbLevel_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)	\
    751     ( (This)->lpVtbl -> SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) ) 
    752 
    753 #endif /* COBJMACROS */
    754 
    755 
    756 #endif 	/* C style interface */
    757 
    758 
    759 
    760 
    761 #endif 	/* __IPerChannelDbLevel_INTERFACE_DEFINED__ */
    762 
    763 
    764 #ifndef __IAudioVolumeLevel_INTERFACE_DEFINED__
    765 #define __IAudioVolumeLevel_INTERFACE_DEFINED__
    766 
    767 /* interface IAudioVolumeLevel */
    768 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
    769 
    770 
    771 EXTERN_C const IID IID_IAudioVolumeLevel;
    772 
    773 #if defined(__cplusplus) && !defined(CINTERFACE)
    774     
    775     MIDL_INTERFACE("7FB7B48F-531D-44A2-BCB3-5AD5A134B3DC")
    776     IAudioVolumeLevel : public IPerChannelDbLevel
    777     {
    778     public:
    779     };
    780     
    781 #else 	/* C style interface */
    782 
    783     typedef struct IAudioVolumeLevelVtbl
    784     {
    785         BEGIN_INTERFACE
    786         
    787         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    788             IAudioVolumeLevel * This,
    789             /* [in] */ REFIID riid,
    790             /* [iid_is][out] */ 
    791             __RPC__deref_out  void **ppvObject);
    792         
    793         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    794             IAudioVolumeLevel * This);
    795         
    796         ULONG ( STDMETHODCALLTYPE *Release )( 
    797             IAudioVolumeLevel * This);
    798         
    799         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
    800             IAudioVolumeLevel * This,
    801             /* [out] */ 
    802             __out  UINT *pcChannels);
    803         
    804         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )( 
    805             IAudioVolumeLevel * This,
    806             /* [in] */ 
    807             __in  UINT nChannel,
    808             /* [out] */ 
    809             __out  float *pfMinLevelDB,
    810             /* [out] */ 
    811             __out  float *pfMaxLevelDB,
    812             /* [out] */ 
    813             __out  float *pfStepping);
    814         
    815         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )( 
    816             IAudioVolumeLevel * This,
    817             /* [in] */ 
    818             __in  UINT nChannel,
    819             /* [out] */ 
    820             __out  float *pfLevelDB);
    821         
    822         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )( 
    823             IAudioVolumeLevel * This,
    824             /* [in] */ 
    825             __in  UINT nChannel,
    826             /* [in] */ 
    827             __in  float fLevelDB,
    828             /* [unique][in] */ 
    829             __in_opt  LPCGUID pguidEventContext);
    830         
    831         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )( 
    832             IAudioVolumeLevel * This,
    833             /* [in] */ 
    834             __in  float fLevelDB,
    835             /* [unique][in] */ 
    836             __in_opt  LPCGUID pguidEventContext);
    837         
    838         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )( 
    839             IAudioVolumeLevel * This,
    840             /* [size_is][in] */ 
    841             __in_ecount(cChannels)  float aLevelsDB[  ],
    842             /* [in] */ 
    843             __in  ULONG cChannels,
    844             /* [unique][in] */ 
    845             __in_opt  LPCGUID pguidEventContext);
    846         
    847         END_INTERFACE
    848     } IAudioVolumeLevelVtbl;
    849 
    850     interface IAudioVolumeLevel
    851     {
    852         CONST_VTBL struct IAudioVolumeLevelVtbl *lpVtbl;
    853     };
    854 
    855     
    856 
    857 #ifdef COBJMACROS
    858 
    859 
    860 #define IAudioVolumeLevel_QueryInterface(This,riid,ppvObject)	\
    861     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    862 
    863 #define IAudioVolumeLevel_AddRef(This)	\
    864     ( (This)->lpVtbl -> AddRef(This) ) 
    865 
    866 #define IAudioVolumeLevel_Release(This)	\
    867     ( (This)->lpVtbl -> Release(This) ) 
    868 
    869 
    870 #define IAudioVolumeLevel_GetChannelCount(This,pcChannels)	\
    871     ( (This)->lpVtbl -> GetChannelCount(This,pcChannels) ) 
    872 
    873 #define IAudioVolumeLevel_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)	\
    874     ( (This)->lpVtbl -> GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) ) 
    875 
    876 #define IAudioVolumeLevel_GetLevel(This,nChannel,pfLevelDB)	\
    877     ( (This)->lpVtbl -> GetLevel(This,nChannel,pfLevelDB) ) 
    878 
    879 #define IAudioVolumeLevel_SetLevel(This,nChannel,fLevelDB,pguidEventContext)	\
    880     ( (This)->lpVtbl -> SetLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
    881 
    882 #define IAudioVolumeLevel_SetLevelUniform(This,fLevelDB,pguidEventContext)	\
    883     ( (This)->lpVtbl -> SetLevelUniform(This,fLevelDB,pguidEventContext) ) 
    884 
    885 #define IAudioVolumeLevel_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)	\
    886     ( (This)->lpVtbl -> SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) ) 
    887 
    888 
    889 #endif /* COBJMACROS */
    890 
    891 
    892 #endif 	/* C style interface */
    893 
    894 
    895 
    896 
    897 #endif 	/* __IAudioVolumeLevel_INTERFACE_DEFINED__ */
    898 
    899 
    900 #ifndef __IAudioChannelConfig_INTERFACE_DEFINED__
    901 #define __IAudioChannelConfig_INTERFACE_DEFINED__
    902 
    903 /* interface IAudioChannelConfig */
    904 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
    905 
    906 
    907 EXTERN_C const IID IID_IAudioChannelConfig;
    908 
    909 #if defined(__cplusplus) && !defined(CINTERFACE)
    910     
    911     MIDL_INTERFACE("BB11C46F-EC28-493C-B88A-5DB88062CE98")
    912     IAudioChannelConfig : public IUnknown
    913     {
    914     public:
    915         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetChannelConfig( 
    916             /* [in] */ DWORD dwConfig,
    917             /* [unique][in] */ 
    918             __in_opt  LPCGUID pguidEventContext) = 0;
    919         
    920         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChannelConfig( 
    921             /* [retval][out] */ DWORD *pdwConfig) = 0;
    922         
    923     };
    924     
    925 #else 	/* C style interface */
    926 
    927     typedef struct IAudioChannelConfigVtbl
    928     {
    929         BEGIN_INTERFACE
    930         
    931         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
    932             IAudioChannelConfig * This,
    933             /* [in] */ REFIID riid,
    934             /* [iid_is][out] */ 
    935             __RPC__deref_out  void **ppvObject);
    936         
    937         ULONG ( STDMETHODCALLTYPE *AddRef )( 
    938             IAudioChannelConfig * This);
    939         
    940         ULONG ( STDMETHODCALLTYPE *Release )( 
    941             IAudioChannelConfig * This);
    942         
    943         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetChannelConfig )( 
    944             IAudioChannelConfig * This,
    945             /* [in] */ DWORD dwConfig,
    946             /* [unique][in] */ 
    947             __in_opt  LPCGUID pguidEventContext);
    948         
    949         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelConfig )( 
    950             IAudioChannelConfig * This,
    951             /* [retval][out] */ DWORD *pdwConfig);
    952         
    953         END_INTERFACE
    954     } IAudioChannelConfigVtbl;
    955 
    956     interface IAudioChannelConfig
    957     {
    958         CONST_VTBL struct IAudioChannelConfigVtbl *lpVtbl;
    959     };
    960 
    961     
    962 
    963 #ifdef COBJMACROS
    964 
    965 
    966 #define IAudioChannelConfig_QueryInterface(This,riid,ppvObject)	\
    967     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
    968 
    969 #define IAudioChannelConfig_AddRef(This)	\
    970     ( (This)->lpVtbl -> AddRef(This) ) 
    971 
    972 #define IAudioChannelConfig_Release(This)	\
    973     ( (This)->lpVtbl -> Release(This) ) 
    974 
    975 
    976 #define IAudioChannelConfig_SetChannelConfig(This,dwConfig,pguidEventContext)	\
    977     ( (This)->lpVtbl -> SetChannelConfig(This,dwConfig,pguidEventContext) ) 
    978 
    979 #define IAudioChannelConfig_GetChannelConfig(This,pdwConfig)	\
    980     ( (This)->lpVtbl -> GetChannelConfig(This,pdwConfig) ) 
    981 
    982 #endif /* COBJMACROS */
    983 
    984 
    985 #endif 	/* C style interface */
    986 
    987 
    988 
    989 
    990 #endif 	/* __IAudioChannelConfig_INTERFACE_DEFINED__ */
    991 
    992 
    993 #ifndef __IAudioLoudness_INTERFACE_DEFINED__
    994 #define __IAudioLoudness_INTERFACE_DEFINED__
    995 
    996 /* interface IAudioLoudness */
    997 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
    998 
    999 
   1000 EXTERN_C const IID IID_IAudioLoudness;
   1001 
   1002 #if defined(__cplusplus) && !defined(CINTERFACE)
   1003     
   1004     MIDL_INTERFACE("7D8B1437-DD53-4350-9C1B-1EE2890BD938")
   1005     IAudioLoudness : public IUnknown
   1006     {
   1007     public:
   1008         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetEnabled( 
   1009             /* [out] */ 
   1010             __out  BOOL *pbEnabled) = 0;
   1011         
   1012         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetEnabled( 
   1013             /* [in] */ 
   1014             __in  BOOL bEnable,
   1015             /* [unique][in] */ 
   1016             __in_opt  LPCGUID pguidEventContext) = 0;
   1017         
   1018     };
   1019     
   1020 #else 	/* C style interface */
   1021 
   1022     typedef struct IAudioLoudnessVtbl
   1023     {
   1024         BEGIN_INTERFACE
   1025         
   1026         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1027             IAudioLoudness * This,
   1028             /* [in] */ REFIID riid,
   1029             /* [iid_is][out] */ 
   1030             __RPC__deref_out  void **ppvObject);
   1031         
   1032         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1033             IAudioLoudness * This);
   1034         
   1035         ULONG ( STDMETHODCALLTYPE *Release )( 
   1036             IAudioLoudness * This);
   1037         
   1038         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetEnabled )( 
   1039             IAudioLoudness * This,
   1040             /* [out] */ 
   1041             __out  BOOL *pbEnabled);
   1042         
   1043         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetEnabled )( 
   1044             IAudioLoudness * This,
   1045             /* [in] */ 
   1046             __in  BOOL bEnable,
   1047             /* [unique][in] */ 
   1048             __in_opt  LPCGUID pguidEventContext);
   1049         
   1050         END_INTERFACE
   1051     } IAudioLoudnessVtbl;
   1052 
   1053     interface IAudioLoudness
   1054     {
   1055         CONST_VTBL struct IAudioLoudnessVtbl *lpVtbl;
   1056     };
   1057 
   1058     
   1059 
   1060 #ifdef COBJMACROS
   1061 
   1062 
   1063 #define IAudioLoudness_QueryInterface(This,riid,ppvObject)	\
   1064     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1065 
   1066 #define IAudioLoudness_AddRef(This)	\
   1067     ( (This)->lpVtbl -> AddRef(This) ) 
   1068 
   1069 #define IAudioLoudness_Release(This)	\
   1070     ( (This)->lpVtbl -> Release(This) ) 
   1071 
   1072 
   1073 #define IAudioLoudness_GetEnabled(This,pbEnabled)	\
   1074     ( (This)->lpVtbl -> GetEnabled(This,pbEnabled) ) 
   1075 
   1076 #define IAudioLoudness_SetEnabled(This,bEnable,pguidEventContext)	\
   1077     ( (This)->lpVtbl -> SetEnabled(This,bEnable,pguidEventContext) ) 
   1078 
   1079 #endif /* COBJMACROS */
   1080 
   1081 
   1082 #endif 	/* C style interface */
   1083 
   1084 
   1085 
   1086 
   1087 #endif 	/* __IAudioLoudness_INTERFACE_DEFINED__ */
   1088 
   1089 
   1090 #ifndef __IAudioInputSelector_INTERFACE_DEFINED__
   1091 #define __IAudioInputSelector_INTERFACE_DEFINED__
   1092 
   1093 /* interface IAudioInputSelector */
   1094 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1095 
   1096 
   1097 EXTERN_C const IID IID_IAudioInputSelector;
   1098 
   1099 #if defined(__cplusplus) && !defined(CINTERFACE)
   1100     
   1101     MIDL_INTERFACE("4F03DC02-5E6E-4653-8F72-A030C123D598")
   1102     IAudioInputSelector : public IUnknown
   1103     {
   1104     public:
   1105         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelection( 
   1106             /* [out] */ 
   1107             __out  UINT *pnIdSelected) = 0;
   1108         
   1109         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSelection( 
   1110             /* [in] */ 
   1111             __in  UINT nIdSelect,
   1112             /* [unique][in] */ 
   1113             __in_opt  LPCGUID pguidEventContext) = 0;
   1114         
   1115     };
   1116     
   1117 #else 	/* C style interface */
   1118 
   1119     typedef struct IAudioInputSelectorVtbl
   1120     {
   1121         BEGIN_INTERFACE
   1122         
   1123         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1124             IAudioInputSelector * This,
   1125             /* [in] */ REFIID riid,
   1126             /* [iid_is][out] */ 
   1127             __RPC__deref_out  void **ppvObject);
   1128         
   1129         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1130             IAudioInputSelector * This);
   1131         
   1132         ULONG ( STDMETHODCALLTYPE *Release )( 
   1133             IAudioInputSelector * This);
   1134         
   1135         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
   1136             IAudioInputSelector * This,
   1137             /* [out] */ 
   1138             __out  UINT *pnIdSelected);
   1139         
   1140         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSelection )( 
   1141             IAudioInputSelector * This,
   1142             /* [in] */ 
   1143             __in  UINT nIdSelect,
   1144             /* [unique][in] */ 
   1145             __in_opt  LPCGUID pguidEventContext);
   1146         
   1147         END_INTERFACE
   1148     } IAudioInputSelectorVtbl;
   1149 
   1150     interface IAudioInputSelector
   1151     {
   1152         CONST_VTBL struct IAudioInputSelectorVtbl *lpVtbl;
   1153     };
   1154 
   1155     
   1156 
   1157 #ifdef COBJMACROS
   1158 
   1159 
   1160 #define IAudioInputSelector_QueryInterface(This,riid,ppvObject)	\
   1161     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1162 
   1163 #define IAudioInputSelector_AddRef(This)	\
   1164     ( (This)->lpVtbl -> AddRef(This) ) 
   1165 
   1166 #define IAudioInputSelector_Release(This)	\
   1167     ( (This)->lpVtbl -> Release(This) ) 
   1168 
   1169 
   1170 #define IAudioInputSelector_GetSelection(This,pnIdSelected)	\
   1171     ( (This)->lpVtbl -> GetSelection(This,pnIdSelected) ) 
   1172 
   1173 #define IAudioInputSelector_SetSelection(This,nIdSelect,pguidEventContext)	\
   1174     ( (This)->lpVtbl -> SetSelection(This,nIdSelect,pguidEventContext) ) 
   1175 
   1176 #endif /* COBJMACROS */
   1177 
   1178 
   1179 #endif 	/* C style interface */
   1180 
   1181 
   1182 
   1183 
   1184 #endif 	/* __IAudioInputSelector_INTERFACE_DEFINED__ */
   1185 
   1186 
   1187 #ifndef __IAudioOutputSelector_INTERFACE_DEFINED__
   1188 #define __IAudioOutputSelector_INTERFACE_DEFINED__
   1189 
   1190 /* interface IAudioOutputSelector */
   1191 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1192 
   1193 
   1194 EXTERN_C const IID IID_IAudioOutputSelector;
   1195 
   1196 #if defined(__cplusplus) && !defined(CINTERFACE)
   1197     
   1198     MIDL_INTERFACE("BB515F69-94A7-429e-8B9C-271B3F11A3AB")
   1199     IAudioOutputSelector : public IUnknown
   1200     {
   1201     public:
   1202         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelection( 
   1203             /* [out] */ 
   1204             __out  UINT *pnIdSelected) = 0;
   1205         
   1206         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSelection( 
   1207             /* [in] */ 
   1208             __in  UINT nIdSelect,
   1209             /* [unique][in] */ 
   1210             __in_opt  LPCGUID pguidEventContext) = 0;
   1211         
   1212     };
   1213     
   1214 #else 	/* C style interface */
   1215 
   1216     typedef struct IAudioOutputSelectorVtbl
   1217     {
   1218         BEGIN_INTERFACE
   1219         
   1220         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1221             IAudioOutputSelector * This,
   1222             /* [in] */ REFIID riid,
   1223             /* [iid_is][out] */ 
   1224             __RPC__deref_out  void **ppvObject);
   1225         
   1226         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1227             IAudioOutputSelector * This);
   1228         
   1229         ULONG ( STDMETHODCALLTYPE *Release )( 
   1230             IAudioOutputSelector * This);
   1231         
   1232         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
   1233             IAudioOutputSelector * This,
   1234             /* [out] */ 
   1235             __out  UINT *pnIdSelected);
   1236         
   1237         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSelection )( 
   1238             IAudioOutputSelector * This,
   1239             /* [in] */ 
   1240             __in  UINT nIdSelect,
   1241             /* [unique][in] */ 
   1242             __in_opt  LPCGUID pguidEventContext);
   1243         
   1244         END_INTERFACE
   1245     } IAudioOutputSelectorVtbl;
   1246 
   1247     interface IAudioOutputSelector
   1248     {
   1249         CONST_VTBL struct IAudioOutputSelectorVtbl *lpVtbl;
   1250     };
   1251 
   1252     
   1253 
   1254 #ifdef COBJMACROS
   1255 
   1256 
   1257 #define IAudioOutputSelector_QueryInterface(This,riid,ppvObject)	\
   1258     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1259 
   1260 #define IAudioOutputSelector_AddRef(This)	\
   1261     ( (This)->lpVtbl -> AddRef(This) ) 
   1262 
   1263 #define IAudioOutputSelector_Release(This)	\
   1264     ( (This)->lpVtbl -> Release(This) ) 
   1265 
   1266 
   1267 #define IAudioOutputSelector_GetSelection(This,pnIdSelected)	\
   1268     ( (This)->lpVtbl -> GetSelection(This,pnIdSelected) ) 
   1269 
   1270 #define IAudioOutputSelector_SetSelection(This,nIdSelect,pguidEventContext)	\
   1271     ( (This)->lpVtbl -> SetSelection(This,nIdSelect,pguidEventContext) ) 
   1272 
   1273 #endif /* COBJMACROS */
   1274 
   1275 
   1276 #endif 	/* C style interface */
   1277 
   1278 
   1279 
   1280 
   1281 #endif 	/* __IAudioOutputSelector_INTERFACE_DEFINED__ */
   1282 
   1283 
   1284 #ifndef __IAudioMute_INTERFACE_DEFINED__
   1285 #define __IAudioMute_INTERFACE_DEFINED__
   1286 
   1287 /* interface IAudioMute */
   1288 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1289 
   1290 
   1291 EXTERN_C const IID IID_IAudioMute;
   1292 
   1293 #if defined(__cplusplus) && !defined(CINTERFACE)
   1294     
   1295     MIDL_INTERFACE("DF45AEEA-B74A-4B6B-AFAD-2366B6AA012E")
   1296     IAudioMute : public IUnknown
   1297     {
   1298     public:
   1299         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMute( 
   1300             /* [in] */ 
   1301             __in  BOOL bMuted,
   1302             /* [unique][in] */ 
   1303             __in_opt  LPCGUID pguidEventContext) = 0;
   1304         
   1305         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMute( 
   1306             /* [out] */ 
   1307             __out  BOOL *pbMuted) = 0;
   1308         
   1309     };
   1310     
   1311 #else 	/* C style interface */
   1312 
   1313     typedef struct IAudioMuteVtbl
   1314     {
   1315         BEGIN_INTERFACE
   1316         
   1317         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1318             IAudioMute * This,
   1319             /* [in] */ REFIID riid,
   1320             /* [iid_is][out] */ 
   1321             __RPC__deref_out  void **ppvObject);
   1322         
   1323         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1324             IAudioMute * This);
   1325         
   1326         ULONG ( STDMETHODCALLTYPE *Release )( 
   1327             IAudioMute * This);
   1328         
   1329         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMute )( 
   1330             IAudioMute * This,
   1331             /* [in] */ 
   1332             __in  BOOL bMuted,
   1333             /* [unique][in] */ 
   1334             __in_opt  LPCGUID pguidEventContext);
   1335         
   1336         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMute )( 
   1337             IAudioMute * This,
   1338             /* [out] */ 
   1339             __out  BOOL *pbMuted);
   1340         
   1341         END_INTERFACE
   1342     } IAudioMuteVtbl;
   1343 
   1344     interface IAudioMute
   1345     {
   1346         CONST_VTBL struct IAudioMuteVtbl *lpVtbl;
   1347     };
   1348 
   1349     
   1350 
   1351 #ifdef COBJMACROS
   1352 
   1353 
   1354 #define IAudioMute_QueryInterface(This,riid,ppvObject)	\
   1355     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1356 
   1357 #define IAudioMute_AddRef(This)	\
   1358     ( (This)->lpVtbl -> AddRef(This) ) 
   1359 
   1360 #define IAudioMute_Release(This)	\
   1361     ( (This)->lpVtbl -> Release(This) ) 
   1362 
   1363 
   1364 #define IAudioMute_SetMute(This,bMuted,pguidEventContext)	\
   1365     ( (This)->lpVtbl -> SetMute(This,bMuted,pguidEventContext) ) 
   1366 
   1367 #define IAudioMute_GetMute(This,pbMuted)	\
   1368     ( (This)->lpVtbl -> GetMute(This,pbMuted) ) 
   1369 
   1370 #endif /* COBJMACROS */
   1371 
   1372 
   1373 #endif 	/* C style interface */
   1374 
   1375 
   1376 
   1377 
   1378 #endif 	/* __IAudioMute_INTERFACE_DEFINED__ */
   1379 
   1380 
   1381 #ifndef __IAudioBass_INTERFACE_DEFINED__
   1382 #define __IAudioBass_INTERFACE_DEFINED__
   1383 
   1384 /* interface IAudioBass */
   1385 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1386 
   1387 
   1388 EXTERN_C const IID IID_IAudioBass;
   1389 
   1390 #if defined(__cplusplus) && !defined(CINTERFACE)
   1391     
   1392     MIDL_INTERFACE("A2B1A1D9-4DB3-425D-A2B2-BD335CB3E2E5")
   1393     IAudioBass : public IPerChannelDbLevel
   1394     {
   1395     public:
   1396     };
   1397     
   1398 #else 	/* C style interface */
   1399 
   1400     typedef struct IAudioBassVtbl
   1401     {
   1402         BEGIN_INTERFACE
   1403         
   1404         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1405             IAudioBass * This,
   1406             /* [in] */ REFIID riid,
   1407             /* [iid_is][out] */ 
   1408             __RPC__deref_out  void **ppvObject);
   1409         
   1410         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1411             IAudioBass * This);
   1412         
   1413         ULONG ( STDMETHODCALLTYPE *Release )( 
   1414             IAudioBass * This);
   1415         
   1416         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
   1417             IAudioBass * This,
   1418             /* [out] */ 
   1419             __out  UINT *pcChannels);
   1420         
   1421         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )( 
   1422             IAudioBass * This,
   1423             /* [in] */ 
   1424             __in  UINT nChannel,
   1425             /* [out] */ 
   1426             __out  float *pfMinLevelDB,
   1427             /* [out] */ 
   1428             __out  float *pfMaxLevelDB,
   1429             /* [out] */ 
   1430             __out  float *pfStepping);
   1431         
   1432         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )( 
   1433             IAudioBass * This,
   1434             /* [in] */ 
   1435             __in  UINT nChannel,
   1436             /* [out] */ 
   1437             __out  float *pfLevelDB);
   1438         
   1439         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )( 
   1440             IAudioBass * This,
   1441             /* [in] */ 
   1442             __in  UINT nChannel,
   1443             /* [in] */ 
   1444             __in  float fLevelDB,
   1445             /* [unique][in] */ 
   1446             __in_opt  LPCGUID pguidEventContext);
   1447         
   1448         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )( 
   1449             IAudioBass * This,
   1450             /* [in] */ 
   1451             __in  float fLevelDB,
   1452             /* [unique][in] */ 
   1453             __in_opt  LPCGUID pguidEventContext);
   1454         
   1455         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )( 
   1456             IAudioBass * This,
   1457             /* [size_is][in] */ 
   1458             __in_ecount(cChannels)  float aLevelsDB[  ],
   1459             /* [in] */ 
   1460             __in  ULONG cChannels,
   1461             /* [unique][in] */ 
   1462             __in_opt  LPCGUID pguidEventContext);
   1463         
   1464         END_INTERFACE
   1465     } IAudioBassVtbl;
   1466 
   1467     interface IAudioBass
   1468     {
   1469         CONST_VTBL struct IAudioBassVtbl *lpVtbl;
   1470     };
   1471 
   1472     
   1473 
   1474 #ifdef COBJMACROS
   1475 
   1476 
   1477 #define IAudioBass_QueryInterface(This,riid,ppvObject)	\
   1478     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1479 
   1480 #define IAudioBass_AddRef(This)	\
   1481     ( (This)->lpVtbl -> AddRef(This) ) 
   1482 
   1483 #define IAudioBass_Release(This)	\
   1484     ( (This)->lpVtbl -> Release(This) ) 
   1485 
   1486 
   1487 #define IAudioBass_GetChannelCount(This,pcChannels)	\
   1488     ( (This)->lpVtbl -> GetChannelCount(This,pcChannels) ) 
   1489 
   1490 #define IAudioBass_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)	\
   1491     ( (This)->lpVtbl -> GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) ) 
   1492 
   1493 #define IAudioBass_GetLevel(This,nChannel,pfLevelDB)	\
   1494     ( (This)->lpVtbl -> GetLevel(This,nChannel,pfLevelDB) ) 
   1495 
   1496 #define IAudioBass_SetLevel(This,nChannel,fLevelDB,pguidEventContext)	\
   1497     ( (This)->lpVtbl -> SetLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
   1498 
   1499 #define IAudioBass_SetLevelUniform(This,fLevelDB,pguidEventContext)	\
   1500     ( (This)->lpVtbl -> SetLevelUniform(This,fLevelDB,pguidEventContext) ) 
   1501 
   1502 #define IAudioBass_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)	\
   1503     ( (This)->lpVtbl -> SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) ) 
   1504 
   1505 
   1506 #endif /* COBJMACROS */
   1507 
   1508 
   1509 #endif 	/* C style interface */
   1510 
   1511 
   1512 
   1513 
   1514 #endif 	/* __IAudioBass_INTERFACE_DEFINED__ */
   1515 
   1516 
   1517 #ifndef __IAudioMidrange_INTERFACE_DEFINED__
   1518 #define __IAudioMidrange_INTERFACE_DEFINED__
   1519 
   1520 /* interface IAudioMidrange */
   1521 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1522 
   1523 
   1524 EXTERN_C const IID IID_IAudioMidrange;
   1525 
   1526 #if defined(__cplusplus) && !defined(CINTERFACE)
   1527     
   1528     MIDL_INTERFACE("5E54B6D7-B44B-40D9-9A9E-E691D9CE6EDF")
   1529     IAudioMidrange : public IPerChannelDbLevel
   1530     {
   1531     public:
   1532     };
   1533     
   1534 #else 	/* C style interface */
   1535 
   1536     typedef struct IAudioMidrangeVtbl
   1537     {
   1538         BEGIN_INTERFACE
   1539         
   1540         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1541             IAudioMidrange * This,
   1542             /* [in] */ REFIID riid,
   1543             /* [iid_is][out] */ 
   1544             __RPC__deref_out  void **ppvObject);
   1545         
   1546         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1547             IAudioMidrange * This);
   1548         
   1549         ULONG ( STDMETHODCALLTYPE *Release )( 
   1550             IAudioMidrange * This);
   1551         
   1552         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
   1553             IAudioMidrange * This,
   1554             /* [out] */ 
   1555             __out  UINT *pcChannels);
   1556         
   1557         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )( 
   1558             IAudioMidrange * This,
   1559             /* [in] */ 
   1560             __in  UINT nChannel,
   1561             /* [out] */ 
   1562             __out  float *pfMinLevelDB,
   1563             /* [out] */ 
   1564             __out  float *pfMaxLevelDB,
   1565             /* [out] */ 
   1566             __out  float *pfStepping);
   1567         
   1568         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )( 
   1569             IAudioMidrange * This,
   1570             /* [in] */ 
   1571             __in  UINT nChannel,
   1572             /* [out] */ 
   1573             __out  float *pfLevelDB);
   1574         
   1575         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )( 
   1576             IAudioMidrange * This,
   1577             /* [in] */ 
   1578             __in  UINT nChannel,
   1579             /* [in] */ 
   1580             __in  float fLevelDB,
   1581             /* [unique][in] */ 
   1582             __in_opt  LPCGUID pguidEventContext);
   1583         
   1584         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )( 
   1585             IAudioMidrange * This,
   1586             /* [in] */ 
   1587             __in  float fLevelDB,
   1588             /* [unique][in] */ 
   1589             __in_opt  LPCGUID pguidEventContext);
   1590         
   1591         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )( 
   1592             IAudioMidrange * This,
   1593             /* [size_is][in] */ 
   1594             __in_ecount(cChannels)  float aLevelsDB[  ],
   1595             /* [in] */ 
   1596             __in  ULONG cChannels,
   1597             /* [unique][in] */ 
   1598             __in_opt  LPCGUID pguidEventContext);
   1599         
   1600         END_INTERFACE
   1601     } IAudioMidrangeVtbl;
   1602 
   1603     interface IAudioMidrange
   1604     {
   1605         CONST_VTBL struct IAudioMidrangeVtbl *lpVtbl;
   1606     };
   1607 
   1608     
   1609 
   1610 #ifdef COBJMACROS
   1611 
   1612 
   1613 #define IAudioMidrange_QueryInterface(This,riid,ppvObject)	\
   1614     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1615 
   1616 #define IAudioMidrange_AddRef(This)	\
   1617     ( (This)->lpVtbl -> AddRef(This) ) 
   1618 
   1619 #define IAudioMidrange_Release(This)	\
   1620     ( (This)->lpVtbl -> Release(This) ) 
   1621 
   1622 
   1623 #define IAudioMidrange_GetChannelCount(This,pcChannels)	\
   1624     ( (This)->lpVtbl -> GetChannelCount(This,pcChannels) ) 
   1625 
   1626 #define IAudioMidrange_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)	\
   1627     ( (This)->lpVtbl -> GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) ) 
   1628 
   1629 #define IAudioMidrange_GetLevel(This,nChannel,pfLevelDB)	\
   1630     ( (This)->lpVtbl -> GetLevel(This,nChannel,pfLevelDB) ) 
   1631 
   1632 #define IAudioMidrange_SetLevel(This,nChannel,fLevelDB,pguidEventContext)	\
   1633     ( (This)->lpVtbl -> SetLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
   1634 
   1635 #define IAudioMidrange_SetLevelUniform(This,fLevelDB,pguidEventContext)	\
   1636     ( (This)->lpVtbl -> SetLevelUniform(This,fLevelDB,pguidEventContext) ) 
   1637 
   1638 #define IAudioMidrange_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)	\
   1639     ( (This)->lpVtbl -> SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) ) 
   1640 
   1641 
   1642 #endif /* COBJMACROS */
   1643 
   1644 
   1645 #endif 	/* C style interface */
   1646 
   1647 
   1648 
   1649 
   1650 #endif 	/* __IAudioMidrange_INTERFACE_DEFINED__ */
   1651 
   1652 
   1653 #ifndef __IAudioTreble_INTERFACE_DEFINED__
   1654 #define __IAudioTreble_INTERFACE_DEFINED__
   1655 
   1656 /* interface IAudioTreble */
   1657 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1658 
   1659 
   1660 EXTERN_C const IID IID_IAudioTreble;
   1661 
   1662 #if defined(__cplusplus) && !defined(CINTERFACE)
   1663     
   1664     MIDL_INTERFACE("0A717812-694E-4907-B74B-BAFA5CFDCA7B")
   1665     IAudioTreble : public IPerChannelDbLevel
   1666     {
   1667     public:
   1668     };
   1669     
   1670 #else 	/* C style interface */
   1671 
   1672     typedef struct IAudioTrebleVtbl
   1673     {
   1674         BEGIN_INTERFACE
   1675         
   1676         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1677             IAudioTreble * This,
   1678             /* [in] */ REFIID riid,
   1679             /* [iid_is][out] */ 
   1680             __RPC__deref_out  void **ppvObject);
   1681         
   1682         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1683             IAudioTreble * This);
   1684         
   1685         ULONG ( STDMETHODCALLTYPE *Release )( 
   1686             IAudioTreble * This);
   1687         
   1688         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
   1689             IAudioTreble * This,
   1690             /* [out] */ 
   1691             __out  UINT *pcChannels);
   1692         
   1693         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )( 
   1694             IAudioTreble * This,
   1695             /* [in] */ 
   1696             __in  UINT nChannel,
   1697             /* [out] */ 
   1698             __out  float *pfMinLevelDB,
   1699             /* [out] */ 
   1700             __out  float *pfMaxLevelDB,
   1701             /* [out] */ 
   1702             __out  float *pfStepping);
   1703         
   1704         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )( 
   1705             IAudioTreble * This,
   1706             /* [in] */ 
   1707             __in  UINT nChannel,
   1708             /* [out] */ 
   1709             __out  float *pfLevelDB);
   1710         
   1711         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )( 
   1712             IAudioTreble * This,
   1713             /* [in] */ 
   1714             __in  UINT nChannel,
   1715             /* [in] */ 
   1716             __in  float fLevelDB,
   1717             /* [unique][in] */ 
   1718             __in_opt  LPCGUID pguidEventContext);
   1719         
   1720         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )( 
   1721             IAudioTreble * This,
   1722             /* [in] */ 
   1723             __in  float fLevelDB,
   1724             /* [unique][in] */ 
   1725             __in_opt  LPCGUID pguidEventContext);
   1726         
   1727         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )( 
   1728             IAudioTreble * This,
   1729             /* [size_is][in] */ 
   1730             __in_ecount(cChannels)  float aLevelsDB[  ],
   1731             /* [in] */ 
   1732             __in  ULONG cChannels,
   1733             /* [unique][in] */ 
   1734             __in_opt  LPCGUID pguidEventContext);
   1735         
   1736         END_INTERFACE
   1737     } IAudioTrebleVtbl;
   1738 
   1739     interface IAudioTreble
   1740     {
   1741         CONST_VTBL struct IAudioTrebleVtbl *lpVtbl;
   1742     };
   1743 
   1744     
   1745 
   1746 #ifdef COBJMACROS
   1747 
   1748 
   1749 #define IAudioTreble_QueryInterface(This,riid,ppvObject)	\
   1750     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1751 
   1752 #define IAudioTreble_AddRef(This)	\
   1753     ( (This)->lpVtbl -> AddRef(This) ) 
   1754 
   1755 #define IAudioTreble_Release(This)	\
   1756     ( (This)->lpVtbl -> Release(This) ) 
   1757 
   1758 
   1759 #define IAudioTreble_GetChannelCount(This,pcChannels)	\
   1760     ( (This)->lpVtbl -> GetChannelCount(This,pcChannels) ) 
   1761 
   1762 #define IAudioTreble_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)	\
   1763     ( (This)->lpVtbl -> GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) ) 
   1764 
   1765 #define IAudioTreble_GetLevel(This,nChannel,pfLevelDB)	\
   1766     ( (This)->lpVtbl -> GetLevel(This,nChannel,pfLevelDB) ) 
   1767 
   1768 #define IAudioTreble_SetLevel(This,nChannel,fLevelDB,pguidEventContext)	\
   1769     ( (This)->lpVtbl -> SetLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
   1770 
   1771 #define IAudioTreble_SetLevelUniform(This,fLevelDB,pguidEventContext)	\
   1772     ( (This)->lpVtbl -> SetLevelUniform(This,fLevelDB,pguidEventContext) ) 
   1773 
   1774 #define IAudioTreble_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)	\
   1775     ( (This)->lpVtbl -> SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) ) 
   1776 
   1777 
   1778 #endif /* COBJMACROS */
   1779 
   1780 
   1781 #endif 	/* C style interface */
   1782 
   1783 
   1784 
   1785 
   1786 #endif 	/* __IAudioTreble_INTERFACE_DEFINED__ */
   1787 
   1788 
   1789 #ifndef __IAudioAutoGainControl_INTERFACE_DEFINED__
   1790 #define __IAudioAutoGainControl_INTERFACE_DEFINED__
   1791 
   1792 /* interface IAudioAutoGainControl */
   1793 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1794 
   1795 
   1796 EXTERN_C const IID IID_IAudioAutoGainControl;
   1797 
   1798 #if defined(__cplusplus) && !defined(CINTERFACE)
   1799     
   1800     MIDL_INTERFACE("85401FD4-6DE4-4b9d-9869-2D6753A82F3C")
   1801     IAudioAutoGainControl : public IUnknown
   1802     {
   1803     public:
   1804         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetEnabled( 
   1805             /* [out] */ 
   1806             __out  BOOL *pbEnabled) = 0;
   1807         
   1808         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetEnabled( 
   1809             /* [in] */ 
   1810             __in  BOOL bEnable,
   1811             /* [unique][in] */ 
   1812             __in_opt  LPCGUID pguidEventContext) = 0;
   1813         
   1814     };
   1815     
   1816 #else 	/* C style interface */
   1817 
   1818     typedef struct IAudioAutoGainControlVtbl
   1819     {
   1820         BEGIN_INTERFACE
   1821         
   1822         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1823             IAudioAutoGainControl * This,
   1824             /* [in] */ REFIID riid,
   1825             /* [iid_is][out] */ 
   1826             __RPC__deref_out  void **ppvObject);
   1827         
   1828         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1829             IAudioAutoGainControl * This);
   1830         
   1831         ULONG ( STDMETHODCALLTYPE *Release )( 
   1832             IAudioAutoGainControl * This);
   1833         
   1834         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetEnabled )( 
   1835             IAudioAutoGainControl * This,
   1836             /* [out] */ 
   1837             __out  BOOL *pbEnabled);
   1838         
   1839         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetEnabled )( 
   1840             IAudioAutoGainControl * This,
   1841             /* [in] */ 
   1842             __in  BOOL bEnable,
   1843             /* [unique][in] */ 
   1844             __in_opt  LPCGUID pguidEventContext);
   1845         
   1846         END_INTERFACE
   1847     } IAudioAutoGainControlVtbl;
   1848 
   1849     interface IAudioAutoGainControl
   1850     {
   1851         CONST_VTBL struct IAudioAutoGainControlVtbl *lpVtbl;
   1852     };
   1853 
   1854     
   1855 
   1856 #ifdef COBJMACROS
   1857 
   1858 
   1859 #define IAudioAutoGainControl_QueryInterface(This,riid,ppvObject)	\
   1860     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1861 
   1862 #define IAudioAutoGainControl_AddRef(This)	\
   1863     ( (This)->lpVtbl -> AddRef(This) ) 
   1864 
   1865 #define IAudioAutoGainControl_Release(This)	\
   1866     ( (This)->lpVtbl -> Release(This) ) 
   1867 
   1868 
   1869 #define IAudioAutoGainControl_GetEnabled(This,pbEnabled)	\
   1870     ( (This)->lpVtbl -> GetEnabled(This,pbEnabled) ) 
   1871 
   1872 #define IAudioAutoGainControl_SetEnabled(This,bEnable,pguidEventContext)	\
   1873     ( (This)->lpVtbl -> SetEnabled(This,bEnable,pguidEventContext) ) 
   1874 
   1875 #endif /* COBJMACROS */
   1876 
   1877 
   1878 #endif 	/* C style interface */
   1879 
   1880 
   1881 
   1882 
   1883 #endif 	/* __IAudioAutoGainControl_INTERFACE_DEFINED__ */
   1884 
   1885 
   1886 #ifndef __IAudioPeakMeter_INTERFACE_DEFINED__
   1887 #define __IAudioPeakMeter_INTERFACE_DEFINED__
   1888 
   1889 /* interface IAudioPeakMeter */
   1890 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1891 
   1892 
   1893 EXTERN_C const IID IID_IAudioPeakMeter;
   1894 
   1895 #if defined(__cplusplus) && !defined(CINTERFACE)
   1896     
   1897     MIDL_INTERFACE("DD79923C-0599-45e0-B8B6-C8DF7DB6E796")
   1898     IAudioPeakMeter : public IUnknown
   1899     {
   1900     public:
   1901         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChannelCount( 
   1902             /* [out] */ 
   1903             __out  UINT *pcChannels) = 0;
   1904         
   1905         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLevel( 
   1906             /* [in] */ 
   1907             __in  UINT nChannel,
   1908             /* [out] */ 
   1909             __out  float *pfLevel) = 0;
   1910         
   1911     };
   1912     
   1913 #else 	/* C style interface */
   1914 
   1915     typedef struct IAudioPeakMeterVtbl
   1916     {
   1917         BEGIN_INTERFACE
   1918         
   1919         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   1920             IAudioPeakMeter * This,
   1921             /* [in] */ REFIID riid,
   1922             /* [iid_is][out] */ 
   1923             __RPC__deref_out  void **ppvObject);
   1924         
   1925         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   1926             IAudioPeakMeter * This);
   1927         
   1928         ULONG ( STDMETHODCALLTYPE *Release )( 
   1929             IAudioPeakMeter * This);
   1930         
   1931         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
   1932             IAudioPeakMeter * This,
   1933             /* [out] */ 
   1934             __out  UINT *pcChannels);
   1935         
   1936         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )( 
   1937             IAudioPeakMeter * This,
   1938             /* [in] */ 
   1939             __in  UINT nChannel,
   1940             /* [out] */ 
   1941             __out  float *pfLevel);
   1942         
   1943         END_INTERFACE
   1944     } IAudioPeakMeterVtbl;
   1945 
   1946     interface IAudioPeakMeter
   1947     {
   1948         CONST_VTBL struct IAudioPeakMeterVtbl *lpVtbl;
   1949     };
   1950 
   1951     
   1952 
   1953 #ifdef COBJMACROS
   1954 
   1955 
   1956 #define IAudioPeakMeter_QueryInterface(This,riid,ppvObject)	\
   1957     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   1958 
   1959 #define IAudioPeakMeter_AddRef(This)	\
   1960     ( (This)->lpVtbl -> AddRef(This) ) 
   1961 
   1962 #define IAudioPeakMeter_Release(This)	\
   1963     ( (This)->lpVtbl -> Release(This) ) 
   1964 
   1965 
   1966 #define IAudioPeakMeter_GetChannelCount(This,pcChannels)	\
   1967     ( (This)->lpVtbl -> GetChannelCount(This,pcChannels) ) 
   1968 
   1969 #define IAudioPeakMeter_GetLevel(This,nChannel,pfLevel)	\
   1970     ( (This)->lpVtbl -> GetLevel(This,nChannel,pfLevel) ) 
   1971 
   1972 #endif /* COBJMACROS */
   1973 
   1974 
   1975 #endif 	/* C style interface */
   1976 
   1977 
   1978 
   1979 
   1980 #endif 	/* __IAudioPeakMeter_INTERFACE_DEFINED__ */
   1981 
   1982 
   1983 #ifndef __IDeviceSpecificProperty_INTERFACE_DEFINED__
   1984 #define __IDeviceSpecificProperty_INTERFACE_DEFINED__
   1985 
   1986 /* interface IDeviceSpecificProperty */
   1987 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   1988 
   1989 
   1990 EXTERN_C const IID IID_IDeviceSpecificProperty;
   1991 
   1992 #if defined(__cplusplus) && !defined(CINTERFACE)
   1993     
   1994     MIDL_INTERFACE("3B22BCBF-2586-4af0-8583-205D391B807C")
   1995     IDeviceSpecificProperty : public IUnknown
   1996     {
   1997     public:
   1998         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetType( 
   1999             /* [out] */ 
   2000             __deref_out  VARTYPE *pVType) = 0;
   2001         
   2002         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetValue( 
   2003             /* [out] */ 
   2004             __out  void *pvValue,
   2005             /* [out][in] */ 
   2006             __inout  DWORD *pcbValue) = 0;
   2007         
   2008         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetValue( 
   2009             /* [in] */ 
   2010             __in  void *pvValue,
   2011             /* [in] */ DWORD cbValue,
   2012             /* [unique][in] */ 
   2013             __in_opt  LPCGUID pguidEventContext) = 0;
   2014         
   2015         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Get4BRange( 
   2016             /* [out] */ 
   2017             __deref_out  LONG *plMin,
   2018             /* [out] */ 
   2019             __deref_out  LONG *plMax,
   2020             /* [out] */ 
   2021             __deref_out  LONG *plStepping) = 0;
   2022         
   2023     };
   2024     
   2025 #else 	/* C style interface */
   2026 
   2027     typedef struct IDeviceSpecificPropertyVtbl
   2028     {
   2029         BEGIN_INTERFACE
   2030         
   2031         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2032             IDeviceSpecificProperty * This,
   2033             /* [in] */ REFIID riid,
   2034             /* [iid_is][out] */ 
   2035             __RPC__deref_out  void **ppvObject);
   2036         
   2037         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2038             IDeviceSpecificProperty * This);
   2039         
   2040         ULONG ( STDMETHODCALLTYPE *Release )( 
   2041             IDeviceSpecificProperty * This);
   2042         
   2043         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetType )( 
   2044             IDeviceSpecificProperty * This,
   2045             /* [out] */ 
   2046             __deref_out  VARTYPE *pVType);
   2047         
   2048         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetValue )( 
   2049             IDeviceSpecificProperty * This,
   2050             /* [out] */ 
   2051             __out  void *pvValue,
   2052             /* [out][in] */ 
   2053             __inout  DWORD *pcbValue);
   2054         
   2055         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetValue )( 
   2056             IDeviceSpecificProperty * This,
   2057             /* [in] */ 
   2058             __in  void *pvValue,
   2059             /* [in] */ DWORD cbValue,
   2060             /* [unique][in] */ 
   2061             __in_opt  LPCGUID pguidEventContext);
   2062         
   2063         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Get4BRange )( 
   2064             IDeviceSpecificProperty * This,
   2065             /* [out] */ 
   2066             __deref_out  LONG *plMin,
   2067             /* [out] */ 
   2068             __deref_out  LONG *plMax,
   2069             /* [out] */ 
   2070             __deref_out  LONG *plStepping);
   2071         
   2072         END_INTERFACE
   2073     } IDeviceSpecificPropertyVtbl;
   2074 
   2075     interface IDeviceSpecificProperty
   2076     {
   2077         CONST_VTBL struct IDeviceSpecificPropertyVtbl *lpVtbl;
   2078     };
   2079 
   2080     
   2081 
   2082 #ifdef COBJMACROS
   2083 
   2084 
   2085 #define IDeviceSpecificProperty_QueryInterface(This,riid,ppvObject)	\
   2086     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2087 
   2088 #define IDeviceSpecificProperty_AddRef(This)	\
   2089     ( (This)->lpVtbl -> AddRef(This) ) 
   2090 
   2091 #define IDeviceSpecificProperty_Release(This)	\
   2092     ( (This)->lpVtbl -> Release(This) ) 
   2093 
   2094 
   2095 #define IDeviceSpecificProperty_GetType(This,pVType)	\
   2096     ( (This)->lpVtbl -> GetType(This,pVType) ) 
   2097 
   2098 #define IDeviceSpecificProperty_GetValue(This,pvValue,pcbValue)	\
   2099     ( (This)->lpVtbl -> GetValue(This,pvValue,pcbValue) ) 
   2100 
   2101 #define IDeviceSpecificProperty_SetValue(This,pvValue,cbValue,pguidEventContext)	\
   2102     ( (This)->lpVtbl -> SetValue(This,pvValue,cbValue,pguidEventContext) ) 
   2103 
   2104 #define IDeviceSpecificProperty_Get4BRange(This,plMin,plMax,plStepping)	\
   2105     ( (This)->lpVtbl -> Get4BRange(This,plMin,plMax,plStepping) ) 
   2106 
   2107 #endif /* COBJMACROS */
   2108 
   2109 
   2110 #endif 	/* C style interface */
   2111 
   2112 
   2113 
   2114 
   2115 #endif 	/* __IDeviceSpecificProperty_INTERFACE_DEFINED__ */
   2116 
   2117 
   2118 #ifndef __IKsFormatSupport_INTERFACE_DEFINED__
   2119 #define __IKsFormatSupport_INTERFACE_DEFINED__
   2120 
   2121 /* interface IKsFormatSupport */
   2122 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   2123 
   2124 
   2125 EXTERN_C const IID IID_IKsFormatSupport;
   2126 
   2127 #if defined(__cplusplus) && !defined(CINTERFACE)
   2128     
   2129     MIDL_INTERFACE("3CB4A69D-BB6F-4D2B-95B7-452D2C155DB5")
   2130     IKsFormatSupport : public IUnknown
   2131     {
   2132     public:
   2133         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsFormatSupported( 
   2134             /* [size_is][in] */ PKSDATAFORMAT pKsFormat,
   2135             /* [in] */ 
   2136             __in  DWORD cbFormat,
   2137             /* [out] */ 
   2138             __out  BOOL *pbSupported) = 0;
   2139         
   2140         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDevicePreferredFormat( 
   2141             /* [out] */ PKSDATAFORMAT *ppKsFormat) = 0;
   2142         
   2143     };
   2144     
   2145 #else 	/* C style interface */
   2146 
   2147     typedef struct IKsFormatSupportVtbl
   2148     {
   2149         BEGIN_INTERFACE
   2150         
   2151         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2152             IKsFormatSupport * This,
   2153             /* [in] */ REFIID riid,
   2154             /* [iid_is][out] */ 
   2155             __RPC__deref_out  void **ppvObject);
   2156         
   2157         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2158             IKsFormatSupport * This);
   2159         
   2160         ULONG ( STDMETHODCALLTYPE *Release )( 
   2161             IKsFormatSupport * This);
   2162         
   2163         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )( 
   2164             IKsFormatSupport * This,
   2165             /* [size_is][in] */ PKSDATAFORMAT pKsFormat,
   2166             /* [in] */ 
   2167             __in  DWORD cbFormat,
   2168             /* [out] */ 
   2169             __out  BOOL *pbSupported);
   2170         
   2171         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDevicePreferredFormat )( 
   2172             IKsFormatSupport * This,
   2173             /* [out] */ PKSDATAFORMAT *ppKsFormat);
   2174         
   2175         END_INTERFACE
   2176     } IKsFormatSupportVtbl;
   2177 
   2178     interface IKsFormatSupport
   2179     {
   2180         CONST_VTBL struct IKsFormatSupportVtbl *lpVtbl;
   2181     };
   2182 
   2183     
   2184 
   2185 #ifdef COBJMACROS
   2186 
   2187 
   2188 #define IKsFormatSupport_QueryInterface(This,riid,ppvObject)	\
   2189     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2190 
   2191 #define IKsFormatSupport_AddRef(This)	\
   2192     ( (This)->lpVtbl -> AddRef(This) ) 
   2193 
   2194 #define IKsFormatSupport_Release(This)	\
   2195     ( (This)->lpVtbl -> Release(This) ) 
   2196 
   2197 
   2198 #define IKsFormatSupport_IsFormatSupported(This,pKsFormat,cbFormat,pbSupported)	\
   2199     ( (This)->lpVtbl -> IsFormatSupported(This,pKsFormat,cbFormat,pbSupported) ) 
   2200 
   2201 #define IKsFormatSupport_GetDevicePreferredFormat(This,ppKsFormat)	\
   2202     ( (This)->lpVtbl -> GetDevicePreferredFormat(This,ppKsFormat) ) 
   2203 
   2204 #endif /* COBJMACROS */
   2205 
   2206 
   2207 #endif 	/* C style interface */
   2208 
   2209 
   2210 
   2211 
   2212 #endif 	/* __IKsFormatSupport_INTERFACE_DEFINED__ */
   2213 
   2214 
   2215 #ifndef __IKsJackDescription_INTERFACE_DEFINED__
   2216 #define __IKsJackDescription_INTERFACE_DEFINED__
   2217 
   2218 /* interface IKsJackDescription */
   2219 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   2220 
   2221 
   2222 EXTERN_C const IID IID_IKsJackDescription;
   2223 
   2224 #if defined(__cplusplus) && !defined(CINTERFACE)
   2225     
   2226     MIDL_INTERFACE("4509F757-2D46-4637-8E62-CE7DB944F57B")
   2227     IKsJackDescription : public IUnknown
   2228     {
   2229     public:
   2230         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetJackCount( 
   2231             /* [out] */ 
   2232             __out  UINT *pcJacks) = 0;
   2233         
   2234         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetJackDescription( 
   2235             /* [in] */ UINT nJack,
   2236             /* [out] */ 
   2237             __out  KSJACK_DESCRIPTION *pDescription) = 0;
   2238         
   2239     };
   2240     
   2241 #else 	/* C style interface */
   2242 
   2243     typedef struct IKsJackDescriptionVtbl
   2244     {
   2245         BEGIN_INTERFACE
   2246         
   2247         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2248             IKsJackDescription * This,
   2249             /* [in] */ REFIID riid,
   2250             /* [iid_is][out] */ 
   2251             __RPC__deref_out  void **ppvObject);
   2252         
   2253         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2254             IKsJackDescription * This);
   2255         
   2256         ULONG ( STDMETHODCALLTYPE *Release )( 
   2257             IKsJackDescription * This);
   2258         
   2259         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetJackCount )( 
   2260             IKsJackDescription * This,
   2261             /* [out] */ 
   2262             __out  UINT *pcJacks);
   2263         
   2264         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetJackDescription )( 
   2265             IKsJackDescription * This,
   2266             /* [in] */ UINT nJack,
   2267             /* [out] */ 
   2268             __out  KSJACK_DESCRIPTION *pDescription);
   2269         
   2270         END_INTERFACE
   2271     } IKsJackDescriptionVtbl;
   2272 
   2273     interface IKsJackDescription
   2274     {
   2275         CONST_VTBL struct IKsJackDescriptionVtbl *lpVtbl;
   2276     };
   2277 
   2278     
   2279 
   2280 #ifdef COBJMACROS
   2281 
   2282 
   2283 #define IKsJackDescription_QueryInterface(This,riid,ppvObject)	\
   2284     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2285 
   2286 #define IKsJackDescription_AddRef(This)	\
   2287     ( (This)->lpVtbl -> AddRef(This) ) 
   2288 
   2289 #define IKsJackDescription_Release(This)	\
   2290     ( (This)->lpVtbl -> Release(This) ) 
   2291 
   2292 
   2293 #define IKsJackDescription_GetJackCount(This,pcJacks)	\
   2294     ( (This)->lpVtbl -> GetJackCount(This,pcJacks) ) 
   2295 
   2296 #define IKsJackDescription_GetJackDescription(This,nJack,pDescription)	\
   2297     ( (This)->lpVtbl -> GetJackDescription(This,nJack,pDescription) ) 
   2298 
   2299 #endif /* COBJMACROS */
   2300 
   2301 
   2302 #endif 	/* C style interface */
   2303 
   2304 
   2305 
   2306 
   2307 #endif 	/* __IKsJackDescription_INTERFACE_DEFINED__ */
   2308 
   2309 
   2310 #ifndef __IPartsList_INTERFACE_DEFINED__
   2311 #define __IPartsList_INTERFACE_DEFINED__
   2312 
   2313 /* interface IPartsList */
   2314 /* [object][unique][helpstring][uuid][local] */ 
   2315 
   2316 
   2317 EXTERN_C const IID IID_IPartsList;
   2318 
   2319 #if defined(__cplusplus) && !defined(CINTERFACE)
   2320     
   2321     MIDL_INTERFACE("6DAA848C-5EB0-45CC-AEA5-998A2CDA1FFB")
   2322     IPartsList : public IUnknown
   2323     {
   2324     public:
   2325         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( 
   2326             /* [out] */ 
   2327             __out  UINT *pCount) = 0;
   2328         
   2329         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPart( 
   2330             /* [in] */ 
   2331             __in  UINT nIndex,
   2332             /* [out] */ 
   2333             __out  IPart **ppPart) = 0;
   2334         
   2335     };
   2336     
   2337 #else 	/* C style interface */
   2338 
   2339     typedef struct IPartsListVtbl
   2340     {
   2341         BEGIN_INTERFACE
   2342         
   2343         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2344             IPartsList * This,
   2345             /* [in] */ REFIID riid,
   2346             /* [iid_is][out] */ 
   2347             __RPC__deref_out  void **ppvObject);
   2348         
   2349         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2350             IPartsList * This);
   2351         
   2352         ULONG ( STDMETHODCALLTYPE *Release )( 
   2353             IPartsList * This);
   2354         
   2355         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
   2356             IPartsList * This,
   2357             /* [out] */ 
   2358             __out  UINT *pCount);
   2359         
   2360         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPart )( 
   2361             IPartsList * This,
   2362             /* [in] */ 
   2363             __in  UINT nIndex,
   2364             /* [out] */ 
   2365             __out  IPart **ppPart);
   2366         
   2367         END_INTERFACE
   2368     } IPartsListVtbl;
   2369 
   2370     interface IPartsList
   2371     {
   2372         CONST_VTBL struct IPartsListVtbl *lpVtbl;
   2373     };
   2374 
   2375     
   2376 
   2377 #ifdef COBJMACROS
   2378 
   2379 
   2380 #define IPartsList_QueryInterface(This,riid,ppvObject)	\
   2381     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2382 
   2383 #define IPartsList_AddRef(This)	\
   2384     ( (This)->lpVtbl -> AddRef(This) ) 
   2385 
   2386 #define IPartsList_Release(This)	\
   2387     ( (This)->lpVtbl -> Release(This) ) 
   2388 
   2389 
   2390 #define IPartsList_GetCount(This,pCount)	\
   2391     ( (This)->lpVtbl -> GetCount(This,pCount) ) 
   2392 
   2393 #define IPartsList_GetPart(This,nIndex,ppPart)	\
   2394     ( (This)->lpVtbl -> GetPart(This,nIndex,ppPart) ) 
   2395 
   2396 #endif /* COBJMACROS */
   2397 
   2398 
   2399 #endif 	/* C style interface */
   2400 
   2401 
   2402 
   2403 
   2404 #endif 	/* __IPartsList_INTERFACE_DEFINED__ */
   2405 
   2406 
   2407 #ifndef __IPart_INTERFACE_DEFINED__
   2408 #define __IPart_INTERFACE_DEFINED__
   2409 
   2410 /* interface IPart */
   2411 /* [object][unique][helpstring][uuid][local] */ 
   2412 
   2413 
   2414 EXTERN_C const IID IID_IPart;
   2415 
   2416 #if defined(__cplusplus) && !defined(CINTERFACE)
   2417     
   2418     MIDL_INTERFACE("AE2DE0E4-5BCA-4F2D-AA46-5D13F8FDB3A9")
   2419     IPart : public IUnknown
   2420     {
   2421     public:
   2422         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetName( 
   2423             /* [out] */ 
   2424             __deref_out  LPWSTR *ppwstrName) = 0;
   2425         
   2426         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLocalId( 
   2427             /* [out] */ 
   2428             __out  UINT *pnId) = 0;
   2429         
   2430         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetGlobalId( 
   2431             /* [out] */ 
   2432             __deref_out  LPWSTR *ppwstrGlobalId) = 0;
   2433         
   2434         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPartType( 
   2435             /* [out] */ 
   2436             __out  PartType *pPartType) = 0;
   2437         
   2438         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSubType( 
   2439             /* [out] */ GUID *pSubType) = 0;
   2440         
   2441         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetControlInterfaceCount( 
   2442             /* [out] */ 
   2443             __out  UINT *pCount) = 0;
   2444         
   2445         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetControlInterface( 
   2446             /* [in] */ 
   2447             __in  UINT nIndex,
   2448             /* [out] */ 
   2449             __out  IControlInterface **ppInterfaceDesc) = 0;
   2450         
   2451         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnumPartsIncoming( 
   2452             /* [out] */ 
   2453             __out  IPartsList **ppParts) = 0;
   2454         
   2455         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnumPartsOutgoing( 
   2456             /* [out] */ 
   2457             __out  IPartsList **ppParts) = 0;
   2458         
   2459         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTopologyObject( 
   2460             /* [out] */ 
   2461             __out  IDeviceTopology **ppTopology) = 0;
   2462         
   2463         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( 
   2464             /* [in] */ 
   2465             __in  DWORD dwClsContext,
   2466             /* [in] */ 
   2467             __in  REFIID refiid,
   2468             /* [iid_is][out] */ 
   2469             __out_opt  void **ppvObject) = 0;
   2470         
   2471         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterControlChangeCallback( 
   2472             /* [in] */ 
   2473             __in  REFGUID riid,
   2474             /* [in] */ 
   2475             __in  IControlChangeNotify *pNotify) = 0;
   2476         
   2477         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnregisterControlChangeCallback( 
   2478             /* [in] */ 
   2479             __in  IControlChangeNotify *pNotify) = 0;
   2480         
   2481     };
   2482     
   2483 #else 	/* C style interface */
   2484 
   2485     typedef struct IPartVtbl
   2486     {
   2487         BEGIN_INTERFACE
   2488         
   2489         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2490             IPart * This,
   2491             /* [in] */ REFIID riid,
   2492             /* [iid_is][out] */ 
   2493             __RPC__deref_out  void **ppvObject);
   2494         
   2495         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2496             IPart * This);
   2497         
   2498         ULONG ( STDMETHODCALLTYPE *Release )( 
   2499             IPart * This);
   2500         
   2501         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetName )( 
   2502             IPart * This,
   2503             /* [out] */ 
   2504             __deref_out  LPWSTR *ppwstrName);
   2505         
   2506         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLocalId )( 
   2507             IPart * This,
   2508             /* [out] */ 
   2509             __out  UINT *pnId);
   2510         
   2511         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetGlobalId )( 
   2512             IPart * This,
   2513             /* [out] */ 
   2514             __deref_out  LPWSTR *ppwstrGlobalId);
   2515         
   2516         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPartType )( 
   2517             IPart * This,
   2518             /* [out] */ 
   2519             __out  PartType *pPartType);
   2520         
   2521         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSubType )( 
   2522             IPart * This,
   2523             /* [out] */ GUID *pSubType);
   2524         
   2525         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetControlInterfaceCount )( 
   2526             IPart * This,
   2527             /* [out] */ 
   2528             __out  UINT *pCount);
   2529         
   2530         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetControlInterface )( 
   2531             IPart * This,
   2532             /* [in] */ 
   2533             __in  UINT nIndex,
   2534             /* [out] */ 
   2535             __out  IControlInterface **ppInterfaceDesc);
   2536         
   2537         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumPartsIncoming )( 
   2538             IPart * This,
   2539             /* [out] */ 
   2540             __out  IPartsList **ppParts);
   2541         
   2542         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumPartsOutgoing )( 
   2543             IPart * This,
   2544             /* [out] */ 
   2545             __out  IPartsList **ppParts);
   2546         
   2547         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTopologyObject )( 
   2548             IPart * This,
   2549             /* [out] */ 
   2550             __out  IDeviceTopology **ppTopology);
   2551         
   2552         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( 
   2553             IPart * This,
   2554             /* [in] */ 
   2555             __in  DWORD dwClsContext,
   2556             /* [in] */ 
   2557             __in  REFIID refiid,
   2558             /* [iid_is][out] */ 
   2559             __out_opt  void **ppvObject);
   2560         
   2561         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeCallback )( 
   2562             IPart * This,
   2563             /* [in] */ 
   2564             __in  REFGUID riid,
   2565             /* [in] */ 
   2566             __in  IControlChangeNotify *pNotify);
   2567         
   2568         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeCallback )( 
   2569             IPart * This,
   2570             /* [in] */ 
   2571             __in  IControlChangeNotify *pNotify);
   2572         
   2573         END_INTERFACE
   2574     } IPartVtbl;
   2575 
   2576     interface IPart
   2577     {
   2578         CONST_VTBL struct IPartVtbl *lpVtbl;
   2579     };
   2580 
   2581     
   2582 
   2583 #ifdef COBJMACROS
   2584 
   2585 
   2586 #define IPart_QueryInterface(This,riid,ppvObject)	\
   2587     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2588 
   2589 #define IPart_AddRef(This)	\
   2590     ( (This)->lpVtbl -> AddRef(This) ) 
   2591 
   2592 #define IPart_Release(This)	\
   2593     ( (This)->lpVtbl -> Release(This) ) 
   2594 
   2595 
   2596 #define IPart_GetName(This,ppwstrName)	\
   2597     ( (This)->lpVtbl -> GetName(This,ppwstrName) ) 
   2598 
   2599 #define IPart_GetLocalId(This,pnId)	\
   2600     ( (This)->lpVtbl -> GetLocalId(This,pnId) ) 
   2601 
   2602 #define IPart_GetGlobalId(This,ppwstrGlobalId)	\
   2603     ( (This)->lpVtbl -> GetGlobalId(This,ppwstrGlobalId) ) 
   2604 
   2605 #define IPart_GetPartType(This,pPartType)	\
   2606     ( (This)->lpVtbl -> GetPartType(This,pPartType) ) 
   2607 
   2608 #define IPart_GetSubType(This,pSubType)	\
   2609     ( (This)->lpVtbl -> GetSubType(This,pSubType) ) 
   2610 
   2611 #define IPart_GetControlInterfaceCount(This,pCount)	\
   2612     ( (This)->lpVtbl -> GetControlInterfaceCount(This,pCount) ) 
   2613 
   2614 #define IPart_GetControlInterface(This,nIndex,ppInterfaceDesc)	\
   2615     ( (This)->lpVtbl -> GetControlInterface(This,nIndex,ppInterfaceDesc) ) 
   2616 
   2617 #define IPart_EnumPartsIncoming(This,ppParts)	\
   2618     ( (This)->lpVtbl -> EnumPartsIncoming(This,ppParts) ) 
   2619 
   2620 #define IPart_EnumPartsOutgoing(This,ppParts)	\
   2621     ( (This)->lpVtbl -> EnumPartsOutgoing(This,ppParts) ) 
   2622 
   2623 #define IPart_GetTopologyObject(This,ppTopology)	\
   2624     ( (This)->lpVtbl -> GetTopologyObject(This,ppTopology) ) 
   2625 
   2626 #define IPart_Activate(This,dwClsContext,refiid,ppvObject)	\
   2627     ( (This)->lpVtbl -> Activate(This,dwClsContext,refiid,ppvObject) ) 
   2628 
   2629 #define IPart_RegisterControlChangeCallback(This,riid,pNotify)	\
   2630     ( (This)->lpVtbl -> RegisterControlChangeCallback(This,riid,pNotify) ) 
   2631 
   2632 #define IPart_UnregisterControlChangeCallback(This,pNotify)	\
   2633     ( (This)->lpVtbl -> UnregisterControlChangeCallback(This,pNotify) ) 
   2634 
   2635 #endif /* COBJMACROS */
   2636 
   2637 
   2638 #endif 	/* C style interface */
   2639 
   2640 
   2641 
   2642 
   2643 #endif 	/* __IPart_INTERFACE_DEFINED__ */
   2644 
   2645 
   2646 #ifndef __IConnector_INTERFACE_DEFINED__
   2647 #define __IConnector_INTERFACE_DEFINED__
   2648 
   2649 /* interface IConnector */
   2650 /* [object][unique][helpstring][uuid][local] */ 
   2651 
   2652 
   2653 EXTERN_C const IID IID_IConnector;
   2654 
   2655 #if defined(__cplusplus) && !defined(CINTERFACE)
   2656     
   2657     MIDL_INTERFACE("9c2c4058-23f5-41de-877a-df3af236a09e")
   2658     IConnector : public IUnknown
   2659     {
   2660     public:
   2661         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetType( 
   2662             /* [out] */ 
   2663             __out  ConnectorType *pType) = 0;
   2664         
   2665         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataFlow( 
   2666             /* [out] */ 
   2667             __out  DataFlow *pFlow) = 0;
   2668         
   2669         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectTo( 
   2670             /* [in] */ 
   2671             __in  IConnector *pConnectTo) = 0;
   2672         
   2673         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
   2674         
   2675         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsConnected( 
   2676             /* [out] */ 
   2677             __out  BOOL *pbConnected) = 0;
   2678         
   2679         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnectedTo( 
   2680             /* [out] */ 
   2681             __out  IConnector **ppConTo) = 0;
   2682         
   2683         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnectorIdConnectedTo( 
   2684             /* [out] */ 
   2685             __deref_out  LPWSTR *ppwstrConnectorId) = 0;
   2686         
   2687         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDeviceIdConnectedTo( 
   2688             /* [out] */ 
   2689             __deref_out  LPWSTR *ppwstrDeviceId) = 0;
   2690         
   2691     };
   2692     
   2693 #else 	/* C style interface */
   2694 
   2695     typedef struct IConnectorVtbl
   2696     {
   2697         BEGIN_INTERFACE
   2698         
   2699         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2700             IConnector * This,
   2701             /* [in] */ REFIID riid,
   2702             /* [iid_is][out] */ 
   2703             __RPC__deref_out  void **ppvObject);
   2704         
   2705         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2706             IConnector * This);
   2707         
   2708         ULONG ( STDMETHODCALLTYPE *Release )( 
   2709             IConnector * This);
   2710         
   2711         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetType )( 
   2712             IConnector * This,
   2713             /* [out] */ 
   2714             __out  ConnectorType *pType);
   2715         
   2716         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataFlow )( 
   2717             IConnector * This,
   2718             /* [out] */ 
   2719             __out  DataFlow *pFlow);
   2720         
   2721         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectTo )( 
   2722             IConnector * This,
   2723             /* [in] */ 
   2724             __in  IConnector *pConnectTo);
   2725         
   2726         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
   2727             IConnector * This);
   2728         
   2729         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsConnected )( 
   2730             IConnector * This,
   2731             /* [out] */ 
   2732             __out  BOOL *pbConnected);
   2733         
   2734         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectedTo )( 
   2735             IConnector * This,
   2736             /* [out] */ 
   2737             __out  IConnector **ppConTo);
   2738         
   2739         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorIdConnectedTo )( 
   2740             IConnector * This,
   2741             /* [out] */ 
   2742             __deref_out  LPWSTR *ppwstrConnectorId);
   2743         
   2744         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDeviceIdConnectedTo )( 
   2745             IConnector * This,
   2746             /* [out] */ 
   2747             __deref_out  LPWSTR *ppwstrDeviceId);
   2748         
   2749         END_INTERFACE
   2750     } IConnectorVtbl;
   2751 
   2752     interface IConnector
   2753     {
   2754         CONST_VTBL struct IConnectorVtbl *lpVtbl;
   2755     };
   2756 
   2757     
   2758 
   2759 #ifdef COBJMACROS
   2760 
   2761 
   2762 #define IConnector_QueryInterface(This,riid,ppvObject)	\
   2763     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2764 
   2765 #define IConnector_AddRef(This)	\
   2766     ( (This)->lpVtbl -> AddRef(This) ) 
   2767 
   2768 #define IConnector_Release(This)	\
   2769     ( (This)->lpVtbl -> Release(This) ) 
   2770 
   2771 
   2772 #define IConnector_GetType(This,pType)	\
   2773     ( (This)->lpVtbl -> GetType(This,pType) ) 
   2774 
   2775 #define IConnector_GetDataFlow(This,pFlow)	\
   2776     ( (This)->lpVtbl -> GetDataFlow(This,pFlow) ) 
   2777 
   2778 #define IConnector_ConnectTo(This,pConnectTo)	\
   2779     ( (This)->lpVtbl -> ConnectTo(This,pConnectTo) ) 
   2780 
   2781 #define IConnector_Disconnect(This)	\
   2782     ( (This)->lpVtbl -> Disconnect(This) ) 
   2783 
   2784 #define IConnector_IsConnected(This,pbConnected)	\
   2785     ( (This)->lpVtbl -> IsConnected(This,pbConnected) ) 
   2786 
   2787 #define IConnector_GetConnectedTo(This,ppConTo)	\
   2788     ( (This)->lpVtbl -> GetConnectedTo(This,ppConTo) ) 
   2789 
   2790 #define IConnector_GetConnectorIdConnectedTo(This,ppwstrConnectorId)	\
   2791     ( (This)->lpVtbl -> GetConnectorIdConnectedTo(This,ppwstrConnectorId) ) 
   2792 
   2793 #define IConnector_GetDeviceIdConnectedTo(This,ppwstrDeviceId)	\
   2794     ( (This)->lpVtbl -> GetDeviceIdConnectedTo(This,ppwstrDeviceId) ) 
   2795 
   2796 #endif /* COBJMACROS */
   2797 
   2798 
   2799 #endif 	/* C style interface */
   2800 
   2801 
   2802 
   2803 
   2804 #endif 	/* __IConnector_INTERFACE_DEFINED__ */
   2805 
   2806 
   2807 #ifndef __ISubunit_INTERFACE_DEFINED__
   2808 #define __ISubunit_INTERFACE_DEFINED__
   2809 
   2810 /* interface ISubunit */
   2811 /* [object][unique][helpstring][uuid][local] */ 
   2812 
   2813 
   2814 EXTERN_C const IID IID_ISubunit;
   2815 
   2816 #if defined(__cplusplus) && !defined(CINTERFACE)
   2817     
   2818     MIDL_INTERFACE("82149A85-DBA6-4487-86BB-EA8F7FEFCC71")
   2819     ISubunit : public IUnknown
   2820     {
   2821     public:
   2822     };
   2823     
   2824 #else 	/* C style interface */
   2825 
   2826     typedef struct ISubunitVtbl
   2827     {
   2828         BEGIN_INTERFACE
   2829         
   2830         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2831             ISubunit * This,
   2832             /* [in] */ REFIID riid,
   2833             /* [iid_is][out] */ 
   2834             __RPC__deref_out  void **ppvObject);
   2835         
   2836         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2837             ISubunit * This);
   2838         
   2839         ULONG ( STDMETHODCALLTYPE *Release )( 
   2840             ISubunit * This);
   2841         
   2842         END_INTERFACE
   2843     } ISubunitVtbl;
   2844 
   2845     interface ISubunit
   2846     {
   2847         CONST_VTBL struct ISubunitVtbl *lpVtbl;
   2848     };
   2849 
   2850     
   2851 
   2852 #ifdef COBJMACROS
   2853 
   2854 
   2855 #define ISubunit_QueryInterface(This,riid,ppvObject)	\
   2856     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2857 
   2858 #define ISubunit_AddRef(This)	\
   2859     ( (This)->lpVtbl -> AddRef(This) ) 
   2860 
   2861 #define ISubunit_Release(This)	\
   2862     ( (This)->lpVtbl -> Release(This) ) 
   2863 
   2864 
   2865 #endif /* COBJMACROS */
   2866 
   2867 
   2868 #endif 	/* C style interface */
   2869 
   2870 
   2871 
   2872 
   2873 #endif 	/* __ISubunit_INTERFACE_DEFINED__ */
   2874 
   2875 
   2876 #ifndef __IControlInterface_INTERFACE_DEFINED__
   2877 #define __IControlInterface_INTERFACE_DEFINED__
   2878 
   2879 /* interface IControlInterface */
   2880 /* [object][unique][helpstring][uuid][local] */ 
   2881 
   2882 
   2883 EXTERN_C const IID IID_IControlInterface;
   2884 
   2885 #if defined(__cplusplus) && !defined(CINTERFACE)
   2886     
   2887     MIDL_INTERFACE("45d37c3f-5140-444a-ae24-400789f3cbf3")
   2888     IControlInterface : public IUnknown
   2889     {
   2890     public:
   2891         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetName( 
   2892             /* [out] */ 
   2893             __deref_out  LPWSTR *ppwstrName) = 0;
   2894         
   2895         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetIID( 
   2896             /* [out] */ 
   2897             __out  GUID *pIID) = 0;
   2898         
   2899     };
   2900     
   2901 #else 	/* C style interface */
   2902 
   2903     typedef struct IControlInterfaceVtbl
   2904     {
   2905         BEGIN_INTERFACE
   2906         
   2907         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2908             IControlInterface * This,
   2909             /* [in] */ REFIID riid,
   2910             /* [iid_is][out] */ 
   2911             __RPC__deref_out  void **ppvObject);
   2912         
   2913         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   2914             IControlInterface * This);
   2915         
   2916         ULONG ( STDMETHODCALLTYPE *Release )( 
   2917             IControlInterface * This);
   2918         
   2919         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetName )( 
   2920             IControlInterface * This,
   2921             /* [out] */ 
   2922             __deref_out  LPWSTR *ppwstrName);
   2923         
   2924         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetIID )( 
   2925             IControlInterface * This,
   2926             /* [out] */ 
   2927             __out  GUID *pIID);
   2928         
   2929         END_INTERFACE
   2930     } IControlInterfaceVtbl;
   2931 
   2932     interface IControlInterface
   2933     {
   2934         CONST_VTBL struct IControlInterfaceVtbl *lpVtbl;
   2935     };
   2936 
   2937     
   2938 
   2939 #ifdef COBJMACROS
   2940 
   2941 
   2942 #define IControlInterface_QueryInterface(This,riid,ppvObject)	\
   2943     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   2944 
   2945 #define IControlInterface_AddRef(This)	\
   2946     ( (This)->lpVtbl -> AddRef(This) ) 
   2947 
   2948 #define IControlInterface_Release(This)	\
   2949     ( (This)->lpVtbl -> Release(This) ) 
   2950 
   2951 
   2952 #define IControlInterface_GetName(This,ppwstrName)	\
   2953     ( (This)->lpVtbl -> GetName(This,ppwstrName) ) 
   2954 
   2955 #define IControlInterface_GetIID(This,pIID)	\
   2956     ( (This)->lpVtbl -> GetIID(This,pIID) ) 
   2957 
   2958 #endif /* COBJMACROS */
   2959 
   2960 
   2961 #endif 	/* C style interface */
   2962 
   2963 
   2964 
   2965 
   2966 #endif 	/* __IControlInterface_INTERFACE_DEFINED__ */
   2967 
   2968 
   2969 #ifndef __IControlChangeNotify_INTERFACE_DEFINED__
   2970 #define __IControlChangeNotify_INTERFACE_DEFINED__
   2971 
   2972 /* interface IControlChangeNotify */
   2973 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   2974 
   2975 
   2976 EXTERN_C const IID IID_IControlChangeNotify;
   2977 
   2978 #if defined(__cplusplus) && !defined(CINTERFACE)
   2979     
   2980     MIDL_INTERFACE("A09513ED-C709-4d21-BD7B-5F34C47F3947")
   2981     IControlChangeNotify : public IUnknown
   2982     {
   2983     public:
   2984         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnNotify( 
   2985             /* [in] */ 
   2986             __in  DWORD dwSenderProcessId,
   2987             /* [unique][in] */ 
   2988             __in_opt  LPCGUID pguidEventContext) = 0;
   2989         
   2990     };
   2991     
   2992 #else 	/* C style interface */
   2993 
   2994     typedef struct IControlChangeNotifyVtbl
   2995     {
   2996         BEGIN_INTERFACE
   2997         
   2998         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   2999             IControlChangeNotify * This,
   3000             /* [in] */ REFIID riid,
   3001             /* [iid_is][out] */ 
   3002             __RPC__deref_out  void **ppvObject);
   3003         
   3004         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   3005             IControlChangeNotify * This);
   3006         
   3007         ULONG ( STDMETHODCALLTYPE *Release )( 
   3008             IControlChangeNotify * This);
   3009         
   3010         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnNotify )( 
   3011             IControlChangeNotify * This,
   3012             /* [in] */ 
   3013             __in  DWORD dwSenderProcessId,
   3014             /* [unique][in] */ 
   3015             __in_opt  LPCGUID pguidEventContext);
   3016         
   3017         END_INTERFACE
   3018     } IControlChangeNotifyVtbl;
   3019 
   3020     interface IControlChangeNotify
   3021     {
   3022         CONST_VTBL struct IControlChangeNotifyVtbl *lpVtbl;
   3023     };
   3024 
   3025     
   3026 
   3027 #ifdef COBJMACROS
   3028 
   3029 
   3030 #define IControlChangeNotify_QueryInterface(This,riid,ppvObject)	\
   3031     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   3032 
   3033 #define IControlChangeNotify_AddRef(This)	\
   3034     ( (This)->lpVtbl -> AddRef(This) ) 
   3035 
   3036 #define IControlChangeNotify_Release(This)	\
   3037     ( (This)->lpVtbl -> Release(This) ) 
   3038 
   3039 
   3040 #define IControlChangeNotify_OnNotify(This,dwSenderProcessId,pguidEventContext)	\
   3041     ( (This)->lpVtbl -> OnNotify(This,dwSenderProcessId,pguidEventContext) ) 
   3042 
   3043 #endif /* COBJMACROS */
   3044 
   3045 
   3046 #endif 	/* C style interface */
   3047 
   3048 
   3049 
   3050 
   3051 #endif 	/* __IControlChangeNotify_INTERFACE_DEFINED__ */
   3052 
   3053 
   3054 #ifndef __IDeviceTopology_INTERFACE_DEFINED__
   3055 #define __IDeviceTopology_INTERFACE_DEFINED__
   3056 
   3057 /* interface IDeviceTopology */
   3058 /* [unique][helpstring][nonextensible][uuid][local][object] */ 
   3059 
   3060 
   3061 EXTERN_C const IID IID_IDeviceTopology;
   3062 
   3063 #if defined(__cplusplus) && !defined(CINTERFACE)
   3064     
   3065     MIDL_INTERFACE("2A07407E-6497-4A18-9787-32F79BD0D98F")
   3066     IDeviceTopology : public IUnknown
   3067     {
   3068     public:
   3069         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnectorCount( 
   3070             /* [out] */ 
   3071             __out  UINT *pCount) = 0;
   3072         
   3073         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetConnector( 
   3074             /* [in] */ 
   3075             __in  UINT nIndex,
   3076             /* [out] */ 
   3077             __out  IConnector **ppConnector) = 0;
   3078         
   3079         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSubunitCount( 
   3080             /* [out] */ 
   3081             __out  UINT *pCount) = 0;
   3082         
   3083         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSubunit( 
   3084             /* [in] */ 
   3085             __in  UINT nIndex,
   3086             /* [out] */ 
   3087             __deref_out  ISubunit **ppSubunit) = 0;
   3088         
   3089         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPartById( 
   3090             /* [in] */ 
   3091             __in  UINT nId,
   3092             /* [out] */ 
   3093             __deref_out  IPart **ppPart) = 0;
   3094         
   3095         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDeviceId( 
   3096             /* [out] */ 
   3097             __deref_out  LPWSTR *ppwstrDeviceId) = 0;
   3098         
   3099         virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSignalPath( 
   3100             /* [in] */ 
   3101             __in  IPart *pIPartFrom,
   3102             /* [in] */ 
   3103             __in  IPart *pIPartTo,
   3104             /* [in] */ 
   3105             __in  BOOL bRejectMixedPaths,
   3106             /* [out] */ 
   3107             __deref_out  IPartsList **ppParts) = 0;
   3108         
   3109     };
   3110     
   3111 #else 	/* C style interface */
   3112 
   3113     typedef struct IDeviceTopologyVtbl
   3114     {
   3115         BEGIN_INTERFACE
   3116         
   3117         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
   3118             IDeviceTopology * This,
   3119             /* [in] */ REFIID riid,
   3120             /* [iid_is][out] */ 
   3121             __RPC__deref_out  void **ppvObject);
   3122         
   3123         ULONG ( STDMETHODCALLTYPE *AddRef )( 
   3124             IDeviceTopology * This);
   3125         
   3126         ULONG ( STDMETHODCALLTYPE *Release )( 
   3127             IDeviceTopology * This);
   3128         
   3129         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorCount )( 
   3130             IDeviceTopology * This,
   3131             /* [out] */ 
   3132             __out  UINT *pCount);
   3133         
   3134         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnector )( 
   3135             IDeviceTopology * This,
   3136             /* [in] */ 
   3137             __in  UINT nIndex,
   3138             /* [out] */ 
   3139             __out  IConnector **ppConnector);
   3140         
   3141         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSubunitCount )( 
   3142             IDeviceTopology * This,
   3143             /* [out] */ 
   3144             __out  UINT *pCount);
   3145         
   3146         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSubunit )( 
   3147             IDeviceTopology * This,
   3148             /* [in] */ 
   3149             __in  UINT nIndex,
   3150             /* [out] */ 
   3151             __deref_out  ISubunit **ppSubunit);
   3152         
   3153         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPartById )( 
   3154             IDeviceTopology * This,
   3155             /* [in] */ 
   3156             __in  UINT nId,
   3157             /* [out] */ 
   3158             __deref_out  IPart **ppPart);
   3159         
   3160         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDeviceId )( 
   3161             IDeviceTopology * This,
   3162             /* [out] */ 
   3163             __deref_out  LPWSTR *ppwstrDeviceId);
   3164         
   3165         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSignalPath )( 
   3166             IDeviceTopology * This,
   3167             /* [in] */ 
   3168             __in  IPart *pIPartFrom,
   3169             /* [in] */ 
   3170             __in  IPart *pIPartTo,
   3171             /* [in] */ 
   3172             __in  BOOL bRejectMixedPaths,
   3173             /* [out] */ 
   3174             __deref_out  IPartsList **ppParts);
   3175         
   3176         END_INTERFACE
   3177     } IDeviceTopologyVtbl;
   3178 
   3179     interface IDeviceTopology
   3180     {
   3181         CONST_VTBL struct IDeviceTopologyVtbl *lpVtbl;
   3182     };
   3183 
   3184     
   3185 
   3186 #ifdef COBJMACROS
   3187 
   3188 
   3189 #define IDeviceTopology_QueryInterface(This,riid,ppvObject)	\
   3190     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
   3191 
   3192 #define IDeviceTopology_AddRef(This)	\
   3193     ( (This)->lpVtbl -> AddRef(This) ) 
   3194 
   3195 #define IDeviceTopology_Release(This)	\
   3196     ( (This)->lpVtbl -> Release(This) ) 
   3197 
   3198 
   3199 #define IDeviceTopology_GetConnectorCount(This,pCount)	\
   3200     ( (This)->lpVtbl -> GetConnectorCount(This,pCount) ) 
   3201 
   3202 #define IDeviceTopology_GetConnector(This,nIndex,ppConnector)	\
   3203     ( (This)->lpVtbl -> GetConnector(This,nIndex,ppConnector) ) 
   3204 
   3205 #define IDeviceTopology_GetSubunitCount(This,pCount)	\
   3206     ( (This)->lpVtbl -> GetSubunitCount(This,pCount) ) 
   3207 
   3208 #define IDeviceTopology_GetSubunit(This,nIndex,ppSubunit)	\
   3209     ( (This)->lpVtbl -> GetSubunit(This,nIndex,ppSubunit) ) 
   3210 
   3211 #define IDeviceTopology_GetPartById(This,nId,ppPart)	\
   3212     ( (This)->lpVtbl -> GetPartById(This,nId,ppPart) ) 
   3213 
   3214 #define IDeviceTopology_GetDeviceId(This,ppwstrDeviceId)	\
   3215     ( (This)->lpVtbl -> GetDeviceId(This,ppwstrDeviceId) ) 
   3216 
   3217 #define IDeviceTopology_GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts)	\
   3218     ( (This)->lpVtbl -> GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts) ) 
   3219 
   3220 #endif /* COBJMACROS */
   3221 
   3222 
   3223 #endif 	/* C style interface */
   3224 
   3225 
   3226 
   3227 
   3228 #endif 	/* __IDeviceTopology_INTERFACE_DEFINED__ */
   3229 
   3230 
   3231 
   3232 #ifndef __DevTopologyLib_LIBRARY_DEFINED__
   3233 #define __DevTopologyLib_LIBRARY_DEFINED__
   3234 
   3235 /* library DevTopologyLib */
   3236 /* [helpstring][version][uuid] */ 
   3237 
   3238 
   3239 
   3240 
   3241 
   3242 
   3243 
   3244 
   3245 
   3246 
   3247 
   3248 
   3249 
   3250 
   3251 
   3252 
   3253 EXTERN_C const IID LIBID_DevTopologyLib;
   3254 
   3255 EXTERN_C const CLSID CLSID_DeviceTopology;
   3256 
   3257 #ifdef __cplusplus
   3258 
   3259 class DECLSPEC_UUID("1DF639D0-5EC1-47AA-9379-828DC1AA8C59")
   3260 DeviceTopology;
   3261 #endif
   3262 #endif /* __DevTopologyLib_LIBRARY_DEFINED__ */
   3263 
   3264 /* Additional Prototypes for ALL interfaces */
   3265 
   3266 /* end of Additional Prototypes */
   3267 
   3268 #ifdef __cplusplus
   3269 }
   3270 #endif
   3271 
   3272 #endif
   3273 
   3274 
   3275