PortAudio  2.0
mmdeviceapi.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 mmdeviceapi.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 __mmdeviceapi_h__
43 #define __mmdeviceapi_h__
44 
45 #if __GNUC__ >=3
46 #pragma GCC system_header
47 #endif
48 
49 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
50 #pragma once
51 #endif
52 
53 /* Forward Declarations */
54 
55 #ifndef __IMMNotificationClient_FWD_DEFINED__
56 #define __IMMNotificationClient_FWD_DEFINED__
58 #endif /* __IMMNotificationClient_FWD_DEFINED__ */
59 
60 
61 #ifndef __IMMDevice_FWD_DEFINED__
62 #define __IMMDevice_FWD_DEFINED__
63 typedef interface IMMDevice IMMDevice;
64 #endif /* __IMMDevice_FWD_DEFINED__ */
65 
66 
67 #ifndef __IMMDeviceCollection_FWD_DEFINED__
68 #define __IMMDeviceCollection_FWD_DEFINED__
70 #endif /* __IMMDeviceCollection_FWD_DEFINED__ */
71 
72 
73 #ifndef __IMMEndpoint_FWD_DEFINED__
74 #define __IMMEndpoint_FWD_DEFINED__
75 typedef interface IMMEndpoint IMMEndpoint;
76 #endif /* __IMMEndpoint_FWD_DEFINED__ */
77 
78 
79 #ifndef __IMMDeviceEnumerator_FWD_DEFINED__
80 #define __IMMDeviceEnumerator_FWD_DEFINED__
82 #endif /* __IMMDeviceEnumerator_FWD_DEFINED__ */
83 
84 
85 #ifndef __IMMDeviceActivator_FWD_DEFINED__
86 #define __IMMDeviceActivator_FWD_DEFINED__
88 #endif /* __IMMDeviceActivator_FWD_DEFINED__ */
89 
90 
91 #ifndef __MMDeviceEnumerator_FWD_DEFINED__
92 #define __MMDeviceEnumerator_FWD_DEFINED__
93 
94 #ifdef __cplusplus
96 #else
98 #endif /* __cplusplus */
99 
100 #endif /* __MMDeviceEnumerator_FWD_DEFINED__ */
101 
102 
103 /* header files for imported files */
104 #include "unknwn.h"
105 #include "propsys.h"
106 
107 #ifdef __cplusplus
108 extern "C"{
109 #endif
110 
111 
112 /* interface __MIDL_itf_mmdeviceapi_0000_0000 */
113 /* [local] */
114 
115 #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
116 #define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)
117 #define DEVICE_STATE_ACTIVE 0x00000001
118 #define DEVICE_STATE_DISABLED 0x00000002
119 #define DEVICE_STATE_NOTPRESENT 0x00000004
120 #define DEVICE_STATE_UNPLUGGED 0x00000008
121 #define DEVICE_STATEMASK_ALL 0x0000000f
122 #ifdef DEFINE_PROPERTYKEY
123 #undef DEFINE_PROPERTYKEY
124 #endif
125 #ifdef INITGUID
126 #define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const PROPERTYKEY name = { { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid }
127 #else
128 #define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const PROPERTYKEY name
129 #endif // INITGUID
130 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 0);
131 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 1);
132 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 2);
133 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 3);
134 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 4);
135 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 5);
136 #define ENDPOINT_SYSFX_ENABLED 0x00000000 // System Effects are enabled.
137 #define ENDPOINT_SYSFX_DISABLED 0x00000001 // System Effects are disabled.
138 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers, 0x1da5d803, 0xd492, 0x4edd, 0x8c, 0x23, 0xe0, 0xc0, 0xff, 0xee, 0x7f, 0x0e, 6);
139 DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat, 0xf19f064d, 0x82c, 0x4e27, 0xbc, 0x73, 0x68, 0x82, 0xa1, 0xbb, 0x8e, 0x4c, 0);
141  {
146 
148 
149 typedef /* [public][public][public][public][public] */
151  { eRender = 0,
152  eCapture = ( eRender + 1 ) ,
153  eAll = ( eCapture + 1 ) ,
155  } EDataFlow;
156 
157 typedef /* [public][public][public] */
159  { eConsole = 0,
160  eMultimedia = ( eConsole + 1 ) ,
163  } ERole;
164 
165 typedef /* [public] */
169  LineLevel = ( Speakers + 1 ) ,
170  Headphones = ( LineLevel + 1 ) ,
171  Microphone = ( Headphones + 1 ) ,
172  Headset = ( Microphone + 1 ) ,
173  Handset = ( Headset + 1 ) ,
176  HDMI = ( SPDIF + 1 ) ,
179 
180 
181 
184 
185 #ifndef __IMMNotificationClient_INTERFACE_DEFINED__
186 #define __IMMNotificationClient_INTERFACE_DEFINED__
187 
188 /* interface IMMNotificationClient */
189 /* [unique][helpstring][nonextensible][uuid][local][object] */
190 
191 
192 EXTERN_C const IID IID_IMMNotificationClient;
193 
194 #if defined(__cplusplus) && !defined(CINTERFACE)
195 
196  MIDL_INTERFACE("7991EEC9-7E89-4D85-8390-6C703CEC60C0")
197  IMMNotificationClient : public IUnknown
198  {
199  public:
200  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceStateChanged(
201  /* [in] */
202  __in LPCWSTR pwstrDeviceId,
203  /* [in] */
204  __in DWORD dwNewState) = 0;
205 
206  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceAdded(
207  /* [in] */
208  __in LPCWSTR pwstrDeviceId) = 0;
209 
210  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDeviceRemoved(
211  /* [in] */
212  __in LPCWSTR pwstrDeviceId) = 0;
213 
214  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(
215  /* [in] */
216  __in EDataFlow flow,
217  /* [in] */
218  __in ERole role,
219  /* [in] */
220  __in LPCWSTR pwstrDefaultDeviceId) = 0;
221 
222  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(
223  /* [in] */
224  __in LPCWSTR pwstrDeviceId,
225  /* [in] */
226  __in const PROPERTYKEY key) = 0;
227 
228  };
229 
230 #else /* C style interface */
231 
233  {
234  BEGIN_INTERFACE
235 
236  HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
237  IMMNotificationClient * This,
238  /* [in] */ REFIID riid,
239  /* [iid_is][out] */
240  __RPC__deref_out void **ppvObject);
241 
242  ULONG ( STDMETHODCALLTYPE *AddRef )(
243  IMMNotificationClient * This);
244 
245  ULONG ( STDMETHODCALLTYPE *Release )(
246  IMMNotificationClient * This);
247 
248  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceStateChanged )(
249  IMMNotificationClient * This,
250  /* [in] */
252  /* [in] */
253  __in DWORD dwNewState);
254 
255  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceAdded )(
256  IMMNotificationClient * This,
257  /* [in] */
258  __in LPCWSTR pwstrDeviceId);
259 
260  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDeviceRemoved )(
261  IMMNotificationClient * This,
262  /* [in] */
263  __in LPCWSTR pwstrDeviceId);
264 
265  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnDefaultDeviceChanged )(
266  IMMNotificationClient * This,
267  /* [in] */
269  /* [in] */
270  __in ERole role,
271  /* [in] */
272  __in LPCWSTR pwstrDefaultDeviceId);
273 
274  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnPropertyValueChanged )(
275  IMMNotificationClient * This,
276  /* [in] */
278  /* [in] */
279  __in const PROPERTYKEY key);
280 
281  END_INTERFACE
283 
284  interface IMMNotificationClient
285  {
286  CONST_VTBL struct IMMNotificationClientVtbl *lpVtbl;
287  };
288 
289 
290 
291 #ifdef COBJMACROS
292 
293 
294 #define IMMNotificationClient_QueryInterface(This,riid,ppvObject) \
295  ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
296 
297 #define IMMNotificationClient_AddRef(This) \
298  ( (This)->lpVtbl -> AddRef(This) )
299 
300 #define IMMNotificationClient_Release(This) \
301  ( (This)->lpVtbl -> Release(This) )
302 
303 
304 #define IMMNotificationClient_OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) \
305  ( (This)->lpVtbl -> OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) )
306 
307 #define IMMNotificationClient_OnDeviceAdded(This,pwstrDeviceId) \
308  ( (This)->lpVtbl -> OnDeviceAdded(This,pwstrDeviceId) )
309 
310 #define IMMNotificationClient_OnDeviceRemoved(This,pwstrDeviceId) \
311  ( (This)->lpVtbl -> OnDeviceRemoved(This,pwstrDeviceId) )
312 
313 #define IMMNotificationClient_OnDefaultDeviceChanged(This,flow,role,pwstrDefaultDeviceId) \
314  ( (This)->lpVtbl -> OnDefaultDeviceChanged(This,flow,role,pwstrDefaultDeviceId) )
315 
316 #define IMMNotificationClient_OnPropertyValueChanged(This,pwstrDeviceId,key) \
317  ( (This)->lpVtbl -> OnPropertyValueChanged(This,pwstrDeviceId,key) )
318 
319 #endif /* COBJMACROS */
320 
321 
322 #endif /* C style interface */
323 
324 
325 
326 
327 #endif /* __IMMNotificationClient_INTERFACE_DEFINED__ */
328 
329 
330 #ifndef __IMMDevice_INTERFACE_DEFINED__
331 #define __IMMDevice_INTERFACE_DEFINED__
332 
333 /* interface IMMDevice */
334 /* [unique][helpstring][nonextensible][uuid][local][object] */
335 
336 
337 EXTERN_C const IID IID_IMMDevice;
338 
339 #if defined(__cplusplus) && !defined(CINTERFACE)
340 
341  MIDL_INTERFACE("D666063F-1587-4E43-81F1-B948E807363F")
342  IMMDevice : public IUnknown
343  {
344  public:
345  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate(
346  /* [in] */
347  __in REFIID iid,
348  /* [in] */
349  __in DWORD dwClsCtx,
350  /* [unique][in] */
351  __in_opt PROPVARIANT *pActivationParams,
352  /* [iid_is][out] */
353  __out void **ppInterface) = 0;
354 
355  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenPropertyStore(
356  /* [in] */
357  __in DWORD stgmAccess,
358  /* [out] */
359  __out IPropertyStore **ppProperties) = 0;
360 
361  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetId(
362  /* [out] */
363  __deref_out LPWSTR *ppstrId) = 0;
364 
365  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetState(
366  /* [out] */
367  __out DWORD *pdwState) = 0;
368 
369  };
370 
371 #else /* C style interface */
372 
373  typedef struct IMMDeviceVtbl
374  {
375  BEGIN_INTERFACE
376 
377  HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
378  IMMDevice * This,
379  /* [in] */ REFIID riid,
380  /* [iid_is][out] */
381  __RPC__deref_out void **ppvObject);
382 
383  ULONG ( STDMETHODCALLTYPE *AddRef )(
384  IMMDevice * This);
385 
386  ULONG ( STDMETHODCALLTYPE *Release )(
387  IMMDevice * This);
388 
389  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )(
390  IMMDevice * This,
391  /* [in] */
392  __in REFIID iid,
393  /* [in] */
394  __in DWORD dwClsCtx,
395  /* [unique][in] */
397  /* [iid_is][out] */
398  __out void **ppInterface);
399 
400  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenPropertyStore )(
401  IMMDevice * This,
402  /* [in] */
404  /* [out] */
406 
407  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetId )(
408  IMMDevice * This,
409  /* [out] */
411 
412  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetState )(
413  IMMDevice * This,
414  /* [out] */
415  __out DWORD *pdwState);
416 
417  END_INTERFACE
418  } IMMDeviceVtbl;
419 
420  interface IMMDevice
421  {
422  CONST_VTBL struct IMMDeviceVtbl *lpVtbl;
423  };
424 
425 
426 
427 #ifdef COBJMACROS
428 
429 
430 #define IMMDevice_QueryInterface(This,riid,ppvObject) \
431  ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
432 
433 #define IMMDevice_AddRef(This) \
434  ( (This)->lpVtbl -> AddRef(This) )
435 
436 #define IMMDevice_Release(This) \
437  ( (This)->lpVtbl -> Release(This) )
438 
439 
440 #define IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppInterface) \
441  ( (This)->lpVtbl -> Activate(This,iid,dwClsCtx,pActivationParams,ppInterface) )
442 
443 #define IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) \
444  ( (This)->lpVtbl -> OpenPropertyStore(This,stgmAccess,ppProperties) )
445 
446 #define IMMDevice_GetId(This,ppstrId) \
447  ( (This)->lpVtbl -> GetId(This,ppstrId) )
448 
449 #define IMMDevice_GetState(This,pdwState) \
450  ( (This)->lpVtbl -> GetState(This,pdwState) )
451 
452 #endif /* COBJMACROS */
453 
454 
455 #endif /* C style interface */
456 
457 
458 
459 
460 #endif /* __IMMDevice_INTERFACE_DEFINED__ */
461 
462 
463 #ifndef __IMMDeviceCollection_INTERFACE_DEFINED__
464 #define __IMMDeviceCollection_INTERFACE_DEFINED__
465 
466 /* interface IMMDeviceCollection */
467 /* [unique][helpstring][nonextensible][uuid][local][object] */
468 
469 
470 EXTERN_C const IID IID_IMMDeviceCollection;
471 
472 #if defined(__cplusplus) && !defined(CINTERFACE)
473 
474  MIDL_INTERFACE("0BD7A1BE-7A1A-44DB-8397-CC5392387B5E")
475  IMMDeviceCollection : public IUnknown
476  {
477  public:
478  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount(
479  /* [out] */
480  __out UINT *pcDevices) = 0;
481 
482  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item(
483  /* [in] */
484  __in UINT nDevice,
485  /* [out] */
486  __out IMMDevice **ppDevice) = 0;
487 
488  };
489 
490 #else /* C style interface */
491 
492  typedef struct IMMDeviceCollectionVtbl
493  {
494  BEGIN_INTERFACE
495 
496  HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
497  IMMDeviceCollection * This,
498  /* [in] */ REFIID riid,
499  /* [iid_is][out] */
500  __RPC__deref_out void **ppvObject);
501 
502  ULONG ( STDMETHODCALLTYPE *AddRef )(
503  IMMDeviceCollection * This);
504 
505  ULONG ( STDMETHODCALLTYPE *Release )(
506  IMMDeviceCollection * This);
507 
508  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )(
509  IMMDeviceCollection * This,
510  /* [out] */
511  __out UINT *pcDevices);
512 
513  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )(
514  IMMDeviceCollection * This,
515  /* [in] */
516  __in UINT nDevice,
517  /* [out] */
519 
520  END_INTERFACE
522 
523  interface IMMDeviceCollection
524  {
525  CONST_VTBL struct IMMDeviceCollectionVtbl *lpVtbl;
526  };
527 
528 
529 
530 #ifdef COBJMACROS
531 
532 
533 #define IMMDeviceCollection_QueryInterface(This,riid,ppvObject) \
534  ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
535 
536 #define IMMDeviceCollection_AddRef(This) \
537  ( (This)->lpVtbl -> AddRef(This) )
538 
539 #define IMMDeviceCollection_Release(This) \
540  ( (This)->lpVtbl -> Release(This) )
541 
542 
543 #define IMMDeviceCollection_GetCount(This,pcDevices) \
544  ( (This)->lpVtbl -> GetCount(This,pcDevices) )
545 
546 #define IMMDeviceCollection_Item(This,nDevice,ppDevice) \
547  ( (This)->lpVtbl -> Item(This,nDevice,ppDevice) )
548 
549 #endif /* COBJMACROS */
550 
551 
552 #endif /* C style interface */
553 
554 
555 
556 
557 #endif /* __IMMDeviceCollection_INTERFACE_DEFINED__ */
558 
559 
560 #ifndef __IMMEndpoint_INTERFACE_DEFINED__
561 #define __IMMEndpoint_INTERFACE_DEFINED__
562 
563 /* interface IMMEndpoint */
564 /* [unique][helpstring][nonextensible][uuid][local][object] */
565 
566 
567 EXTERN_C const IID IID_IMMEndpoint;
568 
569 #if defined(__cplusplus) && !defined(CINTERFACE)
570 
571  MIDL_INTERFACE("1BE09788-6894-4089-8586-9A2A6C265AC5")
572  IMMEndpoint : public IUnknown
573  {
574  public:
575  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDataFlow(
576  /* [out] */
577  __out EDataFlow *pDataFlow) = 0;
578 
579  };
580 
581 #else /* C style interface */
582 
583  typedef struct IMMEndpointVtbl
584  {
585  BEGIN_INTERFACE
586 
587  HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
588  IMMEndpoint * This,
589  /* [in] */ REFIID riid,
590  /* [iid_is][out] */
591  __RPC__deref_out void **ppvObject);
592 
593  ULONG ( STDMETHODCALLTYPE *AddRef )(
594  IMMEndpoint * This);
595 
596  ULONG ( STDMETHODCALLTYPE *Release )(
597  IMMEndpoint * This);
598 
599  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataFlow )(
600  IMMEndpoint * This,
601  /* [out] */
603 
604  END_INTERFACE
605  } IMMEndpointVtbl;
606 
607  interface IMMEndpoint
608  {
609  CONST_VTBL struct IMMEndpointVtbl *lpVtbl;
610  };
611 
612 
613 
614 #ifdef COBJMACROS
615 
616 
617 #define IMMEndpoint_QueryInterface(This,riid,ppvObject) \
618  ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
619 
620 #define IMMEndpoint_AddRef(This) \
621  ( (This)->lpVtbl -> AddRef(This) )
622 
623 #define IMMEndpoint_Release(This) \
624  ( (This)->lpVtbl -> Release(This) )
625 
626 
627 #define IMMEndpoint_GetDataFlow(This,pDataFlow) \
628  ( (This)->lpVtbl -> GetDataFlow(This,pDataFlow) )
629 
630 #endif /* COBJMACROS */
631 
632 
633 #endif /* C style interface */
634 
635 
636 
637 
638 #endif /* __IMMEndpoint_INTERFACE_DEFINED__ */
639 
640 
641 #ifndef __IMMDeviceEnumerator_INTERFACE_DEFINED__
642 #define __IMMDeviceEnumerator_INTERFACE_DEFINED__
643 
644 /* interface IMMDeviceEnumerator */
645 /* [unique][helpstring][nonextensible][uuid][local][object] */
646 
647 
648 EXTERN_C const IID IID_IMMDeviceEnumerator;
649 
650 #if defined(__cplusplus) && !defined(CINTERFACE)
651 
652  MIDL_INTERFACE("A95664D2-9614-4F35-A746-DE8DB63617E6")
653  IMMDeviceEnumerator : public IUnknown
654  {
655  public:
656  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnumAudioEndpoints(
657  /* [in] */
658  __in EDataFlow dataFlow,
659  /* [in] */
660  __in DWORD dwStateMask,
661  /* [out] */
662  __out IMMDeviceCollection **ppDevices) = 0;
663 
664  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDefaultAudioEndpoint(
665  /* [in] */
666  __in EDataFlow dataFlow,
667  /* [in] */
668  __in ERole role,
669  /* [out] */
670  __out IMMDevice **ppEndpoint) = 0;
671 
672  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDevice(
673  /* */
674  __in LPCWSTR pwstrId,
675  /* [out] */
676  __out IMMDevice **ppDevice) = 0;
677 
678  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterEndpointNotificationCallback(
679  /* [in] */
680  __in IMMNotificationClient *pClient) = 0;
681 
682  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnregisterEndpointNotificationCallback(
683  /* [in] */
684  __in IMMNotificationClient *pClient) = 0;
685 
686  };
687 
688 #else /* C style interface */
689 
690  typedef struct IMMDeviceEnumeratorVtbl
691  {
692  BEGIN_INTERFACE
693 
694  HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
695  IMMDeviceEnumerator * This,
696  /* [in] */ REFIID riid,
697  /* [iid_is][out] */
698  __RPC__deref_out void **ppvObject);
699 
700  ULONG ( STDMETHODCALLTYPE *AddRef )(
701  IMMDeviceEnumerator * This);
702 
703  ULONG ( STDMETHODCALLTYPE *Release )(
704  IMMDeviceEnumerator * This);
705 
706  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumAudioEndpoints )(
707  IMMDeviceEnumerator * This,
708  /* [in] */
710  /* [in] */
711  __in DWORD dwStateMask,
712  /* [out] */
714 
715  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultAudioEndpoint )(
716  IMMDeviceEnumerator * This,
717  /* [in] */
719  /* [in] */
720  __in ERole role,
721  /* [out] */
723 
724  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
725  IMMDeviceEnumerator * This,
726  /* */
727  __in LPCWSTR pwstrId,
728  /* [out] */
730 
731  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterEndpointNotificationCallback )(
732  IMMDeviceEnumerator * This,
733  /* [in] */
735 
736  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnregisterEndpointNotificationCallback )(
737  IMMDeviceEnumerator * This,
738  /* [in] */
740 
741  END_INTERFACE
743 
744  interface IMMDeviceEnumerator
745  {
746  CONST_VTBL struct IMMDeviceEnumeratorVtbl *lpVtbl;
747  };
748 
749 
750 
751 #ifdef COBJMACROS
752 
753 
754 #define IMMDeviceEnumerator_QueryInterface(This,riid,ppvObject) \
755  ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
756 
757 #define IMMDeviceEnumerator_AddRef(This) \
758  ( (This)->lpVtbl -> AddRef(This) )
759 
760 #define IMMDeviceEnumerator_Release(This) \
761  ( (This)->lpVtbl -> Release(This) )
762 
763 
764 #define IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) \
765  ( (This)->lpVtbl -> EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) )
766 
767 #define IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) \
768  ( (This)->lpVtbl -> GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) )
769 
770 #define IMMDeviceEnumerator_GetDevice(This,pwstrId,ppDevice) \
771  ( (This)->lpVtbl -> GetDevice(This,pwstrId,ppDevice) )
772 
773 #define IMMDeviceEnumerator_RegisterEndpointNotificationCallback(This,pClient) \
774  ( (This)->lpVtbl -> RegisterEndpointNotificationCallback(This,pClient) )
775 
776 #define IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(This,pClient) \
777  ( (This)->lpVtbl -> UnregisterEndpointNotificationCallback(This,pClient) )
778 
779 #endif /* COBJMACROS */
780 
781 
782 #endif /* C style interface */
783 
784 
785 
786 
787 #endif /* __IMMDeviceEnumerator_INTERFACE_DEFINED__ */
788 
789 
790 #ifndef __IMMDeviceActivator_INTERFACE_DEFINED__
791 #define __IMMDeviceActivator_INTERFACE_DEFINED__
792 
793 /* interface IMMDeviceActivator */
794 /* [unique][helpstring][nonextensible][uuid][local][object] */
795 
796 
797 EXTERN_C const IID IID_IMMDeviceActivator;
798 
799 #if defined(__cplusplus) && !defined(CINTERFACE)
800 
801  MIDL_INTERFACE("3B0D0EA4-D0A9-4B0E-935B-09516746FAC0")
802  IMMDeviceActivator : public IUnknown
803  {
804  public:
805  virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate(
806  /* [in] */
807  __in REFIID iid,
808  /* [in] */
809  __in IMMDevice *pDevice,
810  /* [in] */
811  __in_opt PROPVARIANT *pActivationParams,
812  /* [iid_is][out] */
813  __out void **ppInterface) = 0;
814 
815  };
816 
817 #else /* C style interface */
818 
819  typedef struct IMMDeviceActivatorVtbl
820  {
821  BEGIN_INTERFACE
822 
823  HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
824  IMMDeviceActivator * This,
825  /* [in] */ REFIID riid,
826  /* [iid_is][out] */
827  __RPC__deref_out void **ppvObject);
828 
829  ULONG ( STDMETHODCALLTYPE *AddRef )(
830  IMMDeviceActivator * This);
831 
832  ULONG ( STDMETHODCALLTYPE *Release )(
833  IMMDeviceActivator * This);
834 
835  /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )(
836  IMMDeviceActivator * This,
837  /* [in] */
838  __in REFIID iid,
839  /* [in] */
841  /* [in] */
843  /* [iid_is][out] */
844  __out void **ppInterface);
845 
846  END_INTERFACE
848 
849  interface IMMDeviceActivator
850  {
851  CONST_VTBL struct IMMDeviceActivatorVtbl *lpVtbl;
852  };
853 
854 
855 
856 #ifdef COBJMACROS
857 
858 
859 #define IMMDeviceActivator_QueryInterface(This,riid,ppvObject) \
860  ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
861 
862 #define IMMDeviceActivator_AddRef(This) \
863  ( (This)->lpVtbl -> AddRef(This) )
864 
865 #define IMMDeviceActivator_Release(This) \
866  ( (This)->lpVtbl -> Release(This) )
867 
868 
869 #define IMMDeviceActivator_Activate(This,iid,pDevice,pActivationParams,ppInterface) \
870  ( (This)->lpVtbl -> Activate(This,iid,pDevice,pActivationParams,ppInterface) )
871 
872 #endif /* COBJMACROS */
873 
874 
875 #endif /* C style interface */
876 
877 
878 
879 
880 #endif /* __IMMDeviceActivator_INTERFACE_DEFINED__ */
881 
882 
883 /* interface __MIDL_itf_mmdeviceapi_0000_0006 */
884 /* [local] */
885 
886 typedef /* [public] */ struct __MIDL___MIDL_itf_mmdeviceapi_0000_0006_0001
887  {
888  LPARAM AddPageParam;
893 
894 
895 
898 
899 
900 #ifndef __MMDeviceAPILib_LIBRARY_DEFINED__
901 #define __MMDeviceAPILib_LIBRARY_DEFINED__
902 
903 /* library MMDeviceAPILib */
904 /* [helpstring][version][uuid] */
905 
906 
907 EXTERN_C const IID LIBID_MMDeviceAPILib;
908 
909 EXTERN_C const CLSID CLSID_MMDeviceEnumerator;
910 
911 #ifdef __cplusplus
912 
913 class DECLSPEC_UUID("BCDE0395-E52F-467C-8E3D-C4579291692E")
915 #endif
916 #endif /* __MMDeviceAPILib_LIBRARY_DEFINED__ */
917 
918 /* Additional Prototypes for ALL interfaces */
919 
920 /* end of Additional Prototypes */
921 
922 #ifdef __cplusplus
923 }
924 #endif
925 
926 #endif
927 
928 
929 

Generated for PortAudio by  doxygen1.8.1.1