source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mmdeviceapi.h@ 1180

Last change on this file since 1180 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 35.2 KB
RevLine 
[1166]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__
23typedef interface IMMNotificationClient IMMNotificationClient;
24#ifdef __cplusplus
25interface IMMNotificationClient;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IMMDevice_FWD_DEFINED__
30#define __IMMDevice_FWD_DEFINED__
31typedef interface IMMDevice IMMDevice;
32#ifdef __cplusplus
33interface IMMDevice;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IMMDeviceCollection_FWD_DEFINED__
38#define __IMMDeviceCollection_FWD_DEFINED__
39typedef interface IMMDeviceCollection IMMDeviceCollection;
40#ifdef __cplusplus
41interface IMMDeviceCollection;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IMMEndpoint_FWD_DEFINED__
46#define __IMMEndpoint_FWD_DEFINED__
47typedef interface IMMEndpoint IMMEndpoint;
48#ifdef __cplusplus
49interface IMMEndpoint;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IMMDeviceEnumerator_FWD_DEFINED__
54#define __IMMDeviceEnumerator_FWD_DEFINED__
55typedef interface IMMDeviceEnumerator IMMDeviceEnumerator;
56#ifdef __cplusplus
57interface IMMDeviceEnumerator;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IMMDeviceActivator_FWD_DEFINED__
62#define __IMMDeviceActivator_FWD_DEFINED__
63typedef interface IMMDeviceActivator IMMDeviceActivator;
64#ifdef __cplusplus
65interface IMMDeviceActivator;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
70#define __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
71typedef interface IActivateAudioInterfaceAsyncOperation IActivateAudioInterfaceAsyncOperation;
72#ifdef __cplusplus
73interface IActivateAudioInterfaceAsyncOperation;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
78#define __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
79typedef interface IActivateAudioInterfaceCompletionHandler IActivateAudioInterfaceCompletionHandler;
80#ifdef __cplusplus
81interface IActivateAudioInterfaceCompletionHandler;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __MMDeviceEnumerator_FWD_DEFINED__
86#define __MMDeviceEnumerator_FWD_DEFINED__
87#ifdef __cplusplus
88typedef class MMDeviceEnumerator MMDeviceEnumerator;
89#else
90typedef 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
100extern "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
109DEFINE_GUID(DEVINTERFACE_AUDIO_RENDER, 0xe6327cad,0xdcec,0x4949,0xae,0x8a,0x99,0x1e,0x97,0x6a,0x79,0xd2);
110DEFINE_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
116DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0);
117DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1);
118DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2);
119DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3);
120DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4);
121DEFINE_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
124DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6);
125DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7);
126DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8);
127DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0);
128DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3);
129typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS {
130 DWORD cbDirectXAudioActivationParams;
131 GUID guidAudioSession;
132 DWORD dwAudioStreamFlags;
133} DIRECTX_AUDIO_ACTIVATION_PARAMS;
134typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS *PDIRECTX_AUDIO_ACTIVATION_PARAMS;
135typedef enum _EDataFlow {
136 eRender = 0,
137 eCapture = 1,
138 eAll = 2,
139 EDataFlow_enum_count = 3
140} EDataFlow;
141typedef enum _ERole {
142 eConsole = 0,
143 eMultimedia = 1,
144 eCommunications = 2,
145 ERole_enum_count = 3
146} ERole;
147typedef 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
168DEFINE_GUID(IID_IMMNotificationClient, 0x7991eec9, 0x7e89, 0x4d85, 0x83,0x90, 0x6c,0x70,0x3c,0xec,0x60,0xc0);
169#if defined(__cplusplus) && !defined(CINTERFACE)
170MIDL_INTERFACE("7991eec9-7e89-4d85-8390-6c703cec60c0")
171IMMNotificationClient : 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
197typedef 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
240interface 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 ***/
258static FORCEINLINE HRESULT IMMNotificationClient_QueryInterface(IMMNotificationClient* This,REFIID riid,void **ppvObject) {
259 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
260}
261static FORCEINLINE ULONG IMMNotificationClient_AddRef(IMMNotificationClient* This) {
262 return This->lpVtbl->AddRef(This);
263}
264static FORCEINLINE ULONG IMMNotificationClient_Release(IMMNotificationClient* This) {
265 return This->lpVtbl->Release(This);
266}
267/*** IMMNotificationClient methods ***/
268static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceStateChanged(IMMNotificationClient* This,LPCWSTR pwstrDeviceId,DWORD dwNewState) {
269 return This->lpVtbl->OnDeviceStateChanged(This,pwstrDeviceId,dwNewState);
270}
271static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceAdded(IMMNotificationClient* This,LPCWSTR pwstrDeviceId) {
272 return This->lpVtbl->OnDeviceAdded(This,pwstrDeviceId);
273}
274static FORCEINLINE HRESULT IMMNotificationClient_OnDeviceRemoved(IMMNotificationClient* This,LPCWSTR pwstrDeviceId) {
275 return This->lpVtbl->OnDeviceRemoved(This,pwstrDeviceId);
276}
277static FORCEINLINE HRESULT IMMNotificationClient_OnDefaultDeviceChanged(IMMNotificationClient* This,EDataFlow flow,ERole role,LPCWSTR pwstrDeviceId) {
278 return This->lpVtbl->OnDefaultDeviceChanged(This,flow,role,pwstrDeviceId);
279}
280static 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
297DEFINE_GUID(IID_IMMDevice, 0xd666063f, 0x1587, 0x4e43, 0x81,0xf1, 0xb9,0x48,0xe8,0x07,0x36,0x3f);
298#if defined(__cplusplus) && !defined(CINTERFACE)
299MIDL_INTERFACE("d666063f-1587-4e43-81f1-b948e807363f")
300IMMDevice : 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
323typedef 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
362interface 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 ***/
379static FORCEINLINE HRESULT IMMDevice_QueryInterface(IMMDevice* This,REFIID riid,void **ppvObject) {
380 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
381}
382static FORCEINLINE ULONG IMMDevice_AddRef(IMMDevice* This) {
383 return This->lpVtbl->AddRef(This);
384}
385static FORCEINLINE ULONG IMMDevice_Release(IMMDevice* This) {
386 return This->lpVtbl->Release(This);
387}
388/*** IMMDevice methods ***/
389static 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}
392static FORCEINLINE HRESULT IMMDevice_OpenPropertyStore(IMMDevice* This,DWORD stgmAccess,IPropertyStore **ppProperties) {
393 return This->lpVtbl->OpenPropertyStore(This,stgmAccess,ppProperties);
394}
395static FORCEINLINE HRESULT IMMDevice_GetId(IMMDevice* This,LPWSTR *ppstrId) {
396 return This->lpVtbl->GetId(This,ppstrId);
397}
398static 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
415DEFINE_GUID(IID_IMMDeviceCollection, 0x0bd7a1be, 0x7a1a, 0x44db, 0x83,0x97, 0xcc,0x53,0x92,0x38,0x7b,0x5e);
416#if defined(__cplusplus) && !defined(CINTERFACE)
417MIDL_INTERFACE("0bd7a1be-7a1a-44db-8397-cc5392387b5e")
418IMMDeviceCollection : 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
432typedef 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
460interface 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 ***/
475static FORCEINLINE HRESULT IMMDeviceCollection_QueryInterface(IMMDeviceCollection* This,REFIID riid,void **ppvObject) {
476 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
477}
478static FORCEINLINE ULONG IMMDeviceCollection_AddRef(IMMDeviceCollection* This) {
479 return This->lpVtbl->AddRef(This);
480}
481static FORCEINLINE ULONG IMMDeviceCollection_Release(IMMDeviceCollection* This) {
482 return This->lpVtbl->Release(This);
483}
484/*** IMMDeviceCollection methods ***/
485static FORCEINLINE HRESULT IMMDeviceCollection_GetCount(IMMDeviceCollection* This,UINT *pcDevices) {
486 return This->lpVtbl->GetCount(This,pcDevices);
487}
488static 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
505DEFINE_GUID(IID_IMMEndpoint, 0x1be09788, 0x6894, 0x4089, 0x85,0x86, 0x9a,0x2a,0x6c,0x26,0x5a,0xc5);
506#if defined(__cplusplus) && !defined(CINTERFACE)
507MIDL_INTERFACE("1be09788-6894-4089-8586-9a2a6c265ac5")
508IMMEndpoint : 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
518typedef 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
541interface 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 ***/
555static FORCEINLINE HRESULT IMMEndpoint_QueryInterface(IMMEndpoint* This,REFIID riid,void **ppvObject) {
556 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
557}
558static FORCEINLINE ULONG IMMEndpoint_AddRef(IMMEndpoint* This) {
559 return This->lpVtbl->AddRef(This);
560}
561static FORCEINLINE ULONG IMMEndpoint_Release(IMMEndpoint* This) {
562 return This->lpVtbl->Release(This);
563}
564/*** IMMEndpoint methods ***/
565static 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
582DEFINE_GUID(IID_IMMDeviceEnumerator, 0xa95664d2, 0x9614, 0x4f35, 0xa7,0x46, 0xde,0x8d,0xb6,0x36,0x17,0xe6);
583#if defined(__cplusplus) && !defined(CINTERFACE)
584MIDL_INTERFACE("a95664d2-9614-4f35-a746-de8db63617e6")
585IMMDeviceEnumerator : 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
612typedef 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
656interface 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 ***/
674static FORCEINLINE HRESULT IMMDeviceEnumerator_QueryInterface(IMMDeviceEnumerator* This,REFIID riid,void **ppvObject) {
675 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
676}
677static FORCEINLINE ULONG IMMDeviceEnumerator_AddRef(IMMDeviceEnumerator* This) {
678 return This->lpVtbl->AddRef(This);
679}
680static FORCEINLINE ULONG IMMDeviceEnumerator_Release(IMMDeviceEnumerator* This) {
681 return This->lpVtbl->Release(This);
682}
683/*** IMMDeviceEnumerator methods ***/
684static FORCEINLINE HRESULT IMMDeviceEnumerator_EnumAudioEndpoints(IMMDeviceEnumerator* This,EDataFlow dataFlow,DWORD dwStateMask,IMMDeviceCollection **ppDevices) {
685 return This->lpVtbl->EnumAudioEndpoints(This,dataFlow,dwStateMask,ppDevices);
686}
687static FORCEINLINE HRESULT IMMDeviceEnumerator_GetDefaultAudioEndpoint(IMMDeviceEnumerator* This,EDataFlow dataFlow,ERole role,IMMDevice **ppEndpoint) {
688 return This->lpVtbl->GetDefaultAudioEndpoint(This,dataFlow,role,ppEndpoint);
689}
690static FORCEINLINE HRESULT IMMDeviceEnumerator_GetDevice(IMMDeviceEnumerator* This,LPCWSTR pwstrId,IMMDevice **ppDevice) {
691 return This->lpVtbl->GetDevice(This,pwstrId,ppDevice);
692}
693static FORCEINLINE HRESULT IMMDeviceEnumerator_RegisterEndpointNotificationCallback(IMMDeviceEnumerator* This,IMMNotificationClient *pClient) {
694 return This->lpVtbl->RegisterEndpointNotificationCallback(This,pClient);
695}
696static 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
713DEFINE_GUID(IID_IMMDeviceActivator, 0x3b0d0ea4, 0xd0a9, 0x4b0e, 0x93,0x5b, 0x09,0x51,0x67,0x46,0xfa,0xc0);
714#if defined(__cplusplus) && !defined(CINTERFACE)
715MIDL_INTERFACE("3b0d0ea4-d0a9-4b0e-935b-09516746fac0")
716IMMDeviceActivator : 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
729typedef 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
755interface 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 ***/
769static FORCEINLINE HRESULT IMMDeviceActivator_QueryInterface(IMMDeviceActivator* This,REFIID riid,void **ppvObject) {
770 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
771}
772static FORCEINLINE ULONG IMMDeviceActivator_AddRef(IMMDeviceActivator* This) {
773 return This->lpVtbl->AddRef(This);
774}
775static FORCEINLINE ULONG IMMDeviceActivator_Release(IMMDeviceActivator* This) {
776 return This->lpVtbl->Release(This);
777}
778/*** IMMDeviceActivator methods ***/
779static 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
790typedef 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
802DEFINE_GUID(IID_IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d);
803#if defined(__cplusplus) && !defined(CINTERFACE)
804MIDL_INTERFACE("72a22d78-cde4-431d-b8cc-843a71199b6d")
805IActivateAudioInterfaceAsyncOperation : 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
816typedef 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
840interface 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 ***/
854static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_QueryInterface(IActivateAudioInterfaceAsyncOperation* This,REFIID riid,void **ppvObject) {
855 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
856}
857static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_AddRef(IActivateAudioInterfaceAsyncOperation* This) {
858 return This->lpVtbl->AddRef(This);
859}
860static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_Release(IActivateAudioInterfaceAsyncOperation* This) {
861 return This->lpVtbl->Release(This);
862}
863/*** IActivateAudioInterfaceAsyncOperation methods ***/
864static 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
881DEFINE_GUID(IID_IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb);
882#if defined(__cplusplus) && !defined(CINTERFACE)
883MIDL_INTERFACE("41d949ab-9862-444a-80f6-c261334da5eb")
884IActivateAudioInterfaceCompletionHandler : 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
894typedef 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
917interface 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 ***/
931static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_QueryInterface(IActivateAudioInterfaceCompletionHandler* This,REFIID riid,void **ppvObject) {
932 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
933}
934static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_AddRef(IActivateAudioInterfaceCompletionHandler* This) {
935 return This->lpVtbl->AddRef(This);
936}
937static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_Release(IActivateAudioInterfaceCompletionHandler* This) {
938 return This->lpVtbl->Release(This);
939}
940/*** IActivateAudioInterfaceCompletionHandler methods ***/
941static 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
952HRESULT 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
959DEFINE_GUID(LIBID_MMDeviceAPILib, 0x2fdaafa3, 0x7523, 0x4f66, 0x99,0x57, 0x9d,0x5e,0x7f,0xe6,0x98,0xf6);
960
961/*****************************************************************************
962 * MMDeviceEnumerator coclass
963 */
964
965DEFINE_GUID(CLSID_MMDeviceEnumerator, 0xbcde0395, 0xe52f, 0x467c, 0x8e,0x3d, 0xc4,0x57,0x92,0x91,0x69,0x2e);
966
967#ifdef __cplusplus
968class 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__ */
Note: See TracBrowser for help on using the repository browser.