1#undef INTERFACE
2/*
3 * Copyright (C) 2010 Maarten Lankhorst for CodeWeavers
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#ifndef __AMAUDIO__
21#define __AMAUDIO__
22
23#include <mmsystem.h>
24#include <dsound.h>
25
26#undef INTERFACE
27#define INTERFACE IAMDirectSound
28
29DECLARE_INTERFACE_(IAMDirectSound,IUnknown)
30{
31    /*** IUnknown methods ***/
32    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
33    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
34    STDMETHOD_(ULONG,Release)(THIS) PURE;
35
36    /*** IAMDirectSound methods ***/
37    STDMETHOD(GetDirectSoundInterface)(THIS_ IDirectSound **ds) PURE;
38    STDMETHOD(GetPrimaryBufferInterface)(THIS_ IDirectSoundBuffer **buf) PURE;
39    STDMETHOD(GetSecondaryBufferInterface)(THIS_ IDirectSoundBuffer **buf) PURE;
40    STDMETHOD(ReleaseDirectSoundInterface)(THIS_ IDirectSound *ds) PURE;
41    STDMETHOD(ReleasePrimaryBufferInterface)(THIS_ IDirectSoundBuffer *buf) PURE;
42    STDMETHOD(ReleaseSecondaryBufferInterface)(THIS_ IDirectSoundBuffer *buf) PURE;
43    STDMETHOD(SetFocusWindow)(THIS_ HWND hwnd, WINBOOL bgsilent) PURE;
44    STDMETHOD(GetFocusWindow)(THIS_ HWND hwnd) PURE;
45};
46#undef INTERFACE
47
48#endif
49