ReactOS 0.4.17-dev-966-gf06eace
dsound.h
Go to the documentation of this file.
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __DSOUND_INCLUDED__
20#define __DSOUND_INCLUDED__
21
22#ifndef DIRECTSOUND_VERSION
23#define DIRECTSOUND_VERSION 0x0900
24#endif
25
26#define COM_NO_WINDOWS_H
27#include <objbase.h>
28#include <float.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif /* defined(__cplusplus) */
33
34#ifndef DX_SHARED_DEFINES
35
36typedef float D3DVALUE, *LPD3DVALUE;
37
38#ifndef D3DCOLOR_DEFINED
40#define D3DCOLOR_DEFINED
41#endif
42
43#ifndef D3DVECTOR_DEFINED
44typedef struct _D3DVECTOR {
45 float x;
46 float y;
47 float z;
49#define D3DVECTOR_DEFINED
50#endif
51
52#ifndef LPD3DVECTOR_DEFINED
54#define LPD3DVECTOR_DEFINED
55#endif
56
57#define DX_SHARED_DEFINES
58#endif /* DX_SHARED_DEFINES */
59
60/*****************************************************************************
61 * Predeclare the interfaces
62 */
63DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
64DEFINE_GUID(CLSID_DirectSound8, 0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b);
65DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x08, 0x00, 0xa0, 0xc9, 0x25, 0xcd, 0x16);
66DEFINE_GUID(CLSID_DirectSoundCapture8, 0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1);
67DEFINE_GUID(CLSID_DirectSoundFullDuplex,0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d);
68
69DEFINE_GUID(IID_IDirectSound, 0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
70typedef struct IDirectSound *LPDIRECTSOUND,**LPLPDIRECTSOUND;
71
72DEFINE_GUID(IID_IDirectSound8, 0xC50A7E93,0xF395,0x4834,0x9E,0xF6,0x7F,0xA9,0x9D,0xE5,0x09,0x66);
73typedef struct IDirectSound8 *LPDIRECTSOUND8,**LPLPDIRECTSOUND8;
74
75DEFINE_GUID(IID_IDirectSoundBuffer, 0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
76typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER,**LPLPDIRECTSOUNDBUFFER;
77
78DEFINE_GUID(IID_IDirectSoundBuffer8, 0x6825A449,0x7524,0x4D82,0x92,0x0F,0x50,0xE3,0x6A,0xB3,0xAB,0x1E);
79typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8,**LPLPDIRECTSOUNDBUFFER8;
80
81DEFINE_GUID(IID_IDirectSoundNotify, 0xB0210783,0x89cd,0x11d0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
82typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY,**LPLPDIRECTSOUNDNOTIFY;
83#define IID_IDirectSoundNotify8 IID_IDirectSoundNotify
84
85DEFINE_GUID(IID_IDirectSound3DListener, 0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
86typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER,**LPLPDIRECTSOUND3DLISTENER;
87
88DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
89typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER,**LPLPDIRECTSOUND3DBUFFER;
90
91DEFINE_GUID(IID_IDirectSoundCapture, 0xB0210781,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
92typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE,**LPLPDIRECTSOUNDCAPTURE;
93#define IID_IDirectSoundCapture8 IID_IDirectSoundCapture
95
96DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xB0210782,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16);
97typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER,**LPLPDIRECTSOUNDCAPTUREBUFFER;
98
99DEFINE_GUID(IID_IDirectSoundCaptureBuffer8,0x00990DF4,0x0DBB,0x4872,0x83,0x3E,0x6D,0x30,0x3E,0x80,0xAE,0xB6);
100typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8,**LPLPDIRECTSOUNDCAPTUREBUFFER8;
101
102DEFINE_GUID(IID_IDirectSoundFullDuplex, 0xEDCB4C7A,0xDAAB,0x4216,0xA4,0x2E,0x6C,0x50,0x59,0x6D,0xDC,0x1D);
103typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX,**LPLPDIRECTSOUNDFULLDUPLEX;
104#define IID_IDirectSoundFullDuplex8 IID_IDirectSoundFullDuplex
105
106DEFINE_GUID(DSDEVID_DefaultPlayback, 0xDEF00000,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
107DEFINE_GUID(DSDEVID_DefaultCapture, 0xDEF00001,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
108DEFINE_GUID(DSDEVID_DefaultVoicePlayback,0xDEF00002,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
109DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xDEF00003,0x9C6D,0x47ED,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03);
110
111DEFINE_GUID(DSDEVID_WinePlayback, 0x40316A1D,0x605B,0xD611,0x87,0xC6,0x00,0x80,0xAD,0x00,0x02,0xFE);
112
113#define _FACDS 0x878
114#define MAKE_DSHRESULT(code) MAKE_HRESULT(1,_FACDS,code)
115
116#define DS_OK 0
117#define DS_NO_VIRTUALIZATION MAKE_HRESULT(0, _FACDS, 10)
118#define DS_INCOMPLETE MAKE_HRESULT(0, _FACDS, 20)
119#define DSERR_ALLOCATED MAKE_DSHRESULT(10)
120#define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30)
121#define DSERR_INVALIDPARAM E_INVALIDARG
122#define DSERR_INVALIDCALL MAKE_DSHRESULT(50)
123#define DSERR_GENERIC E_FAIL
124#define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT(70)
125#define DSERR_OUTOFMEMORY E_OUTOFMEMORY
126#define DSERR_BADFORMAT MAKE_DSHRESULT(100)
127#define DSERR_UNSUPPORTED E_NOTIMPL
128#define DSERR_NODRIVER MAKE_DSHRESULT(120)
129#define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT(130)
130#define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION
131#define DSERR_BUFFERLOST MAKE_DSHRESULT(150)
132#define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT(160)
133#define DSERR_UNINITIALIZED MAKE_DSHRESULT(170)
134#define DSERR_NOINTERFACE E_NOINTERFACE
135#define DSERR_ACCESSDENIED E_ACCESSDENIED
136#define DSERR_BUFFERTOOSMALL MAKE_DSHRESULT(180)
137#define DSERR_DS8_REQUIRED MAKE_DSHRESULT(190)
138#define DSERR_SENDLOOP MAKE_DSHRESULT(200)
139#define DSERR_BADSENDBUFFERGUID MAKE_DSHRESULT(210)
140#define DSERR_FXUNAVAILABLE MAKE_DSHRESULT(220)
141#define DSERR_OBJECTNOTFOUND MAKE_DSHRESULT(4449)
142
143#define DSCAPS_PRIMARYMONO 0x00000001
144#define DSCAPS_PRIMARYSTEREO 0x00000002
145#define DSCAPS_PRIMARY8BIT 0x00000004
146#define DSCAPS_PRIMARY16BIT 0x00000008
147#define DSCAPS_CONTINUOUSRATE 0x00000010
148#define DSCAPS_EMULDRIVER 0x00000020
149#define DSCAPS_CERTIFIED 0x00000040
150#define DSCAPS_SECONDARYMONO 0x00000100
151#define DSCAPS_SECONDARYSTEREO 0x00000200
152#define DSCAPS_SECONDARY8BIT 0x00000400
153#define DSCAPS_SECONDARY16BIT 0x00000800
154
155#define DSSCL_NORMAL 1
156#define DSSCL_PRIORITY 2
157#define DSSCL_EXCLUSIVE 3
158#define DSSCL_WRITEPRIMARY 4
159
160typedef struct _DSCAPS
161{
187typedef const DSCAPS *LPCDSCAPS;
188
189#define DSBPLAY_LOOPING 0x00000001
190#define DSBPLAY_LOCHARDWARE 0x00000002
191#define DSBPLAY_LOCSOFTWARE 0x00000004
192#define DSBPLAY_TERMINATEBY_TIME 0x00000008
193#define DSBPLAY_TERMINATEBY_DISTANCE 0x000000010
194#define DSBPLAY_TERMINATEBY_PRIORITY 0x000000020
195
196#define DSBSTATUS_PLAYING 0x00000001
197#define DSBSTATUS_BUFFERLOST 0x00000002
198#define DSBSTATUS_LOOPING 0x00000004
199#define DSBSTATUS_LOCHARDWARE 0x00000008
200#define DSBSTATUS_LOCSOFTWARE 0x00000010
201#define DSBSTATUS_TERMINATED 0x00000020
202
203#define DSBLOCK_FROMWRITECURSOR 0x00000001
204#define DSBLOCK_ENTIREBUFFER 0x00000002
205
206#define DSBCAPS_PRIMARYBUFFER 0x00000001
207#define DSBCAPS_STATIC 0x00000002
208#define DSBCAPS_LOCHARDWARE 0x00000004
209#define DSBCAPS_LOCSOFTWARE 0x00000008
210#define DSBCAPS_CTRL3D 0x00000010
211#define DSBCAPS_CTRLFREQUENCY 0x00000020
212#define DSBCAPS_CTRLPAN 0x00000040
213#define DSBCAPS_CTRLVOLUME 0x00000080
214#define DSBCAPS_CTRLDEFAULT 0x000000E0 /* Pan + volume + frequency. */
215#define DSBCAPS_CTRLPOSITIONNOTIFY 0x00000100
216#define DSBCAPS_CTRLFX 0x00000200
217#define DSBCAPS_CTRLALL 0x000001F0 /* All control capabilities */
218#define DSBCAPS_STICKYFOCUS 0x00004000
219#define DSBCAPS_GLOBALFOCUS 0x00008000
220#define DSBCAPS_GETCURRENTPOSITION2 0x00010000 /* More accurate play cursor under emulation*/
221#define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000
222#define DSBCAPS_LOCDEFER 0x00040000
223
224#define DSBSIZE_MIN 4
225#define DSBSIZE_MAX 0xFFFFFFF
226#define DSBPAN_LEFT -10000
227#define DSBPAN_CENTER 0
228#define DSBPAN_RIGHT 10000
229#define DSBVOLUME_MAX 0
230#define DSBVOLUME_MIN -10000
231#define DSBFREQUENCY_MIN 100
232#define DSBFREQUENCY_MAX 200000
233#define DSBFREQUENCY_ORIGINAL 0
234
235#define DSBNOTIFICATIONS_MAX 100000U
236
237typedef struct _DSBCAPS
238{
245typedef const DSBCAPS *LPCDSBCAPS;
246
247#define DSSCL_NORMAL 1
248#define DSSCL_PRIORITY 2
249#define DSSCL_EXCLUSIVE 3
250#define DSSCL_WRITEPRIMARY 4
251
252typedef struct _DSEFFECTDESC
253{
261
262#define DSFX_LOCHARDWARE 0x00000001
263#define DSFX_LOCSOFTWARE 0x00000002
264
265enum
266{
275
276typedef struct _DSBUFFERDESC1
277{
285
286typedef struct _DSBUFFERDESC
287{
296
297typedef struct _DSBPOSITIONNOTIFY
298{
303
304#define DSSPEAKER_DIRECTOUT 0
305#define DSSPEAKER_HEADPHONE 1
306#define DSSPEAKER_MONO 2
307#define DSSPEAKER_QUAD 3
308#define DSSPEAKER_STEREO 4
309#define DSSPEAKER_SURROUND 5
310#define DSSPEAKER_5POINT1 6
311#define DSSPEAKER_5POINT1_BACK 6
312#define DSSPEAKER_7POINT1 7
313#define DSSPEAKER_7POINT1_WIDE 7
314#define DSSPEAKER_7POINT1_SURROUND 8
315#define DSSPEAKER_5POINT1_SURROUND 9
316
317#define DSSPEAKER_GEOMETRY_MIN 0x00000005 /* 5 degrees */
318#define DSSPEAKER_GEOMETRY_NARROW 0x0000000A /* 10 degrees */
319#define DSSPEAKER_GEOMETRY_WIDE 0x00000014 /* 20 degrees */
320#define DSSPEAKER_GEOMETRY_MAX 0x000000B4 /* 180 degrees */
321
322#define DSSPEAKER_COMBINED(c, g) ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16))
323#define DSSPEAKER_CONFIG(a) ((BYTE)(a))
324#define DSSPEAKER_GEOMETRY(a) ((BYTE)(((DWORD)(a) >> 16) & 0x00FF))
325
326#define DS_CERTIFIED 0x00000000
327#define DS_UNCERTIFIED 0x00000001
328
329typedef struct _DSCEFFECTDESC
330{
339
340#define DSCFX_LOCHARDWARE 0x00000001
341#define DSCFX_LOCSOFTWARE 0x00000002
342
343#define DSCFXR_LOCHARDWARE 0x00000010
344#define DSCFXR_LOCSOFTWARE 0x00000020
345
346typedef struct _DSCBUFFERDESC1
347{
354
355typedef struct _DSCBUFFERDESC
356{
366
367typedef struct _DSCCAPS
368{
374typedef const DSCCAPS *LPCDSCCAPS;
375
376typedef struct _DSCBCAPS
377{
383typedef const DSCBCAPS *LPCDSCBCAPS;
384
385#define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER
386#define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED
387#define DSCCAPS_MULTIPLECAPTURE 0x00000001
388
389#define DSCBCAPS_WAVEMAPPED 0x80000000
390#define DSCBCAPS_CTRLFX 0x00000200
391
392#define DSCBLOCK_ENTIREBUFFER 0x00000001
393#define DSCBSTART_LOOPING 0x00000001
394#define DSCBPN_OFFSET_STOP 0xffffffff
395
396#define DSCBSTATUS_CAPTURING 0x00000001
397#define DSCBSTATUS_LOOPING 0x00000002
398
399#ifndef __LPCGUID_DEFINED__
400#define __LPCGUID_DEFINED__
401typedef const GUID *LPCGUID;
402#endif
403
406DECL_WINELIB_TYPE_AW(LPDSENUMCALLBACK)
407
411#define DirectSoundEnumerate WINELIB_NAME_AW(DirectSoundEnumerate)
415#define DirectSoundCaptureEnumerate WINELIB_NAME_AW(DirectSoundCaptureEnumerate)
416
419extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice,
420 LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel,
421 LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter);
422#define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate
423extern HRESULT WINAPI GetDeviceID(LPCGUID lpGuidSrc, LPGUID lpGuidDest);
424
425
426/*****************************************************************************
427 * IDirectSound interface
428 */
429#undef INTERFACE
430#define INTERFACE IDirectSound
432{
433 /*** IUnknown methods ***/
437 /*** IDirectSound methods ***/
438 STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
439 STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
440 STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
441 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
442 STDMETHOD(Compact)(THIS) PURE;
443 STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
444 STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
446};
447#undef INTERFACE
448
449#if !defined(__cplusplus) || defined(CINTERFACE)
450/*** IUnknown methods ***/
451#define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
452#define IDirectSound_AddRef(p) (p)->lpVtbl->AddRef(p)
453#define IDirectSound_Release(p) (p)->lpVtbl->Release(p)
454/*** IDirectSound methods ***/
455#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
456#define IDirectSound_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
457#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
458#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
459#define IDirectSound_Compact(p) (p)->lpVtbl->Compact(p)
460#define IDirectSound_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a)
461#define IDirectSound_SetSpeakerConfig(p,a) (p)->lpVtbl->SetSpeakerConfig(p,a)
462#define IDirectSound_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
463#else
464/*** IUnknown methods ***/
465#define IDirectSound_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
466#define IDirectSound_AddRef(p) (p)->AddRef()
467#define IDirectSound_Release(p) (p)->Release()
468/*** IDirectSound methods ***/
469#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->CreateSoundBuffer(a,b,c)
470#define IDirectSound_GetCaps(p,a) (p)->GetCaps(a)
471#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
472#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
473#define IDirectSound_Compact(p) (p)->Compact()
474#define IDirectSound_GetSpeakerConfig(p,a) (p)->GetSpeakerConfig(a)
475#define IDirectSound_SetSpeakerConfig(p,a) (p)->SetSpeakerConfig(a)
476#define IDirectSound_Initialize(p,a) (p)->Initialize(a)
477#endif
478
479
480/*****************************************************************************
481 * IDirectSound8 interface
482 */
483#define INTERFACE IDirectSound8
485{
486 /*** IUnknown methods ***/
490 /*** IDirectSound8 methods ***/
491 STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE;
492 STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE;
493 STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE;
494 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE;
495 STDMETHOD(Compact)(THIS) PURE;
496 STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE;
497 STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE;
499 STDMETHOD(VerifyCertification)(THIS_ LPDWORD pdwCertified) PURE;
500};
501#undef INTERFACE
502
503#if !defined(__cplusplus) || defined(CINTERFACE)
504/*** IUnknown methods ***/
505#define IDirectSound8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
506#define IDirectSound8_AddRef(p) (p)->lpVtbl->AddRef(p)
507#define IDirectSound8_Release(p) (p)->lpVtbl->Release(p)
508/*** IDirectSound methods ***/
509#define IDirectSound8_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
510#define IDirectSound8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
511#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
512#define IDirectSound8_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
513#define IDirectSound8_Compact(p) (p)->lpVtbl->Compact(p)
514#define IDirectSound8_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a)
515#define IDirectSound8_SetSpeakerConfig(p,a) (p)->lpVtbl->SetSpeakerConfig(p,a)
516#define IDirectSound8_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
517/*** IDirectSound8 methods ***/
518#define IDirectSound8_VerifyCertification(p,a) (p)->lpVtbl->VerifyCertification(p,a)
519#else
520/*** IUnknown methods ***/
521#define IDirectSound8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
522#define IDirectSound8_AddRef(p) (p)->AddRef()
523#define IDirectSound8_Release(p) (p)->Release()
524/*** IDirectSound methods ***/
525#define IDirectSound8_CreateSoundBuffer(p,a,b,c) (p)->CreateSoundBuffer(a,b,c)
526#define IDirectSound8_GetCaps(p,a) (p)->GetCaps(a)
527#define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b)
528#define IDirectSound8_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
529#define IDirectSound8_Compact(p) (p)->Compact()
530#define IDirectSound8_GetSpeakerConfig(p,a) (p)->GetSpeakerConfig(a)
531#define IDirectSound8_SetSpeakerConfig(p,a) (p)->SetSpeakerConfig(a)
532#define IDirectSound8_Initialize(p,a) (p)->Initialize(a)
533/*** IDirectSound8 methods ***/
534#define IDirectSound8_VerifyCertification(p,a) (p)->VerifyCertification(a)
535#endif
536
537
538/*****************************************************************************
539 * IDirectSoundBuffer interface
540 */
541#define INTERFACE IDirectSoundBuffer
542DECLARE_INTERFACE_(IDirectSoundBuffer,IUnknown)
543{
544 /*** IUnknown methods ***/
548 /*** IDirectSoundBuffer methods ***/
549 STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
550 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
551 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
552 STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
553 STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
554 STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
555 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
556 STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
557 STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
558 STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
559 STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
560 STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
561 STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
562 STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
563 STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
565 STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
566 STDMETHOD(Restore)(THIS) PURE;
567};
568#undef INTERFACE
569
570#if !defined(__cplusplus) || defined(CINTERFACE)
571/*** IUnknown methods ***/
572#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
573#define IDirectSoundBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
574#define IDirectSoundBuffer_Release(p) (p)->lpVtbl->Release(p)
575/*** IDirectSoundBuffer methods ***/
576#define IDirectSoundBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
577#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
578#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
579#define IDirectSoundBuffer_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a)
580#define IDirectSoundBuffer_GetPan(p,a) (p)->lpVtbl->GetPan(p,a)
581#define IDirectSoundBuffer_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a)
582#define IDirectSoundBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
583#define IDirectSoundBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
584#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
585#define IDirectSoundBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
586#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a)
587#define IDirectSoundBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
588#define IDirectSoundBuffer_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a)
589#define IDirectSoundBuffer_SetPan(p,a) (p)->lpVtbl->SetPan(p,a)
590#define IDirectSoundBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
591#define IDirectSoundBuffer_Stop(p) (p)->lpVtbl->Stop(p)
592#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
593#define IDirectSoundBuffer_Restore(p) (p)->lpVtbl->Restore(p)
594#else
595/*** IUnknown methods ***/
596#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
597#define IDirectSoundBuffer_AddRef(p) (p)->AddRef()
598#define IDirectSoundBuffer_Release(p) (p)->Release()
599/*** IDirectSoundBuffer methods ***/
600#define IDirectSoundBuffer_GetCaps(p,a) (p)->GetCaps(a)
601#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
602#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
603#define IDirectSoundBuffer_GetVolume(p,a) (p)->GetVolume(a)
604#define IDirectSoundBuffer_GetPan(p,a) (p)->GetPan(a)
605#define IDirectSoundBuffer_GetFrequency(p,a) (p)->GetFrequency(a)
606#define IDirectSoundBuffer_GetStatus(p,a) (p)->GetStatus(a)
607#define IDirectSoundBuffer_Initialize(p,a,b) (p)->Initialize(a,b)
608#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
609#define IDirectSoundBuffer_Play(p,a,b,c) (p)->Play(a,b,c)
610#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a)
611#define IDirectSoundBuffer_SetFormat(p,a) (p)->SetFormat(a)
612#define IDirectSoundBuffer_SetVolume(p,a) (p)->SetVolume(a)
613#define IDirectSoundBuffer_SetPan(p,a) (p)->SetPan(a)
614#define IDirectSoundBuffer_SetFrequency(p,a) (p)->SetFrequency(a)
615#define IDirectSoundBuffer_Stop(p) (p)->Stop()
616#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
617#define IDirectSoundBuffer_Restore(p) (p)->Restore()
618#endif
619
620
621/*****************************************************************************
622 * IDirectSoundBuffer8 interface
623 */
624#define INTERFACE IDirectSoundBuffer8
625DECLARE_INTERFACE_(IDirectSoundBuffer8,IUnknown)
626{
627 /*** IUnknown methods ***/
631 /*** IDirectSoundBuffer8 methods ***/
632 STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE;
633 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE;
634 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
635 STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE;
636 STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE;
637 STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
638 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
639 STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE;
640 STDMETHOD(Lock)(THIS_ DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags) PURE;
641 STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE;
642 STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE;
643 STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE;
644 STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE;
645 STDMETHOD(SetPan)(THIS_ LONG lPan) PURE;
646 STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
648 STDMETHOD(Unlock)(THIS_ LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioPtr2) PURE;
649 STDMETHOD(Restore)(THIS) PURE;
650 STDMETHOD(SetFX)(THIS_ DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes) PURE;
651 STDMETHOD(AcquireResources)(THIS_ DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes) PURE;
652 STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
653};
654#undef INTERFACE
655
656DEFINE_GUID(GUID_All_Objects, 0xaa114de5, 0xc262, 0x4169, 0xa1, 0xc8, 0x23, 0xd6, 0x98, 0xcc, 0x73, 0xb5);
657
658#if !defined(__cplusplus) || defined(CINTERFACE)
659/*** IUnknown methods ***/
660#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
661#define IDirectSoundBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
662#define IDirectSoundBuffer8_Release(p) (p)->lpVtbl->Release(p)
663/*** IDirectSoundBuffer methods ***/
664#define IDirectSoundBuffer8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
665#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
666#define IDirectSoundBuffer8_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
667#define IDirectSoundBuffer8_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a)
668#define IDirectSoundBuffer8_GetPan(p,a) (p)->lpVtbl->GetPan(p,a)
669#define IDirectSoundBuffer8_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a)
670#define IDirectSoundBuffer8_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
671#define IDirectSoundBuffer8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
672#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
673#define IDirectSoundBuffer8_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
674#define IDirectSoundBuffer8_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a)
675#define IDirectSoundBuffer8_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
676#define IDirectSoundBuffer8_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a)
677#define IDirectSoundBuffer8_SetPan(p,a) (p)->lpVtbl->SetPan(p,a)
678#define IDirectSoundBuffer8_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
679#define IDirectSoundBuffer8_Stop(p) (p)->lpVtbl->Stop(p)
680#define IDirectSoundBuffer8_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
681#define IDirectSoundBuffer8_Restore(p) (p)->lpVtbl->Restore(p)
682/*** IDirectSoundBuffer8 methods ***/
683#define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->lpVtbl->SetFX(p,a,b,c)
684#define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->lpVtbl->AcquireResources(p,a,b,c)
685#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
686#else
687/*** IUnknown methods ***/
688#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
689#define IDirectSoundBuffer8_AddRef(p) (p)->AddRef()
690#define IDirectSoundBuffer8_Release(p) (p)->Release()
691/*** IDirectSoundBuffer methods ***/
692#define IDirectSoundBuffer8_GetCaps(p,a) (p)->GetCaps(a)
693#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
694#define IDirectSoundBuffer8_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
695#define IDirectSoundBuffer8_GetVolume(p,a) (p)->GetVolume(a)
696#define IDirectSoundBuffer8_GetPan(p,a) (p)->GetPan(a)
697#define IDirectSoundBuffer8_GetFrequency(p,a) (p)->GetFrequency(a)
698#define IDirectSoundBuffer8_GetStatus(p,a) (p)->GetStatus(a)
699#define IDirectSoundBuffer8_Initialize(p,a,b) (p)->Initialize(a,b)
700#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
701#define IDirectSoundBuffer8_Play(p,a,b,c) (p)->Play(a,b,c)
702#define IDirectSoundBuffer8_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a)
703#define IDirectSoundBuffer8_SetFormat(p,a) (p)->SetFormat(a)
704#define IDirectSoundBuffer8_SetVolume(p,a) (p)->SetVolume(a)
705#define IDirectSoundBuffer8_SetPan(p,a) (p)->SetPan(a)
706#define IDirectSoundBuffer8_SetFrequency(p,a) (p)->SetFrequency(a)
707#define IDirectSoundBuffer8_Stop(p) (p)->Stop()
708#define IDirectSoundBuffer8_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
709#define IDirectSoundBuffer8_Restore(p) (p)->Restore()
710/*** IDirectSoundBuffer8 methods ***/
711#define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->SetFX(a,b,c)
712#define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->AcquireResources(a,b,c)
713#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
714#endif
715
716
717/*****************************************************************************
718 * IDirectSoundCapture interface
719 */
720#define INTERFACE IDirectSoundCapture
721DECLARE_INTERFACE_(IDirectSoundCapture,IUnknown)
722{
723 /*** IUnknown methods ***/
727 /*** IDirectSoundCapture methods ***/
728 STDMETHOD(CreateCaptureBuffer)(THIS_ LPCDSCBUFFERDESC lpcDSCBufferDesc,LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk) PURE;
729 STDMETHOD(GetCaps)(THIS_ LPDSCCAPS lpDSCCaps) PURE;
731};
732#undef INTERFACE
733
734#if !defined(__cplusplus) || defined(CINTERFACE)
735/*** IUnknown methods ***/
736#define IDirectSoundCapture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
737#define IDirectSoundCapture_AddRef(p) (p)->lpVtbl->AddRef(p)
738#define IDirectSoundCapture_Release(p) (p)->lpVtbl->Release(p)
739/*** IDirectSoundCapture methods ***/
740#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
741#define IDirectSoundCapture_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
742#define IDirectSoundCapture_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
743#else
744/*** IUnknown methods ***/
745#define IDirectSoundCapture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
746#define IDirectSoundCapture_AddRef(p) (p)->AddRef()
747#define IDirectSoundCapture_Release(p) (p)->Release()
748/*** IDirectSoundCapture methods ***/
749#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c)
750#define IDirectSoundCapture_GetCaps(p,a) (p)->GetCaps(a)
751#define IDirectSoundCapture_Initialize(p,a) (p)->Initialize(a)
752#endif
753
754/*****************************************************************************
755 * IDirectSoundCaptureBuffer interface
756 */
757#define INTERFACE IDirectSoundCaptureBuffer
758DECLARE_INTERFACE_(IDirectSoundCaptureBuffer,IUnknown)
759{
760 /*** IUnknown methods ***/
764 /*** IDirectSoundCaptureBuffer methods ***/
765 STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
766 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
767 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
768 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
770 STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
773 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
774};
775#undef INTERFACE
776
777#if !defined(__cplusplus) || defined(CINTERFACE)
778/*** IUnknown methods ***/
779#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
780#define IDirectSoundCaptureBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
781#define IDirectSoundCaptureBuffer_Release(p) (p)->lpVtbl->Release(p)
782/*** IDirectSoundCaptureBuffer methods ***/
783#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
784#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
785#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
786#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
787#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
788#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
789#define IDirectSoundCaptureBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
790#define IDirectSoundCaptureBuffer_Stop(p) (p)->lpVtbl->Stop(p)
791#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
792#else
793/*** IUnknown methods ***/
794#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
795#define IDirectSoundCaptureBuffer_AddRef(p) (p)->AddRef()
796#define IDirectSoundCaptureBuffer_Release(p) (p)->Release()
797/*** IDirectSoundCaptureBuffer methods ***/
798#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->GetCaps(a)
799#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
800#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
801#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->GetStatus(a)
802#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->Initialize(a,b)
803#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
804#define IDirectSoundCaptureBuffer_Start(p,a) (p)->Start(a)
805#define IDirectSoundCaptureBuffer_Stop(p) (p)->Stop()
806#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
807#endif
808
809/*****************************************************************************
810 * IDirectSoundCaptureBuffer8 interface
811 */
812#define INTERFACE IDirectSoundCaptureBuffer8
813DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8,IDirectSoundCaptureBuffer)
814{
815 /*** IUnknown methods ***/
819 /*** IDirectSoundCaptureBuffer methods ***/
820 STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
821 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
822 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
823 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
825 STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
828 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
829 /*** IDirectSoundCaptureBuffer8 methods ***/
830 STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
831 STDMETHOD(GetFXStatus)(THIS_ DWORD dwFXCount, LPDWORD pdwFXStatus) PURE;
832};
833#undef INTERFACE
834
835#if !defined(__cplusplus) || defined(CINTERFACE)
836/*** IUnknown methods ***/
837#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
838#define IDirectSoundCaptureBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
839#define IDirectSoundCaptureBuffer8_Release(p) (p)->lpVtbl->Release(p)
840/*** IDirectSoundCaptureBuffer methods ***/
841#define IDirectSoundCaptureBuffer8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
842#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
843#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
844#define IDirectSoundCaptureBuffer8_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
845#define IDirectSoundCaptureBuffer8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
846#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
847#define IDirectSoundCaptureBuffer8_Start(p,a) (p)->lpVtbl->Start(p,a)
848#define IDirectSoundCaptureBuffer8_Stop(p) (p)->lpVtbl->Stop(p)
849#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
850/*** IDirectSoundCaptureBuffer8 methods ***/
851#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
852#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->lpVtbl->GetFXStatus(p,a,b)
853#else
854/*** IUnknown methods ***/
855#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
856#define IDirectSoundCaptureBuffer8_AddRef(p) (p)->AddRef()
857#define IDirectSoundCaptureBuffer8_Release(p) (p)->Release()
858/*** IDirectSoundCaptureBuffer methods ***/
859#define IDirectSoundCaptureBuffer8_GetCaps(p,a) (p)->GetCaps(a)
860#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
861#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
862#define IDirectSoundCaptureBuffer8_GetStatus(p,a) (p)->GetStatus(a)
863#define IDirectSoundCaptureBuffer8_Initialize(p,a,b) (p)->Initialize(a,b)
864#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
865#define IDirectSoundCaptureBuffer8_Start(p,a) (p)->Start(a)
866#define IDirectSoundCaptureBuffer8_Stop(p) (p)->Stop()
867#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
868/*** IDirectSoundCaptureBuffer8 methods ***/
869#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
870#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->GetFXStatus(a,b)
871#endif
872
873/*****************************************************************************
874 * IDirectSoundNotify interface
875 */
876#define WINE_NOBUFFER 0x80000000
877
878#define DSBPN_OFFSETSTOP -1
879
880#define INTERFACE IDirectSoundNotify
881DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown)
882{
883 /*** IUnknown methods ***/
887 /*** IDirectSoundNotify methods ***/
888 STDMETHOD(SetNotificationPositions)(THIS_ DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies) PURE;
889};
890#undef INTERFACE
891
892#if !defined(__cplusplus) || defined(CINTERFACE)
893/*** IUnknown methods ***/
894#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
895#define IDirectSoundNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
896#define IDirectSoundNotify_Release(p) (p)->lpVtbl->Release(p)
897/*** IDirectSoundNotify methods ***/
898#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
899#else
900/*** IUnknown methods ***/
901#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
902#define IDirectSoundNotify_AddRef(p) (p)->AddRef()
903#define IDirectSoundNotify_Release(p) (p)->Release()
904/*** IDirectSoundNotify methods ***/
905#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b)
906#endif
907
908
909/*****************************************************************************
910 * IDirectSound3DListener interface
911 */
912#define DS3DMODE_NORMAL 0x00000000
913#define DS3DMODE_HEADRELATIVE 0x00000001
914#define DS3DMODE_DISABLE 0x00000002
915
916#define DS3D_IMMEDIATE 0x00000000
917#define DS3D_DEFERRED 0x00000001
918
919#define DS3D_MINDISTANCEFACTOR FLT_MIN
920#define DS3D_MAXDISTANCEFACTOR FLT_MAX
921#define DS3D_DEFAULTDISTANCEFACTOR 1.0f
922
923#define DS3D_MINROLLOFFFACTOR 0.0f
924#define DS3D_MAXROLLOFFFACTOR 10.0f
925#define DS3D_DEFAULTROLLOFFFACTOR 1.0f
926
927#define DS3D_MINDOPPLERFACTOR 0.0f
928#define DS3D_MAXDOPPLERFACTOR 10.0f
929#define DS3D_DEFAULTDOPPLERFACTOR 1.0f
930
931#define DS3D_DEFAULTMINDISTANCE 1.0f
932#define DS3D_DEFAULTMAXDISTANCE 1000000000.0f
933
934#define DS3D_MINCONEANGLE 0
935#define DS3D_MAXCONEANGLE 360
936#define DS3D_DEFAULTCONEANGLE 360
937
938#define DS3D_DEFAULTCONEOUTSIDEVOLUME DSBVOLUME_MAX
939
940typedef struct _DS3DLISTENER {
950
952
953#define INTERFACE IDirectSound3DListener
954DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown)
955{
956 /*** IUnknown methods ***/
960 /*** IDirectSound3DListener methods ***/
961 STDMETHOD(GetAllParameters)(THIS_ LPDS3DLISTENER lpListener) PURE;
962 STDMETHOD(GetDistanceFactor)(THIS_ LPD3DVALUE lpflDistanceFactor) PURE;
963 STDMETHOD(GetDopplerFactor)(THIS_ LPD3DVALUE lpflDopplerFactor) PURE;
964 STDMETHOD(GetOrientation)(THIS_ LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop) PURE;
966 STDMETHOD(GetRolloffFactor)(THIS_ LPD3DVALUE lpflRolloffFactor) PURE;
967 STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
968 STDMETHOD(SetAllParameters)(THIS_ LPCDS3DLISTENER lpcListener, DWORD dwApply) PURE;
969 STDMETHOD(SetDistanceFactor)(THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE;
970 STDMETHOD(SetDopplerFactor)(THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE;
971 STDMETHOD(SetOrientation)(THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE;
972 STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
973 STDMETHOD(SetRolloffFactor)(THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE;
974 STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
975 STDMETHOD(CommitDeferredSettings)(THIS) PURE;
976};
977#undef INTERFACE
978
979#if !defined(__cplusplus) || defined(CINTERFACE)
980/*** IUnknown methods ***/
981#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
982#define IDirectSound3DListener_AddRef(p) (p)->lpVtbl->AddRef(p)
983#define IDirectSound3DListener_Release(p) (p)->lpVtbl->Release(p)
984/*** IDirectSound3DListener methods ***/
985#define IDirectSound3DListener_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
986#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->lpVtbl->GetDistanceFactor(p,a)
987#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->lpVtbl->GetDopplerFactor(p,a)
988#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->lpVtbl->GetOrientation(p,a,b)
989#define IDirectSound3DListener_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
990#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->lpVtbl->GetRolloffFactor(p,a)
991#define IDirectSound3DListener_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
992#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
993#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->lpVtbl->SetDistanceFactor(p,a,b)
994#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->lpVtbl->SetDopplerFactor(p,a,b)
995#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
996#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
997#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->lpVtbl->SetRolloffFactor(p,a,b)
998#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
999#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->lpVtbl->CommitDeferredSettings(p)
1000#else
1001/*** IUnknown methods ***/
1002#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1003#define IDirectSound3DListener_AddRef(p) (p)->AddRef()
1004#define IDirectSound3DListener_Release(p) (p)->Release()
1005/*** IDirectSound3DListener methods ***/
1006#define IDirectSound3DListener_GetAllParameters(p,a) (p)->GetAllParameters(a)
1007#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->GetDistanceFactor(a)
1008#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->GetDopplerFactor(a)
1009#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->GetOrientation(a,b)
1010#define IDirectSound3DListener_GetPosition(p,a) (p)->GetPosition(a)
1011#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->GetRolloffFactor(a)
1012#define IDirectSound3DListener_GetVelocity(p,a) (p)->GetVelocity(a)
1013#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b)
1014#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->SetDistanceFactor(a,b)
1015#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->SetDopplerFactor(a,b)
1016#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1017#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1018#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->SetRolloffFactor(a,b)
1019#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d)
1020#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->CommitDeferredSettings()
1021#endif
1022
1023
1024/*****************************************************************************
1025 * IDirectSound3DBuffer interface
1026 */
1027typedef struct _DS3DBUFFER {
1039
1041
1042#define INTERFACE IDirectSound3DBuffer
1043DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown)
1044{
1045 /*** IUnknown methods ***/
1049 /*** IDirectSound3DBuffer methods ***/
1050 STDMETHOD(GetAllParameters)(THIS_ LPDS3DBUFFER lpDs3dBuffer) PURE;
1051 STDMETHOD(GetConeAngles)(THIS_ LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle) PURE;
1052 STDMETHOD(GetConeOrientation)(THIS_ LPD3DVECTOR lpvOrientation) PURE;
1053 STDMETHOD(GetConeOutsideVolume)(THIS_ LPLONG lplConeOutsideVolume) PURE;
1054 STDMETHOD(GetMaxDistance)(THIS_ LPD3DVALUE lpflMaxDistance) PURE;
1055 STDMETHOD(GetMinDistance)(THIS_ LPD3DVALUE lpflMinDistance) PURE;
1056 STDMETHOD(GetMode)(THIS_ LPDWORD lpwdMode) PURE;
1058 STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
1059 STDMETHOD(SetAllParameters)(THIS_ LPCDS3DBUFFER lpcDs3dBuffer, DWORD dwApply) PURE;
1060 STDMETHOD(SetConeAngles)(THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE;
1061 STDMETHOD(SetConeOrientation)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
1062 STDMETHOD(SetConeOutsideVolume)(THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE;
1063 STDMETHOD(SetMaxDistance)(THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE;
1064 STDMETHOD(SetMinDistance)(THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE;
1065 STDMETHOD(SetMode)(THIS_ DWORD dwMode, DWORD dwApply) PURE;
1066 STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
1067 STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
1068};
1069#undef INTERFACE
1070
1071#if !defined(__cplusplus) || defined(CINTERFACE)
1072/*** IUnknown methods ***/
1073#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1074#define IDirectSound3DBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
1075#define IDirectSound3DBuffer_Release(p) (p)->lpVtbl->Release(p)
1076/*** IDirectSound3DBuffer methods ***/
1077#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
1078#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->lpVtbl->GetConeAngles(p,a,b)
1079#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->lpVtbl->GetConeOrientation(p,a)
1080#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->lpVtbl->GetConeOutsideVolume(p,a)
1081#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->lpVtbl->GetMaxDistance(p,a)
1082#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->lpVtbl->GetMinDistance(p,a)
1083#define IDirectSound3DBuffer_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
1084#define IDirectSound3DBuffer_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
1085#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
1086#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
1087#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->lpVtbl->SetConeAngles(p,a,b,c)
1088#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
1089#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->lpVtbl->SetConeOutsideVolume(p,a,b)
1090#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->lpVtbl->SetMaxDistance(p,a,b)
1091#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->lpVtbl->SetMinDistance(p,a,b)
1092#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->lpVtbl->SetMode(p,a,b)
1093#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1094#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
1095#else
1096/*** IUnknown methods ***/
1097#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1098#define IDirectSound3DBuffer_AddRef(p) (p)->AddRef()
1099#define IDirectSound3DBuffer_Release(p) (p)->Release()
1100/*** IDirectSound3DBuffer methods ***/
1101#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->GetAllParameters(a)
1102#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->GetConeAngles(a,b)
1103#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->GetConeOrientation(a)
1104#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->GetConeOutsideVolume(a)
1105#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->GetMaxDistance(a)
1106#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->GetMinDistance(a)
1107#define IDirectSound3DBuffer_GetMode(p,a) (p)->GetMode(a)
1108#define IDirectSound3DBuffer_GetPosition(p,a) (p)->GetPosition(a)
1109#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->GetVelocity(a)
1110#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b)
1111#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->SetConeAngles(a,b,c)
1112#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d)
1113#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->SetConeOutsideVolume(a,b)
1114#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->SetMaxDistance(a,b)
1115#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->SetMinDistance(a,b)
1116#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->SetMode(a,b)
1117#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1118#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d)
1119#endif
1120
1121/*****************************************************************************
1122 * IKsPropertySet interface
1123 */
1124#ifndef _IKsPropertySet_
1125#define _IKsPropertySet_
1126
1128
1129DEFINE_GUID(IID_IKsPropertySet,0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
1130
1131#define KSPROPERTY_SUPPORT_GET 1
1132#define KSPROPERTY_SUPPORT_SET 2
1133
1134#define INTERFACE IKsPropertySet
1136{
1137 /*** IUnknown methods ***/
1141 /*** IKsPropertySet methods ***/
1144 STDMETHOD(QuerySupport)(THIS_ REFGUID rgid,ULONG x1,ULONG *px2) PURE;
1145};
1146#undef INTERFACE
1147
1148#if !defined(__cplusplus) || defined(CINTERFACE)
1149/*** IUnknown methods ***/
1150#define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1151#define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
1152#define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
1153/*** IKsPropertySet methods ***/
1154#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
1155#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
1156#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
1157#else
1158/*** IUnknown methods ***/
1159#define IKsPropertySet_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1160#define IKsPropertySet_AddRef(p) (p)->AddRef()
1161#define IKsPropertySet_Release(p) (p)->Release()
1162/*** IKsPropertySet methods ***/
1163#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->Get(a,b,c,d,e,f,g)
1164#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->Set(a,b,c,d,e,f)
1165#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->QuerySupport(a,b,c)
1166#endif
1167
1168#endif /* _IKsPropertySet_ */
1169
1170/*****************************************************************************
1171 * IDirectSoundFullDuplex interface
1172 */
1173#define INTERFACE IDirectSoundFullDuplex
1174DECLARE_INTERFACE_(IDirectSoundFullDuplex,IUnknown)
1175{
1176 /*** IUnknown methods ***/
1180 /*** IDirectSoundFullDuplex methods ***/
1181 STDMETHOD(Initialize)(THIS_ LPCGUID pCaptureGuid,LPCGUID pRendererGuid,LPCDSCBUFFERDESC lpDscBufferDesc,LPCDSBUFFERDESC lpDsBufferDesc,HWND hWnd,DWORD dwLevel,LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8,LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE;
1182};
1183#undef INTERFACE
1184
1185#if !defined(__cplusplus) || defined(CINTERFACE)
1186/*** IUnknown methods ***/
1187#define IDirectSoundFullDuplex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1188#define IDirectSoundFullDuplex_AddRef(p) (p)->lpVtbl->AddRef(p)
1189#define IDirectSoundFullDuplex_Release(p) (p)->lpVtbl->Release(p)
1190/*** IDirectSoundFullDuplex methods ***/
1191#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h)
1192#else
1193/*** IUnknown methods ***/
1194#define IDirectSoundFullDuplex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1195#define IDirectSoundFullDuplex_AddRef(p) (p)->AddRef()
1196#define IDirectSoundFullDuplex_Release(p) (p)->Release()
1197/*** IDirectSoundFullDuplex methods ***/
1198#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->Initialize(a,b,c,d,e,f,g,h)
1199#endif
1200
1201#ifdef __cplusplus
1202} /* extern "C" */
1203#endif /* defined(__cplusplus) */
1204
1205#endif /* __DSOUND_INCLUDED__ */
static _Out_opt_ PULONGLONG Start
#define GetStatus(BaseIoAddress, Status)
Definition: atapi.h:328
HWND hWnd
Definition: settings.c:17
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
const GUID IID_IKsPropertySet
Definition: controlnode.cpp:13
float D3DVALUE
Definition: d3dtypes.h:89
float * LPD3DVALUE
Definition: d3dtypes.h:89
static LPVOID LPUNKNOWN
Definition: dinput.c:53
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
#define CALLBACK
Definition: compat.h:35
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:41
struct IDirectSoundNotify ** LPLPDIRECTSOUNDNOTIFY
Definition: dsound.h:82
struct _DSEFFECTDESC DSEFFECTDESC
struct _DSBUFFERDESC DSBUFFERDESC
BOOL(CALLBACK * LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID)
Definition: dsound.h:404
const DSCEFFECTDESC * LPCDSCEFFECTDESC
Definition: dsound.h:338
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE
Definition: dsound.h:92
struct IDirectSound ** LPLPDIRECTSOUND
Definition: dsound.h:70
struct IDirectSoundCaptureBuffer ** LPLPDIRECTSOUNDCAPTUREBUFFER
Definition: dsound.h:97
struct IDirectSoundCaptureBuffer * LPDIRECTSOUNDCAPTUREBUFFER
Definition: dsound.h:97
struct IDirectSoundBuffer * LPDIRECTSOUNDBUFFER
Definition: dsound.h:76
const DSBUFFERDESC1 * LPCDSBUFFERDESC1
Definition: dsound.h:284
struct _DSBUFFERDESC1 DSBUFFERDESC1
float D3DVALUE
Definition: dsound.h:36
struct IDirectSoundCaptureBuffer8 * LPDIRECTSOUNDCAPTUREBUFFER8
Definition: dsound.h:100
const DSBCAPS * LPCDSBCAPS
Definition: dsound.h:245
struct IDirectSoundFullDuplex * LPDIRECTSOUNDFULLDUPLEX
Definition: dsound.h:103
struct _D3DVECTOR D3DVECTOR
struct IDirectSoundBuffer ** LPLPDIRECTSOUNDBUFFER
Definition: dsound.h:76
float * LPD3DVALUE
Definition: dsound.h:36
struct _DSBCAPS * LPDSBCAPS
const DS3DBUFFER * LPCDS3DBUFFER
Definition: dsound.h:1040
struct _DSBPOSITIONNOTIFY DSBPOSITIONNOTIFY
struct _DSCBUFFERDESC * LPDSCBUFFERDESC
HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID)
Definition: enum.c:228
struct IDirectSound3DBuffer * LPDIRECTSOUND3DBUFFER
Definition: dsound.h:89
const DSEFFECTDESC * LPCDSEFFECTDESC
Definition: dsound.h:260
struct IDirectSoundCapture ** LPLPDIRECTSOUNDCAPTURE
Definition: dsound.h:92
struct IDirectSoundBuffer8 ** LPLPDIRECTSOUNDBUFFER8
Definition: dsound.h:79
struct _DSCCAPS * LPDSCCAPS
struct IKsPropertySet * LPKSPROPERTYSET
Definition: dsound.h:1127
struct _DSEFFECTDESC * LPDSEFFECTDESC
HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice, LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel, LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter)
Definition: stubs.c:14
struct _DSCEFFECTDESC DSCEFFECTDESC
struct IDirectSound3DListener * LPDIRECTSOUND3DLISTENER
Definition: dsound.h:86
const DSCBCAPS * LPCDSCBCAPS
Definition: dsound.h:383
HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID)
Definition: enum.c:210
struct IDirectSoundCaptureBuffer8 ** LPLPDIRECTSOUNDCAPTUREBUFFER8
Definition: dsound.h:100
struct _DSCAPS * LPDSCAPS
struct IDirectSound * LPDIRECTSOUND
Definition: dsound.h:70
struct IDirectSound8 ** LPLPDIRECTSOUND8
Definition: dsound.h:73
struct _DS3DBUFFER * LPDS3DBUFFER
struct IDirectSoundFullDuplex ** LPLPDIRECTSOUNDFULLDUPLEX
Definition: dsound.h:103
D3DVECTOR * LPD3DVECTOR
Definition: dsound.h:53
const GUID * LPCGUID
Definition: dsound.h:401
struct _DSCEFFECTDESC * LPDSCEFFECTDESC
HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID)
Definition: enum.c:219
const DS3DLISTENER * LPCDS3DLISTENER
Definition: dsound.h:951
struct _DS3DLISTENER * LPDS3DLISTENER
struct IDirectSound8 * LPDIRECTSOUND8
Definition: dsound.h:73
struct _DSBUFFERDESC * LPDSBUFFERDESC
const DSCCAPS * LPCDSCCAPS
Definition: dsound.h:374
struct _DSBCAPS DSBCAPS
struct IDirectSoundCapture IDirectSoundCapture8
Definition: dsound.h:94
DWORD * LPD3DCOLOR
Definition: dsound.h:39
struct IDirectSoundNotify * LPDIRECTSOUNDNOTIFY
Definition: dsound.h:82
BOOL(CALLBACK * LPDSENUMCALLBACKA)(LPGUID, LPCSTR, LPCSTR, LPVOID)
Definition: dsound.h:405
struct IDirectSoundCapture ** LPLPDIRECTSOUNDCAPTURE8
Definition: dsound.h:94
struct _DSBUFFERDESC1 * LPDSBUFFERDESC1
const DSCAPS * LPCDSCAPS
Definition: dsound.h:187
@ DSFXR_LOCSOFTWARE
Definition: dsound.h:269
@ DSFXR_FAILED
Definition: dsound.h:271
@ DSFXR_LOCHARDWARE
Definition: dsound.h:268
@ DSFXR_UNALLOCATED
Definition: dsound.h:270
@ DSFXR_UNKNOWN
Definition: dsound.h:272
@ DSFXR_SENDLOOP
Definition: dsound.h:273
@ DSFXR_PRESENT
Definition: dsound.h:267
HRESULT WINAPI DirectSoundCreate(LPCGUID lpGUID, LPDIRECTSOUND *ppDS, LPUNKNOWN pUnkOuter)
struct _DSCBUFFERDESC1 * LPDSCBUFFERDESC1
DWORD D3DCOLOR
Definition: dsound.h:39
struct _DSCBUFFERDESC DSCBUFFERDESC
struct IDirectSoundBuffer8 * LPDIRECTSOUNDBUFFER8
Definition: dsound.h:79
HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter)
Definition: capture.c:322
HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter)
Definition: capture.c:332
struct IDirectSound3DBuffer ** LPLPDIRECTSOUND3DBUFFER
Definition: dsound.h:89
HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID)
Definition: enum.c:201
HRESULT WINAPI GetDeviceID(LPCGUID lpGuidSrc, LPGUID lpGuidDest)
Definition: dsound.c:53
struct _DS3DBUFFER DS3DBUFFER
struct _DSCBCAPS * LPDSCBCAPS
HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID, LPDIRECTSOUND8 *ppDS8, LPUNKNOWN pUnkOuter)
struct _DSBPOSITIONNOTIFY * LPDSBPOSITIONNOTIFY
struct IDirectSoundCapture * LPDIRECTSOUNDCAPTURE8
Definition: dsound.h:94
struct _DSCAPS DSCAPS
struct _DSCCAPS DSCCAPS
struct _DSCBUFFERDESC1 DSCBUFFERDESC1
struct _DS3DLISTENER DS3DLISTENER
const DSBUFFERDESC * LPCDSBUFFERDESC
Definition: dsound.h:295
struct _DSCBCAPS DSCBCAPS
const DSCBUFFERDESC * LPCDSCBUFFERDESC
Definition: dsound.h:365
const DSBPOSITIONNOTIFY * LPCDSBPOSITIONNOTIFY
Definition: dsound.h:302
struct IDirectSound3DListener ** LPLPDIRECTSOUND3DLISTENER
Definition: dsound.h:86
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLdouble GLdouble z
Definition: glext.h:5874
REFIID riid
Definition: atlbase.h:39
_In_opt_ PVOID _Out_ BOOLEAN * Stop
Definition: ldrtypes.h:258
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
static LPINTERNAL_BSTR Get(const BSTR lpszString)
Definition: vartype.c:5043
static float int float int float int x3
Definition: server.c:79
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:83
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define LPVOID
Definition: nt_native.h:45
#define BOOL
Definition: nt_native.h:43
static BOOL Set
Definition: pageheap.c:10
long LONG
Definition: pedump.c:60
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
GUID * LPGUID
Definition: guiddef.h:81
#define REFIID
Definition: guiddef.h:118
_In_ DWORD _In_ DWORD dwOffset
Definition: ntgdi.h:2033
@ Unlock
Definition: ntsecapi.h:294
DWORD dwInsideConeAngle
Definition: dsound.h:1031
D3DVECTOR vConeOrientation
Definition: dsound.h:1033
DWORD dwOutsideConeAngle
Definition: dsound.h:1032
DWORD dwMode
Definition: dsound.h:1037
DWORD dwSize
Definition: dsound.h:1028
D3DVECTOR vPosition
Definition: dsound.h:1029
D3DVECTOR vVelocity
Definition: dsound.h:1030
LONG lConeOutsideVolume
Definition: dsound.h:1034
D3DVALUE flMinDistance
Definition: dsound.h:1035
D3DVALUE flMaxDistance
Definition: dsound.h:1036
D3DVECTOR vOrientTop
Definition: dsound.h:945
DWORD dwSize
Definition: dsound.h:941
D3DVALUE flDopplerFactor
Definition: dsound.h:948
D3DVECTOR vVelocity
Definition: dsound.h:943
D3DVALUE flRolloffFactor
Definition: dsound.h:947
D3DVALUE flDistanceFactor
Definition: dsound.h:946
D3DVECTOR vPosition
Definition: dsound.h:942
D3DVECTOR vOrientFront
Definition: dsound.h:944
DWORD dwUnlockTransferRate
Definition: dsound.h:242
DWORD dwPlayCpuOverhead
Definition: dsound.h:243
DWORD dwBufferBytes
Definition: dsound.h:241
DWORD dwFlags
Definition: dsound.h:240
DWORD dwSize
Definition: dsound.h:239
HANDLE hEventNotify
Definition: dsound.h:300
LPWAVEFORMATEX lpwfxFormat
Definition: dsound.h:282
DWORD dwBufferBytes
Definition: dsound.h:280
DWORD dwFlags
Definition: dsound.h:279
DWORD dwSize
Definition: dsound.h:278
DWORD dwReserved
Definition: dsound.h:281
DWORD dwSize
Definition: dsound.h:288
DWORD dwFlags
Definition: dsound.h:289
GUID guid3DAlgorithm
Definition: dsound.h:293
DWORD dwBufferBytes
Definition: dsound.h:290
DWORD dwReserved
Definition: dsound.h:291
LPWAVEFORMATEX lpwfxFormat
Definition: dsound.h:292
DWORD dwFlags
Definition: dsound.h:163
DWORD dwMaxContigFreeHwMemBytes
Definition: dsound.h:181
DWORD dwUnlockTransferRateHwBuffers
Definition: dsound.h:182
DWORD dwMaxHwMixingStreamingBuffers
Definition: dsound.h:169
DWORD dwMaxHw3DStreamingBuffers
Definition: dsound.h:175
DWORD dwReserved2
Definition: dsound.h:185
DWORD dwPrimaryBuffers
Definition: dsound.h:166
DWORD dwMaxSecondarySampleRate
Definition: dsound.h:165
DWORD dwFreeHw3DStreamingBuffers
Definition: dsound.h:178
DWORD dwMaxHw3DStaticBuffers
Definition: dsound.h:174
DWORD dwFreeHw3DStaticBuffers
Definition: dsound.h:177
DWORD dwTotalHwMemBytes
Definition: dsound.h:179
DWORD dwFreeHwMixingStaticBuffers
Definition: dsound.h:171
DWORD dwFreeHwMixingStreamingBuffers
Definition: dsound.h:172
DWORD dwMinSecondarySampleRate
Definition: dsound.h:164
DWORD dwMaxHwMixingAllBuffers
Definition: dsound.h:167
DWORD dwPlayCpuOverheadSwBuffers
Definition: dsound.h:183
DWORD dwReserved1
Definition: dsound.h:184
DWORD dwMaxHwMixingStaticBuffers
Definition: dsound.h:168
DWORD dwSize
Definition: dsound.h:162
DWORD dwFreeHwMixingAllBuffers
Definition: dsound.h:170
DWORD dwMaxHw3DAllBuffers
Definition: dsound.h:173
DWORD dwFreeHwMemBytes
Definition: dsound.h:180
DWORD dwFreeHw3DAllBuffers
Definition: dsound.h:176
DWORD dwFlags
Definition: dsound.h:379
DWORD dwBufferBytes
Definition: dsound.h:380
DWORD dwReserved
Definition: dsound.h:381
DWORD dwSize
Definition: dsound.h:378
DWORD dwReserved
Definition: dsound.h:351
DWORD dwFlags
Definition: dsound.h:349
DWORD dwBufferBytes
Definition: dsound.h:350
DWORD dwSize
Definition: dsound.h:348
LPWAVEFORMATEX lpwfxFormat
Definition: dsound.h:352
LPDSCEFFECTDESC lpDSCFXDesc
Definition: dsound.h:363
DWORD dwBufferBytes
Definition: dsound.h:359
LPWAVEFORMATEX lpwfxFormat
Definition: dsound.h:361
DWORD dwFXCount
Definition: dsound.h:362
DWORD dwReserved
Definition: dsound.h:360
DWORD dwSize
Definition: dsound.h:357
DWORD dwFlags
Definition: dsound.h:358
DWORD dwChannels
Definition: dsound.h:372
DWORD dwSize
Definition: dsound.h:369
DWORD dwFormats
Definition: dsound.h:371
DWORD dwFlags
Definition: dsound.h:370
GUID guidDSCFXInstance
Definition: dsound.h:334
DWORD dwFlags
Definition: dsound.h:332
DWORD dwSize
Definition: dsound.h:331
DWORD dwReserved1
Definition: dsound.h:335
DWORD dwReserved2
Definition: dsound.h:336
GUID guidDSCFXClass
Definition: dsound.h:333
DWORD dwFlags
Definition: dsound.h:255
DWORD_PTR dwReserved2
Definition: dsound.h:258
DWORD_PTR dwReserved1
Definition: dsound.h:257
DWORD dwSize
Definition: dsound.h:254
GUID guidDSFXClass
Definition: dsound.h:256
Definition: scsiwmi.h:51
const char * LPCSTR
Definition: typedefs.h:52
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint32_t DWORD_PTR
Definition: typedefs.h:65
int32_t * LPLONG
Definition: typedefs.h:58
uint32_t * LPDWORD
Definition: typedefs.h:59
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define DECL_WINELIB_TYPE_AW(type)
Definition: windef.h:195
#define WINAPI
Definition: msvc.h:6
static void Initialize()
Definition: xlate.c:212