Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/dsdriver.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /* | |
| 2 * DirectSound driver | |
| 3 * (DirectX 5 version) | |
| 4 * | |
| 5 * Copyright (C) 2000 Ove Kaaven | |
| 6 * | |
| 7 * This library is free software; you can redistribute it and/or | |
| 8 * modify it under the terms of the GNU Lesser General Public | |
| 9 * License as published by the Free Software Foundation; either | |
| 10 * version 2.1 of the License, or (at your option) any later version. | |
| 11 * | |
| 12 * This library is distributed in the hope that it will be useful, | |
| 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 15 * Lesser General Public License for more details. | |
| 16 * | |
| 17 * You should have received a copy of the GNU Lesser General Public | |
| 18 * License along with this library; if not, write to the Free Software | |
| 19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| 20 */ | |
| 21 | |
| 22 #ifndef __WINE_DSDRIVER_H | |
| 23 #define __WINE_DSDRIVER_H | |
| 24 | |
| 25 #include <_mingw_dxhelper.h> | |
| 26 | |
| 27 #ifdef __cplusplus | |
| 28 extern "C" { | |
| 29 #endif | |
| 30 | |
| 31 /***************************************************************************** | |
| 32 * Predeclare the interfaces | |
| 33 */ | |
| 34 DEFINE_GUID(IID_IDsDriver, 0x8C4233C0l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00); | |
| 35 typedef struct IDsDriver *PIDSDRIVER; | |
| 36 | |
| 37 DEFINE_GUID(IID_IDsDriverBuffer, 0x8C4233C1l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00); | |
| 38 typedef struct IDsDriverBuffer *PIDSDRIVERBUFFER; | |
| 39 | |
| 40 DEFINE_GUID(IID_IDsDriverPropertySet, 0x0F6F2E8E0, 0xD842, 0x11D0, 0x8F, 0x75, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA); | |
| 41 typedef struct IDsDriverPropertySet *PIDSDRIVERPROPERTYSET; | |
| 42 | |
| 43 DEFINE_GUID(IID_IDsDriverNotify, 0x00363EF44, 0x3B57, 0x11D3, 0xAC, 0x79, 0x00, 0x10, 0x5A, 0x01, 0x7f, 0xe1); | |
| 44 typedef struct IDsDriverNotify *PIDSDRIVERNOTIFY; | |
| 45 | |
| 46 DEFINE_GUID(IID_IDsCaptureDriver, 0x03DD10C47, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08); | |
| 47 typedef struct IDsCaptureDriver *PIDSCDRIVER; | |
| 48 | |
| 49 DEFINE_GUID(IID_IDsCaptureDriverBuffer, 0x03DD10C48, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08); | |
| 50 typedef struct IDsCaptureDriverBuffer *PIDSCDRIVERBUFFER; | |
| 51 | |
| 52 #define DSDDESC_DOMMSYSTEMOPEN 0x00000001 | |
| 53 #define DSDDESC_DOMMSYSTEMSETFORMAT 0x00000002 | |
| 54 #define DSDDESC_USESYSTEMMEMORY 0x00000004 | |
| 55 #define DSDDESC_DONTNEEDPRIMARYLOCK 0x00000008 | |
| 56 #define DSDDESC_DONTNEEDSECONDARYLOCK 0x00000010 | |
| 57 | |
| 58 #define DSDHEAP_NOHEAP 0 | |
| 59 #define DSDHEAP_CREATEHEAP 1 | |
| 60 #define DSDHEAP_USEDIRECTDRAWHEAP 2 | |
| 61 #define DSDHEAP_PRIVATEHEAP 3 | |
| 62 | |
| 63 typedef struct _DSDRIVERDESC | |
| 64 { | |
| 65 DWORD dwFlags; | |
| 66 CHAR szDesc[256]; | |
| 67 CHAR szDrvname[256]; | |
| 68 DWORD dnDevNode; | |
| 69 WORD wVxdId; | |
| 70 WORD wReserved; | |
| 71 ULONG ulDeviceNum; | |
| 72 DWORD dwHeapType; | |
| 73 LPVOID pvDirectDrawHeap; | |
| 74 DWORD dwMemStartAddress; | |
| 75 DWORD dwMemEndAddress; | |
| 76 DWORD dwMemAllocExtra; | |
| 77 LPVOID pvReserved1; | |
| 78 LPVOID pvReserved2; | |
| 79 } DSDRIVERDESC,*PDSDRIVERDESC; | |
| 80 | |
| 81 typedef struct _DSDRIVERCAPS | |
| 82 { | |
| 83 DWORD dwFlags; | |
| 84 DWORD dwMinSecondarySampleRate; | |
| 85 DWORD dwMaxSecondarySampleRate; | |
| 86 DWORD dwPrimaryBuffers; | |
| 87 DWORD dwMaxHwMixingAllBuffers; | |
| 88 DWORD dwMaxHwMixingStaticBuffers; | |
| 89 DWORD dwMaxHwMixingStreamingBuffers; | |
| 90 DWORD dwFreeHwMixingAllBuffers; | |
| 91 DWORD dwFreeHwMixingStaticBuffers; | |
| 92 DWORD dwFreeHwMixingStreamingBuffers; | |
| 93 DWORD dwMaxHw3DAllBuffers; | |
| 94 DWORD dwMaxHw3DStaticBuffers; | |
| 95 DWORD dwMaxHw3DStreamingBuffers; | |
| 96 DWORD dwFreeHw3DAllBuffers; | |
| 97 DWORD dwFreeHw3DStaticBuffers; | |
| 98 DWORD dwFreeHw3DStreamingBuffers; | |
| 99 DWORD dwTotalHwMemBytes; | |
| 100 DWORD dwFreeHwMemBytes; | |
| 101 DWORD dwMaxContigFreeHwMemBytes; | |
| 102 } DSDRIVERCAPS,*PDSDRIVERCAPS; | |
| 103 | |
| 104 typedef struct _DSVOLUMEPAN | |
| 105 { | |
| 106 DWORD dwTotalLeftAmpFactor; | |
| 107 DWORD dwTotalRightAmpFactor; | |
| 108 LONG lVolume; | |
| 109 DWORD dwVolAmpFactor; | |
| 110 LONG lPan; | |
| 111 DWORD dwPanLeftAmpFactor; | |
| 112 DWORD dwPanRightAmpFactor; | |
| 113 } DSVOLUMEPAN,*PDSVOLUMEPAN; | |
| 114 | |
| 115 typedef union _DSPROPERTY | |
| 116 { | |
| 117 struct { | |
| 118 GUID Set; | |
| 119 ULONG Id; | |
| 120 ULONG Flags; | |
| 121 ULONG InstanceId; | |
| 122 } DUMMYSTRUCTNAME; | |
| 123 ULONGLONG Alignment; | |
| 124 } DSPROPERTY,*PDSPROPERTY; | |
| 125 | |
| 126 typedef struct _DSCDRIVERCAPS | |
| 127 { | |
| 128 DWORD dwSize; | |
| 129 DWORD dwFlags; | |
| 130 DWORD dwFormats; | |
| 131 DWORD dwChannels; | |
| 132 } DSCDRIVERCAPS,*PDSCDRIVERCAPS; | |
| 133 | |
| 134 /***************************************************************************** | |
| 135 * IDsDriver interface | |
| 136 */ | |
| 137 #define INTERFACE IDsDriver | |
| 138 DECLARE_INTERFACE_(IDsDriver,IUnknown) | |
| 139 { | |
| 140 /*** IUnknown methods ***/ | |
| 141 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
| 142 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 143 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 144 /*** IDsDriver methods ***/ | |
| 145 STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE; | |
| 146 STDMETHOD(Open)(THIS) PURE; | |
| 147 STDMETHOD(Close)(THIS) PURE; | |
| 148 STDMETHOD(GetCaps)(THIS_ PDSDRIVERCAPS pDsDrvCaps) PURE; | |
| 149 STDMETHOD(CreateSoundBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE; | |
| 150 STDMETHOD(DuplicateSoundBuffer)(THIS_ PIDSDRIVERBUFFER pIDsDriverBuffer,LPVOID *ppvObj) PURE; | |
| 151 }; | |
| 152 #undef INTERFACE | |
| 153 | |
| 154 #if !defined (__cplusplus) || defined(CINTERFACE) | |
| 155 /*** IUnknown methods ***/ | |
| 156 #define IDsDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| 157 #define IDsDriver_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| 158 #define IDsDriver_Release(p) (p)->lpVtbl->Release(p) | |
| 159 /*** IDsDriver methods ***/ | |
| 160 #define IDsDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a) | |
| 161 #define IDsDriver_Open(p) (p)->lpVtbl->Open(p) | |
| 162 #define IDsDriver_Close(p) (p)->lpVtbl->Close(p) | |
| 163 #define IDsDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) | |
| 164 #define IDsDriver_CreateSoundBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c,d,e,f) | |
| 165 #define IDsDriver_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b) | |
| 166 #endif | |
| 167 | |
| 168 /***************************************************************************** | |
| 169 * IDsDriverBuffer interface | |
| 170 */ | |
| 171 #define INTERFACE IDsDriverBuffer | |
| 172 DECLARE_INTERFACE_(IDsDriverBuffer,IUnknown) | |
| 173 { | |
| 174 /*** IUnknown methods ***/ | |
| 175 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
| 176 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 177 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 178 /*** IDsDriverBuffer methods ***/ | |
| 179 STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *pdwAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE; | |
| 180 STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE; | |
| 181 STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE; | |
| 182 STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE; | |
| 183 STDMETHOD(SetVolumePan)(THIS_ PDSVOLUMEPAN pDsVolumePan) PURE; | |
| 184 STDMETHOD(SetPosition)(THIS_ DWORD dwNewPosition) PURE; | |
| 185 STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE; | |
| 186 STDMETHOD(Play)(THIS_ DWORD dwReserved1,DWORD dwReserved2,DWORD dwFlags) PURE; | |
| 187 STDMETHOD(Stop)(THIS) PURE; | |
| 188 }; | |
| 189 #undef INTERFACE | |
| 190 | |
| 191 #if !defined (__cplusplus) || defined(CINTERFACE) | |
| 192 /*** IUnknown methods ***/ | |
| 193 #define IDsDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| 194 #define IDsDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| 195 #define IDsDriverBuffer_Release(p) (p)->lpVtbl->Release(p) | |
| 196 /*** IDsDriverBuffer methods ***/ | |
| 197 #define IDsDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) | |
| 198 #define IDsDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) | |
| 199 #define IDsDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a) | |
| 200 #define IDsDriverBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a) | |
| 201 #define IDsDriverBuffer_SetVolumePan(p,a) (p)->lpVtbl->SetVolumePan(p,a) | |
| 202 #define IDsDriverBuffer_SetPosition(p,a) (p)->lpVtbl->SetPosition(p,a) | |
| 203 #define IDsDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b) | |
| 204 #define IDsDriverBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c) | |
| 205 #define IDsDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p) | |
| 206 #endif | |
| 207 | |
| 208 /***************************************************************************** | |
| 209 * IDsDriverPropertySet interface | |
| 210 */ | |
| 211 #define INTERFACE IDsDriverPropertySet | |
| 212 DECLARE_INTERFACE_(IDsDriverPropertySet,IUnknown) | |
| 213 { | |
| 214 /*** IUnknown methods ***/ | |
| 215 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
| 216 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 217 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 218 /*** IDsDriverPropertySet methods ***/ | |
| 219 STDMETHOD(Get)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData,PULONG pcbReturnedData) PURE; | |
| 220 STDMETHOD(Set)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData) PURE; | |
| 221 STDMETHOD(QuerySupport)(THIS_ REFGUID PropertySetId,ULONG PropertyId,PULONG pSupport) PURE; | |
| 222 }; | |
| 223 #undef INTERFACE | |
| 224 | |
| 225 #if !defined (__cplusplus) || defined(CINTERFACE) | |
| 226 /*** IUnknown methods ***/ | |
| 227 #define IDsDriverPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| 228 #define IDsDriverPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| 229 #define IDsDriverPropertySet_Release(p) (p)->lpVtbl->Release(p) | |
| 230 /*** IDsDriverPropertySet methods ***/ | |
| 231 #define IDsDriverPropertySet_Get(p,a,b,c,d,e,f) (p)->lpVtbl->Get(p,a,b,c,d,e,f) | |
| 232 #define IDsDriverPropertySet_Set(p,a,b,c,d,e) (p)->lpVtbl->Set(p,a,b,c,d,e) | |
| 233 #define IDsDriverPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c) | |
| 234 #endif | |
| 235 | |
| 236 /* Defined property sets */ | |
| 237 DEFINE_GUID(DSPROPSETID_DirectSound3DListener, 0x6D047B40, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); | |
| 238 typedef enum | |
| 239 { | |
| 240 DSPROPERTY_DIRECTSOUND3DLISTENER_ALL, | |
| 241 DSPROPERTY_DIRECTSOUND3DLISTENER_POSITION, | |
| 242 DSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY, | |
| 243 DSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION, | |
| 244 DSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR, | |
| 245 DSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR, | |
| 246 DSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR, | |
| 247 DSPROPERTY_DIRECTSOUND3DLISTENER_BATCH, | |
| 248 DSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION | |
| 249 } DSPROPERTY_DIRECTSOUND3DLISTENER; | |
| 250 | |
| 251 DEFINE_GUID(DSPROPSETID_DirectSound3DBuffer, 0x6D047B41, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); | |
| 252 typedef enum | |
| 253 { | |
| 254 DSPROPERTY_DIRECTSOUND3DBUFFER_ALL, | |
| 255 DSPROPERTY_DIRECTSOUND3DBUFFER_POSITION, | |
| 256 DSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY, | |
| 257 DSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES, | |
| 258 DSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION, | |
| 259 DSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME, | |
| 260 DSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE, | |
| 261 DSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE, | |
| 262 DSPROPERTY_DIRECTSOUND3DBUFFER_MODE | |
| 263 } DSPROPERTY_DIRECTSOUND3DBUFFER; | |
| 264 | |
| 265 DEFINE_GUID(DSPROPSETID_DirectSoundSpeakerConfig, 0x6D047B42, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); | |
| 266 typedef enum | |
| 267 { | |
| 268 DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG_SPEAKERCONFIG | |
| 269 } DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG; | |
| 270 | |
| 271 /***************************************************************************** | |
| 272 * IDsDriverNotify interface | |
| 273 */ | |
| 274 #define INTERFACE IDsDriverNotify | |
| 275 DECLARE_INTERFACE_(IDsDriverNotify,IUnknown) | |
| 276 { | |
| 277 /*** IUnknown methods ***/ | |
| 278 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
| 279 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 280 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 281 /*** IDsDriverNotify methods ***/ | |
| 282 STDMETHOD(SetNotificationPositions)(THIS_ DWORD dwPositionNotifies,LPCDSBPOSITIONNOTIFY pcPositionNotifies) PURE; | |
| 283 }; | |
| 284 #undef INTERFACE | |
| 285 | |
| 286 #if !defined (__cplusplus) || defined(CINTERFACE) | |
| 287 /*** IUnknown methods ***/ | |
| 288 #define IDsDriverNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| 289 #define IDsDriverNotify_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| 290 #define IDsDriverNotify_Release(p) (p)->lpVtbl->Release(p) | |
| 291 /*** IDsDriverNotify methods ***/ | |
| 292 #define IDsDriverNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b) | |
| 293 #endif | |
| 294 | |
| 295 /***************************************************************************** | |
| 296 * IDsCaptureDriver interface | |
| 297 */ | |
| 298 #define INTERFACE IDsCaptureDriver | |
| 299 DECLARE_INTERFACE_(IDsCaptureDriver,IUnknown) | |
| 300 { | |
| 301 /*** IUnknown methods ***/ | |
| 302 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
| 303 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 304 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 305 /*** IDsCaptureDriver methods ***/ | |
| 306 STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE; | |
| 307 STDMETHOD(Open)(THIS) PURE; | |
| 308 STDMETHOD(Close)(THIS) PURE; | |
| 309 STDMETHOD(GetCaps)(THIS_ PDSCDRIVERCAPS pDsDrvCaps) PURE; | |
| 310 STDMETHOD(CreateCaptureBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE; | |
| 311 }; | |
| 312 #undef INTERFACE | |
| 313 | |
| 314 #if !defined (__cplusplus) || defined(CINTERFACE) | |
| 315 /*** IUnknown methods ***/ | |
| 316 #define IDsCaptureDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| 317 #define IDsCaptureDriver_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| 318 #define IDsCaptureDriver_Release(p) (p)->lpVtbl->Release(p) | |
| 319 /*** IDsCaptureDriver methods ***/ | |
| 320 #define IDsCaptureDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a) | |
| 321 #define IDsCaptureDriver_Open(p) (p)->lpVtbl->Open(p) | |
| 322 #define IDsCaptureDriver_Close(p) (p)->lpVtbl->Close(p) | |
| 323 #define IDsCaptureDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) | |
| 324 #define IDsCaptureDriver_CreateCaptureBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c,d,e,f) | |
| 325 #endif | |
| 326 | |
| 327 /***************************************************************************** | |
| 328 * IDsCaptureDriverBuffer interface | |
| 329 */ | |
| 330 #define INTERFACE IDsCaptureDriverBuffer | |
| 331 DECLARE_INTERFACE_(IDsCaptureDriverBuffer,IUnknown) | |
| 332 { | |
| 333 /*** IUnknown methods ***/ | |
| 334 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; | |
| 335 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 336 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 337 /*** IDsCaptureDriverBuffer methods ***/ | |
| 338 STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *ppvAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE; | |
| 339 STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE; | |
| 340 STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE; | |
| 341 STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE; | |
| 342 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE; | |
| 343 STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE; | |
| 344 STDMETHOD(Stop)(THIS) PURE; | |
| 345 }; | |
| 346 #undef INTERFACE | |
| 347 | |
| 348 #if !defined (__cplusplus) || defined(CINTERFACE) | |
| 349 /*** IUnknown methods ***/ | |
| 350 #define IDsCaptureDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) | |
| 351 #define IDsCaptureDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) | |
| 352 #define IDsCaptureDriverBuffer_Release(p) (p)->lpVtbl->Release(p) | |
| 353 /*** IDsCaptureDriverBuffer methods ***/ | |
| 354 #define IDsCaptureDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) | |
| 355 #define IDsCaptureDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) | |
| 356 #define IDsCaptureDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a) | |
| 357 #define IDsCaptureDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b) | |
| 358 #define IDsCaptureDriverBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) | |
| 359 #define IDsCaptureDriverBuffer_Start(p,a) (p)->lpVtbl->Start(p,a) | |
| 360 #define IDsCaptureDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p) | |
| 361 #endif | |
| 362 | |
| 363 #ifdef __cplusplus | |
| 364 } /* extern "C" */ | |
| 365 #endif | |
| 366 | |
| 367 #endif /* __WINE_DSDRIVER_H */ |
