22#ifndef __WINE_DSDRIVER_H
23#define __WINE_DSDRIVER_H
32DEFINE_GUID(IID_IDsDriver, 0x8C4233C0l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
35DEFINE_GUID(IID_IDsDriverBuffer, 0x8C4233C1l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
38DEFINE_GUID(IID_IDsDriverPropertySet, 0x0F6F2E8E0, 0xD842, 0x11D0, 0x8F, 0x75, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
41DEFINE_GUID(IID_IDsDriverNotify, 0x00363EF44, 0x3B57, 0x11D3, 0xAC, 0x79, 0x00, 0x10, 0x5A, 0x01, 0x7f, 0xe1);
44DEFINE_GUID(IID_IDsCaptureDriver, 0x03DD10C47, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08);
47DEFINE_GUID(IID_IDsCaptureDriverBuffer, 0x03DD10C48, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08);
50#define DSDDESC_DOMMSYSTEMOPEN 0x00000001
51#define DSDDESC_DOMMSYSTEMSETFORMAT 0x00000002
52#define DSDDESC_USESYSTEMMEMORY 0x00000004
53#define DSDDESC_DONTNEEDPRIMARYLOCK 0x00000008
54#define DSDDESC_DONTNEEDSECONDARYLOCK 0x00000010
55#define DSDDESC_DONTNEEDWRITELEAD 0x00000020
57#define DSDHEAP_NOHEAP 0
58#define DSDHEAP_CREATEHEAP 1
59#define DSDHEAP_USEDIRECTDRAWHEAP 2
60#define DSDHEAP_PRIVATEHEAP 3
136#define INTERFACE IDsDriver
153#if !defined (__cplusplus) || defined(CINTERFACE)
155#define IDsDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
156#define IDsDriver_AddRef(p) (p)->lpVtbl->AddRef(p)
157#define IDsDriver_Release(p) (p)->lpVtbl->Release(p)
159#define IDsDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a)
160#define IDsDriver_Open(p) (p)->lpVtbl->Open(p)
161#define IDsDriver_Close(p) (p)->lpVtbl->Close(p)
162#define IDsDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
163#define IDsDriver_CreateSoundBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c,d,e,f)
164#define IDsDriver_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
170#define INTERFACE IDsDriverBuffer
190#if !defined (__cplusplus) || defined(CINTERFACE)
192#define IDsDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
193#define IDsDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
194#define IDsDriverBuffer_Release(p) (p)->lpVtbl->Release(p)
196#define IDsDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
197#define IDsDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
198#define IDsDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
199#define IDsDriverBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
200#define IDsDriverBuffer_SetVolumePan(p,a) (p)->lpVtbl->SetVolumePan(p,a)
201#define IDsDriverBuffer_SetPosition(p,a) (p)->lpVtbl->SetPosition(p,a)
202#define IDsDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
203#define IDsDriverBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
204#define IDsDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p)
210#define INTERFACE IDsDriverPropertySet
224#if !defined (__cplusplus) || defined(CINTERFACE)
226#define IDsDriverPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
227#define IDsDriverPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
228#define IDsDriverPropertySet_Release(p) (p)->lpVtbl->Release(p)
230#define IDsDriverPropertySet_Get(p,a,b,c,d,e,f) (p)->lpVtbl->Get(p,a,b,c,d,e,f)
231#define IDsDriverPropertySet_Set(p,a,b,c,d,e) (p)->lpVtbl->Set(p,a,b,c,d,e)
232#define IDsDriverPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
236DEFINE_GUID(DSPROPSETID_DirectSound3DListener, 0x6D047B40, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
250DEFINE_GUID(DSPROPSETID_DirectSound3DBuffer, 0x6D047B41, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
264DEFINE_GUID(DSPROPSETID_DirectSoundSpeakerConfig, 0x6D047B42, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
273#define INTERFACE IDsDriverNotify
285#if !defined (__cplusplus) || defined(CINTERFACE)
287#define IDsDriverNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
288#define IDsDriverNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
289#define IDsDriverNotify_Release(p) (p)->lpVtbl->Release(p)
291#define IDsDriverNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
297#define INTERFACE IDsCaptureDriver
313#if !defined (__cplusplus) || defined(CINTERFACE)
315#define IDsCaptureDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
316#define IDsCaptureDriver_AddRef(p) (p)->lpVtbl->AddRef(p)
317#define IDsCaptureDriver_Release(p) (p)->lpVtbl->Release(p)
319#define IDsCaptureDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a)
320#define IDsCaptureDriver_Open(p) (p)->lpVtbl->Open(p)
321#define IDsCaptureDriver_Close(p) (p)->lpVtbl->Close(p)
322#define IDsCaptureDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
323#define IDsCaptureDriver_CreateCaptureBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c,d,e,f)
329#define INTERFACE IDsCaptureDriverBuffer
347#if !defined (__cplusplus) || defined(CINTERFACE)
349#define IDsCaptureDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
350#define IDsCaptureDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
351#define IDsCaptureDriverBuffer_Release(p) (p)->lpVtbl->Release(p)
353#define IDsCaptureDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
354#define IDsCaptureDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
355#define IDsCaptureDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
356#define IDsCaptureDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
357#define IDsCaptureDriverBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
358#define IDsCaptureDriverBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
359#define IDsCaptureDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p)
#define GetStatus(BaseIoAddress, Status)
#define DECLARE_INTERFACE_(i, b)
_In_ PSTORAGE_PROPERTY_ID PropertyId
struct IDsDriverPropertySet * PIDSDRIVERPROPERTYSET
struct _DSDRIVERDESC DSDRIVERDESC
struct IDsCaptureDriver * PIDSCDRIVER
struct _DSDRIVERDESC * PDSDRIVERDESC
DSPROPERTY_DIRECTSOUND3DLISTENER
@ DSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY
@ DSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR
@ DSPROPERTY_DIRECTSOUND3DLISTENER_POSITION
@ DSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
@ DSPROPERTY_DIRECTSOUND3DLISTENER_BATCH
@ DSPROPERTY_DIRECTSOUND3DLISTENER_ALL
@ DSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR
@ DSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR
@ DSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION
struct IDsDriver * PIDSDRIVER
struct _DSVOLUMEPAN DSVOLUMEPAN
struct _DSVOLUMEPAN * PDSVOLUMEPAN
struct _DSDRIVERCAPS * PDSDRIVERCAPS
struct _DSCDRIVERCAPS * PDSCDRIVERCAPS
DSPROPERTY_DIRECTSOUND3DBUFFER
@ DSPROPERTY_DIRECTSOUND3DBUFFER_MODE
@ DSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION
@ DSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME
@ DSPROPERTY_DIRECTSOUND3DBUFFER_POSITION
@ DSPROPERTY_DIRECTSOUND3DBUFFER_ALL
@ DSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY
@ DSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE
@ DSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE
@ DSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES
union _DSPROPERTY DSPROPERTY
DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG
@ DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG_SPEAKERCONFIG
struct IDsDriverBuffer * PIDSDRIVERBUFFER
struct IDsDriverNotify * PIDSDRIVERNOTIFY
struct _DSCDRIVERCAPS DSCDRIVERCAPS
union _DSPROPERTY * PDSPROPERTY
struct IDsCaptureDriverBuffer * PIDSCDRIVERBUFFER
struct _DSDRIVERCAPS DSDRIVERCAPS
_In_opt_ PVOID _Out_ BOOLEAN * Stop
DWORD GetPosition(DWORD private_handle, PMMTIME time, DWORD time_size)
static HRESULT QueryInterface(REFIID, void **)
static LPINTERNAL_BSTR Get(const BSTR lpszString)
static ULONG WINAPI AddRef(IStream *iface)
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
DWORD dwMaxHwMixingAllBuffers
DWORD dwMaxContigFreeHwMemBytes
DWORD dwMaxHwMixingStreamingBuffers
DWORD dwFreeHwMixingAllBuffers
DWORD dwMaxSecondarySampleRate
DWORD dwFreeHwMixingStaticBuffers
DWORD dwMaxHwMixingStaticBuffers
DWORD dwMaxHw3DAllBuffers
DWORD dwFreeHw3DStaticBuffers
DWORD dwMaxHw3DStreamingBuffers
DWORD dwMinSecondarySampleRate
DWORD dwFreeHw3DAllBuffers
DWORD dwMaxHw3DStaticBuffers
DWORD dwFreeHw3DStreamingBuffers
DWORD dwFreeHwMixingStreamingBuffers
DWORD dwPanRightAmpFactor
DWORD dwTotalRightAmpFactor
DWORD dwTotalLeftAmpFactor
struct _DSPROPERTY::@2287 DUMMYSTRUCTNAME
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject