ReactOS 0.4.16-dev-258-g81860b4
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
656#if !defined(__cplusplus) || defined(CINTERFACE)
657/*** IUnknown methods ***/
658#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
659#define IDirectSoundBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
660#define IDirectSoundBuffer8_Release(p) (p)->lpVtbl->Release(p)
661/*** IDirectSoundBuffer methods ***/
662#define IDirectSoundBuffer8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
663#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
664#define IDirectSoundBuffer8_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
665#define IDirectSoundBuffer8_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a)
666#define IDirectSoundBuffer8_GetPan(p,a) (p)->lpVtbl->GetPan(p,a)
667#define IDirectSoundBuffer8_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a)
668#define IDirectSoundBuffer8_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
669#define IDirectSoundBuffer8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
670#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
671#define IDirectSoundBuffer8_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
672#define IDirectSoundBuffer8_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a)
673#define IDirectSoundBuffer8_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
674#define IDirectSoundBuffer8_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a)
675#define IDirectSoundBuffer8_SetPan(p,a) (p)->lpVtbl->SetPan(p,a)
676#define IDirectSoundBuffer8_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
677#define IDirectSoundBuffer8_Stop(p) (p)->lpVtbl->Stop(p)
678#define IDirectSoundBuffer8_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
679#define IDirectSoundBuffer8_Restore(p) (p)->lpVtbl->Restore(p)
680/*** IDirectSoundBuffer8 methods ***/
681#define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->lpVtbl->SetFX(p,a,b,c)
682#define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->lpVtbl->AcquireResources(p,a,b,c)
683#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
684#else
685/*** IUnknown methods ***/
686#define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
687#define IDirectSoundBuffer8_AddRef(p) (p)->AddRef()
688#define IDirectSoundBuffer8_Release(p) (p)->Release()
689/*** IDirectSoundBuffer methods ***/
690#define IDirectSoundBuffer8_GetCaps(p,a) (p)->GetCaps(a)
691#define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
692#define IDirectSoundBuffer8_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
693#define IDirectSoundBuffer8_GetVolume(p,a) (p)->GetVolume(a)
694#define IDirectSoundBuffer8_GetPan(p,a) (p)->GetPan(a)
695#define IDirectSoundBuffer8_GetFrequency(p,a) (p)->GetFrequency(a)
696#define IDirectSoundBuffer8_GetStatus(p,a) (p)->GetStatus(a)
697#define IDirectSoundBuffer8_Initialize(p,a,b) (p)->Initialize(a,b)
698#define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
699#define IDirectSoundBuffer8_Play(p,a,b,c) (p)->Play(a,b,c)
700#define IDirectSoundBuffer8_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a)
701#define IDirectSoundBuffer8_SetFormat(p,a) (p)->SetFormat(a)
702#define IDirectSoundBuffer8_SetVolume(p,a) (p)->SetVolume(a)
703#define IDirectSoundBuffer8_SetPan(p,a) (p)->SetPan(a)
704#define IDirectSoundBuffer8_SetFrequency(p,a) (p)->SetFrequency(a)
705#define IDirectSoundBuffer8_Stop(p) (p)->Stop()
706#define IDirectSoundBuffer8_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
707#define IDirectSoundBuffer8_Restore(p) (p)->Restore()
708/*** IDirectSoundBuffer8 methods ***/
709#define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->SetFX(a,b,c)
710#define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->AcquireResources(a,b,c)
711#define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
712#endif
713
714
715/*****************************************************************************
716 * IDirectSoundCapture interface
717 */
718#define INTERFACE IDirectSoundCapture
719DECLARE_INTERFACE_(IDirectSoundCapture,IUnknown)
720{
721 /*** IUnknown methods ***/
725 /*** IDirectSoundCapture methods ***/
726 STDMETHOD(CreateCaptureBuffer)(THIS_ LPCDSCBUFFERDESC lpcDSCBufferDesc,LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk) PURE;
727 STDMETHOD(GetCaps)(THIS_ LPDSCCAPS lpDSCCaps) PURE;
729};
730#undef INTERFACE
731
732#if !defined(__cplusplus) || defined(CINTERFACE)
733/*** IUnknown methods ***/
734#define IDirectSoundCapture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
735#define IDirectSoundCapture_AddRef(p) (p)->lpVtbl->AddRef(p)
736#define IDirectSoundCapture_Release(p) (p)->lpVtbl->Release(p)
737/*** IDirectSoundCapture methods ***/
738#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c)
739#define IDirectSoundCapture_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
740#define IDirectSoundCapture_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
741#else
742/*** IUnknown methods ***/
743#define IDirectSoundCapture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
744#define IDirectSoundCapture_AddRef(p) (p)->AddRef()
745#define IDirectSoundCapture_Release(p) (p)->Release()
746/*** IDirectSoundCapture methods ***/
747#define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c)
748#define IDirectSoundCapture_GetCaps(p,a) (p)->GetCaps(a)
749#define IDirectSoundCapture_Initialize(p,a) (p)->Initialize(a)
750#endif
751
752/*****************************************************************************
753 * IDirectSoundCaptureBuffer interface
754 */
755#define INTERFACE IDirectSoundCaptureBuffer
756DECLARE_INTERFACE_(IDirectSoundCaptureBuffer,IUnknown)
757{
758 /*** IUnknown methods ***/
762 /*** IDirectSoundCaptureBuffer methods ***/
763 STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
764 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
765 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
766 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
768 STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
771 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
772};
773#undef INTERFACE
774
775#if !defined(__cplusplus) || defined(CINTERFACE)
776/*** IUnknown methods ***/
777#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
778#define IDirectSoundCaptureBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
779#define IDirectSoundCaptureBuffer_Release(p) (p)->lpVtbl->Release(p)
780/*** IDirectSoundCaptureBuffer methods ***/
781#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
782#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
783#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
784#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
785#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
786#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
787#define IDirectSoundCaptureBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
788#define IDirectSoundCaptureBuffer_Stop(p) (p)->lpVtbl->Stop(p)
789#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
790#else
791/*** IUnknown methods ***/
792#define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
793#define IDirectSoundCaptureBuffer_AddRef(p) (p)->AddRef()
794#define IDirectSoundCaptureBuffer_Release(p) (p)->Release()
795/*** IDirectSoundCaptureBuffer methods ***/
796#define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->GetCaps(a)
797#define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
798#define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
799#define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->GetStatus(a)
800#define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->Initialize(a,b)
801#define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
802#define IDirectSoundCaptureBuffer_Start(p,a) (p)->Start(a)
803#define IDirectSoundCaptureBuffer_Stop(p) (p)->Stop()
804#define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
805#endif
806
807/*****************************************************************************
808 * IDirectSoundCaptureBuffer8 interface
809 */
810#define INTERFACE IDirectSoundCaptureBuffer8
811DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8,IDirectSoundCaptureBuffer)
812{
813 /*** IUnknown methods ***/
817 /*** IDirectSoundCaptureBuffer methods ***/
818 STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE;
819 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE;
820 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE;
821 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
823 STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE;
826 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE;
827 /*** IDirectSoundCaptureBuffer8 methods ***/
828 STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE;
829 STDMETHOD(GetFXStatus)(THIS_ DWORD dwFXCount, LPDWORD pdwFXStatus) PURE;
830};
831#undef INTERFACE
832
833#if !defined(__cplusplus) || defined(CINTERFACE)
834/*** IUnknown methods ***/
835#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
836#define IDirectSoundCaptureBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
837#define IDirectSoundCaptureBuffer8_Release(p) (p)->lpVtbl->Release(p)
838/*** IDirectSoundCaptureBuffer methods ***/
839#define IDirectSoundCaptureBuffer8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
840#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b)
841#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c)
842#define IDirectSoundCaptureBuffer8_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
843#define IDirectSoundCaptureBuffer8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
844#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
845#define IDirectSoundCaptureBuffer8_Start(p,a) (p)->lpVtbl->Start(p,a)
846#define IDirectSoundCaptureBuffer8_Stop(p) (p)->lpVtbl->Stop(p)
847#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
848/*** IDirectSoundCaptureBuffer8 methods ***/
849#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d)
850#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->lpVtbl->GetFXStatus(p,a,b)
851#else
852/*** IUnknown methods ***/
853#define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
854#define IDirectSoundCaptureBuffer8_AddRef(p) (p)->AddRef()
855#define IDirectSoundCaptureBuffer8_Release(p) (p)->Release()
856/*** IDirectSoundCaptureBuffer methods ***/
857#define IDirectSoundCaptureBuffer8_GetCaps(p,a) (p)->GetCaps(a)
858#define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b)
859#define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c)
860#define IDirectSoundCaptureBuffer8_GetStatus(p,a) (p)->GetStatus(a)
861#define IDirectSoundCaptureBuffer8_Initialize(p,a,b) (p)->Initialize(a,b)
862#define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g)
863#define IDirectSoundCaptureBuffer8_Start(p,a) (p)->Start(a)
864#define IDirectSoundCaptureBuffer8_Stop(p) (p)->Stop()
865#define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d)
866/*** IDirectSoundCaptureBuffer8 methods ***/
867#define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d)
868#define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->GetFXStatus(a,b)
869#endif
870
871/*****************************************************************************
872 * IDirectSoundNotify interface
873 */
874#define WINE_NOBUFFER 0x80000000
875
876#define DSBPN_OFFSETSTOP -1
877
878#define INTERFACE IDirectSoundNotify
879DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown)
880{
881 /*** IUnknown methods ***/
885 /*** IDirectSoundNotify methods ***/
886 STDMETHOD(SetNotificationPositions)(THIS_ DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies) PURE;
887};
888#undef INTERFACE
889
890#if !defined(__cplusplus) || defined(CINTERFACE)
891/*** IUnknown methods ***/
892#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
893#define IDirectSoundNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
894#define IDirectSoundNotify_Release(p) (p)->lpVtbl->Release(p)
895/*** IDirectSoundNotify methods ***/
896#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
897#else
898/*** IUnknown methods ***/
899#define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
900#define IDirectSoundNotify_AddRef(p) (p)->AddRef()
901#define IDirectSoundNotify_Release(p) (p)->Release()
902/*** IDirectSoundNotify methods ***/
903#define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b)
904#endif
905
906
907/*****************************************************************************
908 * IDirectSound3DListener interface
909 */
910#define DS3DMODE_NORMAL 0x00000000
911#define DS3DMODE_HEADRELATIVE 0x00000001
912#define DS3DMODE_DISABLE 0x00000002
913
914#define DS3D_IMMEDIATE 0x00000000
915#define DS3D_DEFERRED 0x00000001
916
917#define DS3D_MINDISTANCEFACTOR FLT_MIN
918#define DS3D_MAXDISTANCEFACTOR FLT_MAX
919#define DS3D_DEFAULTDISTANCEFACTOR 1.0f
920
921#define DS3D_MINROLLOFFFACTOR 0.0f
922#define DS3D_MAXROLLOFFFACTOR 10.0f
923#define DS3D_DEFAULTROLLOFFFACTOR 1.0f
924
925#define DS3D_MINDOPPLERFACTOR 0.0f
926#define DS3D_MAXDOPPLERFACTOR 10.0f
927#define DS3D_DEFAULTDOPPLERFACTOR 1.0f
928
929#define DS3D_DEFAULTMINDISTANCE 1.0f
930#define DS3D_DEFAULTMAXDISTANCE 1000000000.0f
931
932#define DS3D_MINCONEANGLE 0
933#define DS3D_MAXCONEANGLE 360
934#define DS3D_DEFAULTCONEANGLE 360
935
936#define DS3D_DEFAULTCONEOUTSIDEVOLUME DSBVOLUME_MAX
937
938typedef struct _DS3DLISTENER {
948
950
951#define INTERFACE IDirectSound3DListener
952DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown)
953{
954 /*** IUnknown methods ***/
958 /*** IDirectSound3DListener methods ***/
959 STDMETHOD(GetAllParameters)(THIS_ LPDS3DLISTENER lpListener) PURE;
960 STDMETHOD(GetDistanceFactor)(THIS_ LPD3DVALUE lpflDistanceFactor) PURE;
961 STDMETHOD(GetDopplerFactor)(THIS_ LPD3DVALUE lpflDopplerFactor) PURE;
962 STDMETHOD(GetOrientation)(THIS_ LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop) PURE;
964 STDMETHOD(GetRolloffFactor)(THIS_ LPD3DVALUE lpflRolloffFactor) PURE;
965 STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
966 STDMETHOD(SetAllParameters)(THIS_ LPCDS3DLISTENER lpcListener, DWORD dwApply) PURE;
967 STDMETHOD(SetDistanceFactor)(THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE;
968 STDMETHOD(SetDopplerFactor)(THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE;
969 STDMETHOD(SetOrientation)(THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE;
970 STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
971 STDMETHOD(SetRolloffFactor)(THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE;
972 STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
973 STDMETHOD(CommitDeferredSettings)(THIS) PURE;
974};
975#undef INTERFACE
976
977#if !defined(__cplusplus) || defined(CINTERFACE)
978/*** IUnknown methods ***/
979#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
980#define IDirectSound3DListener_AddRef(p) (p)->lpVtbl->AddRef(p)
981#define IDirectSound3DListener_Release(p) (p)->lpVtbl->Release(p)
982/*** IDirectSound3DListener methods ***/
983#define IDirectSound3DListener_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
984#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->lpVtbl->GetDistanceFactor(p,a)
985#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->lpVtbl->GetDopplerFactor(p,a)
986#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->lpVtbl->GetOrientation(p,a,b)
987#define IDirectSound3DListener_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
988#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->lpVtbl->GetRolloffFactor(p,a)
989#define IDirectSound3DListener_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
990#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
991#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->lpVtbl->SetDistanceFactor(p,a,b)
992#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->lpVtbl->SetDopplerFactor(p,a,b)
993#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
994#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
995#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->lpVtbl->SetRolloffFactor(p,a,b)
996#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
997#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->lpVtbl->CommitDeferredSettings(p)
998#else
999/*** IUnknown methods ***/
1000#define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1001#define IDirectSound3DListener_AddRef(p) (p)->AddRef()
1002#define IDirectSound3DListener_Release(p) (p)->Release()
1003/*** IDirectSound3DListener methods ***/
1004#define IDirectSound3DListener_GetAllParameters(p,a) (p)->GetAllParameters(a)
1005#define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->GetDistanceFactor(a)
1006#define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->GetDopplerFactor(a)
1007#define IDirectSound3DListener_GetOrientation(p,a,b) (p)->GetOrientation(a,b)
1008#define IDirectSound3DListener_GetPosition(p,a) (p)->GetPosition(a)
1009#define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->GetRolloffFactor(a)
1010#define IDirectSound3DListener_GetVelocity(p,a) (p)->GetVelocity(a)
1011#define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b)
1012#define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->SetDistanceFactor(a,b)
1013#define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->SetDopplerFactor(a,b)
1014#define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
1015#define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1016#define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->SetRolloffFactor(a,b)
1017#define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d)
1018#define IDirectSound3DListener_CommitDeferredSettings(p) (p)->CommitDeferredSettings()
1019#endif
1020
1021
1022/*****************************************************************************
1023 * IDirectSound3DBuffer interface
1024 */
1025typedef struct _DS3DBUFFER {
1037
1039
1040#define INTERFACE IDirectSound3DBuffer
1041DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown)
1042{
1043 /*** IUnknown methods ***/
1047 /*** IDirectSound3DBuffer methods ***/
1048 STDMETHOD(GetAllParameters)(THIS_ LPDS3DBUFFER lpDs3dBuffer) PURE;
1049 STDMETHOD(GetConeAngles)(THIS_ LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle) PURE;
1050 STDMETHOD(GetConeOrientation)(THIS_ LPD3DVECTOR lpvOrientation) PURE;
1051 STDMETHOD(GetConeOutsideVolume)(THIS_ LPLONG lplConeOutsideVolume) PURE;
1052 STDMETHOD(GetMaxDistance)(THIS_ LPD3DVALUE lpflMaxDistance) PURE;
1053 STDMETHOD(GetMinDistance)(THIS_ LPD3DVALUE lpflMinDistance) PURE;
1054 STDMETHOD(GetMode)(THIS_ LPDWORD lpwdMode) PURE;
1056 STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE;
1057 STDMETHOD(SetAllParameters)(THIS_ LPCDS3DBUFFER lpcDs3dBuffer, DWORD dwApply) PURE;
1058 STDMETHOD(SetConeAngles)(THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE;
1059 STDMETHOD(SetConeOrientation)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
1060 STDMETHOD(SetConeOutsideVolume)(THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE;
1061 STDMETHOD(SetMaxDistance)(THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE;
1062 STDMETHOD(SetMinDistance)(THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE;
1063 STDMETHOD(SetMode)(THIS_ DWORD dwMode, DWORD dwApply) PURE;
1064 STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
1065 STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE;
1066};
1067#undef INTERFACE
1068
1069#if !defined(__cplusplus) || defined(CINTERFACE)
1070/*** IUnknown methods ***/
1071#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1072#define IDirectSound3DBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
1073#define IDirectSound3DBuffer_Release(p) (p)->lpVtbl->Release(p)
1074/*** IDirectSound3DBuffer methods ***/
1075#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a)
1076#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->lpVtbl->GetConeAngles(p,a,b)
1077#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->lpVtbl->GetConeOrientation(p,a)
1078#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->lpVtbl->GetConeOutsideVolume(p,a)
1079#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->lpVtbl->GetMaxDistance(p,a)
1080#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->lpVtbl->GetMinDistance(p,a)
1081#define IDirectSound3DBuffer_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
1082#define IDirectSound3DBuffer_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a)
1083#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a)
1084#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b)
1085#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->lpVtbl->SetConeAngles(p,a,b,c)
1086#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d)
1087#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->lpVtbl->SetConeOutsideVolume(p,a,b)
1088#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->lpVtbl->SetMaxDistance(p,a,b)
1089#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->lpVtbl->SetMinDistance(p,a,b)
1090#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->lpVtbl->SetMode(p,a,b)
1091#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
1092#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d)
1093#else
1094/*** IUnknown methods ***/
1095#define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1096#define IDirectSound3DBuffer_AddRef(p) (p)->AddRef()
1097#define IDirectSound3DBuffer_Release(p) (p)->Release()
1098/*** IDirectSound3DBuffer methods ***/
1099#define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->GetAllParameters(a)
1100#define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->GetConeAngles(a,b)
1101#define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->GetConeOrientation(a)
1102#define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->GetConeOutsideVolume(a)
1103#define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->GetMaxDistance(a)
1104#define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->GetMinDistance(a)
1105#define IDirectSound3DBuffer_GetMode(p,a) (p)->GetMode(a)
1106#define IDirectSound3DBuffer_GetPosition(p,a) (p)->GetPosition(a)
1107#define IDirectSound3DBuffer_GetVelocity(p,a) (p)->GetVelocity(a)
1108#define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b)
1109#define IDirectSound3DBuffer_SetConeAngles(p,a,b,c) (p)->SetConeAngles(a,b,c)
1110#define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d)
1111#define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->SetConeOutsideVolume(a,b)
1112#define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->SetMaxDistance(a,b)
1113#define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->SetMinDistance(a,b)
1114#define IDirectSound3DBuffer_SetMode(p,a,b) (p)->SetMode(a,b)
1115#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
1116#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d)
1117#endif
1118
1119/*****************************************************************************
1120 * IKsPropertySet interface
1121 */
1122#ifndef _IKsPropertySet_
1123#define _IKsPropertySet_
1124
1126
1127DEFINE_GUID(IID_IKsPropertySet,0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
1128
1129#define KSPROPERTY_SUPPORT_GET 1
1130#define KSPROPERTY_SUPPORT_SET 2
1131
1132#define INTERFACE IKsPropertySet
1134{
1135 /*** IUnknown methods ***/
1139 /*** IKsPropertySet methods ***/
1142 STDMETHOD(QuerySupport)(THIS_ REFGUID rgid,ULONG x1,ULONG *px2) PURE;
1143};
1144#undef INTERFACE
1145
1146#if !defined(__cplusplus) || defined(CINTERFACE)
1147/*** IUnknown methods ***/
1148#define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1149#define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
1150#define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
1151/*** IKsPropertySet methods ***/
1152#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
1153#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
1154#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
1155#else
1156/*** IUnknown methods ***/
1157#define IKsPropertySet_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1158#define IKsPropertySet_AddRef(p) (p)->AddRef()
1159#define IKsPropertySet_Release(p) (p)->Release()
1160/*** IKsPropertySet methods ***/
1161#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->Get(a,b,c,d,e,f,g)
1162#define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->Set(a,b,c,d,e,f)
1163#define IKsPropertySet_QuerySupport(p,a,b,c) (p)->QuerySupport(a,b,c)
1164#endif
1165
1166#endif /* _IKsPropertySet_ */
1167
1168/*****************************************************************************
1169 * IDirectSoundFullDuplex interface
1170 */
1171#define INTERFACE IDirectSoundFullDuplex
1172DECLARE_INTERFACE_(IDirectSoundFullDuplex,IUnknown)
1173{
1174 /*** IUnknown methods ***/
1178 /*** IDirectSoundFullDuplex methods ***/
1179 STDMETHOD(Initialize)(THIS_ LPCGUID pCaptureGuid,LPCGUID pRendererGuid,LPCDSCBUFFERDESC lpDscBufferDesc,LPCDSBUFFERDESC lpDsBufferDesc,HWND hWnd,DWORD dwLevel,LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8,LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE;
1180};
1181#undef INTERFACE
1182
1183#if !defined(__cplusplus) || defined(CINTERFACE)
1184/*** IUnknown methods ***/
1185#define IDirectSoundFullDuplex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1186#define IDirectSoundFullDuplex_AddRef(p) (p)->lpVtbl->AddRef(p)
1187#define IDirectSoundFullDuplex_Release(p) (p)->lpVtbl->Release(p)
1188/*** IDirectSoundFullDuplex methods ***/
1189#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h)
1190#else
1191/*** IUnknown methods ***/
1192#define IDirectSoundFullDuplex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
1193#define IDirectSoundFullDuplex_AddRef(p) (p)->AddRef()
1194#define IDirectSoundFullDuplex_Release(p) (p)->Release()
1195/*** IDirectSoundFullDuplex methods ***/
1196#define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->Initialize(a,b,c,d,e,f,g,h)
1197#endif
1198
1199#ifdef __cplusplus
1200} /* extern "C" */
1201#endif /* defined(__cplusplus) */
1202
1203#endif /* __DSOUND_INCLUDED__ */
#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
#define CALLBACK
Definition: compat.h:35
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
struct IDirectSoundNotify ** LPLPDIRECTSOUNDNOTIFY
Definition: dsound.h:82
struct _DSEFFECTDESC DSEFFECTDESC
struct _DSBUFFERDESC DSBUFFERDESC
BOOL(CALLBACK * LPDSENUMCALLBACKW)(LPGUID, LPCWSTR, LPCWSTR, LPVOID)
Definition: dsound.h:404
@ 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
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:1038
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:1125
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:949
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
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
return pTarget Start()
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:241
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static LPINTERNAL_BSTR Get(const BSTR lpszString)
Definition: vartype.c:4895
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
static LPUNKNOWN
Definition: ndr_ole.c:49
#define BOOL
Definition: nt_native.h:43
#define LPVOID
Definition: nt_native.h:45
_In_ DWORD _In_ DWORD dwOffset
Definition: ntgdi.h:2033
@ Unlock
Definition: ntsecapi.h:294
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
DWORD dwInsideConeAngle
Definition: dsound.h:1029
D3DVECTOR vConeOrientation
Definition: dsound.h:1031
DWORD dwOutsideConeAngle
Definition: dsound.h:1030
DWORD dwMode
Definition: dsound.h:1035
DWORD dwSize
Definition: dsound.h:1026
D3DVECTOR vPosition
Definition: dsound.h:1027
D3DVECTOR vVelocity
Definition: dsound.h:1028
LONG lConeOutsideVolume
Definition: dsound.h:1032
D3DVALUE flMinDistance
Definition: dsound.h:1033
D3DVALUE flMaxDistance
Definition: dsound.h:1034
D3DVECTOR vOrientTop
Definition: dsound.h:943
DWORD dwSize
Definition: dsound.h:939
D3DVALUE flDopplerFactor
Definition: dsound.h:946
D3DVECTOR vVelocity
Definition: dsound.h:941
D3DVALUE flRolloffFactor
Definition: dsound.h:945
D3DVALUE flDistanceFactor
Definition: dsound.h:944
D3DVECTOR vPosition
Definition: dsound.h:940
D3DVECTOR vOrientFront
Definition: dsound.h:942
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
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_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define DECL_WINELIB_TYPE_AW(type)
Definition: windef.h:401
#define WINAPI
Definition: msvc.h:6
static void Initialize()
Definition: xlate.c:212
const char * LPCSTR
Definition: xmlstorage.h:183
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185