Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendsound.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) the Wine project 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00017 */ 00018 00019 00020 00021 #ifndef __WINE_DSOUND_H 00022 #define __WINE_DSOUND_H 00023 00024 // hack 00025 #define __DSOUND_INCLUDED__ 00026 00027 00028 #ifndef DIRECTSOUND_VERSION 00029 #define DIRECTSOUND_VERSION 0x0900 00030 #endif 00031 00032 #define COM_NO_WINDOWS_H 00033 #include <objbase.h> 00034 #include <float.h> 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif /* defined(__cplusplus) */ 00039 00040 #ifndef DX_SHARED_DEFINES 00041 00042 typedef float D3DVALUE, *LPD3DVALUE; 00043 00044 #ifndef D3DCOLOR_DEFINED 00045 typedef DWORD D3DCOLOR, *LPD3DCOLOR; 00046 #define D3DCOLOR_DEFINED 00047 #endif 00048 00049 #ifndef D3DVECTOR_DEFINED 00050 typedef struct _D3DVECTOR { 00051 float x; 00052 float y; 00053 float z; 00054 } D3DVECTOR; 00055 #define D3DVECTOR_DEFINED 00056 #endif 00057 00058 #ifndef LPD3DVECTOR_DEFINED 00059 typedef D3DVECTOR *LPD3DVECTOR; 00060 #define LPD3DVECTOR_DEFINED 00061 #endif 00062 00063 00064 00065 #define DX_SHARED_DEFINES 00066 #endif /* DX_SHARED_DEFINES */ 00067 00068 /***************************************************************************** 00069 * Predeclare the interfaces 00070 */ 00071 DEFINE_GUID(CLSID_DirectSound, 0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00); 00072 DEFINE_GUID(CLSID_DirectSound8, 0x3901cc3f, 0x84b5, 0x4fa4, 0xba, 0x35, 0xaa, 0x81, 0x72, 0xb8, 0xa0, 0x9b); 00073 DEFINE_GUID(CLSID_DirectSoundCapture, 0xb0210780, 0x89cd, 0x11d0, 0xaf, 0x08, 0x00, 0xa0, 0xc9, 0x25, 0xcd, 0x16); 00074 DEFINE_GUID(CLSID_DirectSoundCapture8, 0xe4bcac13, 0x7f99, 0x4908, 0x9a, 0x8e, 0x74, 0xe3, 0xbf, 0x24, 0xb6, 0xe1); 00075 DEFINE_GUID(CLSID_DirectSoundFullDuplex,0xfea4300c, 0x7959, 0x4147, 0xb2, 0x6a, 0x23, 0x77, 0xb9, 0xe7, 0xa9, 0x1d); 00076 00077 DEFINE_GUID(IID_IDirectSound, 0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); 00078 typedef struct IDirectSound *LPDIRECTSOUND,**LPLPDIRECTSOUND; 00079 00080 DEFINE_GUID(IID_IDirectSound8, 0xC50A7E93,0xF395,0x4834,0x9E,0xF6,0x7F,0xA9,0x9D,0xE5,0x09,0x66); 00081 typedef struct IDirectSound8 *LPDIRECTSOUND8,**LPLPDIRECTSOUND8; 00082 00083 DEFINE_GUID(IID_IDirectSoundBuffer, 0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); 00084 typedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER,**LPLPDIRECTSOUNDBUFFER; 00085 00086 DEFINE_GUID(IID_IDirectSoundBuffer8, 0x6825A449,0x7524,0x4D82,0x92,0x0F,0x50,0xE3,0x6A,0xB3,0xAB,0x1E); 00087 typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8,**LPLPDIRECTSOUNDBUFFER8; 00088 00089 DEFINE_GUID(IID_IDirectSoundNotify, 0xB0210783,0x89cd,0x11d0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16); 00090 typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY,**LPLPDIRECTSOUNDNOTIFY; 00091 #define IID_IDirectSoundNotify8 IID_IDirectSoundNotify 00092 00093 DEFINE_GUID(IID_IDirectSound3DListener, 0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); 00094 typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER,**LPLPDIRECTSOUND3DLISTENER; 00095 00096 DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); 00097 typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER,**LPLPDIRECTSOUND3DBUFFER; 00098 00099 DEFINE_GUID(IID_IDirectSoundCapture, 0xB0210781,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16); 00100 typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE,**LPLPDIRECTSOUNDCAPTURE; 00101 #define IID_IDirectSoundCapture8 IID_IDirectSoundCapture 00102 typedef struct IDirectSoundCapture IDirectSoundCapture8,*LPDIRECTSOUNDCAPTURE8,**LPLPDIRECTSOUNDCAPTURE8; 00103 00104 DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xB0210782,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16); 00105 typedef struct IDirectSoundCaptureBuffer *LPDIRECTSOUNDCAPTUREBUFFER,**LPLPDIRECTSOUNDCAPTUREBUFFER; 00106 00107 DEFINE_GUID(IID_IDirectSoundCaptureBuffer8,0x00990DF4,0x0DBB,0x4872,0x83,0x3E,0x6D,0x30,0x3E,0x80,0xAE,0xB6); 00108 typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8,**LPLPDIRECTSOUNDCAPTUREBUFFER8; 00109 00110 DEFINE_GUID(IID_IDirectSoundFullDuplex, 0xEDCB4C7A,0xDAAB,0x4216,0xA4,0x2E,0x6C,0x50,0x59,0x6D,0xDC,0x1D); 00111 typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX,**LPLPDIRECTSOUNDFULLDUPLEX; 00112 #define IID_IDirectSoundFullDuplex8 IID_IDirectSoundFullDuplex 00113 00114 DEFINE_GUID(DSDEVID_DefaultPlayback, 0xDEF00000,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03); 00115 DEFINE_GUID(DSDEVID_DefaultCapture, 0xDEF00001,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03); 00116 DEFINE_GUID(DSDEVID_DefaultVoicePlayback,0xDEF00002,0x9C6D,0x47Ed,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03); 00117 DEFINE_GUID(DSDEVID_DefaultVoiceCapture, 0xDEF00003,0x9C6D,0x47ED,0xAA,0xF1,0x4D,0xDA,0x8F,0x2B,0x5C,0x03); 00118 00119 DEFINE_GUID(DSDEVID_WinePlayback, 0x40316A1D,0x605B,0xD611,0x87,0xC6,0x00,0x80,0xAD,0x00,0x02,0xFE); 00120 00121 #define _FACDS 0x878 00122 #define MAKE_DSHRESULT(code) MAKE_HRESULT(1,_FACDS,code) 00123 00124 #define DS_OK 0 00125 #define DS_NO_VIRTUALIZATION MAKE_HRESULT(0, _FACDS, 10) 00126 #define DS_INCOMPLETE MAKE_HRESULT(0, _FACDS, 20) 00127 #define DSERR_ALLOCATED MAKE_DSHRESULT(10) 00128 #define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT(30) 00129 #define DSERR_INVALIDPARAM E_INVALIDARG 00130 #define DSERR_INVALIDCALL MAKE_DSHRESULT(50) 00131 #define DSERR_GENERIC E_FAIL 00132 #define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT(70) 00133 #define DSERR_OUTOFMEMORY E_OUTOFMEMORY 00134 #define DSERR_BADFORMAT MAKE_DSHRESULT(100) 00135 #define DSERR_UNSUPPORTED E_NOTIMPL 00136 #define DSERR_NODRIVER MAKE_DSHRESULT(120) 00137 #define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT(130) 00138 #define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION 00139 #define DSERR_BUFFERLOST MAKE_DSHRESULT(150) 00140 #define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT(160) 00141 #define DSERR_UNINITIALIZED MAKE_DSHRESULT(170) 00142 #define DSERR_NOINTERFACE E_NOINTERFACE 00143 #define DSERR_ACCESSDENIED E_ACCESSDENIED 00144 #define DSERR_BUFFERTOOSMALL MAKE_DSHRESULT(180) 00145 #define DSERR_DS8_REQUIRED MAKE_DSHRESULT(190) 00146 #define DSERR_SENDLOOP MAKE_DSHRESULT(200) 00147 #define DSERR_BADSENDBUFFERGUID MAKE_DSHRESULT(210) 00148 #define DSERR_FXUNAVAILABLE MAKE_DSHRESULT(220) 00149 #define DSERR_OBJECTNOTFOUND MAKE_DSHRESULT(4449) 00150 00151 #define DSCAPS_PRIMARYMONO 0x00000001 00152 #define DSCAPS_PRIMARYSTEREO 0x00000002 00153 #define DSCAPS_PRIMARY8BIT 0x00000004 00154 #define DSCAPS_PRIMARY16BIT 0x00000008 00155 #define DSCAPS_CONTINUOUSRATE 0x00000010 00156 #define DSCAPS_EMULDRIVER 0x00000020 00157 #define DSCAPS_CERTIFIED 0x00000040 00158 #define DSCAPS_SECONDARYMONO 0x00000100 00159 #define DSCAPS_SECONDARYSTEREO 0x00000200 00160 #define DSCAPS_SECONDARY8BIT 0x00000400 00161 #define DSCAPS_SECONDARY16BIT 0x00000800 00162 00163 #define DSSCL_NORMAL 1 00164 #define DSSCL_PRIORITY 2 00165 #define DSSCL_EXCLUSIVE 3 00166 #define DSSCL_WRITEPRIMARY 4 00167 00168 typedef struct _DSCAPS 00169 { 00170 DWORD dwSize; 00171 DWORD dwFlags; 00172 DWORD dwMinSecondarySampleRate; 00173 DWORD dwMaxSecondarySampleRate; 00174 DWORD dwPrimaryBuffers; 00175 DWORD dwMaxHwMixingAllBuffers; 00176 DWORD dwMaxHwMixingStaticBuffers; 00177 DWORD dwMaxHwMixingStreamingBuffers; 00178 DWORD dwFreeHwMixingAllBuffers; 00179 DWORD dwFreeHwMixingStaticBuffers; 00180 DWORD dwFreeHwMixingStreamingBuffers; 00181 DWORD dwMaxHw3DAllBuffers; 00182 DWORD dwMaxHw3DStaticBuffers; 00183 DWORD dwMaxHw3DStreamingBuffers; 00184 DWORD dwFreeHw3DAllBuffers; 00185 DWORD dwFreeHw3DStaticBuffers; 00186 DWORD dwFreeHw3DStreamingBuffers; 00187 DWORD dwTotalHwMemBytes; 00188 DWORD dwFreeHwMemBytes; 00189 DWORD dwMaxContigFreeHwMemBytes; 00190 DWORD dwUnlockTransferRateHwBuffers; 00191 DWORD dwPlayCpuOverheadSwBuffers; 00192 DWORD dwReserved1; 00193 DWORD dwReserved2; 00194 } DSCAPS,*LPDSCAPS; 00195 typedef const DSCAPS *LPCDSCAPS; 00196 00197 #define DSBPLAY_LOOPING 0x00000001 00198 #define DSBPLAY_LOCHARDWARE 0x00000002 00199 #define DSBPLAY_LOCSOFTWARE 0x00000004 00200 #define DSBPLAY_TERMINATEBY_TIME 0x00000008 00201 #define DSBPLAY_TERMINATEBY_DISTANCE 0x000000010 00202 #define DSBPLAY_TERMINATEBY_PRIORITY 0x000000020 00203 00204 #define DSBSTATUS_PLAYING 0x00000001 00205 #define DSBSTATUS_BUFFERLOST 0x00000002 00206 #define DSBSTATUS_LOOPING 0x00000004 00207 #define DSBSTATUS_LOCHARDWARE 0x00000008 00208 #define DSBSTATUS_LOCSOFTWARE 0x00000010 00209 #define DSBSTATUS_TERMINATED 0x00000020 00210 00211 #define DSBLOCK_FROMWRITECURSOR 0x00000001 00212 #define DSBLOCK_ENTIREBUFFER 0x00000002 00213 00214 #define DSBCAPS_PRIMARYBUFFER 0x00000001 00215 #define DSBCAPS_STATIC 0x00000002 00216 #define DSBCAPS_LOCHARDWARE 0x00000004 00217 #define DSBCAPS_LOCSOFTWARE 0x00000008 00218 #define DSBCAPS_CTRL3D 0x00000010 00219 #define DSBCAPS_CTRLFREQUENCY 0x00000020 00220 #define DSBCAPS_CTRLPAN 0x00000040 00221 #define DSBCAPS_CTRLVOLUME 0x00000080 00222 #define DSBCAPS_CTRLDEFAULT 0x000000E0 /* Pan + volume + frequency. */ 00223 #define DSBCAPS_CTRLPOSITIONNOTIFY 0x00000100 00224 #define DSBCAPS_CTRLFX 0x00000200 00225 #define DSBCAPS_CTRLALL 0x000001F0 /* All control capabilities */ 00226 #define DSBCAPS_STICKYFOCUS 0x00004000 00227 #define DSBCAPS_GLOBALFOCUS 0x00008000 00228 #define DSBCAPS_GETCURRENTPOSITION2 0x00010000 /* More accurate play cursor under emulation*/ 00229 #define DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000 00230 #define DSBCAPS_LOCDEFER 0x00040000 00231 00232 #define DSBSIZE_MIN 4 00233 #define DSBSIZE_MAX 0xFFFFFFF 00234 #define DSBPAN_LEFT -10000 00235 #define DSBPAN_CENTER 0 00236 #define DSBPAN_RIGHT 10000 00237 #define DSBVOLUME_MAX 0 00238 #define DSBVOLUME_MIN -10000 00239 #define DSBFREQUENCY_MIN 100 00240 #define DSBFREQUENCY_MAX 200000 00241 #define DSBFREQUENCY_ORIGINAL 0 00242 00243 typedef struct _DSBCAPS 00244 { 00245 DWORD dwSize; 00246 DWORD dwFlags; 00247 DWORD dwBufferBytes; 00248 DWORD dwUnlockTransferRate; 00249 DWORD dwPlayCpuOverhead; 00250 } DSBCAPS,*LPDSBCAPS; 00251 typedef const DSBCAPS *LPCDSBCAPS; 00252 00253 #define DSSCL_NORMAL 1 00254 #define DSSCL_PRIORITY 2 00255 #define DSSCL_EXCLUSIVE 3 00256 #define DSSCL_WRITEPRIMARY 4 00257 00258 typedef struct _DSEFFECTDESC 00259 { 00260 DWORD dwSize; 00261 DWORD dwFlags; 00262 GUID guidDSFXClass; 00263 DWORD_PTR dwReserved1; 00264 DWORD_PTR dwReserved2; 00265 } DSEFFECTDESC,*LPDSEFFECTDESC; 00266 typedef const DSEFFECTDESC *LPCDSEFFECTDESC; 00267 00268 #define DSFX_LOCHARDWARE 0x00000001 00269 #define DSFX_LOCSOFTWARE 0x00000002 00270 00271 enum 00272 { 00273 DSFXR_PRESENT, 00274 DSFXR_LOCHARDWARE, 00275 DSFXR_LOCSOFTWARE, 00276 DSFXR_UNALLOCATED, 00277 DSFXR_FAILED, 00278 DSFXR_UNKNOWN, 00279 DSFXR_SENDLOOP 00280 }; 00281 00282 typedef struct _DSBUFFERDESC1 00283 { 00284 DWORD dwSize; 00285 DWORD dwFlags; 00286 DWORD dwBufferBytes; 00287 DWORD dwReserved; 00288 LPWAVEFORMATEX lpwfxFormat; 00289 } DSBUFFERDESC1,*LPDSBUFFERDESC1; 00290 typedef const DSBUFFERDESC1 *LPCDSBUFFERDESC1; 00291 00292 typedef struct _DSBUFFERDESC 00293 { 00294 DWORD dwSize; 00295 DWORD dwFlags; 00296 DWORD dwBufferBytes; 00297 DWORD dwReserved; 00298 LPWAVEFORMATEX lpwfxFormat; 00299 GUID guid3DAlgorithm; 00300 } DSBUFFERDESC,*LPDSBUFFERDESC; 00301 typedef const DSBUFFERDESC *LPCDSBUFFERDESC; 00302 00303 typedef struct _DSBPOSITIONNOTIFY 00304 { 00305 DWORD dwOffset; 00306 HANDLE hEventNotify; 00307 } DSBPOSITIONNOTIFY,*LPDSBPOSITIONNOTIFY; 00308 typedef const DSBPOSITIONNOTIFY *LPCDSBPOSITIONNOTIFY; 00309 00310 #define DSSPEAKER_HEADPHONE 1 00311 #define DSSPEAKER_MONO 2 00312 #define DSSPEAKER_QUAD 3 00313 #define DSSPEAKER_STEREO 4 00314 #define DSSPEAKER_SURROUND 5 00315 #define DSSPEAKER_5POINT1 6 00316 #define DSSPEAKER_7POINT1 7 00317 00318 #define DSSPEAKER_GEOMETRY_MIN 0x00000005 /* 5 degrees */ 00319 #define DSSPEAKER_GEOMETRY_NARROW 0x0000000A /* 10 degrees */ 00320 #define DSSPEAKER_GEOMETRY_WIDE 0x00000014 /* 20 degrees */ 00321 #define DSSPEAKER_GEOMETRY_MAX 0x000000B4 /* 180 degrees */ 00322 00323 #define DSSPEAKER_COMBINED(c, g) ((DWORD)(((BYTE)(c)) | ((DWORD)((BYTE)(g))) << 16)) 00324 #define DSSPEAKER_CONFIG(a) ((BYTE)(a)) 00325 #define DSSPEAKER_GEOMETRY(a) ((BYTE)(((DWORD)(a) >> 16) & 0x00FF)) 00326 00327 #define DS_CERTIFIED 0x00000000 00328 #define DS_UNCERTIFIED 0x00000001 00329 00330 typedef struct _DSCEFFECTDESC 00331 { 00332 DWORD dwSize; 00333 DWORD dwFlags; 00334 GUID guidDSCFXClass; 00335 GUID guidDSCFXInstance; 00336 DWORD dwReserved1; 00337 DWORD dwReserved2; 00338 } DSCEFFECTDESC, *LPDSCEFFECTDESC; 00339 typedef const DSCEFFECTDESC *LPCDSCEFFECTDESC; 00340 00341 #define DSCFX_LOCHARDWARE 0x00000001 00342 #define DSCFX_LOCSOFTWARE 0x00000002 00343 00344 #define DSCFXR_LOCHARDWARE 0x00000010 00345 #define DSCFXR_LOCSOFTWARE 0x00000020 00346 00347 typedef struct _DSCBUFFERDESC1 00348 { 00349 DWORD dwSize; 00350 DWORD dwFlags; 00351 DWORD dwBufferBytes; 00352 DWORD dwReserved; 00353 LPWAVEFORMATEX lpwfxFormat; 00354 } DSCBUFFERDESC1, *LPDSCBUFFERDESC1; 00355 00356 typedef struct _DSCBUFFERDESC 00357 { 00358 DWORD dwSize; 00359 DWORD dwFlags; 00360 DWORD dwBufferBytes; 00361 DWORD dwReserved; 00362 LPWAVEFORMATEX lpwfxFormat; 00363 DWORD dwFXCount; 00364 LPDSCEFFECTDESC lpDSCFXDesc; 00365 } DSCBUFFERDESC, *LPDSCBUFFERDESC; 00366 typedef const DSCBUFFERDESC *LPCDSCBUFFERDESC; 00367 00368 typedef struct _DSCCAPS 00369 { 00370 DWORD dwSize; 00371 DWORD dwFlags; 00372 DWORD dwFormats; 00373 DWORD dwChannels; 00374 } DSCCAPS, *LPDSCCAPS; 00375 typedef const DSCCAPS *LPCDSCCAPS; 00376 00377 typedef struct _DSCBCAPS 00378 { 00379 DWORD dwSize; 00380 DWORD dwFlags; 00381 DWORD dwBufferBytes; 00382 DWORD dwReserved; 00383 } DSCBCAPS, *LPDSCBCAPS; 00384 typedef const DSCBCAPS *LPCDSCBCAPS; 00385 00386 #define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER 00387 #define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED 00388 #define DSCCAPS_MULTIPLECAPTURE 0x00000001 00389 00390 #define DSCBCAPS_WAVEMAPPED 0x80000000 00391 #define DSCBCAPS_CTRLFX 0x00000200 00392 00393 #define DSCBLOCK_ENTIREBUFFER 0x00000001 00394 #define DSCBSTART_LOOPING 0x00000001 00395 #define DSCBPN_OFFSET_STOP 0xffffffff 00396 00397 #define DSCBSTATUS_CAPTURING 0x00000001 00398 #define DSCBSTATUS_LOOPING 0x00000002 00399 00400 #ifndef __LPCGUID_DEFINED__ 00401 #define __LPCGUID_DEFINED__ 00402 typedef const GUID *LPCGUID; 00403 #endif 00404 00405 typedef BOOL (CALLBACK *LPDSENUMCALLBACKW)(LPGUID,LPCWSTR,LPCWSTR,LPVOID); 00406 typedef BOOL (CALLBACK *LPDSENUMCALLBACKA)(LPGUID,LPCSTR,LPCSTR,LPVOID); 00407 00408 extern HRESULT WINAPI DirectSoundCreate(LPCGUID lpGUID,LPDIRECTSOUND *ppDS,LPUNKNOWN pUnkOuter); 00409 extern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA, LPVOID); 00410 extern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW, LPVOID); 00411 00412 extern HRESULT WINAPI DirectSoundCaptureCreate(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE *ppDSC, LPUNKNOWN pUnkOuter); 00413 extern HRESULT WINAPI DirectSoundCaptureEnumerateA(LPDSENUMCALLBACKA, LPVOID); 00414 extern HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW, LPVOID); 00415 00416 extern HRESULT WINAPI DirectSoundCreate8(LPCGUID lpGUID,LPDIRECTSOUND8 *ppDS8,LPUNKNOWN pUnkOuter); 00417 extern HRESULT WINAPI DirectSoundCaptureCreate8(LPCGUID lpGUID, LPDIRECTSOUNDCAPTURE8 *ppDSC8, LPUNKNOWN pUnkOuter); 00418 extern HRESULT WINAPI DirectSoundFullDuplexCreate(LPCGUID pcGuidCaptureDevice, LPCGUID pcGuidRenderDevice, 00419 LPCDSCBUFFERDESC pcDSCBufferDesc, LPCDSBUFFERDESC pcDSBufferDesc, HWND hWnd, DWORD dwLevel, 00420 LPDIRECTSOUNDFULLDUPLEX *ppDSFD, LPDIRECTSOUNDCAPTUREBUFFER8 *ppDSCBuffer8, LPDIRECTSOUNDBUFFER8 *ppDSBuffer8, LPUNKNOWN pUnkOuter); 00421 #define DirectSoundFullDuplexCreate8 DirectSoundFullDuplexCreate 00422 extern HRESULT WINAPI GetDeviceID(LPCGUID lpGuidSrc, LPGUID lpGuidDest); 00423 00424 00425 /***************************************************************************** 00426 * IDirectSound interface 00427 */ 00428 #undef INTERFACE 00429 #define INTERFACE IDirectSound 00430 DECLARE_INTERFACE_(IDirectSound,IUnknown) 00431 { 00432 /*** IUnknown methods ***/ 00433 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00434 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00435 STDMETHOD_(ULONG,Release)(THIS) PURE; 00436 /*** IDirectSound methods ***/ 00437 STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE; 00438 STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE; 00439 STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE; 00440 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE; 00441 STDMETHOD(Compact)(THIS) PURE; 00442 STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE; 00443 STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE; 00444 STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE; 00445 }; 00446 #undef INTERFACE 00447 00448 #if !defined(__cplusplus) || defined(CINTERFACE) 00449 /*** IUnknown methods ***/ 00450 #define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00451 #define IDirectSound_AddRef(p) (p)->lpVtbl->AddRef(p) 00452 #define IDirectSound_Release(p) (p)->lpVtbl->Release(p) 00453 /*** IDirectSound methods ***/ 00454 #define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c) 00455 #define IDirectSound_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00456 #define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b) 00457 #define IDirectSound_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b) 00458 #define IDirectSound_Compact(p) (p)->lpVtbl->Compact(p) 00459 #define IDirectSound_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a) 00460 #define IDirectSound_SetSpeakerConfig(p,a) (p)->lpVtbl->SetSpeakerConfig(p,a) 00461 #define IDirectSound_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 00462 #else 00463 /*** IUnknown methods ***/ 00464 #define IDirectSound_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00465 #define IDirectSound_AddRef(p) (p)->AddRef() 00466 #define IDirectSound_Release(p) (p)->Release() 00467 /*** IDirectSound methods ***/ 00468 #define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->CreateSoundBuffer(a,b,c) 00469 #define IDirectSound_GetCaps(p,a) (p)->GetCaps(a) 00470 #define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b) 00471 #define IDirectSound_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b) 00472 #define IDirectSound_Compact(p) (p)->Compact() 00473 #define IDirectSound_GetSpeakerConfig(p,a) (p)->GetSpeakerConfig(a) 00474 #define IDirectSound_SetSpeakerConfig(p,a) (p)->SetSpeakerConfig(a) 00475 #define IDirectSound_Initialize(p,a) (p)->Initialize(a) 00476 #endif 00477 00478 00479 /***************************************************************************** 00480 * IDirectSound8 interface 00481 */ 00482 #define INTERFACE IDirectSound8 00483 DECLARE_INTERFACE_(IDirectSound8,IUnknown) 00484 { 00485 /*** IUnknown methods ***/ 00486 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00487 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00488 STDMETHOD_(ULONG,Release)(THIS) PURE; 00489 /*** IDirectSound8 methods ***/ 00490 STDMETHOD(CreateSoundBuffer)(THIS_ LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown *pUnkOuter) PURE; 00491 STDMETHOD(GetCaps)(THIS_ LPDSCAPS lpDSCaps) PURE; 00492 STDMETHOD(DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER lpDsbOriginal, LPLPDIRECTSOUNDBUFFER lplpDsbDuplicate) PURE; 00493 STDMETHOD(SetCooperativeLevel)(THIS_ HWND hwnd, DWORD dwLevel) PURE; 00494 STDMETHOD(Compact)(THIS) PURE; 00495 STDMETHOD(GetSpeakerConfig)(THIS_ LPDWORD lpdwSpeakerConfig) PURE; 00496 STDMETHOD(SetSpeakerConfig)(THIS_ DWORD dwSpeakerConfig) PURE; 00497 STDMETHOD(Initialize)(THIS_ LPCGUID lpcGuid) PURE; 00498 STDMETHOD(VerifyCertification)(THIS_ LPDWORD pdwCertified) PURE; 00499 }; 00500 #undef INTERFACE 00501 00502 #if !defined(__cplusplus) || defined(CINTERFACE) 00503 /*** IUnknown methods ***/ 00504 #define IDirectSound8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00505 #define IDirectSound8_AddRef(p) (p)->lpVtbl->AddRef(p) 00506 #define IDirectSound8_Release(p) (p)->lpVtbl->Release(p) 00507 /*** IDirectSound methods ***/ 00508 #define IDirectSound8_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c) 00509 #define IDirectSound8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00510 #define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b) 00511 #define IDirectSound8_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b) 00512 #define IDirectSound8_Compact(p) (p)->lpVtbl->Compact(p) 00513 #define IDirectSound8_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a) 00514 #define IDirectSound8_SetSpeakerConfig(p,a) (p)->lpVtbl->SetSpeakerConfig(p,a) 00515 #define IDirectSound8_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 00516 /*** IDirectSound8 methods ***/ 00517 #define IDirectSound8_VerifyCertification(p,a) (p)->lpVtbl->VerifyCertification(p,a) 00518 #else 00519 /*** IUnknown methods ***/ 00520 #define IDirectSound8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00521 #define IDirectSound8_AddRef(p) (p)->AddRef() 00522 #define IDirectSound8_Release(p) (p)->Release() 00523 /*** IDirectSound methods ***/ 00524 #define IDirectSound8_CreateSoundBuffer(p,a,b,c) (p)->CreateSoundBuffer(a,b,c) 00525 #define IDirectSound8_GetCaps(p,a) (p)->GetCaps(a) 00526 #define IDirectSound8_DuplicateSoundBuffer(p,a,b) (p)->DuplicateSoundBuffer(a,b) 00527 #define IDirectSound8_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b) 00528 #define IDirectSound8_Compact(p) (p)->Compact() 00529 #define IDirectSound8_GetSpeakerConfig(p,a) (p)->GetSpeakerConfig(a) 00530 #define IDirectSound8_SetSpeakerConfig(p,a) (p)->SetSpeakerConfig(a) 00531 #define IDirectSound8_Initialize(p,a) (p)->Initialize(a) 00532 /*** IDirectSound8 methods ***/ 00533 #define IDirectSound8_VerifyCertification(p,a) (p)->VerifyCertification(a) 00534 #endif 00535 00536 00537 /***************************************************************************** 00538 * IDirectSoundBuffer interface 00539 */ 00540 #define INTERFACE IDirectSoundBuffer 00541 DECLARE_INTERFACE_(IDirectSoundBuffer,IUnknown) 00542 { 00543 /*** IUnknown methods ***/ 00544 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00545 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00546 STDMETHOD_(ULONG,Release)(THIS) PURE; 00547 /*** IDirectSoundBuffer methods ***/ 00548 STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE; 00549 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE; 00550 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE; 00551 STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE; 00552 STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE; 00553 STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE; 00554 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE; 00555 STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE; 00556 STDMETHOD(Lock)(THIS_ DWORD dwWriteCursor, DWORD dwWriteBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE; 00557 STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE; 00558 STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE; 00559 STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE; 00560 STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE; 00561 STDMETHOD(SetPan)(THIS_ LONG lPan) PURE; 00562 STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE; 00563 STDMETHOD(Stop)(THIS) PURE; 00564 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioPtr2) PURE; 00565 STDMETHOD(Restore)(THIS) PURE; 00566 }; 00567 #undef INTERFACE 00568 00569 #if !defined(__cplusplus) || defined(CINTERFACE) 00570 /*** IUnknown methods ***/ 00571 #define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00572 #define IDirectSoundBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) 00573 #define IDirectSoundBuffer_Release(p) (p)->lpVtbl->Release(p) 00574 /*** IDirectSoundBuffer methods ***/ 00575 #define IDirectSoundBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00576 #define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) 00577 #define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) 00578 #define IDirectSoundBuffer_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a) 00579 #define IDirectSoundBuffer_GetPan(p,a) (p)->lpVtbl->GetPan(p,a) 00580 #define IDirectSoundBuffer_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a) 00581 #define IDirectSoundBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) 00582 #define IDirectSoundBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 00583 #define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) 00584 #define IDirectSoundBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c) 00585 #define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a) 00586 #define IDirectSoundBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a) 00587 #define IDirectSoundBuffer_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a) 00588 #define IDirectSoundBuffer_SetPan(p,a) (p)->lpVtbl->SetPan(p,a) 00589 #define IDirectSoundBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a) 00590 #define IDirectSoundBuffer_Stop(p) (p)->lpVtbl->Stop(p) 00591 #define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) 00592 #define IDirectSoundBuffer_Restore(p) (p)->lpVtbl->Restore(p) 00593 #else 00594 /*** IUnknown methods ***/ 00595 #define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00596 #define IDirectSoundBuffer_AddRef(p) (p)->AddRef() 00597 #define IDirectSoundBuffer_Release(p) (p)->Release() 00598 /*** IDirectSoundBuffer methods ***/ 00599 #define IDirectSoundBuffer_GetCaps(p,a) (p)->GetCaps(a) 00600 #define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b) 00601 #define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c) 00602 #define IDirectSoundBuffer_GetVolume(p,a) (p)->GetVolume(a) 00603 #define IDirectSoundBuffer_GetPan(p,a) (p)->GetPan(a) 00604 #define IDirectSoundBuffer_GetFrequency(p,a) (p)->GetFrequency(a) 00605 #define IDirectSoundBuffer_GetStatus(p,a) (p)->GetStatus(a) 00606 #define IDirectSoundBuffer_Initialize(p,a,b) (p)->Initialize(a,b) 00607 #define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g) 00608 #define IDirectSoundBuffer_Play(p,a,b,c) (p)->Play(a,b,c) 00609 #define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a) 00610 #define IDirectSoundBuffer_SetFormat(p,a) (p)->SetFormat(a) 00611 #define IDirectSoundBuffer_SetVolume(p,a) (p)->SetVolume(a) 00612 #define IDirectSoundBuffer_SetPan(p,a) (p)->SetPan(a) 00613 #define IDirectSoundBuffer_SetFrequency(p,a) (p)->SetFrequency(a) 00614 #define IDirectSoundBuffer_Stop(p) (p)->Stop() 00615 #define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d) 00616 #define IDirectSoundBuffer_Restore(p) (p)->Restore() 00617 #endif 00618 00619 00620 /***************************************************************************** 00621 * IDirectSoundBuffer8 interface 00622 */ 00623 #define INTERFACE IDirectSoundBuffer8 00624 DECLARE_INTERFACE_(IDirectSoundBuffer8,IUnknown) 00625 { 00626 /*** IUnknown methods ***/ 00627 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00628 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00629 STDMETHOD_(ULONG,Release)(THIS) PURE; 00630 /*** IDirectSoundBuffer8 methods ***/ 00631 STDMETHOD(GetCaps)(THIS_ LPDSBCAPS lpDSBufferCaps) PURE; 00632 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor, LPDWORD lpdwCurrentWriteCursor) PURE; 00633 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE; 00634 STDMETHOD(GetVolume)(THIS_ LPLONG lplVolume) PURE; 00635 STDMETHOD(GetPan)(THIS_ LPLONG lplpan) PURE; 00636 STDMETHOD(GetFrequency)(THIS_ LPDWORD lpdwFrequency) PURE; 00637 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE; 00638 STDMETHOD(Initialize)(THIS_ LPDIRECTSOUND lpDirectSound, LPCDSBUFFERDESC lpcDSBufferDesc) PURE; 00639 STDMETHOD(Lock)(THIS_ DWORD dwWriteCursor, DWORD dwWriteBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE; 00640 STDMETHOD(Play)(THIS_ DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags) PURE; 00641 STDMETHOD(SetCurrentPosition)(THIS_ DWORD dwNewPosition) PURE; 00642 STDMETHOD(SetFormat)(THIS_ LPCWAVEFORMATEX lpcfxFormat) PURE; 00643 STDMETHOD(SetVolume)(THIS_ LONG lVolume) PURE; 00644 STDMETHOD(SetPan)(THIS_ LONG lPan) PURE; 00645 STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE; 00646 STDMETHOD(Stop)(THIS) PURE; 00647 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioPtr2) PURE; 00648 STDMETHOD(Restore)(THIS) PURE; 00649 STDMETHOD(SetFX)(THIS_ DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes) PURE; 00650 STDMETHOD(AcquireResources)(THIS_ DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes) PURE; 00651 STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE; 00652 }; 00653 #undef INTERFACE 00654 00655 #if !defined(__cplusplus) || defined(CINTERFACE) 00656 /*** IUnknown methods ***/ 00657 #define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00658 #define IDirectSoundBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p) 00659 #define IDirectSoundBuffer8_Release(p) (p)->lpVtbl->Release(p) 00660 /*** IDirectSoundBuffer methods ***/ 00661 #define IDirectSoundBuffer8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00662 #define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) 00663 #define IDirectSoundBuffer8_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) 00664 #define IDirectSoundBuffer8_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a) 00665 #define IDirectSoundBuffer8_GetPan(p,a) (p)->lpVtbl->GetPan(p,a) 00666 #define IDirectSoundBuffer8_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a) 00667 #define IDirectSoundBuffer8_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) 00668 #define IDirectSoundBuffer8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 00669 #define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) 00670 #define IDirectSoundBuffer8_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c) 00671 #define IDirectSoundBuffer8_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a) 00672 #define IDirectSoundBuffer8_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a) 00673 #define IDirectSoundBuffer8_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a) 00674 #define IDirectSoundBuffer8_SetPan(p,a) (p)->lpVtbl->SetPan(p,a) 00675 #define IDirectSoundBuffer8_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a) 00676 #define IDirectSoundBuffer8_Stop(p) (p)->lpVtbl->Stop(p) 00677 #define IDirectSoundBuffer8_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) 00678 #define IDirectSoundBuffer8_Restore(p) (p)->lpVtbl->Restore(p) 00679 /*** IDirectSoundBuffer8 methods ***/ 00680 #define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->lpVtbl->SetFX(p,a,b,c) 00681 #define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->lpVtbl->AcquireResources(p,a,b,c) 00682 #define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d) 00683 #else 00684 /*** IUnknown methods ***/ 00685 #define IDirectSoundBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00686 #define IDirectSoundBuffer8_AddRef(p) (p)->AddRef() 00687 #define IDirectSoundBuffer8_Release(p) (p)->Release() 00688 /*** IDirectSoundBuffer methods ***/ 00689 #define IDirectSoundBuffer8_GetCaps(p,a) (p)->GetCaps(a) 00690 #define IDirectSoundBuffer8_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b) 00691 #define IDirectSoundBuffer8_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c) 00692 #define IDirectSoundBuffer8_GetVolume(p,a) (p)->GetVolume(a) 00693 #define IDirectSoundBuffer8_GetPan(p,a) (p)->GetPan(a) 00694 #define IDirectSoundBuffer8_GetFrequency(p,a) (p)->GetFrequency(a) 00695 #define IDirectSoundBuffer8_GetStatus(p,a) (p)->GetStatus(a) 00696 #define IDirectSoundBuffer8_Initialize(p,a,b) (p)->Initialize(a,b) 00697 #define IDirectSoundBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g) 00698 #define IDirectSoundBuffer8_Play(p,a,b,c) (p)->Play(a,b,c) 00699 #define IDirectSoundBuffer8_SetCurrentPosition(p,a) (p)->SetCurrentPosition(a) 00700 #define IDirectSoundBuffer8_SetFormat(p,a) (p)->SetFormat(a) 00701 #define IDirectSoundBuffer8_SetVolume(p,a) (p)->SetVolume(a) 00702 #define IDirectSoundBuffer8_SetPan(p,a) (p)->SetPan(a) 00703 #define IDirectSoundBuffer8_SetFrequency(p,a) (p)->SetFrequency(a) 00704 #define IDirectSoundBuffer8_Stop(p) (p)->Stop() 00705 #define IDirectSoundBuffer8_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d) 00706 #define IDirectSoundBuffer8_Restore(p) (p)->Restore() 00707 /*** IDirectSoundBuffer8 methods ***/ 00708 #define IDirectSoundBuffer8_SetFX(p,a,b,c) (p)->SetFX(a,b,c) 00709 #define IDirectSoundBuffer8_AcquireResources(p,a,b,c) (p)->AcquireResources(a,b,c) 00710 #define IDirectSoundBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d) 00711 #endif 00712 00713 00714 /***************************************************************************** 00715 * IDirectSoundCapture interface 00716 */ 00717 #define INTERFACE IDirectSoundCapture 00718 DECLARE_INTERFACE_(IDirectSoundCapture,IUnknown) 00719 { 00720 /*** IUnknown methods ***/ 00721 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00722 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00723 STDMETHOD_(ULONG,Release)(THIS) PURE; 00724 /*** IDirectSoundCapture methods ***/ 00725 STDMETHOD(CreateCaptureBuffer)(THIS_ LPCDSCBUFFERDESC lpcDSCBufferDesc,LPDIRECTSOUNDCAPTUREBUFFER *lplpDSCaptureBuffer, LPUNKNOWN pUnk) PURE; 00726 STDMETHOD(GetCaps)(THIS_ LPDSCCAPS lpDSCCaps) PURE; 00727 STDMETHOD(Initialize)(THIS_ LPCGUID lpcGUID) PURE; 00728 }; 00729 #undef INTERFACE 00730 00731 #if !defined(__cplusplus) || defined(CINTERFACE) 00732 /*** IUnknown methods ***/ 00733 #define IDirectSoundCapture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00734 #define IDirectSoundCapture_AddRef(p) (p)->lpVtbl->AddRef(p) 00735 #define IDirectSoundCapture_Release(p) (p)->lpVtbl->Release(p) 00736 /*** IDirectSoundCapture methods ***/ 00737 #define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c) 00738 #define IDirectSoundCapture_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00739 #define IDirectSoundCapture_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 00740 #else 00741 /*** IUnknown methods ***/ 00742 #define IDirectSoundCapture_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00743 #define IDirectSoundCapture_AddRef(p) (p)->AddRef() 00744 #define IDirectSoundCapture_Release(p) (p)->Release() 00745 /*** IDirectSoundCapture methods ***/ 00746 #define IDirectSoundCapture_CreateCaptureBuffer(p,a,b,c) (p)->CreateCaptureBuffer(a,b,c) 00747 #define IDirectSoundCapture_GetCaps(p,a) (p)->GetCaps(a) 00748 #define IDirectSoundCapture_Initialize(p,a) (p)->Initialize(a) 00749 #endif 00750 00751 /***************************************************************************** 00752 * IDirectSoundCaptureBuffer interface 00753 */ 00754 #define INTERFACE IDirectSoundCaptureBuffer 00755 DECLARE_INTERFACE_(IDirectSoundCaptureBuffer,IUnknown) 00756 { 00757 /*** IUnknown methods ***/ 00758 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00759 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00760 STDMETHOD_(ULONG,Release)(THIS) PURE; 00761 /*** IDirectSoundCaptureBuffer methods ***/ 00762 STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE; 00763 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE; 00764 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE; 00765 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE; 00766 STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE; 00767 STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE; 00768 STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE; 00769 STDMETHOD(Stop)(THIS) PURE; 00770 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE; 00771 }; 00772 #undef INTERFACE 00773 00774 #if !defined(__cplusplus) || defined(CINTERFACE) 00775 /*** IUnknown methods ***/ 00776 #define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00777 #define IDirectSoundCaptureBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) 00778 #define IDirectSoundCaptureBuffer_Release(p) (p)->lpVtbl->Release(p) 00779 /*** IDirectSoundCaptureBuffer methods ***/ 00780 #define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00781 #define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) 00782 #define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) 00783 #define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) 00784 #define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 00785 #define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) 00786 #define IDirectSoundCaptureBuffer_Start(p,a) (p)->lpVtbl->Start(p,a) 00787 #define IDirectSoundCaptureBuffer_Stop(p) (p)->lpVtbl->Stop(p) 00788 #define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) 00789 #else 00790 /*** IUnknown methods ***/ 00791 #define IDirectSoundCaptureBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00792 #define IDirectSoundCaptureBuffer_AddRef(p) (p)->AddRef() 00793 #define IDirectSoundCaptureBuffer_Release(p) (p)->Release() 00794 /*** IDirectSoundCaptureBuffer methods ***/ 00795 #define IDirectSoundCaptureBuffer_GetCaps(p,a) (p)->GetCaps(a) 00796 #define IDirectSoundCaptureBuffer_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b) 00797 #define IDirectSoundCaptureBuffer_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c) 00798 #define IDirectSoundCaptureBuffer_GetStatus(p,a) (p)->GetStatus(a) 00799 #define IDirectSoundCaptureBuffer_Initialize(p,a,b) (p)->Initialize(a,b) 00800 #define IDirectSoundCaptureBuffer_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g) 00801 #define IDirectSoundCaptureBuffer_Start(p,a) (p)->Start(a) 00802 #define IDirectSoundCaptureBuffer_Stop(p) (p)->Stop() 00803 #define IDirectSoundCaptureBuffer_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d) 00804 #endif 00805 00806 /***************************************************************************** 00807 * IDirectSoundCaptureBuffer8 interface 00808 */ 00809 #define INTERFACE IDirectSoundCaptureBuffer8 00810 DECLARE_INTERFACE_(IDirectSoundCaptureBuffer8,IDirectSoundCaptureBuffer) 00811 { 00812 /*** IUnknown methods ***/ 00813 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00814 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00815 STDMETHOD_(ULONG,Release)(THIS) PURE; 00816 /*** IDirectSoundCaptureBuffer methods ***/ 00817 STDMETHOD(GetCaps)(THIS_ LPDSCBCAPS lpDSCBCaps) PURE; 00818 STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD lpdwCapturePosition,LPDWORD lpdwReadPosition) PURE; 00819 STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX lpwfxFormat, DWORD dwSizeAllocated, LPDWORD lpdwSizeWritten) PURE; 00820 STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE; 00821 STDMETHOD(Initialize)(THIS_ LPDIRECTSOUNDCAPTURE lpDSC, LPCDSCBUFFERDESC lpcDSCBDesc) PURE; 00822 STDMETHOD(Lock)(THIS_ DWORD dwReadCusor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags) PURE; 00823 STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE; 00824 STDMETHOD(Stop)(THIS) PURE; 00825 STDMETHOD(Unlock)(THIS_ LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2) PURE; 00826 /*** IDirectSoundCaptureBuffer8 methods ***/ 00827 STDMETHOD(GetObjectInPath)(THIS_ REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject) PURE; 00828 STDMETHOD(GetFXStatus)(THIS_ DWORD dwFXCount, LPDWORD pdwFXStatus) PURE; 00829 }; 00830 #undef INTERFACE 00831 00832 #if !defined(__cplusplus) || defined(CINTERFACE) 00833 /*** IUnknown methods ***/ 00834 #define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00835 #define IDirectSoundCaptureBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p) 00836 #define IDirectSoundCaptureBuffer8_Release(p) (p)->lpVtbl->Release(p) 00837 /*** IDirectSoundCaptureBuffer methods ***/ 00838 #define IDirectSoundCaptureBuffer8_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 00839 #define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) 00840 #define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) 00841 #define IDirectSoundCaptureBuffer8_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) 00842 #define IDirectSoundCaptureBuffer8_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 00843 #define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) 00844 #define IDirectSoundCaptureBuffer8_Start(p,a) (p)->lpVtbl->Start(p,a) 00845 #define IDirectSoundCaptureBuffer8_Stop(p) (p)->lpVtbl->Stop(p) 00846 #define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) 00847 /*** IDirectSoundCaptureBuffer8 methods ***/ 00848 #define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->lpVtbl->GetObjectInPath(p,a,b,c,d) 00849 #define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->lpVtbl->GetFXStatus(p,a,b) 00850 #else 00851 /*** IUnknown methods ***/ 00852 #define IDirectSoundCaptureBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00853 #define IDirectSoundCaptureBuffer8_AddRef(p) (p)->AddRef() 00854 #define IDirectSoundCaptureBuffer8_Release(p) (p)->Release() 00855 /*** IDirectSoundCaptureBuffer methods ***/ 00856 #define IDirectSoundCaptureBuffer8_GetCaps(p,a) (p)->GetCaps(a) 00857 #define IDirectSoundCaptureBuffer8_GetCurrentPosition(p,a,b) (p)->GetCurrentPosition(a,b) 00858 #define IDirectSoundCaptureBuffer8_GetFormat(p,a,b,c) (p)->GetFormat(a,b,c) 00859 #define IDirectSoundCaptureBuffer8_GetStatus(p,a) (p)->GetStatus(a) 00860 #define IDirectSoundCaptureBuffer8_Initialize(p,a,b) (p)->Initialize(a,b) 00861 #define IDirectSoundCaptureBuffer8_Lock(p,a,b,c,d,e,f,g) (p)->Lock(a,b,c,d,e,f,g) 00862 #define IDirectSoundCaptureBuffer8_Start(p,a) (p)->Start(a) 00863 #define IDirectSoundCaptureBuffer8_Stop(p) (p)->Stop() 00864 #define IDirectSoundCaptureBuffer8_Unlock(p,a,b,c,d) (p)->Unlock(a,b,c,d) 00865 /*** IDirectSoundCaptureBuffer8 methods ***/ 00866 #define IDirectSoundCaptureBuffer8_GetObjectInPath(p,a,b,c,d) (p)->GetObjectInPath(a,b,c,d) 00867 #define IDirectSoundCaptureBuffer8_GetFXStatus(p,a,b) (p)->GetFXStatus(a,b) 00868 #endif 00869 00870 /***************************************************************************** 00871 * IDirectSoundNotify interface 00872 */ 00873 #define WINE_NOBUFFER 0x80000000 00874 00875 #define DSBPN_OFFSETSTOP -1 00876 #define DSBNOTIFICATIONS_MAX 100000UL 00877 00878 #define INTERFACE IDirectSoundNotify 00879 DECLARE_INTERFACE_(IDirectSoundNotify,IUnknown) 00880 { 00881 /*** IUnknown methods ***/ 00882 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00883 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00884 STDMETHOD_(ULONG,Release)(THIS) PURE; 00885 /*** IDirectSoundNotify methods ***/ 00886 STDMETHOD(SetNotificationPositions)(THIS_ DWORD cPositionNotifies, LPCDSBPOSITIONNOTIFY lpcPositionNotifies) PURE; 00887 }; 00888 #undef INTERFACE 00889 00890 #if !defined(__cplusplus) || defined(CINTERFACE) 00891 /*** IUnknown methods ***/ 00892 #define IDirectSoundNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00893 #define IDirectSoundNotify_AddRef(p) (p)->lpVtbl->AddRef(p) 00894 #define IDirectSoundNotify_Release(p) (p)->lpVtbl->Release(p) 00895 /*** IDirectSoundNotify methods ***/ 00896 #define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b) 00897 #else 00898 /*** IUnknown methods ***/ 00899 #define IDirectSoundNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 00900 #define IDirectSoundNotify_AddRef(p) (p)->AddRef() 00901 #define IDirectSoundNotify_Release(p) (p)->Release() 00902 /*** IDirectSoundNotify methods ***/ 00903 #define IDirectSoundNotify_SetNotificationPositions(p,a,b) (p)->SetNotificationPositions(a,b) 00904 #endif 00905 00906 00907 /***************************************************************************** 00908 * IDirectSound3DListener interface 00909 */ 00910 #define DS3DMODE_NORMAL 0x00000000 00911 #define DS3DMODE_HEADRELATIVE 0x00000001 00912 #define DS3DMODE_DISABLE 0x00000002 00913 00914 #define DS3D_IMMEDIATE 0x00000000 00915 #define DS3D_DEFERRED 0x00000001 00916 00917 #define DS3D_MINDISTANCEFACTOR FLT_MIN 00918 #define DS3D_MAXDISTANCEFACTOR FLT_MAX 00919 #define DS3D_DEFAULTDISTANCEFACTOR 1.0f 00920 00921 #define DS3D_MINROLLOFFFACTOR 0.0f 00922 #define DS3D_MAXROLLOFFFACTOR 10.0f 00923 #define DS3D_DEFAULTROLLOFFFACTOR 1.0f 00924 00925 #define DS3D_MINDOPPLERFACTOR 0.0f 00926 #define DS3D_MAXDOPPLERFACTOR 10.0f 00927 #define DS3D_DEFAULTDOPPLERFACTOR 1.0f 00928 00929 #define DS3D_DEFAULTMINDISTANCE 1.0f 00930 #define DS3D_DEFAULTMAXDISTANCE 1000000000.0f 00931 00932 #define DS3D_MINCONEANGLE 0 00933 #define DS3D_MAXCONEANGLE 360 00934 #define DS3D_DEFAULTCONEANGLE 360 00935 00936 #define DS3D_DEFAULTCONEOUTSIDEVOLUME DSBVOLUME_MAX 00937 00938 typedef struct _DS3DLISTENER { 00939 DWORD dwSize; 00940 D3DVECTOR vPosition; 00941 D3DVECTOR vVelocity; 00942 D3DVECTOR vOrientFront; 00943 D3DVECTOR vOrientTop; 00944 D3DVALUE flDistanceFactor; 00945 D3DVALUE flRolloffFactor; 00946 D3DVALUE flDopplerFactor; 00947 } DS3DLISTENER, *LPDS3DLISTENER; 00948 00949 typedef const DS3DLISTENER *LPCDS3DLISTENER; 00950 00951 #define INTERFACE IDirectSound3DListener 00952 DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown) 00953 { 00954 /*** IUnknown methods ***/ 00955 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00956 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00957 STDMETHOD_(ULONG,Release)(THIS) PURE; 00958 /*** IDirectSound3DListener methods ***/ 00959 STDMETHOD(GetAllParameters)(THIS_ LPDS3DLISTENER lpListener) PURE; 00960 STDMETHOD(GetDistanceFactor)(THIS_ LPD3DVALUE lpflDistanceFactor) PURE; 00961 STDMETHOD(GetDopplerFactor)(THIS_ LPD3DVALUE lpflDopplerFactor) PURE; 00962 STDMETHOD(GetOrientation)(THIS_ LPD3DVECTOR lpvOrientFront, LPD3DVECTOR lpvOrientTop) PURE; 00963 STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE; 00964 STDMETHOD(GetRolloffFactor)(THIS_ LPD3DVALUE lpflRolloffFactor) PURE; 00965 STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE; 00966 STDMETHOD(SetAllParameters)(THIS_ LPCDS3DLISTENER lpcListener, DWORD dwApply) PURE; 00967 STDMETHOD(SetDistanceFactor)(THIS_ D3DVALUE flDistanceFactor, DWORD dwApply) PURE; 00968 STDMETHOD(SetDopplerFactor)(THIS_ D3DVALUE flDopplerFactor, DWORD dwApply) PURE; 00969 STDMETHOD(SetOrientation)(THIS_ D3DVALUE xFront, D3DVALUE yFront, D3DVALUE zFront, D3DVALUE xTop, D3DVALUE yTop, D3DVALUE zTop, DWORD dwApply) PURE; 00970 STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; 00971 STDMETHOD(SetRolloffFactor)(THIS_ D3DVALUE flRolloffFactor, DWORD dwApply) PURE; 00972 STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; 00973 STDMETHOD(CommitDeferredSettings)(THIS) PURE; 00974 }; 00975 #undef INTERFACE 00976 00977 #if !defined(__cplusplus) || defined(CINTERFACE) 00978 /*** IUnknown methods ***/ 00979 #define IDirectSound3DListener_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00980 #define IDirectSound3DListener_AddRef(p) (p)->lpVtbl->AddRef(p) 00981 #define IDirectSound3DListener_Release(p) (p)->lpVtbl->Release(p) 00982 /*** IDirectSound3DListener methods ***/ 00983 #define IDirectSound3DListener_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) 00984 #define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->lpVtbl->GetDistanceFactor(p,a) 00985 #define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->lpVtbl->GetDopplerFactor(p,a) 00986 #define IDirectSound3DListener_GetOrientation(p,a,b) (p)->lpVtbl->GetOrientation(p,a,b) 00987 #define IDirectSound3DListener_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a) 00988 #define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->lpVtbl->GetRolloffFactor(p,a) 00989 #define IDirectSound3DListener_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a) 00990 #define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b) 00991 #define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->lpVtbl->SetDistanceFactor(p,a,b) 00992 #define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->lpVtbl->SetDopplerFactor(p,a,b) 00993 #define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g) 00994 #define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d) 00995 #define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->lpVtbl->SetRolloffFactor(p,a,b) 00996 #define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d) 00997 #define IDirectSound3DListener_CommitDeferredSettings(p) (p)->lpVtbl->CommitDeferredSettings(p) 00998 #else 00999 /*** IUnknown methods ***/ 01000 #define IDirectSound3DListener_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 01001 #define IDirectSound3DListener_AddRef(p) (p)->AddRef() 01002 #define IDirectSound3DListener_Release(p) (p)->Release() 01003 /*** IDirectSound3DListener methods ***/ 01004 #define IDirectSound3DListener_GetAllParameters(p,a) (p)->GetAllParameters(a) 01005 #define IDirectSound3DListener_GetDistanceFactor(p,a) (p)->GetDistanceFactor(a) 01006 #define IDirectSound3DListener_GetDopplerFactor(p,a) (p)->GetDopplerFactor(a) 01007 #define IDirectSound3DListener_GetOrientation(p,a,b) (p)->GetOrientation(a,b) 01008 #define IDirectSound3DListener_GetPosition(p,a) (p)->GetPosition(a) 01009 #define IDirectSound3DListener_GetRolloffFactor(p,a) (p)->GetRolloffFactor(a) 01010 #define IDirectSound3DListener_GetVelocity(p,a) (p)->GetVelocity(a) 01011 #define IDirectSound3DListener_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b) 01012 #define IDirectSound3DListener_SetDistanceFactor(p,a,b) (p)->SetDistanceFactor(a,b) 01013 #define IDirectSound3DListener_SetDopplerFactor(p,a,b) (p)->SetDopplerFactor(a,b) 01014 #define IDirectSound3DListener_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g) 01015 #define IDirectSound3DListener_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d) 01016 #define IDirectSound3DListener_SetRolloffFactor(p,a,b) (p)->SetRolloffFactor(a,b) 01017 #define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d) 01018 #define IDirectSound3DListener_CommitDeferredSettings(p) (p)->CommitDeferredSettings() 01019 #endif 01020 01021 01022 /***************************************************************************** 01023 * IDirectSound3DBuffer interface 01024 */ 01025 typedef struct _DS3DBUFFER { 01026 DWORD dwSize; 01027 D3DVECTOR vPosition; 01028 D3DVECTOR vVelocity; 01029 DWORD dwInsideConeAngle; 01030 DWORD dwOutsideConeAngle; 01031 D3DVECTOR vConeOrientation; 01032 LONG lConeOutsideVolume; 01033 D3DVALUE flMinDistance; 01034 D3DVALUE flMaxDistance; 01035 DWORD dwMode; 01036 } DS3DBUFFER, *LPDS3DBUFFER; 01037 01038 typedef const DS3DBUFFER *LPCDS3DBUFFER; 01039 01040 #define INTERFACE IDirectSound3DBuffer 01041 DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown) 01042 { 01043 /*** IUnknown methods ***/ 01044 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 01045 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 01046 STDMETHOD_(ULONG,Release)(THIS) PURE; 01047 /*** IDirectSound3DBuffer methods ***/ 01048 STDMETHOD(GetAllParameters)(THIS_ LPDS3DBUFFER lpDs3dBuffer) PURE; 01049 STDMETHOD(GetConeAngles)(THIS_ LPDWORD lpdwInsideConeAngle, LPDWORD lpdwOutsideConeAngle) PURE; 01050 STDMETHOD(GetConeOrientation)(THIS_ LPD3DVECTOR lpvOrientation) PURE; 01051 STDMETHOD(GetConeOutsideVolume)(THIS_ LPLONG lplConeOutsideVolume) PURE; 01052 STDMETHOD(GetMaxDistance)(THIS_ LPD3DVALUE lpflMaxDistance) PURE; 01053 STDMETHOD(GetMinDistance)(THIS_ LPD3DVALUE lpflMinDistance) PURE; 01054 STDMETHOD(GetMode)(THIS_ LPDWORD lpwdMode) PURE; 01055 STDMETHOD(GetPosition)(THIS_ LPD3DVECTOR lpvPosition) PURE; 01056 STDMETHOD(GetVelocity)(THIS_ LPD3DVECTOR lpvVelocity) PURE; 01057 STDMETHOD(SetAllParameters)(THIS_ LPCDS3DBUFFER lpcDs3dBuffer, DWORD dwApply) PURE; 01058 STDMETHOD(SetConeAngles)(THIS_ DWORD dwInsideConeAngle, DWORD dwOutsideConeAngle, DWORD dwApply) PURE; 01059 STDMETHOD(SetConeOrientation)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; 01060 STDMETHOD(SetConeOutsideVolume)(THIS_ LONG lConeOutsideVolume, DWORD dwApply) PURE; 01061 STDMETHOD(SetMaxDistance)(THIS_ D3DVALUE flMaxDistance, DWORD dwApply) PURE; 01062 STDMETHOD(SetMinDistance)(THIS_ D3DVALUE flMinDistance, DWORD dwApply) PURE; 01063 STDMETHOD(SetMode)(THIS_ DWORD dwMode, DWORD dwApply) PURE; 01064 STDMETHOD(SetPosition)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; 01065 STDMETHOD(SetVelocity)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z, DWORD dwApply) PURE; 01066 }; 01067 #undef INTERFACE 01068 01069 #if !defined(__cplusplus) || defined(CINTERFACE) 01070 /*** IUnknown methods ***/ 01071 #define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 01072 #define IDirectSound3DBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) 01073 #define IDirectSound3DBuffer_Release(p) (p)->lpVtbl->Release(p) 01074 /*** IDirectSound3DBuffer methods ***/ 01075 #define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) 01076 #define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->lpVtbl->GetConeAngles(p,a,b) 01077 #define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->lpVtbl->GetConeOrientation(p,a) 01078 #define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->lpVtbl->GetConeOutsideVolume(p,a) 01079 #define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->lpVtbl->GetMaxDistance(p,a) 01080 #define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->lpVtbl->GetMinDistance(p,a) 01081 #define IDirectSound3DBuffer_GetMode(p,a) (p)->lpVtbl->GetMode(p,a) 01082 #define IDirectSound3DBuffer_GetPosition(p,a) (p)->lpVtbl->GetPosition(p,a) 01083 #define IDirectSound3DBuffer_GetVelocity(p,a) (p)->lpVtbl->GetVelocity(p,a) 01084 #define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->lpVtbl->SetAllParameters(p,a,b) 01085 #define IDirectSound3DBuffer_SetConeAngles(p,a,b) (p)->lpVtbl->SetConeAngles(p,a,b) 01086 #define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->lpVtbl->SetConeOrientation(p,a,b,c,d) 01087 #define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->lpVtbl->SetConeOutsideVolume(p,a,b) 01088 #define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->lpVtbl->SetMaxDistance(p,a,b) 01089 #define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->lpVtbl->SetMinDistance(p,a,b) 01090 #define IDirectSound3DBuffer_SetMode(p,a,b) (p)->lpVtbl->SetMode(p,a,b) 01091 #define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d) 01092 #define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->lpVtbl->SetVelocity(p,a,b,c,d) 01093 #else 01094 /*** IUnknown methods ***/ 01095 #define IDirectSound3DBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 01096 #define IDirectSound3DBuffer_AddRef(p) (p)->AddRef() 01097 #define IDirectSound3DBuffer_Release(p) (p)->Release() 01098 /*** IDirectSound3DBuffer methods ***/ 01099 #define IDirectSound3DBuffer_GetAllParameters(p,a) (p)->GetAllParameters(a) 01100 #define IDirectSound3DBuffer_GetConeAngles(p,a,b) (p)->GetConeAngles(a,b) 01101 #define IDirectSound3DBuffer_GetConeOrientation(p,a) (p)->GetConeOrientation(a) 01102 #define IDirectSound3DBuffer_GetConeOutsideVolume(p,a) (p)->GetConeOutsideVolume(a) 01103 #define IDirectSound3DBuffer_GetMaxDistance(p,a) (p)->GetMaxDistance(a) 01104 #define IDirectSound3DBuffer_GetMinDistance(p,a) (p)->GetMinDistance(a) 01105 #define IDirectSound3DBuffer_GetMode(p,a) (p)->GetMode(a) 01106 #define IDirectSound3DBuffer_GetPosition(p,a) (p)->GetPosition(a) 01107 #define IDirectSound3DBuffer_GetVelocity(p,a) (p)->GetVelocity(a) 01108 #define IDirectSound3DBuffer_SetAllParameters(p,a,b) (p)->SetAllParameters(a,b) 01109 #define IDirectSound3DBuffer_SetConeAngles(p,a,b) (p)->SetConeAngles(a,b) 01110 #define IDirectSound3DBuffer_SetConeOrientation(p,a,b,c,d) (p)->SetConeOrientation(a,b,c,d) 01111 #define IDirectSound3DBuffer_SetConeOutsideVolume(p,a,b) (p)->SetConeOutsideVolume(a,b) 01112 #define IDirectSound3DBuffer_SetMaxDistance(p,a,b) (p)->SetMaxDistance(a,b) 01113 #define IDirectSound3DBuffer_SetMinDistance(p,a,b) (p)->SetMinDistance(a,b) 01114 #define IDirectSound3DBuffer_SetMode(p,a,b) (p)->SetMode(a,b) 01115 #define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d) 01116 #define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d) 01117 #endif 01118 01119 /***************************************************************************** 01120 * IKsPropertySet interface 01121 */ 01122 #ifndef _IKsPropertySet_ 01123 #define _IKsPropertySet_ 01124 01125 typedef struct IKsPropertySet *LPKSPROPERTYSET; 01126 01127 DEFINE_GUID(IID_IKsPropertySet,0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93); 01128 01129 #define KSPROPERTY_SUPPORT_GET 1 01130 #define KSPROPERTY_SUPPORT_SET 2 01131 01132 #define INTERFACE IKsPropertySet 01133 DECLARE_INTERFACE_(IKsPropertySet,IUnknown) 01134 { 01135 /*** IUnknown methods ***/ 01136 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 01137 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 01138 STDMETHOD_(ULONG,Release)(THIS) PURE; 01139 /*** IKsPropertySet methods ***/ 01140 STDMETHOD(Get)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3,ULONG *px4) PURE; 01141 STDMETHOD(Set)(THIS_ REFGUID rgid,ULONG x1,LPVOID p1,ULONG x2,LPVOID p2,ULONG x3) PURE; 01142 STDMETHOD(QuerySupport)(THIS_ REFGUID rgid,ULONG x1,ULONG *px2) PURE; 01143 }; 01144 #undef INTERFACE 01145 01146 #if !defined(__cplusplus) || defined(CINTERFACE) 01147 /*** IUnknown methods ***/ 01148 #define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 01149 #define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p) 01150 #define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p) 01151 /*** IKsPropertySet methods ***/ 01152 #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g) 01153 #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f) 01154 #define IKsPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c) 01155 #else 01156 /*** IUnknown methods ***/ 01157 #define IKsPropertySet_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 01158 #define IKsPropertySet_AddRef(p) (p)->AddRef() 01159 #define IKsPropertySet_Release(p) (p)->Release() 01160 /*** IKsPropertySet methods ***/ 01161 #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->Get(a,b,c,d,e,f,g) 01162 #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->Set(a,b,c,d,e,f) 01163 #define IKsPropertySet_QuerySupport(p,a,b,c) (p)->QuerySupport(a,b,c) 01164 #endif 01165 01166 #endif /* _IKsPropertySet_ */ 01167 01168 /***************************************************************************** 01169 * IDirectSoundFullDuplex interface 01170 */ 01171 #define INTERFACE IDirectSoundFullDuplex 01172 DECLARE_INTERFACE_(IDirectSoundFullDuplex,IUnknown) 01173 { 01174 /*** IUnknown methods ***/ 01175 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 01176 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 01177 STDMETHOD_(ULONG,Release)(THIS) PURE; 01178 /*** IDirectSoundFullDuplex methods ***/ 01179 STDMETHOD(Initialize)(THIS_ LPCGUID pCaptureGuid,LPCGUID pRendererGuid,LPCDSCBUFFERDESC lpDscBufferDesc,LPCDSBUFFERDESC lpDsBufferDesc,HWND hWnd,DWORD dwLevel,LPLPDIRECTSOUNDCAPTUREBUFFER8 lplpDirectSoundCaptureBuffer8,LPLPDIRECTSOUNDBUFFER8 lplpDirectSoundBuffer8) PURE; 01180 }; 01181 #undef INTERFACE 01182 01183 #if !defined(__cplusplus) || defined(CINTERFACE) 01184 /*** IUnknown methods ***/ 01185 #define IDirectSoundFullDuplex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 01186 #define IDirectSoundFullDuplex_AddRef(p) (p)->lpVtbl->AddRef(p) 01187 #define IDirectSoundFullDuplex_Release(p) (p)->lpVtbl->Release(p) 01188 /*** IDirectSoundFullDuplex methods ***/ 01189 #define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Initialize(p,a,b,c,d,e,f,g,h) 01190 #else 01191 /*** IUnknown methods ***/ 01192 #define IDirectSoundFullDuplex_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 01193 #define IDirectSoundFullDuplex_AddRef(p) (p)->AddRef() 01194 #define IDirectSoundFullDuplex_Release(p) (p)->Release() 01195 /*** IDirectSoundFullDuplex methods ***/ 01196 #define IDirectSoundFullDuplex_Initialize(p,a,b,c,d,e,f,g,h) (p)->Initialize(a,b,c,d,e,f,g,h) 01197 #endif 01198 01199 #ifdef __cplusplus 01200 } /* extern "C" */ 01201 #endif /* defined(__cplusplus) */ 01202 01203 #endif /* __WINE_DSOUND_H */ Generated on Sat May 26 2012 04:30:07 for ReactOS by
1.7.6.1
|