ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mmdeviceapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 36084 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /*** Autogenerated by WIDL 6.4 from include/mmdeviceapi.idl - Do not edit ***/
2
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15
16 #ifndef __mmdeviceapi_h__
17 #define __mmdeviceapi_h__
18
19 /* Forward declarations */
20
21 #ifndef __IMMNotificationClient_FWD_DEFINED__
22 #define __IMMNotificationClient_FWD_DEFINED__
23 typedef interface IMMNotificationClient IMMNotificationClient;
24 #ifdef __cplusplus
25 interface IMMNotificationClient;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IMMDevice_FWD_DEFINED__
30 #define __IMMDevice_FWD_DEFINED__
31 typedef interface IMMDevice IMMDevice;
32 #ifdef __cplusplus
33 interface IMMDevice;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IMMDeviceCollection_FWD_DEFINED__
38 #define __IMMDeviceCollection_FWD_DEFINED__
39 typedef interface IMMDeviceCollection IMMDeviceCollection;
40 #ifdef __cplusplus
41 interface IMMDeviceCollection;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IMMEndpoint_FWD_DEFINED__
46 #define __IMMEndpoint_FWD_DEFINED__
47 typedef interface IMMEndpoint IMMEndpoint;
48 #ifdef __cplusplus
49 interface IMMEndpoint;
50 #endif /* __cplusplus */
51 #endif
52
53 #ifndef __IMMDeviceEnumerator_FWD_DEFINED__
54 #define __IMMDeviceEnumerator_FWD_DEFINED__
55 typedef interface IMMDeviceEnumerator IMMDeviceEnumerator;
56 #ifdef __cplusplus
57 interface IMMDeviceEnumerator;
58 #endif /* __cplusplus */
59 #endif
60
61 #ifndef __IMMDeviceActivator_FWD_DEFINED__
62 #define __IMMDeviceActivator_FWD_DEFINED__
63 typedef interface IMMDeviceActivator IMMDeviceActivator;
64 #ifdef __cplusplus
65 interface IMMDeviceActivator;
66 #endif /* __cplusplus */
67 #endif
68
69 #ifndef __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
70 #define __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
71 typedef interface IActivateAudioInterfaceAsyncOperation IActivateAudioInterfaceAsyncOperation;
72 #ifdef __cplusplus
73 interface IActivateAudioInterfaceAsyncOperation;
74 #endif /* __cplusplus */
75 #endif
76
77 #ifndef __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
78 #define __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
79 typedef interface IActivateAudioInterfaceCompletionHandler IActivateAudioInterfaceCompletionHandler;
80 #ifdef __cplusplus
81 interface IActivateAudioInterfaceCompletionHandler;
82 #endif /* __cplusplus */
83 #endif
84
85 #ifndef __MMDeviceEnumerator_FWD_DEFINED__
86 #define __MMDeviceEnumerator_FWD_DEFINED__
87 #ifdef __cplusplus
88 typedef class MMDeviceEnumerator MMDeviceEnumerator;
89 #else
90 typedef struct MMDeviceEnumerator MMDeviceEnumerator;
91 #endif /* defined __cplusplus */
92 #endif /* defined __MMDeviceEnumerator_FWD_DEFINED__ */
93
94 /* Headers for imported files */
95
96 #include <unknwn.h>
97 #include <propsys.h>
98
99 #ifdef __cplusplus
100 extern "C" {
101 #endif
102
103 #ifndef E_NOTFOUND
104 #define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
105 #endif
106 #ifndef E_UNSUPPORTED_TYPE
107 #define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)
108 #endif
109 DEFINE_GUID(DEVINTERFACE_AUDIO_RENDER, 0xe6327cad,0xdcec,0x4949,0xae,0x8a,0x99,0x1e,0x97,0x6a,0x79,0xd2);
110 DEFINE_GUID(DEVINTERFACE_AUDIO_CAPTURE, 0x2eef81be,0x33fa,0x4800,0x96,0x70,0x1c,0xd4,0x74,0x97,0x2c,0x3f);
111 #define DEVICE_STATE_ACTIVE 0x1
112 #define DEVICE_STATE_DISABLED 0x2
113 #define DEVICE_STATE_NOTPRESENT 0x4
114 #define DEVICE_STATE_UNPLUGGED 0x8
115 #define DEVICE_STATEMASK_ALL 0xf
116 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0);
117 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1);
118 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2);
119 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3);
120 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4);
121 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,5);
122 #define ENDPOINT_SYSFX_ENABLED 0
123 #define ENDPOINT_SYSFX_DISABLED 1
124 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6);
125 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7);
126 DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8);
127 DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0);
128 DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3);
129 typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS {
130 DWORD cbDirectXAudioActivationParams;
131 GUID guidAudioSession;
132 DWORD dwAudioStreamFlags;
133 } DIRECTX_AUDIO_ACTIVATION_PARAMS;
134 typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS *PDIRECTX_AUDIO_ACTIVATION_PARAMS;
135 typedef enum _EDataFlow {
136 eRender = 0,
137 eCapture = 1,
138 eAll = 2,
139 EDataFlow_enum_count = 3
140 } EDataFlow;
141 typedef enum _ERole {
142 eConsole = 0,
143 eMultimedia = 1,
144 eCommunications = 2,
145 ERole_enum_count = 3
146 } ERole;
147 typedef enum _EndpointFormFactor {
148 RemoteNetworkDevice = 0,
149 Speakers = 1,
150 LineLevel = 2,
151 Headphones = 3,
152 Microphone = 4,
153 Headset = 5,
154 Handset = 6,
155 UnknownDigitalPassthrough = 7,
156 SPDIF = 8,
157 DigitalAudioDisplayDevice = 9,
158 UnknownFormFactor = 10,
159 EndpointFormFactor_enum_count = 11
160 } EndpointFormFactor;
161 #define HDMI DigitalAudioDisplayDevice
162 /*****************************************************************************
163 * IMMNotificationClient interface
164 */
165 #ifndef __IMMNotificationClient_INTERFACE_DEFINED__
166 #define __IMMNotificationClient_INTERFACE_DEFINED__
167
168 DEFINE_GUID(IID_IMMNotificationClient, 0x7991eec9, 0x7e89, 0x4d85, 0x83,0x90, 0x6c,0x70,0x3c,0xec,0x60,0xc0);
169 #if defined(__cplusplus) && !defined(CINTERFACE)
170 MIDL_INTERFACE("7991eec9-7e89-4d85-8390-6c703cec60c0")
171 IMMNotificationClient : public IUnknown
172 {
173 virtual HRESULT STDMETHODCALLTYPE OnDeviceStateChanged(
174 LPCWSTR pwstrDeviceId,
175 DWORD dwNewState) = 0;
176
177 virtual HRESULT STDMETHODCALLTYPE OnDeviceAdded(
178 LPCWSTR pwstrDeviceId) = 0;
179
180 virtual HRESULT STDMETHODCALLTYPE OnDeviceRemoved(
181 LPCWSTR pwstrDeviceId) = 0;
182
183 virtual HRESULT STDMETHODCALLTYPE OnDefaultDeviceChanged(
184 EDataFlow flow,
185 ERole role,
186 LPCWSTR pwstrDeviceId) = 0;
187
188 virtual HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(
189 LPCWSTR pwstrDeviceId,
190 const PROPERTYKEY key) = 0;
191
192 };
193 #ifdef __CRT_UUID_DECL
194 __CRT_UUID_DECL(IMMNotificationClient, 0x7991eec9, 0x7e89, 0x4d85, 0x83,0x90, 0x6c,0x70,0x3c,0xec,0x60,0xc0)
195 #endif
196 #else
197 typedef struct IMMNotificationClientVtbl {
198 BEGIN_INTERFACE
199
200 /*** IUnknown methods ***/
201 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
202 IMMNotificationClient *This,
203 REFIID riid,
204 void **ppvObject);
205
206 ULONG (STDMETHODCALLTYPE *AddRef)(
207 IMMNotificationClient *This);
208
209 ULONG (STDMETHODCALLTYPE *Release)(
210 IMMNotificationClient *This);
211
212 /*** IMMNotificationClient methods ***/
213 HRESULT (STDMETHODCALLTYPE *OnDeviceStateChanged)(
214 IMMNotificationClient *This,
215 LPCWSTR pwstrDeviceId,
216 DWORD dwNewState);
217
218 HRESULT (STDMETHODCALLTYPE *OnDeviceAdded)(
219 IMMNotificationClient *This,
220 LPCWSTR pwstrDeviceId);
221
222 HRESULT (STDMETHODCALLTYPE *OnDeviceRemoved)(
223 IMMNotificationClient *This,
224 LPCWSTR pwstrDeviceId);
225
226 HRESULT (STDMETHODCALLTYPE *OnDefaultDeviceChanged)(
227 IMMNotificationClient *This,
228 EDataFlow flow,
229 ERole role,
230 LPCWSTR pwstrDeviceId);
231
232 HRESULT (STDMETHODCALLTYPE *OnPropertyValueChanged)(
233 IMMNotificationClient *This,
234 LPCWSTR pwstrDeviceId,
235 const PROPERTYKEY key);
236
237 END_INTERFACE
238 } IMMNotificationClientVtbl;
239
240 interface IMMNotificationClient {
241 CONST_VTBL IMMNotificationClientVtbl* lpVtbl;
242 };
243
244 #ifdef COBJMACROS
245 #ifndef WIDL_C_INLINE_WRAPPERS
246 /*** IUnknown methods ***/
247 #define IMMNotificationClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
248 #define IMMNotificationClient_AddRef(This) (This)->lpVtbl->AddRef(This)
249 #define IMMNotificationClient_Release(This) (This)->lpVtbl->Release(This)
250 /*** IMMNotificationClient methods ***/
251 #define IMMNotificationClient_OnDeviceStateChanged(This,pwstrDeviceId,dwNewState) (This)->lpVtbl->OnDeviceStateChanged(This,pwstrDeviceId,dwNewState)
252 #define IMMNotificationClient_OnDeviceAdded(This,pwstrDeviceId) (This)->lpVtbl->OnDeviceAdded(This,pwstrDeviceId)
253 #define IMMNotificationClient_OnDeviceRemoved(This,pwstrDeviceId) (This)->lpVtbl->OnDeviceRemoved(This,pwstrDeviceId)
254 #define IMMNotificationClient_OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId) (This)->lpVtbl->OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId)
255 #define IMMNotificationClient_OnPropertyValueChanged(This,pwstrDeviceId,key) (This)->lpVtbl->OnPropertyValueChanged(This,pwstrDeviceId,key)
256 #else
257 /*** IUnknown methods ***/
258 static FORCEINLINE HRESULT IMMNotificationClient_QueryInterface(IMMNotificationClient* This,REFIID riid,void **ppvObject) {
259 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
260 }
261 static FORCEINLINE ULONG IMMNotificationClient_AddRef(IMMNotificationClient* This) {
262 return This->lpVtbl->AddRef(This);
263 }
264 static FORCEINLINE ULONG IMMNotificationClient_Release(IMMNotificationClient* This) {
265 return This->lpVtbl->Release(This);
266 }
267 /*** IMMNotificationClient methods ***/
268 static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceStateChanged(IMMNotificationClient* This,LPCWSTR pwstrDeviceId,DWORD dwNewState) {
269 return This->lpVtbl->OnDeviceStateChanged(This,pwstrDeviceId,dwNewState);
270 }
271 static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceAdded(IMMNotificationClient* This,LPCWSTR pwstrDeviceId) {
272 return This->lpVtbl->OnDeviceAdded(This,pwstrDeviceId);
273 }
274 static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceRemoved(IMMNotificationClient* This,LPCWSTR pwstrDeviceId) {
275 return This->lpVtbl->OnDeviceRemoved(This,pwstrDeviceId);
276 }
277 static FORCEINLINE HRESULT IMMNotificationClient_OnDefaultDeviceChanged(IMMNotificationClient* This,EDataFlow flow,ERole role,LPCWSTR pwstrDeviceId) {
278 return This->lpVtbl->OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId);
279 }
280 static FORCEINLINE HRESULT IMMNotificationClient_OnPropertyValueChanged(IMMNotificationClient* This,LPCWSTR pwstrDeviceId,const PROPERTYKEY key) {
281 return This->lpVtbl->OnPropertyValueChanged(This,pwstrDeviceId,key);
282 }
283 #endif
284 #endif
285
286 #endif
287
288
289 #endif /* __IMMNotificationClient_INTERFACE_DEFINED__ */
290
291 /*****************************************************************************
292 * IMMDevice interface
293 */
294 #ifndef __IMMDevice_INTERFACE_DEFINED__
295 #define __IMMDevice_INTERFACE_DEFINED__
296
297 DEFINE_GUID(IID_IMMDevice, 0xd666063f, 0x1587, 0x4e43, 0x81,0xf1, 0xb9,0x48,0xe8,0x07,0x36,0x3f);
298 #if defined(__cplusplus) && !defined(CINTERFACE)
299 MIDL_INTERFACE("d666063f-1587-4e43-81f1-b948e807363f")
300 IMMDevice : public IUnknown
301 {
302 virtual HRESULT STDMETHODCALLTYPE Activate(
303 REFIID iid,
304 DWORD dwClsCtx,
305 PROPVARIANT *pActivationParams,
306 void **ppv) = 0;
307
308 virtual HRESULT STDMETHODCALLTYPE OpenPropertyStore(
309 DWORD stgmAccess,
310 IPropertyStore **ppProperties) = 0;
311
312 virtual HRESULT STDMETHODCALLTYPE GetId(
313 LPWSTR *ppstrId) = 0;
314
315 virtual HRESULT STDMETHODCALLTYPE GetState(
316 DWORD *pdwState) = 0;
317
318 };
319 #ifdef __CRT_UUID_DECL
320 __CRT_UUID_DECL(IMMDevice, 0xd666063f, 0x1587, 0x4e43, 0x81,0xf1, 0xb9,0x48,0xe8,0x07,0x36,0x3f)
321 #endif
322 #else
323 typedef struct IMMDeviceVtbl {
324 BEGIN_INTERFACE
325
326 /*** IUnknown methods ***/
327 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
328 IMMDevice *This,
329 REFIID riid,
330 void **ppvObject);
331
332 ULONG (STDMETHODCALLTYPE *AddRef)(
333 IMMDevice *This);
334
335 ULONG (STDMETHODCALLTYPE *Release)(
336 IMMDevice *This);
337
338 /*** IMMDevice methods ***/
339 HRESULT (STDMETHODCALLTYPE *Activate)(
340 IMMDevice *This,
341 REFIID iid,
342 DWORD dwClsCtx,
343 PROPVARIANT *pActivationParams,
344 void **ppv);
345
346 HRESULT (STDMETHODCALLTYPE *OpenPropertyStore)(
347 IMMDevice *This,
348 DWORD stgmAccess,
349 IPropertyStore **ppProperties);
350
351 HRESULT (STDMETHODCALLTYPE *GetId)(
352 IMMDevice *This,
353 LPWSTR *ppstrId);
354
355 HRESULT (STDMETHODCALLTYPE *GetState)(
356 IMMDevice *This,
357 DWORD *pdwState);
358
359 END_INTERFACE
360 } IMMDeviceVtbl;
361
362 interface IMMDevice {
363 CONST_VTBL IMMDeviceVtbl* lpVtbl;
364 };
365
366 #ifdef COBJMACROS
367 #ifndef WIDL_C_INLINE_WRAPPERS
368 /*** IUnknown methods ***/
369 #define IMMDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
370 #define IMMDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
371 #define IMMDevice_Release(This) (This)->lpVtbl->Release(This)
372 /*** IMMDevice methods ***/
373 #define IMMDevice_Activate(This,iid,dwClsCtx,pActivationParams,ppv) (This)->lpVtbl->Activate(This,iid,dwClsCtx,pActivationParams,ppv)
374 #define IMMDevice_OpenPropertyStore(This,stgmAccess,ppProperties) (This)->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties)
375 #define IMMDevice_GetId(This,ppstrId) (This)->lpVtbl->GetId(This,ppstrId)
376 #define IMMDevice_GetState(This,pdwState) (This)->lpVtbl->GetState(This,pdwState)
377 #else
378 /*** IUnknown methods ***/
379 static FORCEINLINE HRESULT IMMDevice_QueryInterface(IMMDevice* This,REFIID riid,void **ppvObject) {
380 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
381 }
382 static FORCEINLINE ULONG IMMDevice_AddRef(IMMDevice* This) {
383 return This->lpVtbl->AddRef(This);
384 }
385 static FORCEINLINE ULONG IMMDevice_Release(IMMDevice* This) {
386 return This->lpVtbl->Release(This);
387 }
388 /*** IMMDevice methods ***/
389 static FORCEINLINE HRESULT IMMDevice_Activate(IMMDevice* This,REFIID iid,DWORD dwClsCtx,PROPVARIANT *pActivationParams,void **ppv) {
390 return This->lpVtbl->Activate(This,iid,dwClsCtx,pActivationParams,ppv);
391 }
392 static FORCEINLINE HRESULT IMMDevice_OpenPropertyStore(IMMDevice* This,DWORD stgmAccess,IPropertyStore **ppProperties) {
393 return This->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties);
394 }
395 static FORCEINLINE HRESULT IMMDevice_GetId(IMMDevice* This,LPWSTR *ppstrId) {
396 return This->lpVtbl->GetId(This,ppstrId);
397 }
398 static FORCEINLINE HRESULT IMMDevice_GetState(IMMDevice* This,DWORD *pdwState) {
399 return This->lpVtbl->GetState(This,pdwState);
400 }
401 #endif
402 #endif
403
404 #endif
405
406
407 #endif /* __IMMDevice_INTERFACE_DEFINED__ */
408
409 /*****************************************************************************
410 * IMMDeviceCollection interface
411 */
412 #ifndef __IMMDeviceCollection_INTERFACE_DEFINED__
413 #define __IMMDeviceCollection_INTERFACE_DEFINED__
414
415 DEFINE_GUID(IID_IMMDeviceCollection, 0x0bd7a1be, 0x7a1a, 0x44db, 0x83,0x97, 0xcc,0x53,0x92,0x38,0x7b,0x5e);
416 #if defined(__cplusplus) && !defined(CINTERFACE)
417 MIDL_INTERFACE("0bd7a1be-7a1a-44db-8397-cc5392387b5e")
418 IMMDeviceCollection : public IUnknown
419 {
420 virtual HRESULT STDMETHODCALLTYPE GetCount(
421 UINT *pcDevices) = 0;
422
423 virtual HRESULT STDMETHODCALLTYPE Item(
424 UINT nDevice,
425 IMMDevice **ppdevice) = 0;
426
427 };
428 #ifdef __CRT_UUID_DECL
429 __CRT_UUID_DECL(IMMDeviceCollection, 0x0bd7a1be, 0x7a1a, 0x44db, 0x83,0x97, 0xcc,0x53,0x92,0x38,0x7b,0x5e)
430 #endif
431 #else
432 typedef struct IMMDeviceCollectionVtbl {
433 BEGIN_INTERFACE
434
435 /*** IUnknown methods ***/
436 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
437 IMMDeviceCollection *This,
438 REFIID riid,
439 void **ppvObject);
440
441 ULONG (STDMETHODCALLTYPE *AddRef)(
442 IMMDeviceCollection *This);
443
444 ULONG (STDMETHODCALLTYPE *Release)(
445 IMMDeviceCollection *This);
446
447 /*** IMMDeviceCollection methods ***/
448 HRESULT (STDMETHODCALLTYPE *GetCount)(
449 IMMDeviceCollection *This,
450 UINT *pcDevices);
451
452 HRESULT (STDMETHODCALLTYPE *Item)(
453 IMMDeviceCollection *This,
454 UINT nDevice,
455 IMMDevice **ppdevice);
456
457 END_INTERFACE
458 } IMMDeviceCollectionVtbl;
459
460 interface IMMDeviceCollection {
461 CONST_VTBL IMMDeviceCollectionVtbl* lpVtbl;
462 };
463
464 #ifdef COBJMACROS
465 #ifndef WIDL_C_INLINE_WRAPPERS
466 /*** IUnknown methods ***/
467 #define IMMDeviceCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
468 #define IMMDeviceCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
469 #define IMMDeviceCollection_Release(This) (This)->lpVtbl->Release(This)
470 /*** IMMDeviceCollection methods ***/
471 #define IMMDeviceCollection_GetCount(This,pcDevices) (This)->lpVtbl->GetCount(This,pcDevices)
472 #define IMMDeviceCollection_Item(This,nDevice,ppdevice) (This)->lpVtbl->Item(This,nDevice,ppdevice)
473 #else
474 /*** IUnknown methods ***/
475 static FORCEINLINE HRESULT IMMDeviceCollection_QueryInterface(IMMDeviceCollection* This,REFIID riid,void **ppvObject) {
476 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
477 }
478 static FORCEINLINE ULONG IMMDeviceCollection_AddRef(IMMDeviceCollection* This) {
479 return This->lpVtbl->AddRef(This);
480 }
481 static FORCEINLINE ULONG IMMDeviceCollection_Release(IMMDeviceCollection* This) {
482 return This->lpVtbl->Release(This);
483 }
484 /*** IMMDeviceCollection methods ***/
485 static FORCEINLINE HRESULT IMMDeviceCollection_GetCount(IMMDeviceCollection* This,UINT *pcDevices) {
486 return This->lpVtbl->GetCount(This,pcDevices);
487 }
488 static FORCEINLINE HRESULT IMMDeviceCollection_Item(IMMDeviceCollection* This,UINT nDevice,IMMDevice **ppdevice) {
489 return This->lpVtbl->Item(This,nDevice,ppdevice);
490 }
491 #endif
492 #endif
493
494 #endif
495
496
497 #endif /* __IMMDeviceCollection_INTERFACE_DEFINED__ */
498
499 /*****************************************************************************
500 * IMMEndpoint interface
501 */
502 #ifndef __IMMEndpoint_INTERFACE_DEFINED__
503 #define __IMMEndpoint_INTERFACE_DEFINED__
504
505 DEFINE_GUID(IID_IMMEndpoint, 0x1be09788, 0x6894, 0x4089, 0x85,0x86, 0x9a,0x2a,0x6c,0x26,0x5a,0xc5);
506 #if defined(__cplusplus) && !defined(CINTERFACE)
507 MIDL_INTERFACE("1be09788-6894-4089-8586-9a2a6c265ac5")
508 IMMEndpoint : public IUnknown
509 {
510 virtual HRESULT STDMETHODCALLTYPE GetDataFlow(
511 EDataFlow *pDataFlow) = 0;
512
513 };
514 #ifdef __CRT_UUID_DECL
515 __CRT_UUID_DECL(IMMEndpoint, 0x1be09788, 0x6894, 0x4089, 0x85,0x86, 0x9a,0x2a,0x6c,0x26,0x5a,0xc5)
516 #endif
517 #else
518 typedef struct IMMEndpointVtbl {
519 BEGIN_INTERFACE
520
521 /*** IUnknown methods ***/
522 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
523 IMMEndpoint *This,
524 REFIID riid,
525 void **ppvObject);
526
527 ULONG (STDMETHODCALLTYPE *AddRef)(
528 IMMEndpoint *This);
529
530 ULONG (STDMETHODCALLTYPE *Release)(
531 IMMEndpoint *This);
532
533 /*** IMMEndpoint methods ***/
534 HRESULT (STDMETHODCALLTYPE *GetDataFlow)(
535 IMMEndpoint *This,
536 EDataFlow *pDataFlow);
537
538 END_INTERFACE
539 } IMMEndpointVtbl;
540
541 interface IMMEndpoint {
542 CONST_VTBL IMMEndpointVtbl* lpVtbl;
543 };
544
545 #ifdef COBJMACROS
546 #ifndef WIDL_C_INLINE_WRAPPERS
547 /*** IUnknown methods ***/
548 #define IMMEndpoint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
549 #define IMMEndpoint_AddRef(This) (This)->lpVtbl->AddRef(This)
550 #define IMMEndpoint_Release(This) (This)->lpVtbl->Release(This)
551 /*** IMMEndpoint methods ***/
552 #define IMMEndpoint_GetDataFlow(This,pDataFlow) (This)->lpVtbl->GetDataFlow(This,pDataFlow)
553 #else
554 /*** IUnknown methods ***/
555 static FORCEINLINE HRESULT IMMEndpoint_QueryInterface(IMMEndpoint* This,REFIID riid,void **ppvObject) {
556 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
557 }
558 static FORCEINLINE ULONG IMMEndpoint_AddRef(IMMEndpoint* This) {
559 return This->lpVtbl->AddRef(This);
560 }
561 static FORCEINLINE ULONG IMMEndpoint_Release(IMMEndpoint* This) {
562 return This->lpVtbl->Release(This);
563 }
564 /*** IMMEndpoint methods ***/
565 static FORCEINLINE HRESULT IMMEndpoint_GetDataFlow(IMMEndpoint* This,EDataFlow *pDataFlow) {
566 return This->lpVtbl->GetDataFlow(This,pDataFlow);
567 }
568 #endif
569 #endif
570
571 #endif
572
573
574 #endif /* __IMMEndpoint_INTERFACE_DEFINED__ */
575
576 /*****************************************************************************
577 * IMMDeviceEnumerator interface
578 */
579 #ifndef __IMMDeviceEnumerator_INTERFACE_DEFINED__
580 #define __IMMDeviceEnumerator_INTERFACE_DEFINED__
581
582 DEFINE_GUID(IID_IMMDeviceEnumerator, 0xa95664d2, 0x9614, 0x4f35, 0xa7,0x46, 0xde,0x8d,0xb6,0x36,0x17,0xe6);
583 #if defined(__cplusplus) && !defined(CINTERFACE)
584 MIDL_INTERFACE("a95664d2-9614-4f35-a746-de8db63617e6")
585 IMMDeviceEnumerator : public IUnknown
586 {
587 virtual HRESULT STDMETHODCALLTYPE EnumAudioEndpoints(
588 EDataFlow dataFlow,
589 DWORD dwStateMask,
590 IMMDeviceCollection **ppDevices) = 0;
591
592 virtual HRESULT STDMETHODCALLTYPE GetDefaultAudioEndpoint(
593 EDataFlow dataFlow,
594 ERole role,
595 IMMDevice **ppEndpoint) = 0;
596
597 virtual HRESULT STDMETHODCALLTYPE GetDevice(
598 LPCWSTR pwstrId,
599 IMMDevice **ppDevice) = 0;
600
601 virtual HRESULT STDMETHODCALLTYPE RegisterEndpointNotificationCallback(
602 IMMNotificationClient *pClient) = 0;
603
604 virtual HRESULT STDMETHODCALLTYPE UnregisterEndpointNotificationCallback(
605 IMMNotificationClient *pClient) = 0;
606
607 };
608 #ifdef __CRT_UUID_DECL
609 __CRT_UUID_DECL(IMMDeviceEnumerator, 0xa95664d2, 0x9614, 0x4f35, 0xa7,0x46, 0xde,0x8d,0xb6,0x36,0x17,0xe6)
610 #endif
611 #else
612 typedef struct IMMDeviceEnumeratorVtbl {
613 BEGIN_INTERFACE
614
615 /*** IUnknown methods ***/
616 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
617 IMMDeviceEnumerator *This,
618 REFIID riid,
619 void **ppvObject);
620
621 ULONG (STDMETHODCALLTYPE *AddRef)(
622 IMMDeviceEnumerator *This);
623
624 ULONG (STDMETHODCALLTYPE *Release)(
625 IMMDeviceEnumerator *This);
626
627 /*** IMMDeviceEnumerator methods ***/
628 HRESULT (STDMETHODCALLTYPE *EnumAudioEndpoints)(
629 IMMDeviceEnumerator *This,
630 EDataFlow dataFlow,
631 DWORD dwStateMask,
632 IMMDeviceCollection **ppDevices);
633
634 HRESULT (STDMETHODCALLTYPE *GetDefaultAudioEndpoint)(
635 IMMDeviceEnumerator *This,
636 EDataFlow dataFlow,
637 ERole role,
638 IMMDevice **ppEndpoint);
639
640 HRESULT (STDMETHODCALLTYPE *GetDevice)(
641 IMMDeviceEnumerator *This,
642 LPCWSTR pwstrId,
643 IMMDevice **ppDevice);
644
645 HRESULT (STDMETHODCALLTYPE *RegisterEndpointNotificationCallback)(
646 IMMDeviceEnumerator *This,
647 IMMNotificationClient *pClient);
648
649 HRESULT (STDMETHODCALLTYPE *UnregisterEndpointNotificationCallback)(
650 IMMDeviceEnumerator *This,
651 IMMNotificationClient *pClient);
652
653 END_INTERFACE
654 } IMMDeviceEnumeratorVtbl;
655
656 interface IMMDeviceEnumerator {
657 CONST_VTBL IMMDeviceEnumeratorVtbl* lpVtbl;
658 };
659
660 #ifdef COBJMACROS
661 #ifndef WIDL_C_INLINE_WRAPPERS
662 /*** IUnknown methods ***/
663 #define IMMDeviceEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
664 #define IMMDeviceEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
665 #define IMMDeviceEnumerator_Release(This) (This)->lpVtbl->Release(This)
666 /*** IMMDeviceEnumerator methods ***/
667 #define IMMDeviceEnumerator_EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices) (This)->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices)
668 #define IMMDeviceEnumerator_GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint) (This)->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint)
669 #define IMMDeviceEnumerator_GetDevice(This,pwstrId,ppDevice) (This)->lpVtbl->GetDevice(This,pwstrId,ppDevice)
670 #define IMMDeviceEnumerator_RegisterEndpointNotificationCallback(This,pClient) (This)->lpVtbl->RegisterEndpointNotificationCallback(This,pClient)
671 #define IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(This,pClient) (This)->lpVtbl->UnregisterEndpointNotificationCallback(This,pClient)
672 #else
673 /*** IUnknown methods ***/
674 static FORCEINLINE HRESULT IMMDeviceEnumerator_QueryInterface(IMMDeviceEnumerator* This,REFIID riid,void **ppvObject) {
675 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
676 }
677 static FORCEINLINE ULONG IMMDeviceEnumerator_AddRef(IMMDeviceEnumerator* This) {
678 return This->lpVtbl->AddRef(This);
679 }
680 static FORCEINLINE ULONG IMMDeviceEnumerator_Release(IMMDeviceEnumerator* This) {
681 return This->lpVtbl->Release(This);
682 }
683 /*** IMMDeviceEnumerator methods ***/
684 static FORCEINLINE HRESULT IMMDeviceEnumerator_EnumAudioEndpoints(IMMDeviceEnumerator* This,EDataFlow dataFlow,DWORD dwStateMask,IMMDeviceCollection **ppDevices) {
685 return This->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices);
686 }
687 static FORCEINLINE HRESULT IMMDeviceEnumerator_GetDefaultAudioEndpoint(IMMDeviceEnumerator* This,EDataFlow dataFlow,ERole role,IMMDevice **ppEndpoint) {
688 return This->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint);
689 }
690 static FORCEINLINE HRESULT IMMDeviceEnumerator_GetDevice(IMMDeviceEnumerator* This,LPCWSTR pwstrId,IMMDevice **ppDevice) {
691 return This->lpVtbl->GetDevice(This,pwstrId,ppDevice);
692 }
693 static FORCEINLINE HRESULT IMMDeviceEnumerator_RegisterEndpointNotificationCallback(IMMDeviceEnumerator* This,IMMNotificationClient *pClient) {
694 return This->lpVtbl->RegisterEndpointNotificationCallback(This,pClient);
695 }
696 static FORCEINLINE HRESULT IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(IMMDeviceEnumerator* This,IMMNotificationClient *pClient) {
697 return This->lpVtbl->UnregisterEndpointNotificationCallback(This,pClient);
698 }
699 #endif
700 #endif
701
702 #endif
703
704
705 #endif /* __IMMDeviceEnumerator_INTERFACE_DEFINED__ */
706
707 /*****************************************************************************
708 * IMMDeviceActivator interface
709 */
710 #ifndef __IMMDeviceActivator_INTERFACE_DEFINED__
711 #define __IMMDeviceActivator_INTERFACE_DEFINED__
712
713 DEFINE_GUID(IID_IMMDeviceActivator, 0x3b0d0ea4, 0xd0a9, 0x4b0e, 0x93,0x5b, 0x09,0x51,0x67,0x46,0xfa,0xc0);
714 #if defined(__cplusplus) && !defined(CINTERFACE)
715 MIDL_INTERFACE("3b0d0ea4-d0a9-4b0e-935b-09516746fac0")
716 IMMDeviceActivator : public IUnknown
717 {
718 virtual HRESULT STDMETHODCALLTYPE Activate(
719 REFIID iid,
720 IMMDevice *pDevice,
721 PROPVARIANT *pActivationParams,
722 void **ppv) = 0;
723
724 };
725 #ifdef __CRT_UUID_DECL
726 __CRT_UUID_DECL(IMMDeviceActivator, 0x3b0d0ea4, 0xd0a9, 0x4b0e, 0x93,0x5b, 0x09,0x51,0x67,0x46,0xfa,0xc0)
727 #endif
728 #else
729 typedef struct IMMDeviceActivatorVtbl {
730 BEGIN_INTERFACE
731
732 /*** IUnknown methods ***/
733 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
734 IMMDeviceActivator *This,
735 REFIID riid,
736 void **ppvObject);
737
738 ULONG (STDMETHODCALLTYPE *AddRef)(
739 IMMDeviceActivator *This);
740
741 ULONG (STDMETHODCALLTYPE *Release)(
742 IMMDeviceActivator *This);
743
744 /*** IMMDeviceActivator methods ***/
745 HRESULT (STDMETHODCALLTYPE *Activate)(
746 IMMDeviceActivator *This,
747 REFIID iid,
748 IMMDevice *pDevice,
749 PROPVARIANT *pActivationParams,
750 void **ppv);
751
752 END_INTERFACE
753 } IMMDeviceActivatorVtbl;
754
755 interface IMMDeviceActivator {
756 CONST_VTBL IMMDeviceActivatorVtbl* lpVtbl;
757 };
758
759 #ifdef COBJMACROS
760 #ifndef WIDL_C_INLINE_WRAPPERS
761 /*** IUnknown methods ***/
762 #define IMMDeviceActivator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
763 #define IMMDeviceActivator_AddRef(This) (This)->lpVtbl->AddRef(This)
764 #define IMMDeviceActivator_Release(This) (This)->lpVtbl->Release(This)
765 /*** IMMDeviceActivator methods ***/
766 #define IMMDeviceActivator_Activate(This,iid,pDevice,pActivationParams,ppv) (This)->lpVtbl->Activate(This,iid,pDevice,pActivationParams,ppv)
767 #else
768 /*** IUnknown methods ***/
769 static FORCEINLINE HRESULT IMMDeviceActivator_QueryInterface(IMMDeviceActivator* This,REFIID riid,void **ppvObject) {
770 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
771 }
772 static FORCEINLINE ULONG IMMDeviceActivator_AddRef(IMMDeviceActivator* This) {
773 return This->lpVtbl->AddRef(This);
774 }
775 static FORCEINLINE ULONG IMMDeviceActivator_Release(IMMDeviceActivator* This) {
776 return This->lpVtbl->Release(This);
777 }
778 /*** IMMDeviceActivator methods ***/
779 static FORCEINLINE HRESULT IMMDeviceActivator_Activate(IMMDeviceActivator* This,REFIID iid,IMMDevice *pDevice,PROPVARIANT *pActivationParams,void **ppv) {
780 return This->lpVtbl->Activate(This,iid,pDevice,pActivationParams,ppv);
781 }
782 #endif
783 #endif
784
785 #endif
786
787
788 #endif /* __IMMDeviceActivator_INTERFACE_DEFINED__ */
789
790 typedef struct _AudioExtensionParams {
791 LPARAM AddPageParam;
792 IMMDevice *pEndPoint;
793 IMMDevice *pPnpInterface;
794 IMMDevice *pPnpDevnode;
795 } AudioExtensionParams;
796 /*****************************************************************************
797 * IActivateAudioInterfaceAsyncOperation interface
798 */
799 #ifndef __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__
800 #define __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__
801
802 DEFINE_GUID(IID_IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d);
803 #if defined(__cplusplus) && !defined(CINTERFACE)
804 MIDL_INTERFACE("72a22d78-cde4-431d-b8cc-843a71199b6d")
805 IActivateAudioInterfaceAsyncOperation : public IUnknown
806 {
807 virtual HRESULT STDMETHODCALLTYPE GetActivateResult(
808 HRESULT *result,
809 IUnknown **iface) = 0;
810
811 };
812 #ifdef __CRT_UUID_DECL
813 __CRT_UUID_DECL(IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d)
814 #endif
815 #else
816 typedef struct IActivateAudioInterfaceAsyncOperationVtbl {
817 BEGIN_INTERFACE
818
819 /*** IUnknown methods ***/
820 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
821 IActivateAudioInterfaceAsyncOperation *This,
822 REFIID riid,
823 void **ppvObject);
824
825 ULONG (STDMETHODCALLTYPE *AddRef)(
826 IActivateAudioInterfaceAsyncOperation *This);
827
828 ULONG (STDMETHODCALLTYPE *Release)(
829 IActivateAudioInterfaceAsyncOperation *This);
830
831 /*** IActivateAudioInterfaceAsyncOperation methods ***/
832 HRESULT (STDMETHODCALLTYPE *GetActivateResult)(
833 IActivateAudioInterfaceAsyncOperation *This,
834 HRESULT *result,
835 IUnknown **iface);
836
837 END_INTERFACE
838 } IActivateAudioInterfaceAsyncOperationVtbl;
839
840 interface IActivateAudioInterfaceAsyncOperation {
841 CONST_VTBL IActivateAudioInterfaceAsyncOperationVtbl* lpVtbl;
842 };
843
844 #ifdef COBJMACROS
845 #ifndef WIDL_C_INLINE_WRAPPERS
846 /*** IUnknown methods ***/
847 #define IActivateAudioInterfaceAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
848 #define IActivateAudioInterfaceAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
849 #define IActivateAudioInterfaceAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
850 /*** IActivateAudioInterfaceAsyncOperation methods ***/
851 #define IActivateAudioInterfaceAsyncOperation_GetActivateResult(This,result,iface) (This)->lpVtbl->GetActivateResult(This,result,iface)
852 #else
853 /*** IUnknown methods ***/
854 static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_QueryInterface(IActivateAudioInterfaceAsyncOperation* This,REFIID riid,void **ppvObject) {
855 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
856 }
857 static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_AddRef(IActivateAudioInterfaceAsyncOperation* This) {
858 return This->lpVtbl->AddRef(This);
859 }
860 static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_Release(IActivateAudioInterfaceAsyncOperation* This) {
861 return This->lpVtbl->Release(This);
862 }
863 /*** IActivateAudioInterfaceAsyncOperation methods ***/
864 static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_GetActivateResult(IActivateAudioInterfaceAsyncOperation* This,HRESULT *result,IUnknown **iface) {
865 return This->lpVtbl->GetActivateResult(This,result,iface);
866 }
867 #endif
868 #endif
869
870 #endif
871
872
873 #endif /* __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__ */
874
875 /*****************************************************************************
876 * IActivateAudioInterfaceCompletionHandler interface
877 */
878 #ifndef __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__
879 #define __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__
880
881 DEFINE_GUID(IID_IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb);
882 #if defined(__cplusplus) && !defined(CINTERFACE)
883 MIDL_INTERFACE("41d949ab-9862-444a-80f6-c261334da5eb")
884 IActivateAudioInterfaceCompletionHandler : public IUnknown
885 {
886 virtual HRESULT STDMETHODCALLTYPE ActivateCompleted(
887 IActivateAudioInterfaceAsyncOperation *op) = 0;
888
889 };
890 #ifdef __CRT_UUID_DECL
891 __CRT_UUID_DECL(IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb)
892 #endif
893 #else
894 typedef struct IActivateAudioInterfaceCompletionHandlerVtbl {
895 BEGIN_INTERFACE
896
897 /*** IUnknown methods ***/
898 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
899 IActivateAudioInterfaceCompletionHandler *This,
900 REFIID riid,
901 void **ppvObject);
902
903 ULONG (STDMETHODCALLTYPE *AddRef)(
904 IActivateAudioInterfaceCompletionHandler *This);
905
906 ULONG (STDMETHODCALLTYPE *Release)(
907 IActivateAudioInterfaceCompletionHandler *This);
908
909 /*** IActivateAudioInterfaceCompletionHandler methods ***/
910 HRESULT (STDMETHODCALLTYPE *ActivateCompleted)(
911 IActivateAudioInterfaceCompletionHandler *This,
912 IActivateAudioInterfaceAsyncOperation *op);
913
914 END_INTERFACE
915 } IActivateAudioInterfaceCompletionHandlerVtbl;
916
917 interface IActivateAudioInterfaceCompletionHandler {
918 CONST_VTBL IActivateAudioInterfaceCompletionHandlerVtbl* lpVtbl;
919 };
920
921 #ifdef COBJMACROS
922 #ifndef WIDL_C_INLINE_WRAPPERS
923 /*** IUnknown methods ***/
924 #define IActivateAudioInterfaceCompletionHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
925 #define IActivateAudioInterfaceCompletionHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
926 #define IActivateAudioInterfaceCompletionHandler_Release(This) (This)->lpVtbl->Release(This)
927 /*** IActivateAudioInterfaceCompletionHandler methods ***/
928 #define IActivateAudioInterfaceCompletionHandler_ActivateCompleted(This,op) (This)->lpVtbl->ActivateCompleted(This,op)
929 #else
930 /*** IUnknown methods ***/
931 static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_QueryInterface(IActivateAudioInterfaceCompletionHandler* This,REFIID riid,void **ppvObject) {
932 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
933 }
934 static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_AddRef(IActivateAudioInterfaceCompletionHandler* This) {
935 return This->lpVtbl->AddRef(This);
936 }
937 static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_Release(IActivateAudioInterfaceCompletionHandler* This) {
938 return This->lpVtbl->Release(This);
939 }
940 /*** IActivateAudioInterfaceCompletionHandler methods ***/
941 static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_ActivateCompleted(IActivateAudioInterfaceCompletionHandler* This,IActivateAudioInterfaceAsyncOperation *op) {
942 return This->lpVtbl->ActivateCompleted(This,op);
943 }
944 #endif
945 #endif
946
947 #endif
948
949
950 #endif /* __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__ */
951
952 HRESULT WINAPI ActivateAudioInterfaceAsync(
953 const WCHAR *path, REFIID riid, PROPVARIANT *params,
954 IActivateAudioInterfaceCompletionHandler *done_handler,
955 IActivateAudioInterfaceAsyncOperation **op);
956 #ifndef __MMDeviceAPILib_LIBRARY_DEFINED__
957 #define __MMDeviceAPILib_LIBRARY_DEFINED__
958
959 DEFINE_GUID(LIBID_MMDeviceAPILib, 0x2fdaafa3, 0x7523, 0x4f66, 0x99,0x57, 0x9d,0x5e,0x7f,0xe6,0x98,0xf6);
960
961 /*****************************************************************************
962 * MMDeviceEnumerator coclass
963 */
964
965 DEFINE_GUID(CLSID_MMDeviceEnumerator, 0xbcde0395, 0xe52f, 0x467c, 0x8e,0x3d, 0xc4,0x57,0x92,0x91,0x69,0x2e);
966
967 #ifdef __cplusplus
968 class DECLSPEC_UUID("bcde0395-e52f-467c-8e3d-c4579291692e") MMDeviceEnumerator;
969 #ifdef __CRT_UUID_DECL
970 __CRT_UUID_DECL(MMDeviceEnumerator, 0xbcde0395, 0xe52f, 0x467c, 0x8e,0x3d, 0xc4,0x57,0x92,0x91,0x69,0x2e)
971 #endif
972 #endif
973
974 #endif /* __MMDeviceAPILib_LIBRARY_DEFINED__ */
975 /* Begin additional prototypes for all interfaces */
976
977
978 /* End additional prototypes */
979
980 #ifdef __cplusplus
981 }
982 #endif
983
984 #endif /* __mmdeviceapi_h__ */