Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/devicetopology.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __devicetopology_h__
     16 #define __devicetopology_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IKsControl_FWD_DEFINED__
     21 #define __IKsControl_FWD_DEFINED__
     22 typedef interface IKsControl IKsControl;
     23 #endif
     24 
     25 #ifndef __IPerChannelDbLevel_FWD_DEFINED__
     26 #define __IPerChannelDbLevel_FWD_DEFINED__
     27 typedef interface IPerChannelDbLevel IPerChannelDbLevel;
     28 #endif
     29 
     30 #ifndef __IAudioVolumeLevel_FWD_DEFINED__
     31 #define __IAudioVolumeLevel_FWD_DEFINED__
     32 typedef interface IAudioVolumeLevel IAudioVolumeLevel;
     33 #endif
     34 
     35 #ifndef __IAudioChannelConfig_FWD_DEFINED__
     36 #define __IAudioChannelConfig_FWD_DEFINED__
     37 typedef interface IAudioChannelConfig IAudioChannelConfig;
     38 #endif
     39 
     40 #ifndef __IAudioLoudness_FWD_DEFINED__
     41 #define __IAudioLoudness_FWD_DEFINED__
     42 typedef interface IAudioLoudness IAudioLoudness;
     43 #endif
     44 
     45 #ifndef __IAudioInputSelector_FWD_DEFINED__
     46 #define __IAudioInputSelector_FWD_DEFINED__
     47 typedef interface IAudioInputSelector IAudioInputSelector;
     48 #endif
     49 
     50 #ifndef __IAudioOutputSelector_FWD_DEFINED__
     51 #define __IAudioOutputSelector_FWD_DEFINED__
     52 typedef interface IAudioOutputSelector IAudioOutputSelector;
     53 #endif
     54 
     55 #ifndef __IAudioMute_FWD_DEFINED__
     56 #define __IAudioMute_FWD_DEFINED__
     57 typedef interface IAudioMute IAudioMute;
     58 #endif
     59 
     60 #ifndef __IAudioBass_FWD_DEFINED__
     61 #define __IAudioBass_FWD_DEFINED__
     62 typedef interface IAudioBass IAudioBass;
     63 #endif
     64 
     65 #ifndef __IAudioMidRange_FWD_DEFINED__
     66 #define __IAudioMidRange_FWD_DEFINED__
     67 typedef interface IAudioMidRange IAudioMidRange;
     68 #endif
     69 
     70 #ifndef __IAudioTreble_FWD_DEFINED__
     71 #define __IAudioTreble_FWD_DEFINED__
     72 typedef interface IAudioTreble IAudioTreble;
     73 #endif
     74 
     75 #ifndef __IAudioAutoGainControl_FWD_DEFINED__
     76 #define __IAudioAutoGainControl_FWD_DEFINED__
     77 typedef interface IAudioAutoGainControl IAudioAutoGainControl;
     78 #endif
     79 
     80 #ifndef __IAudioPeakMeter_FWD_DEFINED__
     81 #define __IAudioPeakMeter_FWD_DEFINED__
     82 typedef interface IAudioPeakMeter IAudioPeakMeter;
     83 #endif
     84 
     85 #ifndef __IDeviceSpecificProperty_FWD_DEFINED__
     86 #define __IDeviceSpecificProperty_FWD_DEFINED__
     87 typedef interface IDeviceSpecificProperty IDeviceSpecificProperty;
     88 #endif
     89 
     90 #ifndef __IKsFormatSupport_FWD_DEFINED__
     91 #define __IKsFormatSupport_FWD_DEFINED__
     92 typedef interface IKsFormatSupport IKsFormatSupport;
     93 #endif
     94 
     95 #ifndef __IKsJackDescription_FWD_DEFINED__
     96 #define __IKsJackDescription_FWD_DEFINED__
     97 typedef interface IKsJackDescription IKsJackDescription;
     98 #endif
     99 
    100 #ifndef __IKsJackDescription2_FWD_DEFINED__
    101 #define __IKsJackDescription2_FWD_DEFINED__
    102 typedef interface IKsJackDescription2 IKsJackDescription2;
    103 #endif
    104 
    105 #ifndef __IKsJackSinkInformation_FWD_DEFINED__
    106 #define __IKsJackSinkInformation_FWD_DEFINED__
    107 typedef interface IKsJackSinkInformation IKsJackSinkInformation;
    108 #endif
    109 
    110 #ifndef __IPartsList_FWD_DEFINED__
    111 #define __IPartsList_FWD_DEFINED__
    112 typedef interface IPartsList IPartsList;
    113 #endif
    114 
    115 #ifndef __IPart_FWD_DEFINED__
    116 #define __IPart_FWD_DEFINED__
    117 typedef interface IPart IPart;
    118 #endif
    119 
    120 #ifndef __IConnector_FWD_DEFINED__
    121 #define __IConnector_FWD_DEFINED__
    122 typedef interface IConnector IConnector;
    123 #endif
    124 
    125 #ifndef __ISubUnit_FWD_DEFINED__
    126 #define __ISubUnit_FWD_DEFINED__
    127 typedef interface ISubUnit ISubUnit;
    128 #endif
    129 
    130 #ifndef __IControlInterface_FWD_DEFINED__
    131 #define __IControlInterface_FWD_DEFINED__
    132 typedef interface IControlInterface IControlInterface;
    133 #endif
    134 
    135 #ifndef __IControlChangeNotify_FWD_DEFINED__
    136 #define __IControlChangeNotify_FWD_DEFINED__
    137 typedef interface IControlChangeNotify IControlChangeNotify;
    138 #endif
    139 
    140 #ifndef __IDeviceTopology_FWD_DEFINED__
    141 #define __IDeviceTopology_FWD_DEFINED__
    142 typedef interface IDeviceTopology IDeviceTopology;
    143 #endif
    144 
    145 #ifndef __DeviceTopology_FWD_DEFINED__
    146 #define __DeviceTopology_FWD_DEFINED__
    147 #ifdef __cplusplus
    148 typedef class DeviceTopology DeviceTopology;
    149 #else
    150 typedef struct DeviceTopology DeviceTopology;
    151 #endif /* defined __cplusplus */
    152 #endif /* defined __DeviceTopology_FWD_DEFINED__ */
    153 
    154 /* Headers for imported files */
    155 
    156 #include <oaidl.h>
    157 #include <ocidl.h>
    158 #include <propidl.h>
    159 
    160 #ifdef __cplusplus
    161 extern "C" {
    162 #endif
    163 
    164 #ifndef __IPart_FWD_DEFINED__
    165 #define __IPart_FWD_DEFINED__
    166 typedef interface IPart IPart;
    167 #endif
    168 
    169 #ifndef __IControlInterface_FWD_DEFINED__
    170 #define __IControlInterface_FWD_DEFINED__
    171 typedef interface IControlInterface IControlInterface;
    172 #endif
    173 
    174 #ifndef __IDeviceTopology_FWD_DEFINED__
    175 #define __IDeviceTopology_FWD_DEFINED__
    176 typedef interface IDeviceTopology IDeviceTopology;
    177 #endif
    178 
    179 #ifndef __IControlChangeNotify_FWD_DEFINED__
    180 #define __IControlChangeNotify_FWD_DEFINED__
    181 typedef interface IControlChangeNotify IControlChangeNotify;
    182 #endif
    183 
    184 #ifndef E_NOTFOUND
    185 #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
    186 #endif
    187 #define DEVTOPO_HARDWARE_INITIATED_EVENTCONTEXT 0x64726148 /* 'draH' */
    188 DEFINE_GUID(EVENTCONTEXT_VOLUMESLIDER, 0xe2c2e9de, 0x09b1, 0x4b04,0x84,0xe5, 0x07, 0x93, 0x12, 0x25, 0xee, 0x04);
    189 #define _IKsControl_
    190 #include <ks.h>
    191 #include <ksmedia.h>
    192 #ifndef _KS_
    193 typedef struct __WIDL_devicetopology_generated_name_00000013 {
    194     ULONG FormatSize;
    195     ULONG Flags;
    196     ULONG SampleSize;
    197     ULONG Reserved;
    198     GUID MajorFormat;
    199     GUID SubFormat;
    200     GUID Specifier;
    201 } KSDATAFORMAT;
    202 typedef KSDATAFORMAT *PKSDATAFORMAT;
    203 typedef struct __WIDL_devicetopology_generated_name_00000014 {
    204     __C89_NAMELESS union {
    205         __C89_NAMELESS struct {
    206             GUID Set;
    207             ULONG Id;
    208             ULONG Flags;
    209         } __C89_NAMELESSSTRUCTNAME;
    210         LONGLONG Alignment;
    211     } __C89_NAMELESSUNIONNAME;
    212 } KSIDENTIFIER;
    213 typedef KSIDENTIFIER KSPROPERTY;
    214 typedef KSIDENTIFIER *PKSPROPERTY;
    215 typedef KSIDENTIFIER KSMETHOD;
    216 typedef KSIDENTIFIER *PKSMETHOD;
    217 typedef KSIDENTIFIER KSEVENT;
    218 typedef KSIDENTIFIER *PKSEVENT;
    219 typedef enum __WIDL_devicetopology_generated_name_00000015 {
    220     eConnTypeUnknown = 0,
    221     eConnType3Point5mm = 1,
    222     eConnTypeQuarter = 2,
    223     eConnTypeAtapiInternal = 3,
    224     eConnTypeRCA = 4,
    225     eConnTypeOptical = 5,
    226     eConnTypeOtherDigital = 6,
    227     eConnTypeOtherAnalog = 7,
    228     eConnTypeMultichannelAnalogDIN = 8,
    229     eConnTypeXlrProfessional = 9,
    230     eConnTypeRJ11Modem = 10,
    231     eConnTypeCombination = 11
    232 } EPcxConnectionType;
    233 typedef enum __WIDL_devicetopology_generated_name_00000016 {
    234     eGeoLocRear = 1,
    235     eGeoLocFront = 2,
    236     eGeoLocLeft = 3,
    237     eGeoLocRight = 4,
    238     eGeoLocTop = 5,
    239     eGeoLocBottom = 6,
    240     eGeoLocRearPanel = 7,
    241     eGeoLocRiser = 8,
    242     eGeoLocInsideMobileLid = 9,
    243     eGeoLocDrivebay = 10,
    244     eGeoLocHDMI = 11,
    245     eGeoLocOutsideMobileLid = 12,
    246     eGeoLocATAPI = 13,
    247     eGeoLocReserved5 = 14,
    248     eGeoLocReserved6 = 15
    249 } EPcxGeoLocation;
    250 typedef enum __WIDL_devicetopology_generated_name_00000017 {
    251     eGenLocPrimaryBox = 0,
    252     eGenLocInternal = 1,
    253     eGenLocSeparate = 2,
    254     eGenLocOther = 3
    255 } EPcxGenLocation;
    256 typedef enum __WIDL_devicetopology_generated_name_00000018 {
    257     ePortConnJack = 0,
    258     ePortConnIntegratedDevice = 1,
    259     ePortConnBothIntegratedAndJack = 2,
    260     ePortConnUnknown = 3
    261 } EPxcPortConnection;
    262 typedef struct __WIDL_devicetopology_generated_name_00000019 {
    263     DWORD ChannelMapping;
    264     COLORREF Color;
    265     EPcxConnectionType ConnectionType;
    266     EPcxGeoLocation GeoLocation;
    267     EPcxGenLocation GenLocation;
    268     EPxcPortConnection PortConnection;
    269     WINBOOL IsConnected;
    270 } KSJACK_DESCRIPTION;
    271 typedef KSJACK_DESCRIPTION *PKSJACK_DESCRIPTION;
    272 typedef struct _LUID {
    273     DWORD LowPart;
    274     LONG HighPart;
    275 } LUID;
    276 typedef struct _LUID *PLUID;
    277 typedef enum __WIDL_devicetopology_generated_name_0000001A {
    278     KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,
    279     KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT = 1
    280 } KSJACK_SINK_CONNECTIONTYPE;
    281 typedef struct _tagKSJACK_SINK_INFORMATION {
    282     KSJACK_SINK_CONNECTIONTYPE ConnType;
    283     WORD ManufacturerId;
    284     WORD ProductId;
    285     WORD AudioLatency;
    286     WINBOOL HDCPCapable;
    287     WINBOOL AICapable;
    288     UCHAR SinkDescriptionLength;
    289     WCHAR SinkDescription[32];
    290     LUID PortId;
    291 } KSJACK_SINK_INFORMATION;
    292 typedef struct _tagKSJACK_DESCRIPTION2 {
    293     DWORD DeviceStateInfo;
    294     DWORD JackCapabilities;
    295 } KSJACK_DESCRIPTION2;
    296 typedef struct _tagKSJACK_DESCRIPTION2 *PKSJACK_DESCRIPTION2;
    297 #endif
    298 typedef enum __WIDL_devicetopology_generated_name_0000001B {
    299     In = 0,
    300     Out = 1
    301 } DataFlow;
    302 typedef enum __WIDL_devicetopology_generated_name_0000001C {
    303     Connector = 0,
    304     Subunit = 1
    305 } PartType;
    306 typedef enum __WIDL_devicetopology_generated_name_0000001D {
    307     Unknown_Connector = 0,
    308     Physical_Internal = 1,
    309     Physical_External = 2,
    310     Software_IO = 3,
    311     Software_Fixed = 4,
    312     Network = 5
    313 } ConnectorType;
    314 /*****************************************************************************
    315  * IKsControl interface
    316  */
    317 #ifndef __IKsControl_INTERFACE_DEFINED__
    318 #define __IKsControl_INTERFACE_DEFINED__
    319 
    320 DEFINE_GUID(IID_IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2,0x7a, 0x00,0xa0,0xc9,0x22,0x31,0x96);
    321 #if defined(__cplusplus) && !defined(CINTERFACE)
    322 MIDL_INTERFACE("28f54685-06fd-11d2-b27a-00a0c9223196")
    323 IKsControl : public IUnknown
    324 {
    325     virtual HRESULT STDMETHODCALLTYPE KsProperty(
    326         PKSPROPERTY Property,
    327         ULONG PropertyLength,
    328         void *PropertyData,
    329         ULONG DataLength,
    330         ULONG *BytesReturned) = 0;
    331 
    332     virtual HRESULT STDMETHODCALLTYPE KsMethod(
    333         PKSMETHOD Method,
    334         ULONG MethodLength,
    335         void *MethodData,
    336         ULONG DataLength,
    337         ULONG *BytesReturned) = 0;
    338 
    339     virtual HRESULT STDMETHODCALLTYPE KsEvent(
    340         PKSEVENT Event,
    341         ULONG EventLength,
    342         void *EventData,
    343         ULONG DataLength,
    344         ULONG *BytesReturned) = 0;
    345 
    346 };
    347 #ifdef __CRT_UUID_DECL
    348 __CRT_UUID_DECL(IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2,0x7a, 0x00,0xa0,0xc9,0x22,0x31,0x96)
    349 #endif
    350 #else
    351 typedef struct IKsControlVtbl {
    352     BEGIN_INTERFACE
    353 
    354     /*** IUnknown methods ***/
    355     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    356         IKsControl* This,
    357         REFIID riid,
    358         void **ppvObject);
    359 
    360     ULONG (STDMETHODCALLTYPE *AddRef)(
    361         IKsControl* This);
    362 
    363     ULONG (STDMETHODCALLTYPE *Release)(
    364         IKsControl* This);
    365 
    366     /*** IKsControl methods ***/
    367     HRESULT (STDMETHODCALLTYPE *KsProperty)(
    368         IKsControl* This,
    369         PKSPROPERTY Property,
    370         ULONG PropertyLength,
    371         void *PropertyData,
    372         ULONG DataLength,
    373         ULONG *BytesReturned);
    374 
    375     HRESULT (STDMETHODCALLTYPE *KsMethod)(
    376         IKsControl* This,
    377         PKSMETHOD Method,
    378         ULONG MethodLength,
    379         void *MethodData,
    380         ULONG DataLength,
    381         ULONG *BytesReturned);
    382 
    383     HRESULT (STDMETHODCALLTYPE *KsEvent)(
    384         IKsControl* This,
    385         PKSEVENT Event,
    386         ULONG EventLength,
    387         void *EventData,
    388         ULONG DataLength,
    389         ULONG *BytesReturned);
    390 
    391     END_INTERFACE
    392 } IKsControlVtbl;
    393 interface IKsControl {
    394     CONST_VTBL IKsControlVtbl* lpVtbl;
    395 };
    396 
    397 #ifdef COBJMACROS
    398 #ifndef WIDL_C_INLINE_WRAPPERS
    399 /*** IUnknown methods ***/
    400 #define IKsControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    401 #define IKsControl_AddRef(This) (This)->lpVtbl->AddRef(This)
    402 #define IKsControl_Release(This) (This)->lpVtbl->Release(This)
    403 /*** IKsControl methods ***/
    404 #define IKsControl_KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned) (This)->lpVtbl->KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned)
    405 #define IKsControl_KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned) (This)->lpVtbl->KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned)
    406 #define IKsControl_KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned) (This)->lpVtbl->KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned)
    407 #else
    408 /*** IUnknown methods ***/
    409 static FORCEINLINE HRESULT IKsControl_QueryInterface(IKsControl* This,REFIID riid,void **ppvObject) {
    410     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    411 }
    412 static FORCEINLINE ULONG IKsControl_AddRef(IKsControl* This) {
    413     return This->lpVtbl->AddRef(This);
    414 }
    415 static FORCEINLINE ULONG IKsControl_Release(IKsControl* This) {
    416     return This->lpVtbl->Release(This);
    417 }
    418 /*** IKsControl methods ***/
    419 static FORCEINLINE HRESULT IKsControl_KsProperty(IKsControl* This,PKSPROPERTY Property,ULONG PropertyLength,void *PropertyData,ULONG DataLength,ULONG *BytesReturned) {
    420     return This->lpVtbl->KsProperty(This,Property,PropertyLength,PropertyData,DataLength,BytesReturned);
    421 }
    422 static FORCEINLINE HRESULT IKsControl_KsMethod(IKsControl* This,PKSMETHOD Method,ULONG MethodLength,void *MethodData,ULONG DataLength,ULONG *BytesReturned) {
    423     return This->lpVtbl->KsMethod(This,Method,MethodLength,MethodData,DataLength,BytesReturned);
    424 }
    425 static FORCEINLINE HRESULT IKsControl_KsEvent(IKsControl* This,PKSEVENT Event,ULONG EventLength,void *EventData,ULONG DataLength,ULONG *BytesReturned) {
    426     return This->lpVtbl->KsEvent(This,Event,EventLength,EventData,DataLength,BytesReturned);
    427 }
    428 #endif
    429 #endif
    430 
    431 #endif
    432 
    433 HRESULT STDMETHODCALLTYPE IKsControl_KsProperty_Proxy(
    434     IKsControl* This,
    435     PKSPROPERTY Property,
    436     ULONG PropertyLength,
    437     void *PropertyData,
    438     ULONG DataLength,
    439     ULONG *BytesReturned);
    440 void __RPC_STUB IKsControl_KsProperty_Stub(
    441     IRpcStubBuffer* This,
    442     IRpcChannelBuffer* pRpcChannelBuffer,
    443     PRPC_MESSAGE pRpcMessage,
    444     DWORD* pdwStubPhase);
    445 HRESULT STDMETHODCALLTYPE IKsControl_KsMethod_Proxy(
    446     IKsControl* This,
    447     PKSMETHOD Method,
    448     ULONG MethodLength,
    449     void *MethodData,
    450     ULONG DataLength,
    451     ULONG *BytesReturned);
    452 void __RPC_STUB IKsControl_KsMethod_Stub(
    453     IRpcStubBuffer* This,
    454     IRpcChannelBuffer* pRpcChannelBuffer,
    455     PRPC_MESSAGE pRpcMessage,
    456     DWORD* pdwStubPhase);
    457 HRESULT STDMETHODCALLTYPE IKsControl_KsEvent_Proxy(
    458     IKsControl* This,
    459     PKSEVENT Event,
    460     ULONG EventLength,
    461     void *EventData,
    462     ULONG DataLength,
    463     ULONG *BytesReturned);
    464 void __RPC_STUB IKsControl_KsEvent_Stub(
    465     IRpcStubBuffer* This,
    466     IRpcChannelBuffer* pRpcChannelBuffer,
    467     PRPC_MESSAGE pRpcMessage,
    468     DWORD* pdwStubPhase);
    469 
    470 #endif  /* __IKsControl_INTERFACE_DEFINED__ */
    471 
    472 /*****************************************************************************
    473  * IPerChannelDbLevel interface
    474  */
    475 #ifndef __IPerChannelDbLevel_INTERFACE_DEFINED__
    476 #define __IPerChannelDbLevel_INTERFACE_DEFINED__
    477 
    478 DEFINE_GUID(IID_IPerChannelDbLevel, 0xc2f8e001, 0xf205, 0x4bc9, 0x99,0xbc, 0xc1,0x3b,0x1e,0x04,0x8c,0xcb);
    479 #if defined(__cplusplus) && !defined(CINTERFACE)
    480 MIDL_INTERFACE("c2f8e001-f205-4bc9-99bc-c13b1e048ccb")
    481 IPerChannelDbLevel : public IUnknown
    482 {
    483     virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
    484         UINT *pcChannels) = 0;
    485 
    486     virtual HRESULT STDMETHODCALLTYPE GetLevelRange(
    487         UINT nChannel,
    488         float *pfMinLevelDB,
    489         float *pfMaxLevelDB,
    490         float *pfStepping) = 0;
    491 
    492     virtual HRESULT STDMETHODCALLTYPE GetLevel(
    493         UINT nChannel,
    494         float *pfLevelDB) = 0;
    495 
    496     virtual HRESULT STDMETHODCALLTYPE SetLevel(
    497         UINT nChannel,
    498         float fLevelDB,
    499         LPCGUID pguidEventContext) = 0;
    500 
    501     virtual HRESULT STDMETHODCALLTYPE SetLevelUniform(
    502         float fLevelDB,
    503         LPCGUID pguidEventContext) = 0;
    504 
    505     virtual HRESULT STDMETHODCALLTYPE SetLevelAllChannels(
    506         float *aLevelsDB,
    507         ULONG cChannels,
    508         LPCGUID pguidEventContext) = 0;
    509 
    510 };
    511 #ifdef __CRT_UUID_DECL
    512 __CRT_UUID_DECL(IPerChannelDbLevel, 0xc2f8e001, 0xf205, 0x4bc9, 0x99,0xbc, 0xc1,0x3b,0x1e,0x04,0x8c,0xcb)
    513 #endif
    514 #else
    515 typedef struct IPerChannelDbLevelVtbl {
    516     BEGIN_INTERFACE
    517 
    518     /*** IUnknown methods ***/
    519     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    520         IPerChannelDbLevel* This,
    521         REFIID riid,
    522         void **ppvObject);
    523 
    524     ULONG (STDMETHODCALLTYPE *AddRef)(
    525         IPerChannelDbLevel* This);
    526 
    527     ULONG (STDMETHODCALLTYPE *Release)(
    528         IPerChannelDbLevel* This);
    529 
    530     /*** IPerChannelDbLevel methods ***/
    531     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
    532         IPerChannelDbLevel* This,
    533         UINT *pcChannels);
    534 
    535     HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
    536         IPerChannelDbLevel* This,
    537         UINT nChannel,
    538         float *pfMinLevelDB,
    539         float *pfMaxLevelDB,
    540         float *pfStepping);
    541 
    542     HRESULT (STDMETHODCALLTYPE *GetLevel)(
    543         IPerChannelDbLevel* This,
    544         UINT nChannel,
    545         float *pfLevelDB);
    546 
    547     HRESULT (STDMETHODCALLTYPE *SetLevel)(
    548         IPerChannelDbLevel* This,
    549         UINT nChannel,
    550         float fLevelDB,
    551         LPCGUID pguidEventContext);
    552 
    553     HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
    554         IPerChannelDbLevel* This,
    555         float fLevelDB,
    556         LPCGUID pguidEventContext);
    557 
    558     HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
    559         IPerChannelDbLevel* This,
    560         float *aLevelsDB,
    561         ULONG cChannels,
    562         LPCGUID pguidEventContext);
    563 
    564     END_INTERFACE
    565 } IPerChannelDbLevelVtbl;
    566 interface IPerChannelDbLevel {
    567     CONST_VTBL IPerChannelDbLevelVtbl* lpVtbl;
    568 };
    569 
    570 #ifdef COBJMACROS
    571 #ifndef WIDL_C_INLINE_WRAPPERS
    572 /*** IUnknown methods ***/
    573 #define IPerChannelDbLevel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    574 #define IPerChannelDbLevel_AddRef(This) (This)->lpVtbl->AddRef(This)
    575 #define IPerChannelDbLevel_Release(This) (This)->lpVtbl->Release(This)
    576 /*** IPerChannelDbLevel methods ***/
    577 #define IPerChannelDbLevel_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
    578 #define IPerChannelDbLevel_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
    579 #define IPerChannelDbLevel_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
    580 #define IPerChannelDbLevel_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
    581 #define IPerChannelDbLevel_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
    582 #define IPerChannelDbLevel_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
    583 #else
    584 /*** IUnknown methods ***/
    585 static FORCEINLINE HRESULT IPerChannelDbLevel_QueryInterface(IPerChannelDbLevel* This,REFIID riid,void **ppvObject) {
    586     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    587 }
    588 static FORCEINLINE ULONG IPerChannelDbLevel_AddRef(IPerChannelDbLevel* This) {
    589     return This->lpVtbl->AddRef(This);
    590 }
    591 static FORCEINLINE ULONG IPerChannelDbLevel_Release(IPerChannelDbLevel* This) {
    592     return This->lpVtbl->Release(This);
    593 }
    594 /*** IPerChannelDbLevel methods ***/
    595 static FORCEINLINE HRESULT IPerChannelDbLevel_GetChannelCount(IPerChannelDbLevel* This,UINT *pcChannels) {
    596     return This->lpVtbl->GetChannelCount(This,pcChannels);
    597 }
    598 static FORCEINLINE HRESULT IPerChannelDbLevel_GetLevelRange(IPerChannelDbLevel* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
    599     return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
    600 }
    601 static FORCEINLINE HRESULT IPerChannelDbLevel_GetLevel(IPerChannelDbLevel* This,UINT nChannel,float *pfLevelDB) {
    602     return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
    603 }
    604 static FORCEINLINE HRESULT IPerChannelDbLevel_SetLevel(IPerChannelDbLevel* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
    605     return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
    606 }
    607 static FORCEINLINE HRESULT IPerChannelDbLevel_SetLevelUniform(IPerChannelDbLevel* This,float fLevelDB,LPCGUID pguidEventContext) {
    608     return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
    609 }
    610 static FORCEINLINE HRESULT IPerChannelDbLevel_SetLevelAllChannels(IPerChannelDbLevel* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
    611     return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
    612 }
    613 #endif
    614 #endif
    615 
    616 #endif
    617 
    618 HRESULT STDMETHODCALLTYPE IPerChannelDbLevel_GetChannelCount_Proxy(
    619     IPerChannelDbLevel* This,
    620     UINT *pcChannels);
    621 void __RPC_STUB IPerChannelDbLevel_GetChannelCount_Stub(
    622     IRpcStubBuffer* This,
    623     IRpcChannelBuffer* pRpcChannelBuffer,
    624     PRPC_MESSAGE pRpcMessage,
    625     DWORD* pdwStubPhase);
    626 HRESULT STDMETHODCALLTYPE IPerChannelDbLevel_GetLevelRange_Proxy(
    627     IPerChannelDbLevel* This,
    628     UINT nChannel,
    629     float *pfMinLevelDB,
    630     float *pfMaxLevelDB,
    631     float *pfStepping);
    632 void __RPC_STUB IPerChannelDbLevel_GetLevelRange_Stub(
    633     IRpcStubBuffer* This,
    634     IRpcChannelBuffer* pRpcChannelBuffer,
    635     PRPC_MESSAGE pRpcMessage,
    636     DWORD* pdwStubPhase);
    637 HRESULT STDMETHODCALLTYPE IPerChannelDbLevel_GetLevel_Proxy(
    638     IPerChannelDbLevel* This,
    639     UINT nChannel,
    640     float *pfLevelDB);
    641 void __RPC_STUB IPerChannelDbLevel_GetLevel_Stub(
    642     IRpcStubBuffer* This,
    643     IRpcChannelBuffer* pRpcChannelBuffer,
    644     PRPC_MESSAGE pRpcMessage,
    645     DWORD* pdwStubPhase);
    646 HRESULT STDMETHODCALLTYPE IPerChannelDbLevel_SetLevel_Proxy(
    647     IPerChannelDbLevel* This,
    648     UINT nChannel,
    649     float fLevelDB,
    650     LPCGUID pguidEventContext);
    651 void __RPC_STUB IPerChannelDbLevel_SetLevel_Stub(
    652     IRpcStubBuffer* This,
    653     IRpcChannelBuffer* pRpcChannelBuffer,
    654     PRPC_MESSAGE pRpcMessage,
    655     DWORD* pdwStubPhase);
    656 HRESULT STDMETHODCALLTYPE IPerChannelDbLevel_SetLevelUniform_Proxy(
    657     IPerChannelDbLevel* This,
    658     float fLevelDB,
    659     LPCGUID pguidEventContext);
    660 void __RPC_STUB IPerChannelDbLevel_SetLevelUniform_Stub(
    661     IRpcStubBuffer* This,
    662     IRpcChannelBuffer* pRpcChannelBuffer,
    663     PRPC_MESSAGE pRpcMessage,
    664     DWORD* pdwStubPhase);
    665 HRESULT STDMETHODCALLTYPE IPerChannelDbLevel_SetLevelAllChannels_Proxy(
    666     IPerChannelDbLevel* This,
    667     float *aLevelsDB,
    668     ULONG cChannels,
    669     LPCGUID pguidEventContext);
    670 void __RPC_STUB IPerChannelDbLevel_SetLevelAllChannels_Stub(
    671     IRpcStubBuffer* This,
    672     IRpcChannelBuffer* pRpcChannelBuffer,
    673     PRPC_MESSAGE pRpcMessage,
    674     DWORD* pdwStubPhase);
    675 
    676 #endif  /* __IPerChannelDbLevel_INTERFACE_DEFINED__ */
    677 
    678 /*****************************************************************************
    679  * IAudioVolumeLevel interface
    680  */
    681 #ifndef __IAudioVolumeLevel_INTERFACE_DEFINED__
    682 #define __IAudioVolumeLevel_INTERFACE_DEFINED__
    683 
    684 DEFINE_GUID(IID_IAudioVolumeLevel, 0x7fb7b48f, 0x531d, 0x44a2, 0xbc,0xb3, 0x5a,0xd5,0xa1,0x34,0xb3,0xdc);
    685 #if defined(__cplusplus) && !defined(CINTERFACE)
    686 MIDL_INTERFACE("7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc")
    687 IAudioVolumeLevel : public IPerChannelDbLevel
    688 {
    689 };
    690 #ifdef __CRT_UUID_DECL
    691 __CRT_UUID_DECL(IAudioVolumeLevel, 0x7fb7b48f, 0x531d, 0x44a2, 0xbc,0xb3, 0x5a,0xd5,0xa1,0x34,0xb3,0xdc)
    692 #endif
    693 #else
    694 typedef struct IAudioVolumeLevelVtbl {
    695     BEGIN_INTERFACE
    696 
    697     /*** IUnknown methods ***/
    698     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    699         IAudioVolumeLevel* This,
    700         REFIID riid,
    701         void **ppvObject);
    702 
    703     ULONG (STDMETHODCALLTYPE *AddRef)(
    704         IAudioVolumeLevel* This);
    705 
    706     ULONG (STDMETHODCALLTYPE *Release)(
    707         IAudioVolumeLevel* This);
    708 
    709     /*** IPerChannelDbLevel methods ***/
    710     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
    711         IAudioVolumeLevel* This,
    712         UINT *pcChannels);
    713 
    714     HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
    715         IAudioVolumeLevel* This,
    716         UINT nChannel,
    717         float *pfMinLevelDB,
    718         float *pfMaxLevelDB,
    719         float *pfStepping);
    720 
    721     HRESULT (STDMETHODCALLTYPE *GetLevel)(
    722         IAudioVolumeLevel* This,
    723         UINT nChannel,
    724         float *pfLevelDB);
    725 
    726     HRESULT (STDMETHODCALLTYPE *SetLevel)(
    727         IAudioVolumeLevel* This,
    728         UINT nChannel,
    729         float fLevelDB,
    730         LPCGUID pguidEventContext);
    731 
    732     HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
    733         IAudioVolumeLevel* This,
    734         float fLevelDB,
    735         LPCGUID pguidEventContext);
    736 
    737     HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
    738         IAudioVolumeLevel* This,
    739         float *aLevelsDB,
    740         ULONG cChannels,
    741         LPCGUID pguidEventContext);
    742 
    743     END_INTERFACE
    744 } IAudioVolumeLevelVtbl;
    745 interface IAudioVolumeLevel {
    746     CONST_VTBL IAudioVolumeLevelVtbl* lpVtbl;
    747 };
    748 
    749 #ifdef COBJMACROS
    750 #ifndef WIDL_C_INLINE_WRAPPERS
    751 /*** IUnknown methods ***/
    752 #define IAudioVolumeLevel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    753 #define IAudioVolumeLevel_AddRef(This) (This)->lpVtbl->AddRef(This)
    754 #define IAudioVolumeLevel_Release(This) (This)->lpVtbl->Release(This)
    755 /*** IPerChannelDbLevel methods ***/
    756 #define IAudioVolumeLevel_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
    757 #define IAudioVolumeLevel_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
    758 #define IAudioVolumeLevel_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
    759 #define IAudioVolumeLevel_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
    760 #define IAudioVolumeLevel_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
    761 #define IAudioVolumeLevel_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
    762 #else
    763 /*** IUnknown methods ***/
    764 static FORCEINLINE HRESULT IAudioVolumeLevel_QueryInterface(IAudioVolumeLevel* This,REFIID riid,void **ppvObject) {
    765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    766 }
    767 static FORCEINLINE ULONG IAudioVolumeLevel_AddRef(IAudioVolumeLevel* This) {
    768     return This->lpVtbl->AddRef(This);
    769 }
    770 static FORCEINLINE ULONG IAudioVolumeLevel_Release(IAudioVolumeLevel* This) {
    771     return This->lpVtbl->Release(This);
    772 }
    773 /*** IPerChannelDbLevel methods ***/
    774 static FORCEINLINE HRESULT IAudioVolumeLevel_GetChannelCount(IAudioVolumeLevel* This,UINT *pcChannels) {
    775     return This->lpVtbl->GetChannelCount(This,pcChannels);
    776 }
    777 static FORCEINLINE HRESULT IAudioVolumeLevel_GetLevelRange(IAudioVolumeLevel* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
    778     return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
    779 }
    780 static FORCEINLINE HRESULT IAudioVolumeLevel_GetLevel(IAudioVolumeLevel* This,UINT nChannel,float *pfLevelDB) {
    781     return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
    782 }
    783 static FORCEINLINE HRESULT IAudioVolumeLevel_SetLevel(IAudioVolumeLevel* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
    784     return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
    785 }
    786 static FORCEINLINE HRESULT IAudioVolumeLevel_SetLevelUniform(IAudioVolumeLevel* This,float fLevelDB,LPCGUID pguidEventContext) {
    787     return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
    788 }
    789 static FORCEINLINE HRESULT IAudioVolumeLevel_SetLevelAllChannels(IAudioVolumeLevel* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
    790     return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
    791 }
    792 #endif
    793 #endif
    794 
    795 #endif
    796 
    797 
    798 #endif  /* __IAudioVolumeLevel_INTERFACE_DEFINED__ */
    799 
    800 /*****************************************************************************
    801  * IAudioChannelConfig interface
    802  */
    803 #ifndef __IAudioChannelConfig_INTERFACE_DEFINED__
    804 #define __IAudioChannelConfig_INTERFACE_DEFINED__
    805 
    806 DEFINE_GUID(IID_IAudioChannelConfig, 0xbb11c46f, 0xec28, 0x493c, 0xb8,0x8a, 0x5d,0xb8,0x80,0x62,0xce,0x98);
    807 #if defined(__cplusplus) && !defined(CINTERFACE)
    808 MIDL_INTERFACE("bb11c46f-ec28-493c-b88a-5db88062ce98")
    809 IAudioChannelConfig : public IUnknown
    810 {
    811     virtual HRESULT STDMETHODCALLTYPE SetChannelConfig(
    812         DWORD dwConfig,
    813         LPCGUID pguidEventContext) = 0;
    814 
    815     virtual HRESULT STDMETHODCALLTYPE GetChannelConfig(
    816         DWORD dwConfig,
    817         DWORD *pdwConfig) = 0;
    818 
    819 };
    820 #ifdef __CRT_UUID_DECL
    821 __CRT_UUID_DECL(IAudioChannelConfig, 0xbb11c46f, 0xec28, 0x493c, 0xb8,0x8a, 0x5d,0xb8,0x80,0x62,0xce,0x98)
    822 #endif
    823 #else
    824 typedef struct IAudioChannelConfigVtbl {
    825     BEGIN_INTERFACE
    826 
    827     /*** IUnknown methods ***/
    828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    829         IAudioChannelConfig* This,
    830         REFIID riid,
    831         void **ppvObject);
    832 
    833     ULONG (STDMETHODCALLTYPE *AddRef)(
    834         IAudioChannelConfig* This);
    835 
    836     ULONG (STDMETHODCALLTYPE *Release)(
    837         IAudioChannelConfig* This);
    838 
    839     /*** IAudioChannelConfig methods ***/
    840     HRESULT (STDMETHODCALLTYPE *SetChannelConfig)(
    841         IAudioChannelConfig* This,
    842         DWORD dwConfig,
    843         LPCGUID pguidEventContext);
    844 
    845     HRESULT (STDMETHODCALLTYPE *GetChannelConfig)(
    846         IAudioChannelConfig* This,
    847         DWORD dwConfig,
    848         DWORD *pdwConfig);
    849 
    850     END_INTERFACE
    851 } IAudioChannelConfigVtbl;
    852 interface IAudioChannelConfig {
    853     CONST_VTBL IAudioChannelConfigVtbl* lpVtbl;
    854 };
    855 
    856 #ifdef COBJMACROS
    857 #ifndef WIDL_C_INLINE_WRAPPERS
    858 /*** IUnknown methods ***/
    859 #define IAudioChannelConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    860 #define IAudioChannelConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
    861 #define IAudioChannelConfig_Release(This) (This)->lpVtbl->Release(This)
    862 /*** IAudioChannelConfig methods ***/
    863 #define IAudioChannelConfig_SetChannelConfig(This,dwConfig,pguidEventContext) (This)->lpVtbl->SetChannelConfig(This,dwConfig,pguidEventContext)
    864 #define IAudioChannelConfig_GetChannelConfig(This,dwConfig,pdwConfig) (This)->lpVtbl->GetChannelConfig(This,dwConfig,pdwConfig)
    865 #else
    866 /*** IUnknown methods ***/
    867 static FORCEINLINE HRESULT IAudioChannelConfig_QueryInterface(IAudioChannelConfig* This,REFIID riid,void **ppvObject) {
    868     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    869 }
    870 static FORCEINLINE ULONG IAudioChannelConfig_AddRef(IAudioChannelConfig* This) {
    871     return This->lpVtbl->AddRef(This);
    872 }
    873 static FORCEINLINE ULONG IAudioChannelConfig_Release(IAudioChannelConfig* This) {
    874     return This->lpVtbl->Release(This);
    875 }
    876 /*** IAudioChannelConfig methods ***/
    877 static FORCEINLINE HRESULT IAudioChannelConfig_SetChannelConfig(IAudioChannelConfig* This,DWORD dwConfig,LPCGUID pguidEventContext) {
    878     return This->lpVtbl->SetChannelConfig(This,dwConfig,pguidEventContext);
    879 }
    880 static FORCEINLINE HRESULT IAudioChannelConfig_GetChannelConfig(IAudioChannelConfig* This,DWORD dwConfig,DWORD *pdwConfig) {
    881     return This->lpVtbl->GetChannelConfig(This,dwConfig,pdwConfig);
    882 }
    883 #endif
    884 #endif
    885 
    886 #endif
    887 
    888 HRESULT STDMETHODCALLTYPE IAudioChannelConfig_SetChannelConfig_Proxy(
    889     IAudioChannelConfig* This,
    890     DWORD dwConfig,
    891     LPCGUID pguidEventContext);
    892 void __RPC_STUB IAudioChannelConfig_SetChannelConfig_Stub(
    893     IRpcStubBuffer* This,
    894     IRpcChannelBuffer* pRpcChannelBuffer,
    895     PRPC_MESSAGE pRpcMessage,
    896     DWORD* pdwStubPhase);
    897 HRESULT STDMETHODCALLTYPE IAudioChannelConfig_GetChannelConfig_Proxy(
    898     IAudioChannelConfig* This,
    899     DWORD dwConfig,
    900     DWORD *pdwConfig);
    901 void __RPC_STUB IAudioChannelConfig_GetChannelConfig_Stub(
    902     IRpcStubBuffer* This,
    903     IRpcChannelBuffer* pRpcChannelBuffer,
    904     PRPC_MESSAGE pRpcMessage,
    905     DWORD* pdwStubPhase);
    906 
    907 #endif  /* __IAudioChannelConfig_INTERFACE_DEFINED__ */
    908 
    909 /*****************************************************************************
    910  * IAudioLoudness interface
    911  */
    912 #ifndef __IAudioLoudness_INTERFACE_DEFINED__
    913 #define __IAudioLoudness_INTERFACE_DEFINED__
    914 
    915 DEFINE_GUID(IID_IAudioLoudness, 0x7d8b1437, 0xdd53, 0x4350, 0x9c,0x1b, 0x1e,0xe2,0x89,0x0b,0xf9,0x38);
    916 #if defined(__cplusplus) && !defined(CINTERFACE)
    917 MIDL_INTERFACE("7d8b1437-dd53-4350-9c1b-1ee2890bf938")
    918 IAudioLoudness : public IUnknown
    919 {
    920     virtual HRESULT STDMETHODCALLTYPE GetEnabled(
    921         WINBOOL *pbEnabled) = 0;
    922 
    923     virtual HRESULT STDMETHODCALLTYPE SetEnabled(
    924         WINBOOL bEnabled,
    925         LPCGUID pguidEventContext) = 0;
    926 
    927 };
    928 #ifdef __CRT_UUID_DECL
    929 __CRT_UUID_DECL(IAudioLoudness, 0x7d8b1437, 0xdd53, 0x4350, 0x9c,0x1b, 0x1e,0xe2,0x89,0x0b,0xf9,0x38)
    930 #endif
    931 #else
    932 typedef struct IAudioLoudnessVtbl {
    933     BEGIN_INTERFACE
    934 
    935     /*** IUnknown methods ***/
    936     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    937         IAudioLoudness* This,
    938         REFIID riid,
    939         void **ppvObject);
    940 
    941     ULONG (STDMETHODCALLTYPE *AddRef)(
    942         IAudioLoudness* This);
    943 
    944     ULONG (STDMETHODCALLTYPE *Release)(
    945         IAudioLoudness* This);
    946 
    947     /*** IAudioLoudness methods ***/
    948     HRESULT (STDMETHODCALLTYPE *GetEnabled)(
    949         IAudioLoudness* This,
    950         WINBOOL *pbEnabled);
    951 
    952     HRESULT (STDMETHODCALLTYPE *SetEnabled)(
    953         IAudioLoudness* This,
    954         WINBOOL bEnabled,
    955         LPCGUID pguidEventContext);
    956 
    957     END_INTERFACE
    958 } IAudioLoudnessVtbl;
    959 interface IAudioLoudness {
    960     CONST_VTBL IAudioLoudnessVtbl* lpVtbl;
    961 };
    962 
    963 #ifdef COBJMACROS
    964 #ifndef WIDL_C_INLINE_WRAPPERS
    965 /*** IUnknown methods ***/
    966 #define IAudioLoudness_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    967 #define IAudioLoudness_AddRef(This) (This)->lpVtbl->AddRef(This)
    968 #define IAudioLoudness_Release(This) (This)->lpVtbl->Release(This)
    969 /*** IAudioLoudness methods ***/
    970 #define IAudioLoudness_GetEnabled(This,pbEnabled) (This)->lpVtbl->GetEnabled(This,pbEnabled)
    971 #define IAudioLoudness_SetEnabled(This,bEnabled,pguidEventContext) (This)->lpVtbl->SetEnabled(This,bEnabled,pguidEventContext)
    972 #else
    973 /*** IUnknown methods ***/
    974 static FORCEINLINE HRESULT IAudioLoudness_QueryInterface(IAudioLoudness* This,REFIID riid,void **ppvObject) {
    975     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    976 }
    977 static FORCEINLINE ULONG IAudioLoudness_AddRef(IAudioLoudness* This) {
    978     return This->lpVtbl->AddRef(This);
    979 }
    980 static FORCEINLINE ULONG IAudioLoudness_Release(IAudioLoudness* This) {
    981     return This->lpVtbl->Release(This);
    982 }
    983 /*** IAudioLoudness methods ***/
    984 static FORCEINLINE HRESULT IAudioLoudness_GetEnabled(IAudioLoudness* This,WINBOOL *pbEnabled) {
    985     return This->lpVtbl->GetEnabled(This,pbEnabled);
    986 }
    987 static FORCEINLINE HRESULT IAudioLoudness_SetEnabled(IAudioLoudness* This,WINBOOL bEnabled,LPCGUID pguidEventContext) {
    988     return This->lpVtbl->SetEnabled(This,bEnabled,pguidEventContext);
    989 }
    990 #endif
    991 #endif
    992 
    993 #endif
    994 
    995 HRESULT STDMETHODCALLTYPE IAudioLoudness_GetEnabled_Proxy(
    996     IAudioLoudness* This,
    997     WINBOOL *pbEnabled);
    998 void __RPC_STUB IAudioLoudness_GetEnabled_Stub(
    999     IRpcStubBuffer* This,
   1000     IRpcChannelBuffer* pRpcChannelBuffer,
   1001     PRPC_MESSAGE pRpcMessage,
   1002     DWORD* pdwStubPhase);
   1003 HRESULT STDMETHODCALLTYPE IAudioLoudness_SetEnabled_Proxy(
   1004     IAudioLoudness* This,
   1005     WINBOOL bEnabled,
   1006     LPCGUID pguidEventContext);
   1007 void __RPC_STUB IAudioLoudness_SetEnabled_Stub(
   1008     IRpcStubBuffer* This,
   1009     IRpcChannelBuffer* pRpcChannelBuffer,
   1010     PRPC_MESSAGE pRpcMessage,
   1011     DWORD* pdwStubPhase);
   1012 
   1013 #endif  /* __IAudioLoudness_INTERFACE_DEFINED__ */
   1014 
   1015 /*****************************************************************************
   1016  * IAudioInputSelector interface
   1017  */
   1018 #ifndef __IAudioInputSelector_INTERFACE_DEFINED__
   1019 #define __IAudioInputSelector_INTERFACE_DEFINED__
   1020 
   1021 DEFINE_GUID(IID_IAudioInputSelector, 0x4f03dc02, 0x5e6e, 0x4653, 0x8f,0x72, 0xa0,0x30,0xc1,0x23,0xd5,0x98);
   1022 #if defined(__cplusplus) && !defined(CINTERFACE)
   1023 MIDL_INTERFACE("4f03dc02-5e6e-4653-8f72-a030c123d598")
   1024 IAudioInputSelector : public IUnknown
   1025 {
   1026     virtual HRESULT STDMETHODCALLTYPE GetSelection(
   1027         UINT *pnIdSelected) = 0;
   1028 
   1029     virtual HRESULT STDMETHODCALLTYPE SetSelection(
   1030         UINT nIdSelect,
   1031         LPCGUID pguidEventContext) = 0;
   1032 
   1033 };
   1034 #ifdef __CRT_UUID_DECL
   1035 __CRT_UUID_DECL(IAudioInputSelector, 0x4f03dc02, 0x5e6e, 0x4653, 0x8f,0x72, 0xa0,0x30,0xc1,0x23,0xd5,0x98)
   1036 #endif
   1037 #else
   1038 typedef struct IAudioInputSelectorVtbl {
   1039     BEGIN_INTERFACE
   1040 
   1041     /*** IUnknown methods ***/
   1042     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1043         IAudioInputSelector* This,
   1044         REFIID riid,
   1045         void **ppvObject);
   1046 
   1047     ULONG (STDMETHODCALLTYPE *AddRef)(
   1048         IAudioInputSelector* This);
   1049 
   1050     ULONG (STDMETHODCALLTYPE *Release)(
   1051         IAudioInputSelector* This);
   1052 
   1053     /*** IAudioInputSelector methods ***/
   1054     HRESULT (STDMETHODCALLTYPE *GetSelection)(
   1055         IAudioInputSelector* This,
   1056         UINT *pnIdSelected);
   1057 
   1058     HRESULT (STDMETHODCALLTYPE *SetSelection)(
   1059         IAudioInputSelector* This,
   1060         UINT nIdSelect,
   1061         LPCGUID pguidEventContext);
   1062 
   1063     END_INTERFACE
   1064 } IAudioInputSelectorVtbl;
   1065 interface IAudioInputSelector {
   1066     CONST_VTBL IAudioInputSelectorVtbl* lpVtbl;
   1067 };
   1068 
   1069 #ifdef COBJMACROS
   1070 #ifndef WIDL_C_INLINE_WRAPPERS
   1071 /*** IUnknown methods ***/
   1072 #define IAudioInputSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1073 #define IAudioInputSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
   1074 #define IAudioInputSelector_Release(This) (This)->lpVtbl->Release(This)
   1075 /*** IAudioInputSelector methods ***/
   1076 #define IAudioInputSelector_GetSelection(This,pnIdSelected) (This)->lpVtbl->GetSelection(This,pnIdSelected)
   1077 #define IAudioInputSelector_SetSelection(This,nIdSelect,pguidEventContext) (This)->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext)
   1078 #else
   1079 /*** IUnknown methods ***/
   1080 static FORCEINLINE HRESULT IAudioInputSelector_QueryInterface(IAudioInputSelector* This,REFIID riid,void **ppvObject) {
   1081     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1082 }
   1083 static FORCEINLINE ULONG IAudioInputSelector_AddRef(IAudioInputSelector* This) {
   1084     return This->lpVtbl->AddRef(This);
   1085 }
   1086 static FORCEINLINE ULONG IAudioInputSelector_Release(IAudioInputSelector* This) {
   1087     return This->lpVtbl->Release(This);
   1088 }
   1089 /*** IAudioInputSelector methods ***/
   1090 static FORCEINLINE HRESULT IAudioInputSelector_GetSelection(IAudioInputSelector* This,UINT *pnIdSelected) {
   1091     return This->lpVtbl->GetSelection(This,pnIdSelected);
   1092 }
   1093 static FORCEINLINE HRESULT IAudioInputSelector_SetSelection(IAudioInputSelector* This,UINT nIdSelect,LPCGUID pguidEventContext) {
   1094     return This->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext);
   1095 }
   1096 #endif
   1097 #endif
   1098 
   1099 #endif
   1100 
   1101 HRESULT STDMETHODCALLTYPE IAudioInputSelector_GetSelection_Proxy(
   1102     IAudioInputSelector* This,
   1103     UINT *pnIdSelected);
   1104 void __RPC_STUB IAudioInputSelector_GetSelection_Stub(
   1105     IRpcStubBuffer* This,
   1106     IRpcChannelBuffer* pRpcChannelBuffer,
   1107     PRPC_MESSAGE pRpcMessage,
   1108     DWORD* pdwStubPhase);
   1109 HRESULT STDMETHODCALLTYPE IAudioInputSelector_SetSelection_Proxy(
   1110     IAudioInputSelector* This,
   1111     UINT nIdSelect,
   1112     LPCGUID pguidEventContext);
   1113 void __RPC_STUB IAudioInputSelector_SetSelection_Stub(
   1114     IRpcStubBuffer* This,
   1115     IRpcChannelBuffer* pRpcChannelBuffer,
   1116     PRPC_MESSAGE pRpcMessage,
   1117     DWORD* pdwStubPhase);
   1118 
   1119 #endif  /* __IAudioInputSelector_INTERFACE_DEFINED__ */
   1120 
   1121 /*****************************************************************************
   1122  * IAudioOutputSelector interface
   1123  */
   1124 #ifndef __IAudioOutputSelector_INTERFACE_DEFINED__
   1125 #define __IAudioOutputSelector_INTERFACE_DEFINED__
   1126 
   1127 DEFINE_GUID(IID_IAudioOutputSelector, 0xbb515f69, 0x94a7, 0x429e, 0x8b,0x9c, 0x27,0x1b,0x3f,0x11,0xa3,0xab);
   1128 #if defined(__cplusplus) && !defined(CINTERFACE)
   1129 MIDL_INTERFACE("bb515f69-94a7-429e-8b9c-271b3f11a3ab")
   1130 IAudioOutputSelector : public IUnknown
   1131 {
   1132     virtual HRESULT STDMETHODCALLTYPE GetSelection(
   1133         UINT *pnIdSelected) = 0;
   1134 
   1135     virtual HRESULT STDMETHODCALLTYPE SetSelection(
   1136         UINT nIdSelect,
   1137         LPCGUID pguidEventContext) = 0;
   1138 
   1139 };
   1140 #ifdef __CRT_UUID_DECL
   1141 __CRT_UUID_DECL(IAudioOutputSelector, 0xbb515f69, 0x94a7, 0x429e, 0x8b,0x9c, 0x27,0x1b,0x3f,0x11,0xa3,0xab)
   1142 #endif
   1143 #else
   1144 typedef struct IAudioOutputSelectorVtbl {
   1145     BEGIN_INTERFACE
   1146 
   1147     /*** IUnknown methods ***/
   1148     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1149         IAudioOutputSelector* This,
   1150         REFIID riid,
   1151         void **ppvObject);
   1152 
   1153     ULONG (STDMETHODCALLTYPE *AddRef)(
   1154         IAudioOutputSelector* This);
   1155 
   1156     ULONG (STDMETHODCALLTYPE *Release)(
   1157         IAudioOutputSelector* This);
   1158 
   1159     /*** IAudioOutputSelector methods ***/
   1160     HRESULT (STDMETHODCALLTYPE *GetSelection)(
   1161         IAudioOutputSelector* This,
   1162         UINT *pnIdSelected);
   1163 
   1164     HRESULT (STDMETHODCALLTYPE *SetSelection)(
   1165         IAudioOutputSelector* This,
   1166         UINT nIdSelect,
   1167         LPCGUID pguidEventContext);
   1168 
   1169     END_INTERFACE
   1170 } IAudioOutputSelectorVtbl;
   1171 interface IAudioOutputSelector {
   1172     CONST_VTBL IAudioOutputSelectorVtbl* lpVtbl;
   1173 };
   1174 
   1175 #ifdef COBJMACROS
   1176 #ifndef WIDL_C_INLINE_WRAPPERS
   1177 /*** IUnknown methods ***/
   1178 #define IAudioOutputSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1179 #define IAudioOutputSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
   1180 #define IAudioOutputSelector_Release(This) (This)->lpVtbl->Release(This)
   1181 /*** IAudioOutputSelector methods ***/
   1182 #define IAudioOutputSelector_GetSelection(This,pnIdSelected) (This)->lpVtbl->GetSelection(This,pnIdSelected)
   1183 #define IAudioOutputSelector_SetSelection(This,nIdSelect,pguidEventContext) (This)->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext)
   1184 #else
   1185 /*** IUnknown methods ***/
   1186 static FORCEINLINE HRESULT IAudioOutputSelector_QueryInterface(IAudioOutputSelector* This,REFIID riid,void **ppvObject) {
   1187     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1188 }
   1189 static FORCEINLINE ULONG IAudioOutputSelector_AddRef(IAudioOutputSelector* This) {
   1190     return This->lpVtbl->AddRef(This);
   1191 }
   1192 static FORCEINLINE ULONG IAudioOutputSelector_Release(IAudioOutputSelector* This) {
   1193     return This->lpVtbl->Release(This);
   1194 }
   1195 /*** IAudioOutputSelector methods ***/
   1196 static FORCEINLINE HRESULT IAudioOutputSelector_GetSelection(IAudioOutputSelector* This,UINT *pnIdSelected) {
   1197     return This->lpVtbl->GetSelection(This,pnIdSelected);
   1198 }
   1199 static FORCEINLINE HRESULT IAudioOutputSelector_SetSelection(IAudioOutputSelector* This,UINT nIdSelect,LPCGUID pguidEventContext) {
   1200     return This->lpVtbl->SetSelection(This,nIdSelect,pguidEventContext);
   1201 }
   1202 #endif
   1203 #endif
   1204 
   1205 #endif
   1206 
   1207 HRESULT STDMETHODCALLTYPE IAudioOutputSelector_GetSelection_Proxy(
   1208     IAudioOutputSelector* This,
   1209     UINT *pnIdSelected);
   1210 void __RPC_STUB IAudioOutputSelector_GetSelection_Stub(
   1211     IRpcStubBuffer* This,
   1212     IRpcChannelBuffer* pRpcChannelBuffer,
   1213     PRPC_MESSAGE pRpcMessage,
   1214     DWORD* pdwStubPhase);
   1215 HRESULT STDMETHODCALLTYPE IAudioOutputSelector_SetSelection_Proxy(
   1216     IAudioOutputSelector* This,
   1217     UINT nIdSelect,
   1218     LPCGUID pguidEventContext);
   1219 void __RPC_STUB IAudioOutputSelector_SetSelection_Stub(
   1220     IRpcStubBuffer* This,
   1221     IRpcChannelBuffer* pRpcChannelBuffer,
   1222     PRPC_MESSAGE pRpcMessage,
   1223     DWORD* pdwStubPhase);
   1224 
   1225 #endif  /* __IAudioOutputSelector_INTERFACE_DEFINED__ */
   1226 
   1227 /*****************************************************************************
   1228  * IAudioMute interface
   1229  */
   1230 #ifndef __IAudioMute_INTERFACE_DEFINED__
   1231 #define __IAudioMute_INTERFACE_DEFINED__
   1232 
   1233 DEFINE_GUID(IID_IAudioMute, 0xdf45aeea, 0xb74a, 0x4b6b, 0xaf,0xad, 0x23,0x66,0xb6,0xaa,0x01,0x2e);
   1234 #if defined(__cplusplus) && !defined(CINTERFACE)
   1235 MIDL_INTERFACE("df45aeea-b74a-4b6b-afad-2366b6aa012e")
   1236 IAudioMute : public IUnknown
   1237 {
   1238     virtual HRESULT STDMETHODCALLTYPE SetMute(
   1239         WINBOOL bMute,
   1240         LPCGUID pguidEventContext) = 0;
   1241 
   1242     virtual HRESULT STDMETHODCALLTYPE GetMute(
   1243         WINBOOL *pbMute) = 0;
   1244 
   1245 };
   1246 #ifdef __CRT_UUID_DECL
   1247 __CRT_UUID_DECL(IAudioMute, 0xdf45aeea, 0xb74a, 0x4b6b, 0xaf,0xad, 0x23,0x66,0xb6,0xaa,0x01,0x2e)
   1248 #endif
   1249 #else
   1250 typedef struct IAudioMuteVtbl {
   1251     BEGIN_INTERFACE
   1252 
   1253     /*** IUnknown methods ***/
   1254     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1255         IAudioMute* This,
   1256         REFIID riid,
   1257         void **ppvObject);
   1258 
   1259     ULONG (STDMETHODCALLTYPE *AddRef)(
   1260         IAudioMute* This);
   1261 
   1262     ULONG (STDMETHODCALLTYPE *Release)(
   1263         IAudioMute* This);
   1264 
   1265     /*** IAudioMute methods ***/
   1266     HRESULT (STDMETHODCALLTYPE *SetMute)(
   1267         IAudioMute* This,
   1268         WINBOOL bMute,
   1269         LPCGUID pguidEventContext);
   1270 
   1271     HRESULT (STDMETHODCALLTYPE *GetMute)(
   1272         IAudioMute* This,
   1273         WINBOOL *pbMute);
   1274 
   1275     END_INTERFACE
   1276 } IAudioMuteVtbl;
   1277 interface IAudioMute {
   1278     CONST_VTBL IAudioMuteVtbl* lpVtbl;
   1279 };
   1280 
   1281 #ifdef COBJMACROS
   1282 #ifndef WIDL_C_INLINE_WRAPPERS
   1283 /*** IUnknown methods ***/
   1284 #define IAudioMute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1285 #define IAudioMute_AddRef(This) (This)->lpVtbl->AddRef(This)
   1286 #define IAudioMute_Release(This) (This)->lpVtbl->Release(This)
   1287 /*** IAudioMute methods ***/
   1288 #define IAudioMute_SetMute(This,bMute,pguidEventContext) (This)->lpVtbl->SetMute(This,bMute,pguidEventContext)
   1289 #define IAudioMute_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute)
   1290 #else
   1291 /*** IUnknown methods ***/
   1292 static FORCEINLINE HRESULT IAudioMute_QueryInterface(IAudioMute* This,REFIID riid,void **ppvObject) {
   1293     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1294 }
   1295 static FORCEINLINE ULONG IAudioMute_AddRef(IAudioMute* This) {
   1296     return This->lpVtbl->AddRef(This);
   1297 }
   1298 static FORCEINLINE ULONG IAudioMute_Release(IAudioMute* This) {
   1299     return This->lpVtbl->Release(This);
   1300 }
   1301 /*** IAudioMute methods ***/
   1302 static FORCEINLINE HRESULT IAudioMute_SetMute(IAudioMute* This,WINBOOL bMute,LPCGUID pguidEventContext) {
   1303     return This->lpVtbl->SetMute(This,bMute,pguidEventContext);
   1304 }
   1305 static FORCEINLINE HRESULT IAudioMute_GetMute(IAudioMute* This,WINBOOL *pbMute) {
   1306     return This->lpVtbl->GetMute(This,pbMute);
   1307 }
   1308 #endif
   1309 #endif
   1310 
   1311 #endif
   1312 
   1313 HRESULT STDMETHODCALLTYPE IAudioMute_SetMute_Proxy(
   1314     IAudioMute* This,
   1315     WINBOOL bMute,
   1316     LPCGUID pguidEventContext);
   1317 void __RPC_STUB IAudioMute_SetMute_Stub(
   1318     IRpcStubBuffer* This,
   1319     IRpcChannelBuffer* pRpcChannelBuffer,
   1320     PRPC_MESSAGE pRpcMessage,
   1321     DWORD* pdwStubPhase);
   1322 HRESULT STDMETHODCALLTYPE IAudioMute_GetMute_Proxy(
   1323     IAudioMute* This,
   1324     WINBOOL *pbMute);
   1325 void __RPC_STUB IAudioMute_GetMute_Stub(
   1326     IRpcStubBuffer* This,
   1327     IRpcChannelBuffer* pRpcChannelBuffer,
   1328     PRPC_MESSAGE pRpcMessage,
   1329     DWORD* pdwStubPhase);
   1330 
   1331 #endif  /* __IAudioMute_INTERFACE_DEFINED__ */
   1332 
   1333 /*****************************************************************************
   1334  * IAudioBass interface
   1335  */
   1336 #ifndef __IAudioBass_INTERFACE_DEFINED__
   1337 #define __IAudioBass_INTERFACE_DEFINED__
   1338 
   1339 DEFINE_GUID(IID_IAudioBass, 0xa2b1a1d9, 0x4db3, 0x425d, 0xa2,0xb2, 0xbd,0x33,0x5c,0xb3,0xe2,0xe5);
   1340 #if defined(__cplusplus) && !defined(CINTERFACE)
   1341 MIDL_INTERFACE("a2b1a1d9-4db3-425d-a2b2-bd335cb3e2e5")
   1342 IAudioBass : public IPerChannelDbLevel
   1343 {
   1344 };
   1345 #ifdef __CRT_UUID_DECL
   1346 __CRT_UUID_DECL(IAudioBass, 0xa2b1a1d9, 0x4db3, 0x425d, 0xa2,0xb2, 0xbd,0x33,0x5c,0xb3,0xe2,0xe5)
   1347 #endif
   1348 #else
   1349 typedef struct IAudioBassVtbl {
   1350     BEGIN_INTERFACE
   1351 
   1352     /*** IUnknown methods ***/
   1353     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1354         IAudioBass* This,
   1355         REFIID riid,
   1356         void **ppvObject);
   1357 
   1358     ULONG (STDMETHODCALLTYPE *AddRef)(
   1359         IAudioBass* This);
   1360 
   1361     ULONG (STDMETHODCALLTYPE *Release)(
   1362         IAudioBass* This);
   1363 
   1364     /*** IPerChannelDbLevel methods ***/
   1365     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   1366         IAudioBass* This,
   1367         UINT *pcChannels);
   1368 
   1369     HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
   1370         IAudioBass* This,
   1371         UINT nChannel,
   1372         float *pfMinLevelDB,
   1373         float *pfMaxLevelDB,
   1374         float *pfStepping);
   1375 
   1376     HRESULT (STDMETHODCALLTYPE *GetLevel)(
   1377         IAudioBass* This,
   1378         UINT nChannel,
   1379         float *pfLevelDB);
   1380 
   1381     HRESULT (STDMETHODCALLTYPE *SetLevel)(
   1382         IAudioBass* This,
   1383         UINT nChannel,
   1384         float fLevelDB,
   1385         LPCGUID pguidEventContext);
   1386 
   1387     HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
   1388         IAudioBass* This,
   1389         float fLevelDB,
   1390         LPCGUID pguidEventContext);
   1391 
   1392     HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
   1393         IAudioBass* This,
   1394         float *aLevelsDB,
   1395         ULONG cChannels,
   1396         LPCGUID pguidEventContext);
   1397 
   1398     END_INTERFACE
   1399 } IAudioBassVtbl;
   1400 interface IAudioBass {
   1401     CONST_VTBL IAudioBassVtbl* lpVtbl;
   1402 };
   1403 
   1404 #ifdef COBJMACROS
   1405 #ifndef WIDL_C_INLINE_WRAPPERS
   1406 /*** IUnknown methods ***/
   1407 #define IAudioBass_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1408 #define IAudioBass_AddRef(This) (This)->lpVtbl->AddRef(This)
   1409 #define IAudioBass_Release(This) (This)->lpVtbl->Release(This)
   1410 /*** IPerChannelDbLevel methods ***/
   1411 #define IAudioBass_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
   1412 #define IAudioBass_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
   1413 #define IAudioBass_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
   1414 #define IAudioBass_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
   1415 #define IAudioBass_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
   1416 #define IAudioBass_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
   1417 #else
   1418 /*** IUnknown methods ***/
   1419 static FORCEINLINE HRESULT IAudioBass_QueryInterface(IAudioBass* This,REFIID riid,void **ppvObject) {
   1420     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1421 }
   1422 static FORCEINLINE ULONG IAudioBass_AddRef(IAudioBass* This) {
   1423     return This->lpVtbl->AddRef(This);
   1424 }
   1425 static FORCEINLINE ULONG IAudioBass_Release(IAudioBass* This) {
   1426     return This->lpVtbl->Release(This);
   1427 }
   1428 /*** IPerChannelDbLevel methods ***/
   1429 static FORCEINLINE HRESULT IAudioBass_GetChannelCount(IAudioBass* This,UINT *pcChannels) {
   1430     return This->lpVtbl->GetChannelCount(This,pcChannels);
   1431 }
   1432 static FORCEINLINE HRESULT IAudioBass_GetLevelRange(IAudioBass* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
   1433     return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
   1434 }
   1435 static FORCEINLINE HRESULT IAudioBass_GetLevel(IAudioBass* This,UINT nChannel,float *pfLevelDB) {
   1436     return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
   1437 }
   1438 static FORCEINLINE HRESULT IAudioBass_SetLevel(IAudioBass* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
   1439     return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
   1440 }
   1441 static FORCEINLINE HRESULT IAudioBass_SetLevelUniform(IAudioBass* This,float fLevelDB,LPCGUID pguidEventContext) {
   1442     return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
   1443 }
   1444 static FORCEINLINE HRESULT IAudioBass_SetLevelAllChannels(IAudioBass* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
   1445     return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
   1446 }
   1447 #endif
   1448 #endif
   1449 
   1450 #endif
   1451 
   1452 
   1453 #endif  /* __IAudioBass_INTERFACE_DEFINED__ */
   1454 
   1455 /*****************************************************************************
   1456  * IAudioMidRange interface
   1457  */
   1458 #ifndef __IAudioMidRange_INTERFACE_DEFINED__
   1459 #define __IAudioMidRange_INTERFACE_DEFINED__
   1460 
   1461 DEFINE_GUID(IID_IAudioMidRange, 0x5e54b6d7, 0xb44b, 0x40d9, 0x9a,0x9e, 0xe6,0x91,0xd9,0xce,0x6e,0xdf);
   1462 #if defined(__cplusplus) && !defined(CINTERFACE)
   1463 MIDL_INTERFACE("5e54b6d7-b44b-40d9-9a9e-e691d9ce6edf")
   1464 IAudioMidRange : public IPerChannelDbLevel
   1465 {
   1466 };
   1467 #ifdef __CRT_UUID_DECL
   1468 __CRT_UUID_DECL(IAudioMidRange, 0x5e54b6d7, 0xb44b, 0x40d9, 0x9a,0x9e, 0xe6,0x91,0xd9,0xce,0x6e,0xdf)
   1469 #endif
   1470 #else
   1471 typedef struct IAudioMidRangeVtbl {
   1472     BEGIN_INTERFACE
   1473 
   1474     /*** IUnknown methods ***/
   1475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1476         IAudioMidRange* This,
   1477         REFIID riid,
   1478         void **ppvObject);
   1479 
   1480     ULONG (STDMETHODCALLTYPE *AddRef)(
   1481         IAudioMidRange* This);
   1482 
   1483     ULONG (STDMETHODCALLTYPE *Release)(
   1484         IAudioMidRange* This);
   1485 
   1486     /*** IPerChannelDbLevel methods ***/
   1487     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   1488         IAudioMidRange* This,
   1489         UINT *pcChannels);
   1490 
   1491     HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
   1492         IAudioMidRange* This,
   1493         UINT nChannel,
   1494         float *pfMinLevelDB,
   1495         float *pfMaxLevelDB,
   1496         float *pfStepping);
   1497 
   1498     HRESULT (STDMETHODCALLTYPE *GetLevel)(
   1499         IAudioMidRange* This,
   1500         UINT nChannel,
   1501         float *pfLevelDB);
   1502 
   1503     HRESULT (STDMETHODCALLTYPE *SetLevel)(
   1504         IAudioMidRange* This,
   1505         UINT nChannel,
   1506         float fLevelDB,
   1507         LPCGUID pguidEventContext);
   1508 
   1509     HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
   1510         IAudioMidRange* This,
   1511         float fLevelDB,
   1512         LPCGUID pguidEventContext);
   1513 
   1514     HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
   1515         IAudioMidRange* This,
   1516         float *aLevelsDB,
   1517         ULONG cChannels,
   1518         LPCGUID pguidEventContext);
   1519 
   1520     END_INTERFACE
   1521 } IAudioMidRangeVtbl;
   1522 interface IAudioMidRange {
   1523     CONST_VTBL IAudioMidRangeVtbl* lpVtbl;
   1524 };
   1525 
   1526 #ifdef COBJMACROS
   1527 #ifndef WIDL_C_INLINE_WRAPPERS
   1528 /*** IUnknown methods ***/
   1529 #define IAudioMidRange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1530 #define IAudioMidRange_AddRef(This) (This)->lpVtbl->AddRef(This)
   1531 #define IAudioMidRange_Release(This) (This)->lpVtbl->Release(This)
   1532 /*** IPerChannelDbLevel methods ***/
   1533 #define IAudioMidRange_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
   1534 #define IAudioMidRange_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
   1535 #define IAudioMidRange_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
   1536 #define IAudioMidRange_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
   1537 #define IAudioMidRange_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
   1538 #define IAudioMidRange_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
   1539 #else
   1540 /*** IUnknown methods ***/
   1541 static FORCEINLINE HRESULT IAudioMidRange_QueryInterface(IAudioMidRange* This,REFIID riid,void **ppvObject) {
   1542     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1543 }
   1544 static FORCEINLINE ULONG IAudioMidRange_AddRef(IAudioMidRange* This) {
   1545     return This->lpVtbl->AddRef(This);
   1546 }
   1547 static FORCEINLINE ULONG IAudioMidRange_Release(IAudioMidRange* This) {
   1548     return This->lpVtbl->Release(This);
   1549 }
   1550 /*** IPerChannelDbLevel methods ***/
   1551 static FORCEINLINE HRESULT IAudioMidRange_GetChannelCount(IAudioMidRange* This,UINT *pcChannels) {
   1552     return This->lpVtbl->GetChannelCount(This,pcChannels);
   1553 }
   1554 static FORCEINLINE HRESULT IAudioMidRange_GetLevelRange(IAudioMidRange* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
   1555     return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
   1556 }
   1557 static FORCEINLINE HRESULT IAudioMidRange_GetLevel(IAudioMidRange* This,UINT nChannel,float *pfLevelDB) {
   1558     return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
   1559 }
   1560 static FORCEINLINE HRESULT IAudioMidRange_SetLevel(IAudioMidRange* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
   1561     return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
   1562 }
   1563 static FORCEINLINE HRESULT IAudioMidRange_SetLevelUniform(IAudioMidRange* This,float fLevelDB,LPCGUID pguidEventContext) {
   1564     return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
   1565 }
   1566 static FORCEINLINE HRESULT IAudioMidRange_SetLevelAllChannels(IAudioMidRange* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
   1567     return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
   1568 }
   1569 #endif
   1570 #endif
   1571 
   1572 #endif
   1573 
   1574 
   1575 #endif  /* __IAudioMidRange_INTERFACE_DEFINED__ */
   1576 
   1577 /*****************************************************************************
   1578  * IAudioTreble interface
   1579  */
   1580 #ifndef __IAudioTreble_INTERFACE_DEFINED__
   1581 #define __IAudioTreble_INTERFACE_DEFINED__
   1582 
   1583 DEFINE_GUID(IID_IAudioTreble, 0x0a717812, 0x694e, 0x4907, 0xb7,0x4b, 0xba,0xfa,0x5c,0xfd,0xca,0x7b);
   1584 #if defined(__cplusplus) && !defined(CINTERFACE)
   1585 MIDL_INTERFACE("0a717812-694e-4907-b74b-bafa5cfdca7b")
   1586 IAudioTreble : public IPerChannelDbLevel
   1587 {
   1588 };
   1589 #ifdef __CRT_UUID_DECL
   1590 __CRT_UUID_DECL(IAudioTreble, 0x0a717812, 0x694e, 0x4907, 0xb7,0x4b, 0xba,0xfa,0x5c,0xfd,0xca,0x7b)
   1591 #endif
   1592 #else
   1593 typedef struct IAudioTrebleVtbl {
   1594     BEGIN_INTERFACE
   1595 
   1596     /*** IUnknown methods ***/
   1597     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1598         IAudioTreble* This,
   1599         REFIID riid,
   1600         void **ppvObject);
   1601 
   1602     ULONG (STDMETHODCALLTYPE *AddRef)(
   1603         IAudioTreble* This);
   1604 
   1605     ULONG (STDMETHODCALLTYPE *Release)(
   1606         IAudioTreble* This);
   1607 
   1608     /*** IPerChannelDbLevel methods ***/
   1609     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   1610         IAudioTreble* This,
   1611         UINT *pcChannels);
   1612 
   1613     HRESULT (STDMETHODCALLTYPE *GetLevelRange)(
   1614         IAudioTreble* This,
   1615         UINT nChannel,
   1616         float *pfMinLevelDB,
   1617         float *pfMaxLevelDB,
   1618         float *pfStepping);
   1619 
   1620     HRESULT (STDMETHODCALLTYPE *GetLevel)(
   1621         IAudioTreble* This,
   1622         UINT nChannel,
   1623         float *pfLevelDB);
   1624 
   1625     HRESULT (STDMETHODCALLTYPE *SetLevel)(
   1626         IAudioTreble* This,
   1627         UINT nChannel,
   1628         float fLevelDB,
   1629         LPCGUID pguidEventContext);
   1630 
   1631     HRESULT (STDMETHODCALLTYPE *SetLevelUniform)(
   1632         IAudioTreble* This,
   1633         float fLevelDB,
   1634         LPCGUID pguidEventContext);
   1635 
   1636     HRESULT (STDMETHODCALLTYPE *SetLevelAllChannels)(
   1637         IAudioTreble* This,
   1638         float *aLevelsDB,
   1639         ULONG cChannels,
   1640         LPCGUID pguidEventContext);
   1641 
   1642     END_INTERFACE
   1643 } IAudioTrebleVtbl;
   1644 interface IAudioTreble {
   1645     CONST_VTBL IAudioTrebleVtbl* lpVtbl;
   1646 };
   1647 
   1648 #ifdef COBJMACROS
   1649 #ifndef WIDL_C_INLINE_WRAPPERS
   1650 /*** IUnknown methods ***/
   1651 #define IAudioTreble_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1652 #define IAudioTreble_AddRef(This) (This)->lpVtbl->AddRef(This)
   1653 #define IAudioTreble_Release(This) (This)->lpVtbl->Release(This)
   1654 /*** IPerChannelDbLevel methods ***/
   1655 #define IAudioTreble_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
   1656 #define IAudioTreble_GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping) (This)->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping)
   1657 #define IAudioTreble_GetLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetLevel(This,nChannel,pfLevelDB)
   1658 #define IAudioTreble_SetLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext)
   1659 #define IAudioTreble_SetLevelUniform(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext)
   1660 #define IAudioTreble_SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext) (This)->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext)
   1661 #else
   1662 /*** IUnknown methods ***/
   1663 static FORCEINLINE HRESULT IAudioTreble_QueryInterface(IAudioTreble* This,REFIID riid,void **ppvObject) {
   1664     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1665 }
   1666 static FORCEINLINE ULONG IAudioTreble_AddRef(IAudioTreble* This) {
   1667     return This->lpVtbl->AddRef(This);
   1668 }
   1669 static FORCEINLINE ULONG IAudioTreble_Release(IAudioTreble* This) {
   1670     return This->lpVtbl->Release(This);
   1671 }
   1672 /*** IPerChannelDbLevel methods ***/
   1673 static FORCEINLINE HRESULT IAudioTreble_GetChannelCount(IAudioTreble* This,UINT *pcChannels) {
   1674     return This->lpVtbl->GetChannelCount(This,pcChannels);
   1675 }
   1676 static FORCEINLINE HRESULT IAudioTreble_GetLevelRange(IAudioTreble* This,UINT nChannel,float *pfMinLevelDB,float *pfMaxLevelDB,float *pfStepping) {
   1677     return This->lpVtbl->GetLevelRange(This,nChannel,pfMinLevelDB,pfMaxLevelDB,pfStepping);
   1678 }
   1679 static FORCEINLINE HRESULT IAudioTreble_GetLevel(IAudioTreble* This,UINT nChannel,float *pfLevelDB) {
   1680     return This->lpVtbl->GetLevel(This,nChannel,pfLevelDB);
   1681 }
   1682 static FORCEINLINE HRESULT IAudioTreble_SetLevel(IAudioTreble* This,UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) {
   1683     return This->lpVtbl->SetLevel(This,nChannel,fLevelDB,pguidEventContext);
   1684 }
   1685 static FORCEINLINE HRESULT IAudioTreble_SetLevelUniform(IAudioTreble* This,float fLevelDB,LPCGUID pguidEventContext) {
   1686     return This->lpVtbl->SetLevelUniform(This,fLevelDB,pguidEventContext);
   1687 }
   1688 static FORCEINLINE HRESULT IAudioTreble_SetLevelAllChannels(IAudioTreble* This,float *aLevelsDB,ULONG cChannels,LPCGUID pguidEventContext) {
   1689     return This->lpVtbl->SetLevelAllChannels(This,aLevelsDB,cChannels,pguidEventContext);
   1690 }
   1691 #endif
   1692 #endif
   1693 
   1694 #endif
   1695 
   1696 
   1697 #endif  /* __IAudioTreble_INTERFACE_DEFINED__ */
   1698 
   1699 /*****************************************************************************
   1700  * IAudioAutoGainControl interface
   1701  */
   1702 #ifndef __IAudioAutoGainControl_INTERFACE_DEFINED__
   1703 #define __IAudioAutoGainControl_INTERFACE_DEFINED__
   1704 
   1705 DEFINE_GUID(IID_IAudioAutoGainControl, 0x85401fd4, 0x6de4, 0x4b9d, 0x98,0x69, 0x2d,0x67,0x53,0xa8,0x2f,0x3c);
   1706 #if defined(__cplusplus) && !defined(CINTERFACE)
   1707 MIDL_INTERFACE("85401fd4-6de4-4b9d-9869-2d6753a82f3c")
   1708 IAudioAutoGainControl : public IUnknown
   1709 {
   1710     virtual HRESULT STDMETHODCALLTYPE GetEnabled(
   1711         WINBOOL bEnabled,
   1712         LPCGUID pguidEventContext) = 0;
   1713 
   1714     virtual HRESULT STDMETHODCALLTYPE GetMute(
   1715         WINBOOL *pbEnabled) = 0;
   1716 
   1717 };
   1718 #ifdef __CRT_UUID_DECL
   1719 __CRT_UUID_DECL(IAudioAutoGainControl, 0x85401fd4, 0x6de4, 0x4b9d, 0x98,0x69, 0x2d,0x67,0x53,0xa8,0x2f,0x3c)
   1720 #endif
   1721 #else
   1722 typedef struct IAudioAutoGainControlVtbl {
   1723     BEGIN_INTERFACE
   1724 
   1725     /*** IUnknown methods ***/
   1726     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1727         IAudioAutoGainControl* This,
   1728         REFIID riid,
   1729         void **ppvObject);
   1730 
   1731     ULONG (STDMETHODCALLTYPE *AddRef)(
   1732         IAudioAutoGainControl* This);
   1733 
   1734     ULONG (STDMETHODCALLTYPE *Release)(
   1735         IAudioAutoGainControl* This);
   1736 
   1737     /*** IAudioAutoGainControl methods ***/
   1738     HRESULT (STDMETHODCALLTYPE *GetEnabled)(
   1739         IAudioAutoGainControl* This,
   1740         WINBOOL bEnabled,
   1741         LPCGUID pguidEventContext);
   1742 
   1743     HRESULT (STDMETHODCALLTYPE *GetMute)(
   1744         IAudioAutoGainControl* This,
   1745         WINBOOL *pbEnabled);
   1746 
   1747     END_INTERFACE
   1748 } IAudioAutoGainControlVtbl;
   1749 interface IAudioAutoGainControl {
   1750     CONST_VTBL IAudioAutoGainControlVtbl* lpVtbl;
   1751 };
   1752 
   1753 #ifdef COBJMACROS
   1754 #ifndef WIDL_C_INLINE_WRAPPERS
   1755 /*** IUnknown methods ***/
   1756 #define IAudioAutoGainControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1757 #define IAudioAutoGainControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   1758 #define IAudioAutoGainControl_Release(This) (This)->lpVtbl->Release(This)
   1759 /*** IAudioAutoGainControl methods ***/
   1760 #define IAudioAutoGainControl_GetEnabled(This,bEnabled,pguidEventContext) (This)->lpVtbl->GetEnabled(This,bEnabled,pguidEventContext)
   1761 #define IAudioAutoGainControl_GetMute(This,pbEnabled) (This)->lpVtbl->GetMute(This,pbEnabled)
   1762 #else
   1763 /*** IUnknown methods ***/
   1764 static FORCEINLINE HRESULT IAudioAutoGainControl_QueryInterface(IAudioAutoGainControl* This,REFIID riid,void **ppvObject) {
   1765     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1766 }
   1767 static FORCEINLINE ULONG IAudioAutoGainControl_AddRef(IAudioAutoGainControl* This) {
   1768     return This->lpVtbl->AddRef(This);
   1769 }
   1770 static FORCEINLINE ULONG IAudioAutoGainControl_Release(IAudioAutoGainControl* This) {
   1771     return This->lpVtbl->Release(This);
   1772 }
   1773 /*** IAudioAutoGainControl methods ***/
   1774 static FORCEINLINE HRESULT IAudioAutoGainControl_GetEnabled(IAudioAutoGainControl* This,WINBOOL bEnabled,LPCGUID pguidEventContext) {
   1775     return This->lpVtbl->GetEnabled(This,bEnabled,pguidEventContext);
   1776 }
   1777 static FORCEINLINE HRESULT IAudioAutoGainControl_GetMute(IAudioAutoGainControl* This,WINBOOL *pbEnabled) {
   1778     return This->lpVtbl->GetMute(This,pbEnabled);
   1779 }
   1780 #endif
   1781 #endif
   1782 
   1783 #endif
   1784 
   1785 HRESULT STDMETHODCALLTYPE IAudioAutoGainControl_GetEnabled_Proxy(
   1786     IAudioAutoGainControl* This,
   1787     WINBOOL bEnabled,
   1788     LPCGUID pguidEventContext);
   1789 void __RPC_STUB IAudioAutoGainControl_GetEnabled_Stub(
   1790     IRpcStubBuffer* This,
   1791     IRpcChannelBuffer* pRpcChannelBuffer,
   1792     PRPC_MESSAGE pRpcMessage,
   1793     DWORD* pdwStubPhase);
   1794 HRESULT STDMETHODCALLTYPE IAudioAutoGainControl_GetMute_Proxy(
   1795     IAudioAutoGainControl* This,
   1796     WINBOOL *pbEnabled);
   1797 void __RPC_STUB IAudioAutoGainControl_GetMute_Stub(
   1798     IRpcStubBuffer* This,
   1799     IRpcChannelBuffer* pRpcChannelBuffer,
   1800     PRPC_MESSAGE pRpcMessage,
   1801     DWORD* pdwStubPhase);
   1802 
   1803 #endif  /* __IAudioAutoGainControl_INTERFACE_DEFINED__ */
   1804 
   1805 /*****************************************************************************
   1806  * IAudioPeakMeter interface
   1807  */
   1808 #ifndef __IAudioPeakMeter_INTERFACE_DEFINED__
   1809 #define __IAudioPeakMeter_INTERFACE_DEFINED__
   1810 
   1811 DEFINE_GUID(IID_IAudioPeakMeter, 0xdd79923c, 0x0599, 0x45e0, 0xb8,0xb6, 0xc8,0xdf,0x7d,0xb6,0xe7,0x96);
   1812 #if defined(__cplusplus) && !defined(CINTERFACE)
   1813 MIDL_INTERFACE("dd79923c-0599-45e0-b8b6-c8df7db6e796")
   1814 IAudioPeakMeter : public IUnknown
   1815 {
   1816     virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
   1817         UINT *pcChannels) = 0;
   1818 
   1819     virtual HRESULT STDMETHODCALLTYPE GetLevel(
   1820         UINT nChannel,
   1821         float *pfLevel) = 0;
   1822 
   1823 };
   1824 #ifdef __CRT_UUID_DECL
   1825 __CRT_UUID_DECL(IAudioPeakMeter, 0xdd79923c, 0x0599, 0x45e0, 0xb8,0xb6, 0xc8,0xdf,0x7d,0xb6,0xe7,0x96)
   1826 #endif
   1827 #else
   1828 typedef struct IAudioPeakMeterVtbl {
   1829     BEGIN_INTERFACE
   1830 
   1831     /*** IUnknown methods ***/
   1832     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1833         IAudioPeakMeter* This,
   1834         REFIID riid,
   1835         void **ppvObject);
   1836 
   1837     ULONG (STDMETHODCALLTYPE *AddRef)(
   1838         IAudioPeakMeter* This);
   1839 
   1840     ULONG (STDMETHODCALLTYPE *Release)(
   1841         IAudioPeakMeter* This);
   1842 
   1843     /*** IAudioPeakMeter methods ***/
   1844     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   1845         IAudioPeakMeter* This,
   1846         UINT *pcChannels);
   1847 
   1848     HRESULT (STDMETHODCALLTYPE *GetLevel)(
   1849         IAudioPeakMeter* This,
   1850         UINT nChannel,
   1851         float *pfLevel);
   1852 
   1853     END_INTERFACE
   1854 } IAudioPeakMeterVtbl;
   1855 interface IAudioPeakMeter {
   1856     CONST_VTBL IAudioPeakMeterVtbl* lpVtbl;
   1857 };
   1858 
   1859 #ifdef COBJMACROS
   1860 #ifndef WIDL_C_INLINE_WRAPPERS
   1861 /*** IUnknown methods ***/
   1862 #define IAudioPeakMeter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1863 #define IAudioPeakMeter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1864 #define IAudioPeakMeter_Release(This) (This)->lpVtbl->Release(This)
   1865 /*** IAudioPeakMeter methods ***/
   1866 #define IAudioPeakMeter_GetChannelCount(This,pcChannels) (This)->lpVtbl->GetChannelCount(This,pcChannels)
   1867 #define IAudioPeakMeter_GetLevel(This,nChannel,pfLevel) (This)->lpVtbl->GetLevel(This,nChannel,pfLevel)
   1868 #else
   1869 /*** IUnknown methods ***/
   1870 static FORCEINLINE HRESULT IAudioPeakMeter_QueryInterface(IAudioPeakMeter* This,REFIID riid,void **ppvObject) {
   1871     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1872 }
   1873 static FORCEINLINE ULONG IAudioPeakMeter_AddRef(IAudioPeakMeter* This) {
   1874     return This->lpVtbl->AddRef(This);
   1875 }
   1876 static FORCEINLINE ULONG IAudioPeakMeter_Release(IAudioPeakMeter* This) {
   1877     return This->lpVtbl->Release(This);
   1878 }
   1879 /*** IAudioPeakMeter methods ***/
   1880 static FORCEINLINE HRESULT IAudioPeakMeter_GetChannelCount(IAudioPeakMeter* This,UINT *pcChannels) {
   1881     return This->lpVtbl->GetChannelCount(This,pcChannels);
   1882 }
   1883 static FORCEINLINE HRESULT IAudioPeakMeter_GetLevel(IAudioPeakMeter* This,UINT nChannel,float *pfLevel) {
   1884     return This->lpVtbl->GetLevel(This,nChannel,pfLevel);
   1885 }
   1886 #endif
   1887 #endif
   1888 
   1889 #endif
   1890 
   1891 HRESULT STDMETHODCALLTYPE IAudioPeakMeter_GetChannelCount_Proxy(
   1892     IAudioPeakMeter* This,
   1893     UINT *pcChannels);
   1894 void __RPC_STUB IAudioPeakMeter_GetChannelCount_Stub(
   1895     IRpcStubBuffer* This,
   1896     IRpcChannelBuffer* pRpcChannelBuffer,
   1897     PRPC_MESSAGE pRpcMessage,
   1898     DWORD* pdwStubPhase);
   1899 HRESULT STDMETHODCALLTYPE IAudioPeakMeter_GetLevel_Proxy(
   1900     IAudioPeakMeter* This,
   1901     UINT nChannel,
   1902     float *pfLevel);
   1903 void __RPC_STUB IAudioPeakMeter_GetLevel_Stub(
   1904     IRpcStubBuffer* This,
   1905     IRpcChannelBuffer* pRpcChannelBuffer,
   1906     PRPC_MESSAGE pRpcMessage,
   1907     DWORD* pdwStubPhase);
   1908 
   1909 #endif  /* __IAudioPeakMeter_INTERFACE_DEFINED__ */
   1910 
   1911 /*****************************************************************************
   1912  * IDeviceSpecificProperty interface
   1913  */
   1914 #ifndef __IDeviceSpecificProperty_INTERFACE_DEFINED__
   1915 #define __IDeviceSpecificProperty_INTERFACE_DEFINED__
   1916 
   1917 DEFINE_GUID(IID_IDeviceSpecificProperty, 0x3b22bcbf, 0x2586, 0x4af0, 0x85,0x83, 0x20,0x5d,0x39,0x1b,0x80,0x7c);
   1918 #if defined(__cplusplus) && !defined(CINTERFACE)
   1919 MIDL_INTERFACE("3b22bcbf-2586-4af0-8583-205d391b807c")
   1920 IDeviceSpecificProperty : public IUnknown
   1921 {
   1922     virtual HRESULT STDMETHODCALLTYPE GetType(
   1923         VARTYPE *pVType) = 0;
   1924 
   1925     virtual HRESULT STDMETHODCALLTYPE GetValue(
   1926         VARTYPE *pvType,
   1927         DWORD *pcbValue) = 0;
   1928 
   1929     virtual HRESULT STDMETHODCALLTYPE SetValue(
   1930         void *pvValue,
   1931         DWORD cbValue,
   1932         LPCGUID pguidEventContext) = 0;
   1933 
   1934     virtual HRESULT STDMETHODCALLTYPE Get4BRange(
   1935         LONG *plMin,
   1936         LONG *plMax,
   1937         LONG *plStepping) = 0;
   1938 
   1939 };
   1940 #ifdef __CRT_UUID_DECL
   1941 __CRT_UUID_DECL(IDeviceSpecificProperty, 0x3b22bcbf, 0x2586, 0x4af0, 0x85,0x83, 0x20,0x5d,0x39,0x1b,0x80,0x7c)
   1942 #endif
   1943 #else
   1944 typedef struct IDeviceSpecificPropertyVtbl {
   1945     BEGIN_INTERFACE
   1946 
   1947     /*** IUnknown methods ***/
   1948     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1949         IDeviceSpecificProperty* This,
   1950         REFIID riid,
   1951         void **ppvObject);
   1952 
   1953     ULONG (STDMETHODCALLTYPE *AddRef)(
   1954         IDeviceSpecificProperty* This);
   1955 
   1956     ULONG (STDMETHODCALLTYPE *Release)(
   1957         IDeviceSpecificProperty* This);
   1958 
   1959     /*** IDeviceSpecificProperty methods ***/
   1960     HRESULT (STDMETHODCALLTYPE *GetType)(
   1961         IDeviceSpecificProperty* This,
   1962         VARTYPE *pVType);
   1963 
   1964     HRESULT (STDMETHODCALLTYPE *GetValue)(
   1965         IDeviceSpecificProperty* This,
   1966         VARTYPE *pvType,
   1967         DWORD *pcbValue);
   1968 
   1969     HRESULT (STDMETHODCALLTYPE *SetValue)(
   1970         IDeviceSpecificProperty* This,
   1971         void *pvValue,
   1972         DWORD cbValue,
   1973         LPCGUID pguidEventContext);
   1974 
   1975     HRESULT (STDMETHODCALLTYPE *Get4BRange)(
   1976         IDeviceSpecificProperty* This,
   1977         LONG *plMin,
   1978         LONG *plMax,
   1979         LONG *plStepping);
   1980 
   1981     END_INTERFACE
   1982 } IDeviceSpecificPropertyVtbl;
   1983 interface IDeviceSpecificProperty {
   1984     CONST_VTBL IDeviceSpecificPropertyVtbl* lpVtbl;
   1985 };
   1986 
   1987 #ifdef COBJMACROS
   1988 #ifndef WIDL_C_INLINE_WRAPPERS
   1989 /*** IUnknown methods ***/
   1990 #define IDeviceSpecificProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1991 #define IDeviceSpecificProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
   1992 #define IDeviceSpecificProperty_Release(This) (This)->lpVtbl->Release(This)
   1993 /*** IDeviceSpecificProperty methods ***/
   1994 #define IDeviceSpecificProperty_GetType(This,pVType) (This)->lpVtbl->GetType(This,pVType)
   1995 #define IDeviceSpecificProperty_GetValue(This,pvType,pcbValue) (This)->lpVtbl->GetValue(This,pvType,pcbValue)
   1996 #define IDeviceSpecificProperty_SetValue(This,pvValue,cbValue,pguidEventContext) (This)->lpVtbl->SetValue(This,pvValue,cbValue,pguidEventContext)
   1997 #define IDeviceSpecificProperty_Get4BRange(This,plMin,plMax,plStepping) (This)->lpVtbl->Get4BRange(This,plMin,plMax,plStepping)
   1998 #else
   1999 /*** IUnknown methods ***/
   2000 static FORCEINLINE HRESULT IDeviceSpecificProperty_QueryInterface(IDeviceSpecificProperty* This,REFIID riid,void **ppvObject) {
   2001     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2002 }
   2003 static FORCEINLINE ULONG IDeviceSpecificProperty_AddRef(IDeviceSpecificProperty* This) {
   2004     return This->lpVtbl->AddRef(This);
   2005 }
   2006 static FORCEINLINE ULONG IDeviceSpecificProperty_Release(IDeviceSpecificProperty* This) {
   2007     return This->lpVtbl->Release(This);
   2008 }
   2009 /*** IDeviceSpecificProperty methods ***/
   2010 static FORCEINLINE HRESULT IDeviceSpecificProperty_GetType(IDeviceSpecificProperty* This,VARTYPE *pVType) {
   2011     return This->lpVtbl->GetType(This,pVType);
   2012 }
   2013 static FORCEINLINE HRESULT IDeviceSpecificProperty_GetValue(IDeviceSpecificProperty* This,VARTYPE *pvType,DWORD *pcbValue) {
   2014     return This->lpVtbl->GetValue(This,pvType,pcbValue);
   2015 }
   2016 static FORCEINLINE HRESULT IDeviceSpecificProperty_SetValue(IDeviceSpecificProperty* This,void *pvValue,DWORD cbValue,LPCGUID pguidEventContext) {
   2017     return This->lpVtbl->SetValue(This,pvValue,cbValue,pguidEventContext);
   2018 }
   2019 static FORCEINLINE HRESULT IDeviceSpecificProperty_Get4BRange(IDeviceSpecificProperty* This,LONG *plMin,LONG *plMax,LONG *plStepping) {
   2020     return This->lpVtbl->Get4BRange(This,plMin,plMax,plStepping);
   2021 }
   2022 #endif
   2023 #endif
   2024 
   2025 #endif
   2026 
   2027 HRESULT STDMETHODCALLTYPE IDeviceSpecificProperty_GetType_Proxy(
   2028     IDeviceSpecificProperty* This,
   2029     VARTYPE *pVType);
   2030 void __RPC_STUB IDeviceSpecificProperty_GetType_Stub(
   2031     IRpcStubBuffer* This,
   2032     IRpcChannelBuffer* pRpcChannelBuffer,
   2033     PRPC_MESSAGE pRpcMessage,
   2034     DWORD* pdwStubPhase);
   2035 HRESULT STDMETHODCALLTYPE IDeviceSpecificProperty_GetValue_Proxy(
   2036     IDeviceSpecificProperty* This,
   2037     VARTYPE *pvType,
   2038     DWORD *pcbValue);
   2039 void __RPC_STUB IDeviceSpecificProperty_GetValue_Stub(
   2040     IRpcStubBuffer* This,
   2041     IRpcChannelBuffer* pRpcChannelBuffer,
   2042     PRPC_MESSAGE pRpcMessage,
   2043     DWORD* pdwStubPhase);
   2044 HRESULT STDMETHODCALLTYPE IDeviceSpecificProperty_SetValue_Proxy(
   2045     IDeviceSpecificProperty* This,
   2046     void *pvValue,
   2047     DWORD cbValue,
   2048     LPCGUID pguidEventContext);
   2049 void __RPC_STUB IDeviceSpecificProperty_SetValue_Stub(
   2050     IRpcStubBuffer* This,
   2051     IRpcChannelBuffer* pRpcChannelBuffer,
   2052     PRPC_MESSAGE pRpcMessage,
   2053     DWORD* pdwStubPhase);
   2054 HRESULT STDMETHODCALLTYPE IDeviceSpecificProperty_Get4BRange_Proxy(
   2055     IDeviceSpecificProperty* This,
   2056     LONG *plMin,
   2057     LONG *plMax,
   2058     LONG *plStepping);
   2059 void __RPC_STUB IDeviceSpecificProperty_Get4BRange_Stub(
   2060     IRpcStubBuffer* This,
   2061     IRpcChannelBuffer* pRpcChannelBuffer,
   2062     PRPC_MESSAGE pRpcMessage,
   2063     DWORD* pdwStubPhase);
   2064 
   2065 #endif  /* __IDeviceSpecificProperty_INTERFACE_DEFINED__ */
   2066 
   2067 /*****************************************************************************
   2068  * IKsFormatSupport interface
   2069  */
   2070 #ifndef __IKsFormatSupport_INTERFACE_DEFINED__
   2071 #define __IKsFormatSupport_INTERFACE_DEFINED__
   2072 
   2073 DEFINE_GUID(IID_IKsFormatSupport, 0x3cb4a69d, 0xbb6f, 0x4d2b, 0x95,0xb7, 0x45,0x2d,0x2c,0x15,0x5d,0xb5);
   2074 #if defined(__cplusplus) && !defined(CINTERFACE)
   2075 MIDL_INTERFACE("3cb4a69d-bb6f-4d2b-95b7-452d2c155db5")
   2076 IKsFormatSupport : public IUnknown
   2077 {
   2078     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
   2079         PKSDATAFORMAT pKsFormat,
   2080         DWORD cbFormat,
   2081         WINBOOL *pbSupported) = 0;
   2082 
   2083     virtual HRESULT STDMETHODCALLTYPE GetDevicePreferredFormat(
   2084         PKSDATAFORMAT *ppKsFormat) = 0;
   2085 
   2086 };
   2087 #ifdef __CRT_UUID_DECL
   2088 __CRT_UUID_DECL(IKsFormatSupport, 0x3cb4a69d, 0xbb6f, 0x4d2b, 0x95,0xb7, 0x45,0x2d,0x2c,0x15,0x5d,0xb5)
   2089 #endif
   2090 #else
   2091 typedef struct IKsFormatSupportVtbl {
   2092     BEGIN_INTERFACE
   2093 
   2094     /*** IUnknown methods ***/
   2095     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2096         IKsFormatSupport* This,
   2097         REFIID riid,
   2098         void **ppvObject);
   2099 
   2100     ULONG (STDMETHODCALLTYPE *AddRef)(
   2101         IKsFormatSupport* This);
   2102 
   2103     ULONG (STDMETHODCALLTYPE *Release)(
   2104         IKsFormatSupport* This);
   2105 
   2106     /*** IKsFormatSupport methods ***/
   2107     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
   2108         IKsFormatSupport* This,
   2109         PKSDATAFORMAT pKsFormat,
   2110         DWORD cbFormat,
   2111         WINBOOL *pbSupported);
   2112 
   2113     HRESULT (STDMETHODCALLTYPE *GetDevicePreferredFormat)(
   2114         IKsFormatSupport* This,
   2115         PKSDATAFORMAT *ppKsFormat);
   2116 
   2117     END_INTERFACE
   2118 } IKsFormatSupportVtbl;
   2119 interface IKsFormatSupport {
   2120     CONST_VTBL IKsFormatSupportVtbl* lpVtbl;
   2121 };
   2122 
   2123 #ifdef COBJMACROS
   2124 #ifndef WIDL_C_INLINE_WRAPPERS
   2125 /*** IUnknown methods ***/
   2126 #define IKsFormatSupport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2127 #define IKsFormatSupport_AddRef(This) (This)->lpVtbl->AddRef(This)
   2128 #define IKsFormatSupport_Release(This) (This)->lpVtbl->Release(This)
   2129 /*** IKsFormatSupport methods ***/
   2130 #define IKsFormatSupport_IsFormatSupported(This,pKsFormat,cbFormat,pbSupported) (This)->lpVtbl->IsFormatSupported(This,pKsFormat,cbFormat,pbSupported)
   2131 #define IKsFormatSupport_GetDevicePreferredFormat(This,ppKsFormat) (This)->lpVtbl->GetDevicePreferredFormat(This,ppKsFormat)
   2132 #else
   2133 /*** IUnknown methods ***/
   2134 static FORCEINLINE HRESULT IKsFormatSupport_QueryInterface(IKsFormatSupport* This,REFIID riid,void **ppvObject) {
   2135     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2136 }
   2137 static FORCEINLINE ULONG IKsFormatSupport_AddRef(IKsFormatSupport* This) {
   2138     return This->lpVtbl->AddRef(This);
   2139 }
   2140 static FORCEINLINE ULONG IKsFormatSupport_Release(IKsFormatSupport* This) {
   2141     return This->lpVtbl->Release(This);
   2142 }
   2143 /*** IKsFormatSupport methods ***/
   2144 static FORCEINLINE HRESULT IKsFormatSupport_IsFormatSupported(IKsFormatSupport* This,PKSDATAFORMAT pKsFormat,DWORD cbFormat,WINBOOL *pbSupported) {
   2145     return This->lpVtbl->IsFormatSupported(This,pKsFormat,cbFormat,pbSupported);
   2146 }
   2147 static FORCEINLINE HRESULT IKsFormatSupport_GetDevicePreferredFormat(IKsFormatSupport* This,PKSDATAFORMAT *ppKsFormat) {
   2148     return This->lpVtbl->GetDevicePreferredFormat(This,ppKsFormat);
   2149 }
   2150 #endif
   2151 #endif
   2152 
   2153 #endif
   2154 
   2155 HRESULT STDMETHODCALLTYPE IKsFormatSupport_IsFormatSupported_Proxy(
   2156     IKsFormatSupport* This,
   2157     PKSDATAFORMAT pKsFormat,
   2158     DWORD cbFormat,
   2159     WINBOOL *pbSupported);
   2160 void __RPC_STUB IKsFormatSupport_IsFormatSupported_Stub(
   2161     IRpcStubBuffer* This,
   2162     IRpcChannelBuffer* pRpcChannelBuffer,
   2163     PRPC_MESSAGE pRpcMessage,
   2164     DWORD* pdwStubPhase);
   2165 HRESULT STDMETHODCALLTYPE IKsFormatSupport_GetDevicePreferredFormat_Proxy(
   2166     IKsFormatSupport* This,
   2167     PKSDATAFORMAT *ppKsFormat);
   2168 void __RPC_STUB IKsFormatSupport_GetDevicePreferredFormat_Stub(
   2169     IRpcStubBuffer* This,
   2170     IRpcChannelBuffer* pRpcChannelBuffer,
   2171     PRPC_MESSAGE pRpcMessage,
   2172     DWORD* pdwStubPhase);
   2173 
   2174 #endif  /* __IKsFormatSupport_INTERFACE_DEFINED__ */
   2175 
   2176 /*****************************************************************************
   2177  * IKsJackDescription interface
   2178  */
   2179 #ifndef __IKsJackDescription_INTERFACE_DEFINED__
   2180 #define __IKsJackDescription_INTERFACE_DEFINED__
   2181 
   2182 DEFINE_GUID(IID_IKsJackDescription, 0x4509f757, 0x2d46, 0x4637, 0x8e,0x62, 0xce,0x7d,0xb9,0x44,0xf5,0x7b);
   2183 #if defined(__cplusplus) && !defined(CINTERFACE)
   2184 MIDL_INTERFACE("4509f757-2d46-4637-8e62-ce7db944f57b")
   2185 IKsJackDescription : public IUnknown
   2186 {
   2187     virtual HRESULT STDMETHODCALLTYPE GetJackCount(
   2188         UINT *pcJacks) = 0;
   2189 
   2190     virtual HRESULT STDMETHODCALLTYPE GetJackDescription(
   2191         UINT nJack,
   2192         KSJACK_DESCRIPTION *pDescription) = 0;
   2193 
   2194 };
   2195 #ifdef __CRT_UUID_DECL
   2196 __CRT_UUID_DECL(IKsJackDescription, 0x4509f757, 0x2d46, 0x4637, 0x8e,0x62, 0xce,0x7d,0xb9,0x44,0xf5,0x7b)
   2197 #endif
   2198 #else
   2199 typedef struct IKsJackDescriptionVtbl {
   2200     BEGIN_INTERFACE
   2201 
   2202     /*** IUnknown methods ***/
   2203     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2204         IKsJackDescription* This,
   2205         REFIID riid,
   2206         void **ppvObject);
   2207 
   2208     ULONG (STDMETHODCALLTYPE *AddRef)(
   2209         IKsJackDescription* This);
   2210 
   2211     ULONG (STDMETHODCALLTYPE *Release)(
   2212         IKsJackDescription* This);
   2213 
   2214     /*** IKsJackDescription methods ***/
   2215     HRESULT (STDMETHODCALLTYPE *GetJackCount)(
   2216         IKsJackDescription* This,
   2217         UINT *pcJacks);
   2218 
   2219     HRESULT (STDMETHODCALLTYPE *GetJackDescription)(
   2220         IKsJackDescription* This,
   2221         UINT nJack,
   2222         KSJACK_DESCRIPTION *pDescription);
   2223 
   2224     END_INTERFACE
   2225 } IKsJackDescriptionVtbl;
   2226 interface IKsJackDescription {
   2227     CONST_VTBL IKsJackDescriptionVtbl* lpVtbl;
   2228 };
   2229 
   2230 #ifdef COBJMACROS
   2231 #ifndef WIDL_C_INLINE_WRAPPERS
   2232 /*** IUnknown methods ***/
   2233 #define IKsJackDescription_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2234 #define IKsJackDescription_AddRef(This) (This)->lpVtbl->AddRef(This)
   2235 #define IKsJackDescription_Release(This) (This)->lpVtbl->Release(This)
   2236 /*** IKsJackDescription methods ***/
   2237 #define IKsJackDescription_GetJackCount(This,pcJacks) (This)->lpVtbl->GetJackCount(This,pcJacks)
   2238 #define IKsJackDescription_GetJackDescription(This,nJack,pDescription) (This)->lpVtbl->GetJackDescription(This,nJack,pDescription)
   2239 #else
   2240 /*** IUnknown methods ***/
   2241 static FORCEINLINE HRESULT IKsJackDescription_QueryInterface(IKsJackDescription* This,REFIID riid,void **ppvObject) {
   2242     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2243 }
   2244 static FORCEINLINE ULONG IKsJackDescription_AddRef(IKsJackDescription* This) {
   2245     return This->lpVtbl->AddRef(This);
   2246 }
   2247 static FORCEINLINE ULONG IKsJackDescription_Release(IKsJackDescription* This) {
   2248     return This->lpVtbl->Release(This);
   2249 }
   2250 /*** IKsJackDescription methods ***/
   2251 static FORCEINLINE HRESULT IKsJackDescription_GetJackCount(IKsJackDescription* This,UINT *pcJacks) {
   2252     return This->lpVtbl->GetJackCount(This,pcJacks);
   2253 }
   2254 static FORCEINLINE HRESULT IKsJackDescription_GetJackDescription(IKsJackDescription* This,UINT nJack,KSJACK_DESCRIPTION *pDescription) {
   2255     return This->lpVtbl->GetJackDescription(This,nJack,pDescription);
   2256 }
   2257 #endif
   2258 #endif
   2259 
   2260 #endif
   2261 
   2262 HRESULT STDMETHODCALLTYPE IKsJackDescription_GetJackCount_Proxy(
   2263     IKsJackDescription* This,
   2264     UINT *pcJacks);
   2265 void __RPC_STUB IKsJackDescription_GetJackCount_Stub(
   2266     IRpcStubBuffer* This,
   2267     IRpcChannelBuffer* pRpcChannelBuffer,
   2268     PRPC_MESSAGE pRpcMessage,
   2269     DWORD* pdwStubPhase);
   2270 HRESULT STDMETHODCALLTYPE IKsJackDescription_GetJackDescription_Proxy(
   2271     IKsJackDescription* This,
   2272     UINT nJack,
   2273     KSJACK_DESCRIPTION *pDescription);
   2274 void __RPC_STUB IKsJackDescription_GetJackDescription_Stub(
   2275     IRpcStubBuffer* This,
   2276     IRpcChannelBuffer* pRpcChannelBuffer,
   2277     PRPC_MESSAGE pRpcMessage,
   2278     DWORD* pdwStubPhase);
   2279 
   2280 #endif  /* __IKsJackDescription_INTERFACE_DEFINED__ */
   2281 
   2282 /*****************************************************************************
   2283  * IKsJackDescription2 interface
   2284  */
   2285 #ifndef __IKsJackDescription2_INTERFACE_DEFINED__
   2286 #define __IKsJackDescription2_INTERFACE_DEFINED__
   2287 
   2288 DEFINE_GUID(IID_IKsJackDescription2, 0x478f3a9b, 0xe0c9, 0x4827, 0x92,0x28, 0x6f,0x55,0x05,0xff,0xe7,0x6a);
   2289 #if defined(__cplusplus) && !defined(CINTERFACE)
   2290 MIDL_INTERFACE("478f3a9b-e0c9-4827-9228-6f5505ffe76a")
   2291 IKsJackDescription2 : public IUnknown
   2292 {
   2293     virtual HRESULT STDMETHODCALLTYPE GetJackCount(
   2294         UINT *pcJacks) = 0;
   2295 
   2296     virtual HRESULT STDMETHODCALLTYPE GetJackDescription2(
   2297         UINT nJack,
   2298         KSJACK_DESCRIPTION2 *pDescription2) = 0;
   2299 
   2300 };
   2301 #ifdef __CRT_UUID_DECL
   2302 __CRT_UUID_DECL(IKsJackDescription2, 0x478f3a9b, 0xe0c9, 0x4827, 0x92,0x28, 0x6f,0x55,0x05,0xff,0xe7,0x6a)
   2303 #endif
   2304 #else
   2305 typedef struct IKsJackDescription2Vtbl {
   2306     BEGIN_INTERFACE
   2307 
   2308     /*** IUnknown methods ***/
   2309     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2310         IKsJackDescription2* This,
   2311         REFIID riid,
   2312         void **ppvObject);
   2313 
   2314     ULONG (STDMETHODCALLTYPE *AddRef)(
   2315         IKsJackDescription2* This);
   2316 
   2317     ULONG (STDMETHODCALLTYPE *Release)(
   2318         IKsJackDescription2* This);
   2319 
   2320     /*** IKsJackDescription2 methods ***/
   2321     HRESULT (STDMETHODCALLTYPE *GetJackCount)(
   2322         IKsJackDescription2* This,
   2323         UINT *pcJacks);
   2324 
   2325     HRESULT (STDMETHODCALLTYPE *GetJackDescription2)(
   2326         IKsJackDescription2* This,
   2327         UINT nJack,
   2328         KSJACK_DESCRIPTION2 *pDescription2);
   2329 
   2330     END_INTERFACE
   2331 } IKsJackDescription2Vtbl;
   2332 interface IKsJackDescription2 {
   2333     CONST_VTBL IKsJackDescription2Vtbl* lpVtbl;
   2334 };
   2335 
   2336 #ifdef COBJMACROS
   2337 #ifndef WIDL_C_INLINE_WRAPPERS
   2338 /*** IUnknown methods ***/
   2339 #define IKsJackDescription2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2340 #define IKsJackDescription2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2341 #define IKsJackDescription2_Release(This) (This)->lpVtbl->Release(This)
   2342 /*** IKsJackDescription2 methods ***/
   2343 #define IKsJackDescription2_GetJackCount(This,pcJacks) (This)->lpVtbl->GetJackCount(This,pcJacks)
   2344 #define IKsJackDescription2_GetJackDescription2(This,nJack,pDescription2) (This)->lpVtbl->GetJackDescription2(This,nJack,pDescription2)
   2345 #else
   2346 /*** IUnknown methods ***/
   2347 static FORCEINLINE HRESULT IKsJackDescription2_QueryInterface(IKsJackDescription2* This,REFIID riid,void **ppvObject) {
   2348     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2349 }
   2350 static FORCEINLINE ULONG IKsJackDescription2_AddRef(IKsJackDescription2* This) {
   2351     return This->lpVtbl->AddRef(This);
   2352 }
   2353 static FORCEINLINE ULONG IKsJackDescription2_Release(IKsJackDescription2* This) {
   2354     return This->lpVtbl->Release(This);
   2355 }
   2356 /*** IKsJackDescription2 methods ***/
   2357 static FORCEINLINE HRESULT IKsJackDescription2_GetJackCount(IKsJackDescription2* This,UINT *pcJacks) {
   2358     return This->lpVtbl->GetJackCount(This,pcJacks);
   2359 }
   2360 static FORCEINLINE HRESULT IKsJackDescription2_GetJackDescription2(IKsJackDescription2* This,UINT nJack,KSJACK_DESCRIPTION2 *pDescription2) {
   2361     return This->lpVtbl->GetJackDescription2(This,nJack,pDescription2);
   2362 }
   2363 #endif
   2364 #endif
   2365 
   2366 #endif
   2367 
   2368 HRESULT STDMETHODCALLTYPE IKsJackDescription2_GetJackCount_Proxy(
   2369     IKsJackDescription2* This,
   2370     UINT *pcJacks);
   2371 void __RPC_STUB IKsJackDescription2_GetJackCount_Stub(
   2372     IRpcStubBuffer* This,
   2373     IRpcChannelBuffer* pRpcChannelBuffer,
   2374     PRPC_MESSAGE pRpcMessage,
   2375     DWORD* pdwStubPhase);
   2376 HRESULT STDMETHODCALLTYPE IKsJackDescription2_GetJackDescription2_Proxy(
   2377     IKsJackDescription2* This,
   2378     UINT nJack,
   2379     KSJACK_DESCRIPTION2 *pDescription2);
   2380 void __RPC_STUB IKsJackDescription2_GetJackDescription2_Stub(
   2381     IRpcStubBuffer* This,
   2382     IRpcChannelBuffer* pRpcChannelBuffer,
   2383     PRPC_MESSAGE pRpcMessage,
   2384     DWORD* pdwStubPhase);
   2385 
   2386 #endif  /* __IKsJackDescription2_INTERFACE_DEFINED__ */
   2387 
   2388 /*****************************************************************************
   2389  * IKsJackSinkInformation interface
   2390  */
   2391 #ifndef __IKsJackSinkInformation_INTERFACE_DEFINED__
   2392 #define __IKsJackSinkInformation_INTERFACE_DEFINED__
   2393 
   2394 DEFINE_GUID(IID_IKsJackSinkInformation, 0xd9bd72ed, 0x290f, 0x4581, 0x9f,0xf3, 0x61,0x02,0x7a,0x8f,0xe5,0x32);
   2395 #if defined(__cplusplus) && !defined(CINTERFACE)
   2396 MIDL_INTERFACE("d9bd72ed-290f-4581-9ff3-61027a8fe532")
   2397 IKsJackSinkInformation : public IUnknown
   2398 {
   2399     virtual HRESULT STDMETHODCALLTYPE GetJackSinkInformation(
   2400         KSJACK_SINK_INFORMATION *pJackSinkInformation) = 0;
   2401 
   2402 };
   2403 #ifdef __CRT_UUID_DECL
   2404 __CRT_UUID_DECL(IKsJackSinkInformation, 0xd9bd72ed, 0x290f, 0x4581, 0x9f,0xf3, 0x61,0x02,0x7a,0x8f,0xe5,0x32)
   2405 #endif
   2406 #else
   2407 typedef struct IKsJackSinkInformationVtbl {
   2408     BEGIN_INTERFACE
   2409 
   2410     /*** IUnknown methods ***/
   2411     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2412         IKsJackSinkInformation* This,
   2413         REFIID riid,
   2414         void **ppvObject);
   2415 
   2416     ULONG (STDMETHODCALLTYPE *AddRef)(
   2417         IKsJackSinkInformation* This);
   2418 
   2419     ULONG (STDMETHODCALLTYPE *Release)(
   2420         IKsJackSinkInformation* This);
   2421 
   2422     /*** IKsJackSinkInformation methods ***/
   2423     HRESULT (STDMETHODCALLTYPE *GetJackSinkInformation)(
   2424         IKsJackSinkInformation* This,
   2425         KSJACK_SINK_INFORMATION *pJackSinkInformation);
   2426 
   2427     END_INTERFACE
   2428 } IKsJackSinkInformationVtbl;
   2429 interface IKsJackSinkInformation {
   2430     CONST_VTBL IKsJackSinkInformationVtbl* lpVtbl;
   2431 };
   2432 
   2433 #ifdef COBJMACROS
   2434 #ifndef WIDL_C_INLINE_WRAPPERS
   2435 /*** IUnknown methods ***/
   2436 #define IKsJackSinkInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2437 #define IKsJackSinkInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
   2438 #define IKsJackSinkInformation_Release(This) (This)->lpVtbl->Release(This)
   2439 /*** IKsJackSinkInformation methods ***/
   2440 #define IKsJackSinkInformation_GetJackSinkInformation(This,pJackSinkInformation) (This)->lpVtbl->GetJackSinkInformation(This,pJackSinkInformation)
   2441 #else
   2442 /*** IUnknown methods ***/
   2443 static FORCEINLINE HRESULT IKsJackSinkInformation_QueryInterface(IKsJackSinkInformation* This,REFIID riid,void **ppvObject) {
   2444     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2445 }
   2446 static FORCEINLINE ULONG IKsJackSinkInformation_AddRef(IKsJackSinkInformation* This) {
   2447     return This->lpVtbl->AddRef(This);
   2448 }
   2449 static FORCEINLINE ULONG IKsJackSinkInformation_Release(IKsJackSinkInformation* This) {
   2450     return This->lpVtbl->Release(This);
   2451 }
   2452 /*** IKsJackSinkInformation methods ***/
   2453 static FORCEINLINE HRESULT IKsJackSinkInformation_GetJackSinkInformation(IKsJackSinkInformation* This,KSJACK_SINK_INFORMATION *pJackSinkInformation) {
   2454     return This->lpVtbl->GetJackSinkInformation(This,pJackSinkInformation);
   2455 }
   2456 #endif
   2457 #endif
   2458 
   2459 #endif
   2460 
   2461 HRESULT STDMETHODCALLTYPE IKsJackSinkInformation_GetJackSinkInformation_Proxy(
   2462     IKsJackSinkInformation* This,
   2463     KSJACK_SINK_INFORMATION *pJackSinkInformation);
   2464 void __RPC_STUB IKsJackSinkInformation_GetJackSinkInformation_Stub(
   2465     IRpcStubBuffer* This,
   2466     IRpcChannelBuffer* pRpcChannelBuffer,
   2467     PRPC_MESSAGE pRpcMessage,
   2468     DWORD* pdwStubPhase);
   2469 
   2470 #endif  /* __IKsJackSinkInformation_INTERFACE_DEFINED__ */
   2471 
   2472 /*****************************************************************************
   2473  * IPartsList interface
   2474  */
   2475 #ifndef __IPartsList_INTERFACE_DEFINED__
   2476 #define __IPartsList_INTERFACE_DEFINED__
   2477 
   2478 DEFINE_GUID(IID_IPartsList, 0x6daa848c, 0x5eb0, 0x45cc, 0xae,0xa5, 0x99,0x8a,0x2c,0xda,0x1f,0xfb);
   2479 #if defined(__cplusplus) && !defined(CINTERFACE)
   2480 MIDL_INTERFACE("6daa848c-5eb0-45cc-aea5-998a2cda1ffb")
   2481 IPartsList : public IUnknown
   2482 {
   2483     virtual HRESULT STDMETHODCALLTYPE GetCount(
   2484         UINT *pCount) = 0;
   2485 
   2486     virtual HRESULT STDMETHODCALLTYPE GetPart(
   2487         UINT nIndex,
   2488         IPart **ppPart) = 0;
   2489 
   2490 };
   2491 #ifdef __CRT_UUID_DECL
   2492 __CRT_UUID_DECL(IPartsList, 0x6daa848c, 0x5eb0, 0x45cc, 0xae,0xa5, 0x99,0x8a,0x2c,0xda,0x1f,0xfb)
   2493 #endif
   2494 #else
   2495 typedef struct IPartsListVtbl {
   2496     BEGIN_INTERFACE
   2497 
   2498     /*** IUnknown methods ***/
   2499     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2500         IPartsList* This,
   2501         REFIID riid,
   2502         void **ppvObject);
   2503 
   2504     ULONG (STDMETHODCALLTYPE *AddRef)(
   2505         IPartsList* This);
   2506 
   2507     ULONG (STDMETHODCALLTYPE *Release)(
   2508         IPartsList* This);
   2509 
   2510     /*** IPartsList methods ***/
   2511     HRESULT (STDMETHODCALLTYPE *GetCount)(
   2512         IPartsList* This,
   2513         UINT *pCount);
   2514 
   2515     HRESULT (STDMETHODCALLTYPE *GetPart)(
   2516         IPartsList* This,
   2517         UINT nIndex,
   2518         IPart **ppPart);
   2519 
   2520     END_INTERFACE
   2521 } IPartsListVtbl;
   2522 interface IPartsList {
   2523     CONST_VTBL IPartsListVtbl* lpVtbl;
   2524 };
   2525 
   2526 #ifdef COBJMACROS
   2527 #ifndef WIDL_C_INLINE_WRAPPERS
   2528 /*** IUnknown methods ***/
   2529 #define IPartsList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2530 #define IPartsList_AddRef(This) (This)->lpVtbl->AddRef(This)
   2531 #define IPartsList_Release(This) (This)->lpVtbl->Release(This)
   2532 /*** IPartsList methods ***/
   2533 #define IPartsList_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
   2534 #define IPartsList_GetPart(This,nIndex,ppPart) (This)->lpVtbl->GetPart(This,nIndex,ppPart)
   2535 #else
   2536 /*** IUnknown methods ***/
   2537 static FORCEINLINE HRESULT IPartsList_QueryInterface(IPartsList* This,REFIID riid,void **ppvObject) {
   2538     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2539 }
   2540 static FORCEINLINE ULONG IPartsList_AddRef(IPartsList* This) {
   2541     return This->lpVtbl->AddRef(This);
   2542 }
   2543 static FORCEINLINE ULONG IPartsList_Release(IPartsList* This) {
   2544     return This->lpVtbl->Release(This);
   2545 }
   2546 /*** IPartsList methods ***/
   2547 static FORCEINLINE HRESULT IPartsList_GetCount(IPartsList* This,UINT *pCount) {
   2548     return This->lpVtbl->GetCount(This,pCount);
   2549 }
   2550 static FORCEINLINE HRESULT IPartsList_GetPart(IPartsList* This,UINT nIndex,IPart **ppPart) {
   2551     return This->lpVtbl->GetPart(This,nIndex,ppPart);
   2552 }
   2553 #endif
   2554 #endif
   2555 
   2556 #endif
   2557 
   2558 HRESULT STDMETHODCALLTYPE IPartsList_GetCount_Proxy(
   2559     IPartsList* This,
   2560     UINT *pCount);
   2561 void __RPC_STUB IPartsList_GetCount_Stub(
   2562     IRpcStubBuffer* This,
   2563     IRpcChannelBuffer* pRpcChannelBuffer,
   2564     PRPC_MESSAGE pRpcMessage,
   2565     DWORD* pdwStubPhase);
   2566 HRESULT STDMETHODCALLTYPE IPartsList_GetPart_Proxy(
   2567     IPartsList* This,
   2568     UINT nIndex,
   2569     IPart **ppPart);
   2570 void __RPC_STUB IPartsList_GetPart_Stub(
   2571     IRpcStubBuffer* This,
   2572     IRpcChannelBuffer* pRpcChannelBuffer,
   2573     PRPC_MESSAGE pRpcMessage,
   2574     DWORD* pdwStubPhase);
   2575 
   2576 #endif  /* __IPartsList_INTERFACE_DEFINED__ */
   2577 
   2578 /*****************************************************************************
   2579  * IPart interface
   2580  */
   2581 #ifndef __IPart_INTERFACE_DEFINED__
   2582 #define __IPart_INTERFACE_DEFINED__
   2583 
   2584 DEFINE_GUID(IID_IPart, 0xae2de0e4, 0x5bca, 0x4f2d, 0xaa,0x46, 0x5d,0x13,0xf8,0xfd,0xb3,0xa9);
   2585 #if defined(__cplusplus) && !defined(CINTERFACE)
   2586 MIDL_INTERFACE("ae2de0e4-5bca-4f2d-aa46-5d13f8fdb3a9")
   2587 IPart : public IUnknown
   2588 {
   2589     virtual HRESULT STDMETHODCALLTYPE GetName(
   2590         LPWSTR *ppwstrName) = 0;
   2591 
   2592     virtual HRESULT STDMETHODCALLTYPE GetLocalId(
   2593         UINT *pnId) = 0;
   2594 
   2595     virtual HRESULT STDMETHODCALLTYPE GetGlobalId(
   2596         LPWSTR *ppwstrGlobalId) = 0;
   2597 
   2598     virtual HRESULT STDMETHODCALLTYPE GetPartType(
   2599         PartType *pPartType) = 0;
   2600 
   2601     virtual HRESULT STDMETHODCALLTYPE GetSubType(
   2602         GUID *pSubType) = 0;
   2603 
   2604     virtual HRESULT STDMETHODCALLTYPE GetControlInterfaceCount(
   2605         UINT *pCount) = 0;
   2606 
   2607     virtual HRESULT STDMETHODCALLTYPE GetControlInterface(
   2608         UINT nIndex,
   2609         IControlInterface **ppInterfaceDesc) = 0;
   2610 
   2611     virtual HRESULT STDMETHODCALLTYPE EnumPartsIncoming(
   2612         IPartsList **ppParts) = 0;
   2613 
   2614     virtual HRESULT STDMETHODCALLTYPE EnumPartsOutgoing(
   2615         IPartsList **ppParts) = 0;
   2616 
   2617     virtual HRESULT STDMETHODCALLTYPE GetTopologyObjects(
   2618         IDeviceTopology **ppTopology) = 0;
   2619 
   2620     virtual HRESULT STDMETHODCALLTYPE Activate(
   2621         DWORD dwClsContext,
   2622         REFIID refiid,
   2623         void **ppvObject) = 0;
   2624 
   2625     virtual HRESULT STDMETHODCALLTYPE RegisterControlChangeCallback(
   2626         REFGUID riid,
   2627         IControlChangeNotify *pNotify) = 0;
   2628 
   2629     virtual HRESULT STDMETHODCALLTYPE UnregisterControlChangeCallback(
   2630         IControlChangeNotify *pNotify) = 0;
   2631 
   2632 };
   2633 #ifdef __CRT_UUID_DECL
   2634 __CRT_UUID_DECL(IPart, 0xae2de0e4, 0x5bca, 0x4f2d, 0xaa,0x46, 0x5d,0x13,0xf8,0xfd,0xb3,0xa9)
   2635 #endif
   2636 #else
   2637 typedef struct IPartVtbl {
   2638     BEGIN_INTERFACE
   2639 
   2640     /*** IUnknown methods ***/
   2641     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2642         IPart* This,
   2643         REFIID riid,
   2644         void **ppvObject);
   2645 
   2646     ULONG (STDMETHODCALLTYPE *AddRef)(
   2647         IPart* This);
   2648 
   2649     ULONG (STDMETHODCALLTYPE *Release)(
   2650         IPart* This);
   2651 
   2652     /*** IPart methods ***/
   2653     HRESULT (STDMETHODCALLTYPE *GetName)(
   2654         IPart* This,
   2655         LPWSTR *ppwstrName);
   2656 
   2657     HRESULT (STDMETHODCALLTYPE *GetLocalId)(
   2658         IPart* This,
   2659         UINT *pnId);
   2660 
   2661     HRESULT (STDMETHODCALLTYPE *GetGlobalId)(
   2662         IPart* This,
   2663         LPWSTR *ppwstrGlobalId);
   2664 
   2665     HRESULT (STDMETHODCALLTYPE *GetPartType)(
   2666         IPart* This,
   2667         PartType *pPartType);
   2668 
   2669     HRESULT (STDMETHODCALLTYPE *GetSubType)(
   2670         IPart* This,
   2671         GUID *pSubType);
   2672 
   2673     HRESULT (STDMETHODCALLTYPE *GetControlInterfaceCount)(
   2674         IPart* This,
   2675         UINT *pCount);
   2676 
   2677     HRESULT (STDMETHODCALLTYPE *GetControlInterface)(
   2678         IPart* This,
   2679         UINT nIndex,
   2680         IControlInterface **ppInterfaceDesc);
   2681 
   2682     HRESULT (STDMETHODCALLTYPE *EnumPartsIncoming)(
   2683         IPart* This,
   2684         IPartsList **ppParts);
   2685 
   2686     HRESULT (STDMETHODCALLTYPE *EnumPartsOutgoing)(
   2687         IPart* This,
   2688         IPartsList **ppParts);
   2689 
   2690     HRESULT (STDMETHODCALLTYPE *GetTopologyObjects)(
   2691         IPart* This,
   2692         IDeviceTopology **ppTopology);
   2693 
   2694     HRESULT (STDMETHODCALLTYPE *Activate)(
   2695         IPart* This,
   2696         DWORD dwClsContext,
   2697         REFIID refiid,
   2698         void **ppvObject);
   2699 
   2700     HRESULT (STDMETHODCALLTYPE *RegisterControlChangeCallback)(
   2701         IPart* This,
   2702         REFGUID riid,
   2703         IControlChangeNotify *pNotify);
   2704 
   2705     HRESULT (STDMETHODCALLTYPE *UnregisterControlChangeCallback)(
   2706         IPart* This,
   2707         IControlChangeNotify *pNotify);
   2708 
   2709     END_INTERFACE
   2710 } IPartVtbl;
   2711 interface IPart {
   2712     CONST_VTBL IPartVtbl* lpVtbl;
   2713 };
   2714 
   2715 #ifdef COBJMACROS
   2716 #ifndef WIDL_C_INLINE_WRAPPERS
   2717 /*** IUnknown methods ***/
   2718 #define IPart_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2719 #define IPart_AddRef(This) (This)->lpVtbl->AddRef(This)
   2720 #define IPart_Release(This) (This)->lpVtbl->Release(This)
   2721 /*** IPart methods ***/
   2722 #define IPart_GetName(This,ppwstrName) (This)->lpVtbl->GetName(This,ppwstrName)
   2723 #define IPart_GetLocalId(This,pnId) (This)->lpVtbl->GetLocalId(This,pnId)
   2724 #define IPart_GetGlobalId(This,ppwstrGlobalId) (This)->lpVtbl->GetGlobalId(This,ppwstrGlobalId)
   2725 #define IPart_GetPartType(This,pPartType) (This)->lpVtbl->GetPartType(This,pPartType)
   2726 #define IPart_GetSubType(This,pSubType) (This)->lpVtbl->GetSubType(This,pSubType)
   2727 #define IPart_GetControlInterfaceCount(This,pCount) (This)->lpVtbl->GetControlInterfaceCount(This,pCount)
   2728 #define IPart_GetControlInterface(This,nIndex,ppInterfaceDesc) (This)->lpVtbl->GetControlInterface(This,nIndex,ppInterfaceDesc)
   2729 #define IPart_EnumPartsIncoming(This,ppParts) (This)->lpVtbl->EnumPartsIncoming(This,ppParts)
   2730 #define IPart_EnumPartsOutgoing(This,ppParts) (This)->lpVtbl->EnumPartsOutgoing(This,ppParts)
   2731 #define IPart_GetTopologyObjects(This,ppTopology) (This)->lpVtbl->GetTopologyObjects(This,ppTopology)
   2732 #define IPart_Activate(This,dwClsContext,refiid,ppvObject) (This)->lpVtbl->Activate(This,dwClsContext,refiid,ppvObject)
   2733 #define IPart_RegisterControlChangeCallback(This,riid,pNotify) (This)->lpVtbl->RegisterControlChangeCallback(This,riid,pNotify)
   2734 #define IPart_UnregisterControlChangeCallback(This,pNotify) (This)->lpVtbl->UnregisterControlChangeCallback(This,pNotify)
   2735 #else
   2736 /*** IUnknown methods ***/
   2737 static FORCEINLINE HRESULT IPart_QueryInterface(IPart* This,REFIID riid,void **ppvObject) {
   2738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2739 }
   2740 static FORCEINLINE ULONG IPart_AddRef(IPart* This) {
   2741     return This->lpVtbl->AddRef(This);
   2742 }
   2743 static FORCEINLINE ULONG IPart_Release(IPart* This) {
   2744     return This->lpVtbl->Release(This);
   2745 }
   2746 /*** IPart methods ***/
   2747 static FORCEINLINE HRESULT IPart_GetName(IPart* This,LPWSTR *ppwstrName) {
   2748     return This->lpVtbl->GetName(This,ppwstrName);
   2749 }
   2750 static FORCEINLINE HRESULT IPart_GetLocalId(IPart* This,UINT *pnId) {
   2751     return This->lpVtbl->GetLocalId(This,pnId);
   2752 }
   2753 static FORCEINLINE HRESULT IPart_GetGlobalId(IPart* This,LPWSTR *ppwstrGlobalId) {
   2754     return This->lpVtbl->GetGlobalId(This,ppwstrGlobalId);
   2755 }
   2756 static FORCEINLINE HRESULT IPart_GetPartType(IPart* This,PartType *pPartType) {
   2757     return This->lpVtbl->GetPartType(This,pPartType);
   2758 }
   2759 static FORCEINLINE HRESULT IPart_GetSubType(IPart* This,GUID *pSubType) {
   2760     return This->lpVtbl->GetSubType(This,pSubType);
   2761 }
   2762 static FORCEINLINE HRESULT IPart_GetControlInterfaceCount(IPart* This,UINT *pCount) {
   2763     return This->lpVtbl->GetControlInterfaceCount(This,pCount);
   2764 }
   2765 static FORCEINLINE HRESULT IPart_GetControlInterface(IPart* This,UINT nIndex,IControlInterface **ppInterfaceDesc) {
   2766     return This->lpVtbl->GetControlInterface(This,nIndex,ppInterfaceDesc);
   2767 }
   2768 static FORCEINLINE HRESULT IPart_EnumPartsIncoming(IPart* This,IPartsList **ppParts) {
   2769     return This->lpVtbl->EnumPartsIncoming(This,ppParts);
   2770 }
   2771 static FORCEINLINE HRESULT IPart_EnumPartsOutgoing(IPart* This,IPartsList **ppParts) {
   2772     return This->lpVtbl->EnumPartsOutgoing(This,ppParts);
   2773 }
   2774 static FORCEINLINE HRESULT IPart_GetTopologyObjects(IPart* This,IDeviceTopology **ppTopology) {
   2775     return This->lpVtbl->GetTopologyObjects(This,ppTopology);
   2776 }
   2777 static FORCEINLINE HRESULT IPart_Activate(IPart* This,DWORD dwClsContext,REFIID refiid,void **ppvObject) {
   2778     return This->lpVtbl->Activate(This,dwClsContext,refiid,ppvObject);
   2779 }
   2780 static FORCEINLINE HRESULT IPart_RegisterControlChangeCallback(IPart* This,REFGUID riid,IControlChangeNotify *pNotify) {
   2781     return This->lpVtbl->RegisterControlChangeCallback(This,riid,pNotify);
   2782 }
   2783 static FORCEINLINE HRESULT IPart_UnregisterControlChangeCallback(IPart* This,IControlChangeNotify *pNotify) {
   2784     return This->lpVtbl->UnregisterControlChangeCallback(This,pNotify);
   2785 }
   2786 #endif
   2787 #endif
   2788 
   2789 #endif
   2790 
   2791 HRESULT STDMETHODCALLTYPE IPart_GetName_Proxy(
   2792     IPart* This,
   2793     LPWSTR *ppwstrName);
   2794 void __RPC_STUB IPart_GetName_Stub(
   2795     IRpcStubBuffer* This,
   2796     IRpcChannelBuffer* pRpcChannelBuffer,
   2797     PRPC_MESSAGE pRpcMessage,
   2798     DWORD* pdwStubPhase);
   2799 HRESULT STDMETHODCALLTYPE IPart_GetLocalId_Proxy(
   2800     IPart* This,
   2801     UINT *pnId);
   2802 void __RPC_STUB IPart_GetLocalId_Stub(
   2803     IRpcStubBuffer* This,
   2804     IRpcChannelBuffer* pRpcChannelBuffer,
   2805     PRPC_MESSAGE pRpcMessage,
   2806     DWORD* pdwStubPhase);
   2807 HRESULT STDMETHODCALLTYPE IPart_GetGlobalId_Proxy(
   2808     IPart* This,
   2809     LPWSTR *ppwstrGlobalId);
   2810 void __RPC_STUB IPart_GetGlobalId_Stub(
   2811     IRpcStubBuffer* This,
   2812     IRpcChannelBuffer* pRpcChannelBuffer,
   2813     PRPC_MESSAGE pRpcMessage,
   2814     DWORD* pdwStubPhase);
   2815 HRESULT STDMETHODCALLTYPE IPart_GetPartType_Proxy(
   2816     IPart* This,
   2817     PartType *pPartType);
   2818 void __RPC_STUB IPart_GetPartType_Stub(
   2819     IRpcStubBuffer* This,
   2820     IRpcChannelBuffer* pRpcChannelBuffer,
   2821     PRPC_MESSAGE pRpcMessage,
   2822     DWORD* pdwStubPhase);
   2823 HRESULT STDMETHODCALLTYPE IPart_GetSubType_Proxy(
   2824     IPart* This,
   2825     GUID *pSubType);
   2826 void __RPC_STUB IPart_GetSubType_Stub(
   2827     IRpcStubBuffer* This,
   2828     IRpcChannelBuffer* pRpcChannelBuffer,
   2829     PRPC_MESSAGE pRpcMessage,
   2830     DWORD* pdwStubPhase);
   2831 HRESULT STDMETHODCALLTYPE IPart_GetControlInterfaceCount_Proxy(
   2832     IPart* This,
   2833     UINT *pCount);
   2834 void __RPC_STUB IPart_GetControlInterfaceCount_Stub(
   2835     IRpcStubBuffer* This,
   2836     IRpcChannelBuffer* pRpcChannelBuffer,
   2837     PRPC_MESSAGE pRpcMessage,
   2838     DWORD* pdwStubPhase);
   2839 HRESULT STDMETHODCALLTYPE IPart_GetControlInterface_Proxy(
   2840     IPart* This,
   2841     UINT nIndex,
   2842     IControlInterface **ppInterfaceDesc);
   2843 void __RPC_STUB IPart_GetControlInterface_Stub(
   2844     IRpcStubBuffer* This,
   2845     IRpcChannelBuffer* pRpcChannelBuffer,
   2846     PRPC_MESSAGE pRpcMessage,
   2847     DWORD* pdwStubPhase);
   2848 HRESULT STDMETHODCALLTYPE IPart_EnumPartsIncoming_Proxy(
   2849     IPart* This,
   2850     IPartsList **ppParts);
   2851 void __RPC_STUB IPart_EnumPartsIncoming_Stub(
   2852     IRpcStubBuffer* This,
   2853     IRpcChannelBuffer* pRpcChannelBuffer,
   2854     PRPC_MESSAGE pRpcMessage,
   2855     DWORD* pdwStubPhase);
   2856 HRESULT STDMETHODCALLTYPE IPart_EnumPartsOutgoing_Proxy(
   2857     IPart* This,
   2858     IPartsList **ppParts);
   2859 void __RPC_STUB IPart_EnumPartsOutgoing_Stub(
   2860     IRpcStubBuffer* This,
   2861     IRpcChannelBuffer* pRpcChannelBuffer,
   2862     PRPC_MESSAGE pRpcMessage,
   2863     DWORD* pdwStubPhase);
   2864 HRESULT STDMETHODCALLTYPE IPart_GetTopologyObjects_Proxy(
   2865     IPart* This,
   2866     IDeviceTopology **ppTopology);
   2867 void __RPC_STUB IPart_GetTopologyObjects_Stub(
   2868     IRpcStubBuffer* This,
   2869     IRpcChannelBuffer* pRpcChannelBuffer,
   2870     PRPC_MESSAGE pRpcMessage,
   2871     DWORD* pdwStubPhase);
   2872 HRESULT STDMETHODCALLTYPE IPart_Activate_Proxy(
   2873     IPart* This,
   2874     DWORD dwClsContext,
   2875     REFIID refiid,
   2876     void **ppvObject);
   2877 void __RPC_STUB IPart_Activate_Stub(
   2878     IRpcStubBuffer* This,
   2879     IRpcChannelBuffer* pRpcChannelBuffer,
   2880     PRPC_MESSAGE pRpcMessage,
   2881     DWORD* pdwStubPhase);
   2882 HRESULT STDMETHODCALLTYPE IPart_RegisterControlChangeCallback_Proxy(
   2883     IPart* This,
   2884     REFGUID riid,
   2885     IControlChangeNotify *pNotify);
   2886 void __RPC_STUB IPart_RegisterControlChangeCallback_Stub(
   2887     IRpcStubBuffer* This,
   2888     IRpcChannelBuffer* pRpcChannelBuffer,
   2889     PRPC_MESSAGE pRpcMessage,
   2890     DWORD* pdwStubPhase);
   2891 HRESULT STDMETHODCALLTYPE IPart_UnregisterControlChangeCallback_Proxy(
   2892     IPart* This,
   2893     IControlChangeNotify *pNotify);
   2894 void __RPC_STUB IPart_UnregisterControlChangeCallback_Stub(
   2895     IRpcStubBuffer* This,
   2896     IRpcChannelBuffer* pRpcChannelBuffer,
   2897     PRPC_MESSAGE pRpcMessage,
   2898     DWORD* pdwStubPhase);
   2899 
   2900 #endif  /* __IPart_INTERFACE_DEFINED__ */
   2901 
   2902 /*****************************************************************************
   2903  * IConnector interface
   2904  */
   2905 #ifndef __IConnector_INTERFACE_DEFINED__
   2906 #define __IConnector_INTERFACE_DEFINED__
   2907 
   2908 DEFINE_GUID(IID_IConnector, 0x9c2c4058, 0x23f5, 0x41de, 0x87,0x7a, 0xdf,0x3a,0xf2,0x36,0xa0,0x9e);
   2909 #if defined(__cplusplus) && !defined(CINTERFACE)
   2910 MIDL_INTERFACE("9c2c4058-23f5-41de-877a-df3af236a09e")
   2911 IConnector : public IUnknown
   2912 {
   2913     virtual HRESULT STDMETHODCALLTYPE GetType(
   2914         ConnectorType *pType) = 0;
   2915 
   2916     virtual HRESULT STDMETHODCALLTYPE GetDataFlow(
   2917         DataFlow *pFlow) = 0;
   2918 
   2919     virtual HRESULT STDMETHODCALLTYPE ConnectTo(
   2920         IConnector *pConnectTo) = 0;
   2921 
   2922     virtual HRESULT STDMETHODCALLTYPE Disconnect(
   2923         ) = 0;
   2924 
   2925     virtual HRESULT STDMETHODCALLTYPE IsConnected(
   2926         WINBOOL *pbConnected) = 0;
   2927 
   2928     virtual HRESULT STDMETHODCALLTYPE GetConnectedTo(
   2929         IConnector **ppConTo) = 0;
   2930 
   2931     virtual HRESULT STDMETHODCALLTYPE GetConnectorIdConnectedTo(
   2932         LPWSTR *ppwstrConnectorId) = 0;
   2933 
   2934     virtual HRESULT STDMETHODCALLTYPE GetDeviceIdConnectedTo(
   2935         LPWSTR *ppwstrDeviceId) = 0;
   2936 
   2937 };
   2938 #ifdef __CRT_UUID_DECL
   2939 __CRT_UUID_DECL(IConnector, 0x9c2c4058, 0x23f5, 0x41de, 0x87,0x7a, 0xdf,0x3a,0xf2,0x36,0xa0,0x9e)
   2940 #endif
   2941 #else
   2942 typedef struct IConnectorVtbl {
   2943     BEGIN_INTERFACE
   2944 
   2945     /*** IUnknown methods ***/
   2946     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2947         IConnector* This,
   2948         REFIID riid,
   2949         void **ppvObject);
   2950 
   2951     ULONG (STDMETHODCALLTYPE *AddRef)(
   2952         IConnector* This);
   2953 
   2954     ULONG (STDMETHODCALLTYPE *Release)(
   2955         IConnector* This);
   2956 
   2957     /*** IConnector methods ***/
   2958     HRESULT (STDMETHODCALLTYPE *GetType)(
   2959         IConnector* This,
   2960         ConnectorType *pType);
   2961 
   2962     HRESULT (STDMETHODCALLTYPE *GetDataFlow)(
   2963         IConnector* This,
   2964         DataFlow *pFlow);
   2965 
   2966     HRESULT (STDMETHODCALLTYPE *ConnectTo)(
   2967         IConnector* This,
   2968         IConnector *pConnectTo);
   2969 
   2970     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   2971         IConnector* This);
   2972 
   2973     HRESULT (STDMETHODCALLTYPE *IsConnected)(
   2974         IConnector* This,
   2975         WINBOOL *pbConnected);
   2976 
   2977     HRESULT (STDMETHODCALLTYPE *GetConnectedTo)(
   2978         IConnector* This,
   2979         IConnector **ppConTo);
   2980 
   2981     HRESULT (STDMETHODCALLTYPE *GetConnectorIdConnectedTo)(
   2982         IConnector* This,
   2983         LPWSTR *ppwstrConnectorId);
   2984 
   2985     HRESULT (STDMETHODCALLTYPE *GetDeviceIdConnectedTo)(
   2986         IConnector* This,
   2987         LPWSTR *ppwstrDeviceId);
   2988 
   2989     END_INTERFACE
   2990 } IConnectorVtbl;
   2991 interface IConnector {
   2992     CONST_VTBL IConnectorVtbl* lpVtbl;
   2993 };
   2994 
   2995 #ifdef COBJMACROS
   2996 #ifndef WIDL_C_INLINE_WRAPPERS
   2997 /*** IUnknown methods ***/
   2998 #define IConnector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2999 #define IConnector_AddRef(This) (This)->lpVtbl->AddRef(This)
   3000 #define IConnector_Release(This) (This)->lpVtbl->Release(This)
   3001 /*** IConnector methods ***/
   3002 #define IConnector_GetType(This,pType) (This)->lpVtbl->GetType(This,pType)
   3003 #define IConnector_GetDataFlow(This,pFlow) (This)->lpVtbl->GetDataFlow(This,pFlow)
   3004 #define IConnector_ConnectTo(This,pConnectTo) (This)->lpVtbl->ConnectTo(This,pConnectTo)
   3005 #define IConnector_Disconnect(This) (This)->lpVtbl->Disconnect(This)
   3006 #define IConnector_IsConnected(This,pbConnected) (This)->lpVtbl->IsConnected(This,pbConnected)
   3007 #define IConnector_GetConnectedTo(This,ppConTo) (This)->lpVtbl->GetConnectedTo(This,ppConTo)
   3008 #define IConnector_GetConnectorIdConnectedTo(This,ppwstrConnectorId) (This)->lpVtbl->GetConnectorIdConnectedTo(This,ppwstrConnectorId)
   3009 #define IConnector_GetDeviceIdConnectedTo(This,ppwstrDeviceId) (This)->lpVtbl->GetDeviceIdConnectedTo(This,ppwstrDeviceId)
   3010 #else
   3011 /*** IUnknown methods ***/
   3012 static FORCEINLINE HRESULT IConnector_QueryInterface(IConnector* This,REFIID riid,void **ppvObject) {
   3013     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3014 }
   3015 static FORCEINLINE ULONG IConnector_AddRef(IConnector* This) {
   3016     return This->lpVtbl->AddRef(This);
   3017 }
   3018 static FORCEINLINE ULONG IConnector_Release(IConnector* This) {
   3019     return This->lpVtbl->Release(This);
   3020 }
   3021 /*** IConnector methods ***/
   3022 static FORCEINLINE HRESULT IConnector_GetType(IConnector* This,ConnectorType *pType) {
   3023     return This->lpVtbl->GetType(This,pType);
   3024 }
   3025 static FORCEINLINE HRESULT IConnector_GetDataFlow(IConnector* This,DataFlow *pFlow) {
   3026     return This->lpVtbl->GetDataFlow(This,pFlow);
   3027 }
   3028 static FORCEINLINE HRESULT IConnector_ConnectTo(IConnector* This,IConnector *pConnectTo) {
   3029     return This->lpVtbl->ConnectTo(This,pConnectTo);
   3030 }
   3031 static FORCEINLINE HRESULT IConnector_Disconnect(IConnector* This) {
   3032     return This->lpVtbl->Disconnect(This);
   3033 }
   3034 static FORCEINLINE HRESULT IConnector_IsConnected(IConnector* This,WINBOOL *pbConnected) {
   3035     return This->lpVtbl->IsConnected(This,pbConnected);
   3036 }
   3037 static FORCEINLINE HRESULT IConnector_GetConnectedTo(IConnector* This,IConnector **ppConTo) {
   3038     return This->lpVtbl->GetConnectedTo(This,ppConTo);
   3039 }
   3040 static FORCEINLINE HRESULT IConnector_GetConnectorIdConnectedTo(IConnector* This,LPWSTR *ppwstrConnectorId) {
   3041     return This->lpVtbl->GetConnectorIdConnectedTo(This,ppwstrConnectorId);
   3042 }
   3043 static FORCEINLINE HRESULT IConnector_GetDeviceIdConnectedTo(IConnector* This,LPWSTR *ppwstrDeviceId) {
   3044     return This->lpVtbl->GetDeviceIdConnectedTo(This,ppwstrDeviceId);
   3045 }
   3046 #endif
   3047 #endif
   3048 
   3049 #endif
   3050 
   3051 HRESULT STDMETHODCALLTYPE IConnector_GetType_Proxy(
   3052     IConnector* This,
   3053     ConnectorType *pType);
   3054 void __RPC_STUB IConnector_GetType_Stub(
   3055     IRpcStubBuffer* This,
   3056     IRpcChannelBuffer* pRpcChannelBuffer,
   3057     PRPC_MESSAGE pRpcMessage,
   3058     DWORD* pdwStubPhase);
   3059 HRESULT STDMETHODCALLTYPE IConnector_GetDataFlow_Proxy(
   3060     IConnector* This,
   3061     DataFlow *pFlow);
   3062 void __RPC_STUB IConnector_GetDataFlow_Stub(
   3063     IRpcStubBuffer* This,
   3064     IRpcChannelBuffer* pRpcChannelBuffer,
   3065     PRPC_MESSAGE pRpcMessage,
   3066     DWORD* pdwStubPhase);
   3067 HRESULT STDMETHODCALLTYPE IConnector_ConnectTo_Proxy(
   3068     IConnector* This,
   3069     IConnector *pConnectTo);
   3070 void __RPC_STUB IConnector_ConnectTo_Stub(
   3071     IRpcStubBuffer* This,
   3072     IRpcChannelBuffer* pRpcChannelBuffer,
   3073     PRPC_MESSAGE pRpcMessage,
   3074     DWORD* pdwStubPhase);
   3075 HRESULT STDMETHODCALLTYPE IConnector_Disconnect_Proxy(
   3076     IConnector* This);
   3077 void __RPC_STUB IConnector_Disconnect_Stub(
   3078     IRpcStubBuffer* This,
   3079     IRpcChannelBuffer* pRpcChannelBuffer,
   3080     PRPC_MESSAGE pRpcMessage,
   3081     DWORD* pdwStubPhase);
   3082 HRESULT STDMETHODCALLTYPE IConnector_IsConnected_Proxy(
   3083     IConnector* This,
   3084     WINBOOL *pbConnected);
   3085 void __RPC_STUB IConnector_IsConnected_Stub(
   3086     IRpcStubBuffer* This,
   3087     IRpcChannelBuffer* pRpcChannelBuffer,
   3088     PRPC_MESSAGE pRpcMessage,
   3089     DWORD* pdwStubPhase);
   3090 HRESULT STDMETHODCALLTYPE IConnector_GetConnectedTo_Proxy(
   3091     IConnector* This,
   3092     IConnector **ppConTo);
   3093 void __RPC_STUB IConnector_GetConnectedTo_Stub(
   3094     IRpcStubBuffer* This,
   3095     IRpcChannelBuffer* pRpcChannelBuffer,
   3096     PRPC_MESSAGE pRpcMessage,
   3097     DWORD* pdwStubPhase);
   3098 HRESULT STDMETHODCALLTYPE IConnector_GetConnectorIdConnectedTo_Proxy(
   3099     IConnector* This,
   3100     LPWSTR *ppwstrConnectorId);
   3101 void __RPC_STUB IConnector_GetConnectorIdConnectedTo_Stub(
   3102     IRpcStubBuffer* This,
   3103     IRpcChannelBuffer* pRpcChannelBuffer,
   3104     PRPC_MESSAGE pRpcMessage,
   3105     DWORD* pdwStubPhase);
   3106 HRESULT STDMETHODCALLTYPE IConnector_GetDeviceIdConnectedTo_Proxy(
   3107     IConnector* This,
   3108     LPWSTR *ppwstrDeviceId);
   3109 void __RPC_STUB IConnector_GetDeviceIdConnectedTo_Stub(
   3110     IRpcStubBuffer* This,
   3111     IRpcChannelBuffer* pRpcChannelBuffer,
   3112     PRPC_MESSAGE pRpcMessage,
   3113     DWORD* pdwStubPhase);
   3114 
   3115 #endif  /* __IConnector_INTERFACE_DEFINED__ */
   3116 
   3117 /*****************************************************************************
   3118  * ISubUnit interface
   3119  */
   3120 #ifndef __ISubUnit_INTERFACE_DEFINED__
   3121 #define __ISubUnit_INTERFACE_DEFINED__
   3122 
   3123 DEFINE_GUID(IID_ISubUnit, 0x82149a85, 0xdba6, 0x4487, 0x86,0xbb, 0xea,0x8f,0x7f,0xef,0xcc,0x71);
   3124 #if defined(__cplusplus) && !defined(CINTERFACE)
   3125 MIDL_INTERFACE("82149a85-dba6-4487-86bb-ea8f7fefcc71")
   3126 ISubUnit : public IUnknown
   3127 {
   3128 };
   3129 #ifdef __CRT_UUID_DECL
   3130 __CRT_UUID_DECL(ISubUnit, 0x82149a85, 0xdba6, 0x4487, 0x86,0xbb, 0xea,0x8f,0x7f,0xef,0xcc,0x71)
   3131 #endif
   3132 #else
   3133 typedef struct ISubUnitVtbl {
   3134     BEGIN_INTERFACE
   3135 
   3136     /*** IUnknown methods ***/
   3137     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3138         ISubUnit* This,
   3139         REFIID riid,
   3140         void **ppvObject);
   3141 
   3142     ULONG (STDMETHODCALLTYPE *AddRef)(
   3143         ISubUnit* This);
   3144 
   3145     ULONG (STDMETHODCALLTYPE *Release)(
   3146         ISubUnit* This);
   3147 
   3148     END_INTERFACE
   3149 } ISubUnitVtbl;
   3150 interface ISubUnit {
   3151     CONST_VTBL ISubUnitVtbl* lpVtbl;
   3152 };
   3153 
   3154 #ifdef COBJMACROS
   3155 #ifndef WIDL_C_INLINE_WRAPPERS
   3156 /*** IUnknown methods ***/
   3157 #define ISubUnit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3158 #define ISubUnit_AddRef(This) (This)->lpVtbl->AddRef(This)
   3159 #define ISubUnit_Release(This) (This)->lpVtbl->Release(This)
   3160 #else
   3161 /*** IUnknown methods ***/
   3162 static FORCEINLINE HRESULT ISubUnit_QueryInterface(ISubUnit* This,REFIID riid,void **ppvObject) {
   3163     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3164 }
   3165 static FORCEINLINE ULONG ISubUnit_AddRef(ISubUnit* This) {
   3166     return This->lpVtbl->AddRef(This);
   3167 }
   3168 static FORCEINLINE ULONG ISubUnit_Release(ISubUnit* This) {
   3169     return This->lpVtbl->Release(This);
   3170 }
   3171 #endif
   3172 #endif
   3173 
   3174 #endif
   3175 
   3176 
   3177 #endif  /* __ISubUnit_INTERFACE_DEFINED__ */
   3178 
   3179 /*****************************************************************************
   3180  * IControlInterface interface
   3181  */
   3182 #ifndef __IControlInterface_INTERFACE_DEFINED__
   3183 #define __IControlInterface_INTERFACE_DEFINED__
   3184 
   3185 DEFINE_GUID(IID_IControlInterface, 0x45d37c3f, 0x5140, 0x444a, 0xae,0x24, 0x40,0x07,0x89,0xf3,0xcb,0xf3);
   3186 #if defined(__cplusplus) && !defined(CINTERFACE)
   3187 MIDL_INTERFACE("45d37c3f-5140-444a-ae24-400789f3cbf3")
   3188 IControlInterface : public IUnknown
   3189 {
   3190     virtual HRESULT STDMETHODCALLTYPE GetName(
   3191         LPWSTR *ppwstrName) = 0;
   3192 
   3193     virtual HRESULT STDMETHODCALLTYPE GetIID(
   3194         GUID *pIID) = 0;
   3195 
   3196 };
   3197 #ifdef __CRT_UUID_DECL
   3198 __CRT_UUID_DECL(IControlInterface, 0x45d37c3f, 0x5140, 0x444a, 0xae,0x24, 0x40,0x07,0x89,0xf3,0xcb,0xf3)
   3199 #endif
   3200 #else
   3201 typedef struct IControlInterfaceVtbl {
   3202     BEGIN_INTERFACE
   3203 
   3204     /*** IUnknown methods ***/
   3205     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3206         IControlInterface* This,
   3207         REFIID riid,
   3208         void **ppvObject);
   3209 
   3210     ULONG (STDMETHODCALLTYPE *AddRef)(
   3211         IControlInterface* This);
   3212 
   3213     ULONG (STDMETHODCALLTYPE *Release)(
   3214         IControlInterface* This);
   3215 
   3216     /*** IControlInterface methods ***/
   3217     HRESULT (STDMETHODCALLTYPE *GetName)(
   3218         IControlInterface* This,
   3219         LPWSTR *ppwstrName);
   3220 
   3221     HRESULT (STDMETHODCALLTYPE *GetIID)(
   3222         IControlInterface* This,
   3223         GUID *pIID);
   3224 
   3225     END_INTERFACE
   3226 } IControlInterfaceVtbl;
   3227 interface IControlInterface {
   3228     CONST_VTBL IControlInterfaceVtbl* lpVtbl;
   3229 };
   3230 
   3231 #ifdef COBJMACROS
   3232 #ifndef WIDL_C_INLINE_WRAPPERS
   3233 /*** IUnknown methods ***/
   3234 #define IControlInterface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3235 #define IControlInterface_AddRef(This) (This)->lpVtbl->AddRef(This)
   3236 #define IControlInterface_Release(This) (This)->lpVtbl->Release(This)
   3237 /*** IControlInterface methods ***/
   3238 #define IControlInterface_GetName(This,ppwstrName) (This)->lpVtbl->GetName(This,ppwstrName)
   3239 #define IControlInterface_GetIID(This,pIID) (This)->lpVtbl->GetIID(This,pIID)
   3240 #else
   3241 /*** IUnknown methods ***/
   3242 static FORCEINLINE HRESULT IControlInterface_QueryInterface(IControlInterface* This,REFIID riid,void **ppvObject) {
   3243     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3244 }
   3245 static FORCEINLINE ULONG IControlInterface_AddRef(IControlInterface* This) {
   3246     return This->lpVtbl->AddRef(This);
   3247 }
   3248 static FORCEINLINE ULONG IControlInterface_Release(IControlInterface* This) {
   3249     return This->lpVtbl->Release(This);
   3250 }
   3251 /*** IControlInterface methods ***/
   3252 static FORCEINLINE HRESULT IControlInterface_GetName(IControlInterface* This,LPWSTR *ppwstrName) {
   3253     return This->lpVtbl->GetName(This,ppwstrName);
   3254 }
   3255 static FORCEINLINE HRESULT IControlInterface_GetIID(IControlInterface* This,GUID *pIID) {
   3256     return This->lpVtbl->GetIID(This,pIID);
   3257 }
   3258 #endif
   3259 #endif
   3260 
   3261 #endif
   3262 
   3263 HRESULT STDMETHODCALLTYPE IControlInterface_GetName_Proxy(
   3264     IControlInterface* This,
   3265     LPWSTR *ppwstrName);
   3266 void __RPC_STUB IControlInterface_GetName_Stub(
   3267     IRpcStubBuffer* This,
   3268     IRpcChannelBuffer* pRpcChannelBuffer,
   3269     PRPC_MESSAGE pRpcMessage,
   3270     DWORD* pdwStubPhase);
   3271 HRESULT STDMETHODCALLTYPE IControlInterface_GetIID_Proxy(
   3272     IControlInterface* This,
   3273     GUID *pIID);
   3274 void __RPC_STUB IControlInterface_GetIID_Stub(
   3275     IRpcStubBuffer* This,
   3276     IRpcChannelBuffer* pRpcChannelBuffer,
   3277     PRPC_MESSAGE pRpcMessage,
   3278     DWORD* pdwStubPhase);
   3279 
   3280 #endif  /* __IControlInterface_INTERFACE_DEFINED__ */
   3281 
   3282 /*****************************************************************************
   3283  * IControlChangeNotify interface
   3284  */
   3285 #ifndef __IControlChangeNotify_INTERFACE_DEFINED__
   3286 #define __IControlChangeNotify_INTERFACE_DEFINED__
   3287 
   3288 DEFINE_GUID(IID_IControlChangeNotify, 0xa09513ed, 0xc709, 0x4d21, 0xbd,0x7b, 0x5f,0x34,0xc4,0x7f,0x39,0x47);
   3289 #if defined(__cplusplus) && !defined(CINTERFACE)
   3290 MIDL_INTERFACE("a09513ed-c709-4d21-bd7b-5f34c47f3947")
   3291 IControlChangeNotify : public IUnknown
   3292 {
   3293     virtual HRESULT STDMETHODCALLTYPE OnNotify(
   3294         DWORD dwSenderProcessId,
   3295         LPCGUID ppguidEventContext) = 0;
   3296 
   3297 };
   3298 #ifdef __CRT_UUID_DECL
   3299 __CRT_UUID_DECL(IControlChangeNotify, 0xa09513ed, 0xc709, 0x4d21, 0xbd,0x7b, 0x5f,0x34,0xc4,0x7f,0x39,0x47)
   3300 #endif
   3301 #else
   3302 typedef struct IControlChangeNotifyVtbl {
   3303     BEGIN_INTERFACE
   3304 
   3305     /*** IUnknown methods ***/
   3306     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3307         IControlChangeNotify* This,
   3308         REFIID riid,
   3309         void **ppvObject);
   3310 
   3311     ULONG (STDMETHODCALLTYPE *AddRef)(
   3312         IControlChangeNotify* This);
   3313 
   3314     ULONG (STDMETHODCALLTYPE *Release)(
   3315         IControlChangeNotify* This);
   3316 
   3317     /*** IControlChangeNotify methods ***/
   3318     HRESULT (STDMETHODCALLTYPE *OnNotify)(
   3319         IControlChangeNotify* This,
   3320         DWORD dwSenderProcessId,
   3321         LPCGUID ppguidEventContext);
   3322 
   3323     END_INTERFACE
   3324 } IControlChangeNotifyVtbl;
   3325 interface IControlChangeNotify {
   3326     CONST_VTBL IControlChangeNotifyVtbl* lpVtbl;
   3327 };
   3328 
   3329 #ifdef COBJMACROS
   3330 #ifndef WIDL_C_INLINE_WRAPPERS
   3331 /*** IUnknown methods ***/
   3332 #define IControlChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3333 #define IControlChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   3334 #define IControlChangeNotify_Release(This) (This)->lpVtbl->Release(This)
   3335 /*** IControlChangeNotify methods ***/
   3336 #define IControlChangeNotify_OnNotify(This,dwSenderProcessId,ppguidEventContext) (This)->lpVtbl->OnNotify(This,dwSenderProcessId,ppguidEventContext)
   3337 #else
   3338 /*** IUnknown methods ***/
   3339 static FORCEINLINE HRESULT IControlChangeNotify_QueryInterface(IControlChangeNotify* This,REFIID riid,void **ppvObject) {
   3340     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3341 }
   3342 static FORCEINLINE ULONG IControlChangeNotify_AddRef(IControlChangeNotify* This) {
   3343     return This->lpVtbl->AddRef(This);
   3344 }
   3345 static FORCEINLINE ULONG IControlChangeNotify_Release(IControlChangeNotify* This) {
   3346     return This->lpVtbl->Release(This);
   3347 }
   3348 /*** IControlChangeNotify methods ***/
   3349 static FORCEINLINE HRESULT IControlChangeNotify_OnNotify(IControlChangeNotify* This,DWORD dwSenderProcessId,LPCGUID ppguidEventContext) {
   3350     return This->lpVtbl->OnNotify(This,dwSenderProcessId,ppguidEventContext);
   3351 }
   3352 #endif
   3353 #endif
   3354 
   3355 #endif
   3356 
   3357 HRESULT STDMETHODCALLTYPE IControlChangeNotify_OnNotify_Proxy(
   3358     IControlChangeNotify* This,
   3359     DWORD dwSenderProcessId,
   3360     LPCGUID ppguidEventContext);
   3361 void __RPC_STUB IControlChangeNotify_OnNotify_Stub(
   3362     IRpcStubBuffer* This,
   3363     IRpcChannelBuffer* pRpcChannelBuffer,
   3364     PRPC_MESSAGE pRpcMessage,
   3365     DWORD* pdwStubPhase);
   3366 
   3367 #endif  /* __IControlChangeNotify_INTERFACE_DEFINED__ */
   3368 
   3369 /*****************************************************************************
   3370  * IDeviceTopology interface
   3371  */
   3372 #ifndef __IDeviceTopology_INTERFACE_DEFINED__
   3373 #define __IDeviceTopology_INTERFACE_DEFINED__
   3374 
   3375 DEFINE_GUID(IID_IDeviceTopology, 0x2a07407e, 0x6497, 0x4a18, 0x97,0x87, 0x32,0xf7,0x9b,0xd0,0xd9,0x8f);
   3376 #if defined(__cplusplus) && !defined(CINTERFACE)
   3377 MIDL_INTERFACE("2a07407e-6497-4a18-9787-32f79bd0d98f")
   3378 IDeviceTopology : public IUnknown
   3379 {
   3380     virtual HRESULT STDMETHODCALLTYPE GetConnectorCount(
   3381         UINT *pCount) = 0;
   3382 
   3383     virtual HRESULT STDMETHODCALLTYPE GetConnector(
   3384         UINT nIndex,
   3385         IConnector **ppConnector) = 0;
   3386 
   3387     virtual HRESULT STDMETHODCALLTYPE GetSubunitCount(
   3388         UINT *pCount) = 0;
   3389 
   3390     virtual HRESULT STDMETHODCALLTYPE GetSubunit(
   3391         UINT nIndex,
   3392         ISubUnit **ppConnector) = 0;
   3393 
   3394     virtual HRESULT STDMETHODCALLTYPE GetPartById(
   3395         UINT nId,
   3396         IPart **ppPart) = 0;
   3397 
   3398     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
   3399         LPWSTR *ppwstrDeviceId) = 0;
   3400 
   3401     virtual HRESULT STDMETHODCALLTYPE GetSignalPath(
   3402         IPart *pIPartFrom,
   3403         IPart *pIPartTo,
   3404         WINBOOL bRejectMixedPaths,
   3405         IPartsList **ppParts) = 0;
   3406 
   3407 };
   3408 #ifdef __CRT_UUID_DECL
   3409 __CRT_UUID_DECL(IDeviceTopology, 0x2a07407e, 0x6497, 0x4a18, 0x97,0x87, 0x32,0xf7,0x9b,0xd0,0xd9,0x8f)
   3410 #endif
   3411 #else
   3412 typedef struct IDeviceTopologyVtbl {
   3413     BEGIN_INTERFACE
   3414 
   3415     /*** IUnknown methods ***/
   3416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3417         IDeviceTopology* This,
   3418         REFIID riid,
   3419         void **ppvObject);
   3420 
   3421     ULONG (STDMETHODCALLTYPE *AddRef)(
   3422         IDeviceTopology* This);
   3423 
   3424     ULONG (STDMETHODCALLTYPE *Release)(
   3425         IDeviceTopology* This);
   3426 
   3427     /*** IDeviceTopology methods ***/
   3428     HRESULT (STDMETHODCALLTYPE *GetConnectorCount)(
   3429         IDeviceTopology* This,
   3430         UINT *pCount);
   3431 
   3432     HRESULT (STDMETHODCALLTYPE *GetConnector)(
   3433         IDeviceTopology* This,
   3434         UINT nIndex,
   3435         IConnector **ppConnector);
   3436 
   3437     HRESULT (STDMETHODCALLTYPE *GetSubunitCount)(
   3438         IDeviceTopology* This,
   3439         UINT *pCount);
   3440 
   3441     HRESULT (STDMETHODCALLTYPE *GetSubunit)(
   3442         IDeviceTopology* This,
   3443         UINT nIndex,
   3444         ISubUnit **ppConnector);
   3445 
   3446     HRESULT (STDMETHODCALLTYPE *GetPartById)(
   3447         IDeviceTopology* This,
   3448         UINT nId,
   3449         IPart **ppPart);
   3450 
   3451     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
   3452         IDeviceTopology* This,
   3453         LPWSTR *ppwstrDeviceId);
   3454 
   3455     HRESULT (STDMETHODCALLTYPE *GetSignalPath)(
   3456         IDeviceTopology* This,
   3457         IPart *pIPartFrom,
   3458         IPart *pIPartTo,
   3459         WINBOOL bRejectMixedPaths,
   3460         IPartsList **ppParts);
   3461 
   3462     END_INTERFACE
   3463 } IDeviceTopologyVtbl;
   3464 interface IDeviceTopology {
   3465     CONST_VTBL IDeviceTopologyVtbl* lpVtbl;
   3466 };
   3467 
   3468 #ifdef COBJMACROS
   3469 #ifndef WIDL_C_INLINE_WRAPPERS
   3470 /*** IUnknown methods ***/
   3471 #define IDeviceTopology_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3472 #define IDeviceTopology_AddRef(This) (This)->lpVtbl->AddRef(This)
   3473 #define IDeviceTopology_Release(This) (This)->lpVtbl->Release(This)
   3474 /*** IDeviceTopology methods ***/
   3475 #define IDeviceTopology_GetConnectorCount(This,pCount) (This)->lpVtbl->GetConnectorCount(This,pCount)
   3476 #define IDeviceTopology_GetConnector(This,nIndex,ppConnector) (This)->lpVtbl->GetConnector(This,nIndex,ppConnector)
   3477 #define IDeviceTopology_GetSubunitCount(This,pCount) (This)->lpVtbl->GetSubunitCount(This,pCount)
   3478 #define IDeviceTopology_GetSubunit(This,nIndex,ppConnector) (This)->lpVtbl->GetSubunit(This,nIndex,ppConnector)
   3479 #define IDeviceTopology_GetPartById(This,nId,ppPart) (This)->lpVtbl->GetPartById(This,nId,ppPart)
   3480 #define IDeviceTopology_GetDeviceId(This,ppwstrDeviceId) (This)->lpVtbl->GetDeviceId(This,ppwstrDeviceId)
   3481 #define IDeviceTopology_GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts) (This)->lpVtbl->GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts)
   3482 #else
   3483 /*** IUnknown methods ***/
   3484 static FORCEINLINE HRESULT IDeviceTopology_QueryInterface(IDeviceTopology* This,REFIID riid,void **ppvObject) {
   3485     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3486 }
   3487 static FORCEINLINE ULONG IDeviceTopology_AddRef(IDeviceTopology* This) {
   3488     return This->lpVtbl->AddRef(This);
   3489 }
   3490 static FORCEINLINE ULONG IDeviceTopology_Release(IDeviceTopology* This) {
   3491     return This->lpVtbl->Release(This);
   3492 }
   3493 /*** IDeviceTopology methods ***/
   3494 static FORCEINLINE HRESULT IDeviceTopology_GetConnectorCount(IDeviceTopology* This,UINT *pCount) {
   3495     return This->lpVtbl->GetConnectorCount(This,pCount);
   3496 }
   3497 static FORCEINLINE HRESULT IDeviceTopology_GetConnector(IDeviceTopology* This,UINT nIndex,IConnector **ppConnector) {
   3498     return This->lpVtbl->GetConnector(This,nIndex,ppConnector);
   3499 }
   3500 static FORCEINLINE HRESULT IDeviceTopology_GetSubunitCount(IDeviceTopology* This,UINT *pCount) {
   3501     return This->lpVtbl->GetSubunitCount(This,pCount);
   3502 }
   3503 static FORCEINLINE HRESULT IDeviceTopology_GetSubunit(IDeviceTopology* This,UINT nIndex,ISubUnit **ppConnector) {
   3504     return This->lpVtbl->GetSubunit(This,nIndex,ppConnector);
   3505 }
   3506 static FORCEINLINE HRESULT IDeviceTopology_GetPartById(IDeviceTopology* This,UINT nId,IPart **ppPart) {
   3507     return This->lpVtbl->GetPartById(This,nId,ppPart);
   3508 }
   3509 static FORCEINLINE HRESULT IDeviceTopology_GetDeviceId(IDeviceTopology* This,LPWSTR *ppwstrDeviceId) {
   3510     return This->lpVtbl->GetDeviceId(This,ppwstrDeviceId);
   3511 }
   3512 static FORCEINLINE HRESULT IDeviceTopology_GetSignalPath(IDeviceTopology* This,IPart *pIPartFrom,IPart *pIPartTo,WINBOOL bRejectMixedPaths,IPartsList **ppParts) {
   3513     return This->lpVtbl->GetSignalPath(This,pIPartFrom,pIPartTo,bRejectMixedPaths,ppParts);
   3514 }
   3515 #endif
   3516 #endif
   3517 
   3518 #endif
   3519 
   3520 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetConnectorCount_Proxy(
   3521     IDeviceTopology* This,
   3522     UINT *pCount);
   3523 void __RPC_STUB IDeviceTopology_GetConnectorCount_Stub(
   3524     IRpcStubBuffer* This,
   3525     IRpcChannelBuffer* pRpcChannelBuffer,
   3526     PRPC_MESSAGE pRpcMessage,
   3527     DWORD* pdwStubPhase);
   3528 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetConnector_Proxy(
   3529     IDeviceTopology* This,
   3530     UINT nIndex,
   3531     IConnector **ppConnector);
   3532 void __RPC_STUB IDeviceTopology_GetConnector_Stub(
   3533     IRpcStubBuffer* This,
   3534     IRpcChannelBuffer* pRpcChannelBuffer,
   3535     PRPC_MESSAGE pRpcMessage,
   3536     DWORD* pdwStubPhase);
   3537 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetSubunitCount_Proxy(
   3538     IDeviceTopology* This,
   3539     UINT *pCount);
   3540 void __RPC_STUB IDeviceTopology_GetSubunitCount_Stub(
   3541     IRpcStubBuffer* This,
   3542     IRpcChannelBuffer* pRpcChannelBuffer,
   3543     PRPC_MESSAGE pRpcMessage,
   3544     DWORD* pdwStubPhase);
   3545 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetSubunit_Proxy(
   3546     IDeviceTopology* This,
   3547     UINT nIndex,
   3548     ISubUnit **ppConnector);
   3549 void __RPC_STUB IDeviceTopology_GetSubunit_Stub(
   3550     IRpcStubBuffer* This,
   3551     IRpcChannelBuffer* pRpcChannelBuffer,
   3552     PRPC_MESSAGE pRpcMessage,
   3553     DWORD* pdwStubPhase);
   3554 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetPartById_Proxy(
   3555     IDeviceTopology* This,
   3556     UINT nId,
   3557     IPart **ppPart);
   3558 void __RPC_STUB IDeviceTopology_GetPartById_Stub(
   3559     IRpcStubBuffer* This,
   3560     IRpcChannelBuffer* pRpcChannelBuffer,
   3561     PRPC_MESSAGE pRpcMessage,
   3562     DWORD* pdwStubPhase);
   3563 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetDeviceId_Proxy(
   3564     IDeviceTopology* This,
   3565     LPWSTR *ppwstrDeviceId);
   3566 void __RPC_STUB IDeviceTopology_GetDeviceId_Stub(
   3567     IRpcStubBuffer* This,
   3568     IRpcChannelBuffer* pRpcChannelBuffer,
   3569     PRPC_MESSAGE pRpcMessage,
   3570     DWORD* pdwStubPhase);
   3571 HRESULT STDMETHODCALLTYPE IDeviceTopology_GetSignalPath_Proxy(
   3572     IDeviceTopology* This,
   3573     IPart *pIPartFrom,
   3574     IPart *pIPartTo,
   3575     WINBOOL bRejectMixedPaths,
   3576     IPartsList **ppParts);
   3577 void __RPC_STUB IDeviceTopology_GetSignalPath_Stub(
   3578     IRpcStubBuffer* This,
   3579     IRpcChannelBuffer* pRpcChannelBuffer,
   3580     PRPC_MESSAGE pRpcMessage,
   3581     DWORD* pdwStubPhase);
   3582 
   3583 #endif  /* __IDeviceTopology_INTERFACE_DEFINED__ */
   3584 
   3585 
   3586 DEFINE_GUID(LIBID_DevTopologyLib, 0x51b9a01d, 0x8181, 0x4363, 0xb5,0x9c, 0xe6,0x78,0xf4,0x76,0xdd,0x0e);
   3587 
   3588 /*****************************************************************************
   3589  * DeviceTopology coclass
   3590  */
   3591 
   3592 DEFINE_GUID(CLSID_DeviceTopology, 0x1df639d0, 0x5ec1, 0x47aa, 0x93,0x79, 0x82,0x8d,0xc1,0xaa,0x8c,0x59);
   3593 
   3594 #ifdef __cplusplus
   3595 class DECLSPEC_UUID("1df639d0-5ec1-47aa-9379-828dc1aa8c59") DeviceTopology;
   3596 #ifdef __CRT_UUID_DECL
   3597 __CRT_UUID_DECL(DeviceTopology, 0x1df639d0, 0x5ec1, 0x47aa, 0x93,0x79, 0x82,0x8d,0xc1,0xaa,0x8c,0x59)
   3598 #endif
   3599 #endif
   3600 
   3601 /* Begin additional prototypes for all interfaces */
   3602 
   3603 
   3604 /* End additional prototypes */
   3605 
   3606 #ifdef __cplusplus
   3607 }
   3608 #endif
   3609 
   3610 #endif /* __devicetopology_h__ */
   3611