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