19fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*==========================================================================; 29fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 39fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Copyright (C) 1995,1996 Microsoft Corporation. All Rights Reserved. 49fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 59fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * File: dsound.h 69fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Content: DirectSound include file 79fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 89fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ***************************************************************************/ 99fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef __DSOUND_INCLUDED__ 119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define __DSOUND_INCLUDED__ 129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef _WIN32 149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define COM_NO_WINDOWS_H 159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include <objbase.h> 169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define _FACDS 0x878 199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define MAKE_DSHRESULT( code ) MAKE_HRESULT( 1, _FACDS, code ) 209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus 229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern "C" { 239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// Direct Sound Component GUID {47D4D946-62E8-11cf-93BC-444553540000} 269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_DirectSound, 279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream0x47d4d946, 0x62e8, 0x11cf, 0x93, 0xbc, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0); 289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// DirectSound 279afa83-4981-11ce-a521-0020af0be560 309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirectSound,0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); 319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// DirectSoundBuffer 279afa85-4981-11ce-a521-0020af0be560 329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirectSoundBuffer,0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); 339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//==========================================================================; 379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// Structures... 399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//==========================================================================; 419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus 429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined */ 439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstruct IDirectSound; 449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstruct IDirectSoundBuffer; 459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct IDirectSound *LPDIRECTSOUND; 489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct IDirectSoundBuffer *LPDIRECTSOUNDBUFFER; 499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct IDirectSoundBuffer **LPLPDIRECTSOUNDBUFFER; 509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _DSCAPS 539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ 549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFlags; 569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMinSecondarySampleRate; 579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxSecondarySampleRate; 589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwPrimaryBuffers; 599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxHwMixingAllBuffers; 609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxHwMixingStaticBuffers; 619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxHwMixingStreamingBuffers; 629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHwMixingAllBuffers; 639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHwMixingStaticBuffers; 649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHwMixingStreamingBuffers; 659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxHw3DAllBuffers; 669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxHw3DStaticBuffers; 679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxHw3DStreamingBuffers; 689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHw3DAllBuffers; 699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHw3DStaticBuffers; 709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHw3DStreamingBuffers; 719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwTotalHwMemBytes; 729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFreeHwMemBytes; 739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMaxContigFreeHwMemBytes; 749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwUnlockTransferRateHwBuffers; 759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwPlayCpuOverheadSwBuffers; 769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwReserved1; 779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwReserved2; 789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} DSCAPS, *LPDSCAPS; 799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _DSBCAPS 819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ 829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFlags; 859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwBufferBytes; 869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwUnlockTransferRate; 879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwPlayCpuOverhead; 889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} DSBCAPS, *LPDSBCAPS; 899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _DSBUFFERDESC 919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ 929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFlags; 949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwBufferBytes; 959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwReserved; 969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPWAVEFORMATEX lpwfxFormat; 979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} DSBUFFERDESC, *LPDSBUFFERDESC; 989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef LPVOID* LPLPVOID; 1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef BOOL (FAR PASCAL * LPDSENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID); 1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef BOOL (FAR PASCAL * LPDSENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID); 1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern HRESULT WINAPI DirectSoundCreate(GUID FAR * lpGUID, LPDIRECTSOUND * ppDS, IUnknown FAR *pUnkOuter ); 1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW lpCallback, LPVOID lpContext ); 1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern HRESULT WINAPI DirectSoundEnumerateA(LPDSENUMCALLBACKA lpCallback, LPVOID lpContext ); 1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef UNICODE 1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define LPDSENUMCALLBACK LPDSENUMCALLBACKW 1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DirectSoundEnumerate DirectSoundEnumerateW 1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#else 1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define LPDSENUMCALLBACK LPDSENUMCALLBACKA 1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DirectSoundEnumerate DirectSoundEnumerateA 1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// IDirectSound 1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE 1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirectSound 1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef _WIN32 1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_( IDirectSound, IUnknown ) 1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ 1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream /*** IUnknown methods ***/ 1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD_(ULONG,Release) (THIS) PURE; 1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream /*** IDirectSound methods ***/ 1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( CreateSoundBuffer)(THIS_ LPDSBUFFERDESC, LPLPDIRECTSOUNDBUFFER, IUnknown FAR *) PURE; 1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetCaps)(THIS_ LPDSCAPS ) PURE; 1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( DuplicateSoundBuffer)(THIS_ LPDIRECTSOUNDBUFFER, LPLPDIRECTSOUNDBUFFER ) PURE; 1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( SetCooperativeLevel)(THIS_ HWND, DWORD ) PURE; 1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Compact)(THIS ) PURE; 1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetSpeakerConfig)(THIS_ LPDWORD ) PURE; 1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( SetSpeakerConfig)(THIS_ DWORD ) PURE; 1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Initialize)(THIS_ GUID FAR * ) PURE; 1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}; 1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if !defined(__cplusplus) || defined(CINTERFACE) 1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_AddRef(p) (p)->lpVtbl->AddRef(p) 1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_Release(p) (p)->lpVtbl->Release(p) 1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_CreateSoundBuffer(p,a,b,c) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c) 1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b) 1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b) 1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_Compact(p) (p)->lpVtbl->Compact(p) 1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_GetSpeakerConfig(p,a) (p)->lpVtbl->GetSpeakerConfig(p,a) 1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_SetSpeakerConfig(p,b) (p)->lpVtbl->SetSpeakerConfig(p,b) 1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSound_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// IDirectSoundBuffer 1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE 1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirectSoundBuffer 1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef _WIN32 1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_( IDirectSoundBuffer, IUnknown ) 1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ 1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream /*** IUnknown methods ***/ 1689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE; 1699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD_(ULONG,AddRef) (THIS) PURE; 1709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD_(ULONG,Release) (THIS) PURE; 1719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream /*** IDirectSoundBuffer methods ***/ 1729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetCaps)(THIS_ LPDSBCAPS ) PURE; 1749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD(GetCurrentPosition)(THIS_ LPDWORD,LPDWORD ) PURE; 1759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetFormat)(THIS_ LPWAVEFORMATEX, DWORD, LPDWORD ) PURE; 1769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetVolume)(THIS_ LPLONG ) PURE; 1779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetPan)(THIS_ LPLONG ) PURE; 1789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetFrequency)(THIS_ LPDWORD ) PURE; 1799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( GetStatus)(THIS_ LPDWORD ) PURE; 1809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Initialize)(THIS_ LPDIRECTSOUND, LPDSBUFFERDESC ) PURE; 1819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Lock)(THIS_ DWORD,DWORD,LPVOID,LPDWORD,LPVOID,LPDWORD,DWORD ) PURE; 1829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Play)(THIS_ DWORD,DWORD,DWORD ) PURE; 1839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD(SetCurrentPosition)(THIS_ DWORD ) PURE; 1849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( SetFormat)(THIS_ LPWAVEFORMATEX ) PURE; 1859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( SetVolume)(THIS_ LONG ) PURE; 1869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( SetPan)(THIS_ LONG ) PURE; 1879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( SetFrequency)(THIS_ DWORD ) PURE; 1889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Stop)(THIS ) PURE; 1899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Unlock)(THIS_ LPVOID,DWORD,LPVOID,DWORD ) PURE; 1909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream STDMETHOD( Restore)(THIS ) PURE; 1919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}; 1929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if !defined(__cplusplus) || defined(CINTERFACE) 1949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 1959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_AddRef(p) (p)->lpVtbl->AddRef(p) 1969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Release(p) (p)->lpVtbl->Release(p) 1979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a) 1989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetCurrentPosition(p,a,b) (p)->lpVtbl->GetCurrentPosition(p,a,b) 1999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetFormat(p,a,b,c) (p)->lpVtbl->GetFormat(p,a,b,c) 2009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetVolume(p,a) (p)->lpVtbl->GetVolume(p,a) 2019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetPan(p,a) (p)->lpVtbl->GetPan(p,a) 2029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetFrequency(p,a) (p)->lpVtbl->GetFrequency(p,a) 2039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a) 2049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) 2059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g) 2069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c) 2079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_SetCurrentPosition(p,a) (p)->lpVtbl->SetCurrentPosition(p,a) 2089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a) 2099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_SetVolume(p,a) (p)->lpVtbl->SetVolume(p,a) 2109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_SetPan(p,a) (p)->lpVtbl->SetPan(p,a) 2119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a) 2129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Stop(p) (p)->lpVtbl->Stop(p) 2139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d) 2149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDirectSoundBuffer_Restore(p) (p)->lpVtbl->Restore(p) 2159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 2169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 2189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Return Codes 2239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DS_OK 0 2269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The call failed because resources (such as a priority level) 2299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * were already being used by another caller. 2309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_ALLOCATED MAKE_DSHRESULT( 10 ) 2329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The control (vol,pan,etc.) requested by the caller is not available. 2349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_CONTROLUNAVAIL MAKE_DSHRESULT( 30 ) 2369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * An invalid parameter was passed to the returning function 2389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_INVALIDPARAM E_INVALIDARG 2409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * This call is not valid for the current state of this object 2429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_INVALIDCALL MAKE_DSHRESULT( 50 ) 2449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * An undetermined error occured inside the DSound subsystem 2469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_GENERIC E_FAIL 2489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The caller does not have the priority level required for the function to 2509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * succeed. 2519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_PRIOLEVELNEEDED MAKE_DSHRESULT( 70 ) 2539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The DSound subsystem couldn't allocate sufficient memory to complete the 2559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * caller's request. 2569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_OUTOFMEMORY E_OUTOFMEMORY 2589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The specified WAVE format is not supported 2609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_BADFORMAT MAKE_DSHRESULT( 100 ) 2629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The function called is not supported at this time 2649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_UNSUPPORTED E_NOTIMPL 2669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * No sound driver is available for use 2689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_NODRIVER MAKE_DSHRESULT( 120 ) 2709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * This object is already initialized 2729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_ALREADYINITIALIZED MAKE_DSHRESULT( 130 ) 2749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * This object does not support aggregation 2769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_NOAGGREGATION CLASS_E_NOAGGREGATION 2789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The buffer memory has been lost, and must be Restored. 2809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_BUFFERLOST MAKE_DSHRESULT( 150 ) 2829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Another app has a higher priority level, preventing this call from 2849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * succeeding. 2859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_OTHERAPPHASPRIO MAKE_DSHRESULT( 160 ) 2879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The Initialize() member on the Direct Sound Object has not been 2899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * called or called successfully before calls to other members. 2909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSERR_UNINITIALIZED MAKE_DSHRESULT( 170 ) 2929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//==========================================================================; 2979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 2989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// Flags... 2999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// 3009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//==========================================================================; 3019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_PRIMARYMONO 0x00000001 3039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_PRIMARYSTEREO 0x00000002 3049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_PRIMARY8BIT 0x00000004 3059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_PRIMARY16BIT 0x00000008 3069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_CONTINUOUSRATE 0x00000010 3079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_EMULDRIVER 0x00000020 3089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_CERTIFIED 0x00000040 3099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_SECONDARYMONO 0x00000100 3109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_SECONDARYSTEREO 0x00000200 3119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_SECONDARY8BIT 0x00000400 3129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSCAPS_SECONDARY16BIT 0x00000800 3139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBPLAY_LOOPING 0x00000001 3179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBSTATUS_PLAYING 0x00000001 3219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBSTATUS_BUFFERLOST 0x00000002 3229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBSTATUS_LOOPING 0x00000004 3239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBLOCK_FROMWRITECURSOR 0x00000001 3269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSCL_NORMAL 1 3309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSCL_PRIORITY 2 3319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSCL_EXCLUSIVE 3 3329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSCL_WRITEPRIMARY 4 3339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_PRIMARYBUFFER 0x00000001 3379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_STATIC 0x00000002 3389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_LOCHARDWARE 0x00000004 3399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_LOCSOFTWARE 0x00000008 3409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_CTRLFREQUENCY 0x00000020 3419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_CTRLPAN 0x00000040 3429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_CTRLVOLUME 0x00000080 3439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_CTRLDEFAULT 0x000000E0 // Pan + volume + frequency. 3449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_CTRLALL 0x000000E0 // All control capabilities 3459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_STICKYFOCUS 0x00004000 3469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSBCAPS_GETCURRENTPOSITION2 0x00010000 // More accurate play cursor under emulation 3479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSPEAKER_HEADPHONE 1 3529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSPEAKER_MONO 2 3539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSPEAKER_QUAD 3 3549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSPEAKER_STEREO 4 3559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define DSSPEAKER_SURROUND 5 3569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus 3639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}; 3649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 3659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif /* __DSOUND_INCLUDED__ */ 367