PortAudio  2.0
devicetopology.h
Go to the documentation of this file.
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__
60 #endif /* __IPerChannelDbLevel_FWD_DEFINED__ */
61 
62 
63 #ifndef __IAudioVolumeLevel_FWD_DEFINED__
64 #define __IAudioVolumeLevel_FWD_DEFINED__
66 #endif /* __IAudioVolumeLevel_FWD_DEFINED__ */
67 
68 
69 #ifndef __IAudioChannelConfig_FWD_DEFINED__
70 #define __IAudioChannelConfig_FWD_DEFINED__
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__
84 #endif /* __IAudioInputSelector_FWD_DEFINED__ */
85 
86 
87 #ifndef __IAudioOutputSelector_FWD_DEFINED__
88 #define __IAudioOutputSelector_FWD_DEFINED__
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__
120 #endif /* __IAudioAutoGainControl_FWD_DEFINED__ */
121 
122 
123 #ifndef __IAudioPeakMeter_FWD_DEFINED__
124 #define __IAudioPeakMeter_FWD_DEFINED__
126 #endif /* __IAudioPeakMeter_FWD_DEFINED__ */
127 
128 
129 #ifndef __IDeviceSpecificProperty_FWD_DEFINED__
130 #define __IDeviceSpecificProperty_FWD_DEFINED__
132 #endif /* __IDeviceSpecificProperty_FWD_DEFINED__ */
133 
134 
135 #ifndef __IKsFormatSupport_FWD_DEFINED__
136 #define __IKsFormatSupport_FWD_DEFINED__
138 #endif /* __IKsFormatSupport_FWD_DEFINED__ */
139 
140 
141 #ifndef __IKsJackDescription_FWD_DEFINED__
142 #define __IKsJackDescription_FWD_DEFINED__
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__
174 #endif /* __IControlInterface_FWD_DEFINED__ */
175 
176 
177 #ifndef __IControlChangeNotify_FWD_DEFINED__
178 #define __IControlChangeNotify_FWD_DEFINED__
180 #endif /* __IControlChangeNotify_FWD_DEFINED__ */
181 
182 
183 #ifndef __IDeviceTopology_FWD_DEFINED__
184 #define __IDeviceTopology_FWD_DEFINED__
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
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__
258 #endif /* __IAudioAutoGainControl_FWD_DEFINED__ */
259 
260 
261 #ifndef __IAudioOutputSelector_FWD_DEFINED__
262 #define __IAudioOutputSelector_FWD_DEFINED__
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__
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 ) ,
355  eConnTypeOptical = ( eConnTypeRCA + 1 ) ,
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 ) ,
376  eGeoLocHDMI = ( eGeoLocDrivebay + 1 ) ,
379  eGeoLocReserved5 = ( eGeoLocATAPI + 1 ) ,
381  } EPcxGeoLocation;
382 
383 typedef /* [public][public][public][public] */
384 enum __MIDL___MIDL_itf_devicetopology_0000_0000_0008
385  { eGenLocPrimaryBox = 0,
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,
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;
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] */
435  { In = 0,
436  Out = ( In + 1 )
437  } DataFlow;
438 
439 typedef /* [public][public] */
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] */
457  } ConnectorType;
458 
459 
460 
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] */
668 
669  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )(
670  IPerChannelDbLevel * This,
671  /* [in] */
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] */
684  /* [out] */
685  __out float *pfLevelDB);
686 
687  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )(
688  IPerChannelDbLevel * This,
689  /* [in] */
691  /* [in] */
692  __in float fLevelDB,
693  /* [unique][in] */
695 
696  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )(
697  IPerChannelDbLevel * This,
698  /* [in] */
699  __in float fLevelDB,
700  /* [unique][in] */
702 
703  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )(
704  IPerChannelDbLevel * This,
705  /* [size_is][in] */
706  __in_ecount(cChannels) float aLevelsDB[ ],
707  /* [in] */
709  /* [unique][in] */
711 
712  END_INTERFACE
714 
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")
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] */
803 
804  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )(
805  IAudioVolumeLevel * This,
806  /* [in] */
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] */
819  /* [out] */
820  __out float *pfLevelDB);
821 
822  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )(
823  IAudioVolumeLevel * This,
824  /* [in] */
826  /* [in] */
827  __in float fLevelDB,
828  /* [unique][in] */
830 
831  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )(
832  IAudioVolumeLevel * This,
833  /* [in] */
834  __in float fLevelDB,
835  /* [unique][in] */
837 
838  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )(
839  IAudioVolumeLevel * This,
840  /* [size_is][in] */
841  __in_ecount(cChannels) float aLevelsDB[ ],
842  /* [in] */
844  /* [unique][in] */
846 
847  END_INTERFACE
849 
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] */
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] */
948 
949  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChannelConfig )(
950  IAudioChannelConfig * This,
951  /* [retval][out] */ DWORD *pdwConfig);
952 
953  END_INTERFACE
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] */
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] */
1042 
1043  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetEnabled )(
1044  IAudioLoudness * This,
1045  /* [in] */
1046  __in BOOL bEnable,
1047  /* [unique][in] */
1049 
1050  END_INTERFACE
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] */
1114 
1115  };
1116 
1117 #else /* C style interface */
1118 
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] */
1139 
1140  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSelection )(
1141  IAudioInputSelector * This,
1142  /* [in] */
1143  __in UINT nIdSelect,
1144  /* [unique][in] */
1146 
1147  END_INTERFACE
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] */
1211 
1212  };
1213 
1214 #else /* C style interface */
1215 
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] */
1236 
1237  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSelection )(
1238  IAudioOutputSelector * This,
1239  /* [in] */
1240  __in UINT nIdSelect,
1241  /* [unique][in] */
1243 
1244  END_INTERFACE
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] */
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] */
1335 
1336  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMute )(
1337  IAudioMute * This,
1338  /* [out] */
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")
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] */
1420 
1421  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )(
1422  IAudioBass * This,
1423  /* [in] */
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] */
1436  /* [out] */
1437  __out float *pfLevelDB);
1438 
1439  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )(
1440  IAudioBass * This,
1441  /* [in] */
1443  /* [in] */
1444  __in float fLevelDB,
1445  /* [unique][in] */
1447 
1448  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )(
1449  IAudioBass * This,
1450  /* [in] */
1452  /* [unique][in] */
1454 
1455  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )(
1456  IAudioBass * This,
1457  /* [size_is][in] */
1458  __in_ecount(cChannels) float aLevelsDB[ ],
1459  /* [in] */
1461  /* [unique][in] */
1463 
1464  END_INTERFACE
1465  } IAudioBassVtbl;
1466 
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")
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] */
1556 
1557  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )(
1558  IAudioMidrange * This,
1559  /* [in] */
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] */
1572  /* [out] */
1573  __out float *pfLevelDB);
1574 
1575  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )(
1576  IAudioMidrange * This,
1577  /* [in] */
1579  /* [in] */
1580  __in float fLevelDB,
1581  /* [unique][in] */
1583 
1584  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )(
1585  IAudioMidrange * This,
1586  /* [in] */
1588  /* [unique][in] */
1590 
1591  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )(
1592  IAudioMidrange * This,
1593  /* [size_is][in] */
1594  __in_ecount(cChannels) float aLevelsDB[ ],
1595  /* [in] */
1597  /* [unique][in] */
1599 
1600  END_INTERFACE
1602 
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")
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] */
1692 
1693  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevelRange )(
1694  IAudioTreble * This,
1695  /* [in] */
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] */
1708  /* [out] */
1709  __out float *pfLevelDB);
1710 
1711  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevel )(
1712  IAudioTreble * This,
1713  /* [in] */
1715  /* [in] */
1716  __in float fLevelDB,
1717  /* [unique][in] */
1719 
1720  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelUniform )(
1721  IAudioTreble * This,
1722  /* [in] */
1724  /* [unique][in] */
1726 
1727  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLevelAllChannels )(
1728  IAudioTreble * This,
1729  /* [size_is][in] */
1730  __in_ecount(cChannels) float aLevelsDB[ ],
1731  /* [in] */
1733  /* [unique][in] */
1735 
1736  END_INTERFACE
1737  } IAudioTrebleVtbl;
1738 
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] */
1813 
1814  };
1815 
1816 #else /* C style interface */
1817 
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] */
1838 
1839  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetEnabled )(
1840  IAudioAutoGainControl * This,
1841  /* [in] */
1842  __in BOOL bEnable,
1843  /* [unique][in] */
1845 
1846  END_INTERFACE
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] */
1935 
1936  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLevel )(
1937  IAudioPeakMeter * This,
1938  /* [in] */
1940  /* [out] */
1941  __out float *pfLevel);
1942 
1943  END_INTERFACE
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] */
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 
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] */
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] */
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
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
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] */
2269 
2270  END_INTERFACE
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] */
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] */
2515 
2516  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPartType )(
2517  IPart * This,
2518  /* [out] */
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] */
2536 
2537  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumPartsIncoming )(
2538  IPart * This,
2539  /* [out] */
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] */
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] */
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] */
2715 
2716  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataFlow )(
2717  IConnector * This,
2718  /* [out] */
2720 
2721  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectTo )(
2722  IConnector * This,
2723  /* [in] */
2725 
2726  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
2727  IConnector * This);
2728 
2729  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsConnected )(
2730  IConnector * This,
2731  /* [out] */
2733 
2734  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectedTo )(
2735  IConnector * This,
2736  /* [out] */
2738 
2739  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorIdConnectedTo )(
2740  IConnector * This,
2741  /* [out] */
2743 
2744  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDeviceIdConnectedTo )(
2745  IConnector * This,
2746  /* [out] */
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] */
2923 
2924  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetIID )(
2925  IControlInterface * This,
2926  /* [out] */
2927  __out GUID *pIID);
2928 
2929  END_INTERFACE
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] */
2989 
2990  };
2991 
2992 #else /* C style interface */
2993 
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] */
3016 
3017  END_INTERFACE
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] */
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] */
3152 
3153  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPartById )(
3154  IDeviceTopology * This,
3155  /* [in] */
3156  __in UINT nId,
3157  /* [out] */
3159 
3160  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDeviceId )(
3161  IDeviceTopology * This,
3162  /* [out] */
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] */
3175 
3176  END_INTERFACE
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")
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