1 /* IDirectMusicBuffer Implementation
3 * Copyright (C) 2003 Rok Mandeljc
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program 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
13 * GNU Library General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34 #include "wine/windef16.h"
35 #include "wine/winbase16.h"
36 #include "wine/debug.h"
39 #include "dmusic_private.h"
41 WINE_DEFAULT_DEBUG_CHANNEL(dmusic
);
43 /* IDirectMusicBuffer IUnknown parts follow: */
44 HRESULT WINAPI
IDirectMusicBufferImpl_QueryInterface (LPDIRECTMUSICBUFFER iface
, REFIID riid
, LPVOID
*ppobj
)
46 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
48 if (IsEqualIID (riid
, &IID_IUnknown
)
49 || IsEqualIID (riid
, &IID_IDirectMusicBuffer
)) {
50 IDirectMusicBufferImpl_AddRef(iface
);
55 WARN("(%p)->(%s,%p),not found\n",This
,debugstr_guid(riid
),ppobj
);
59 ULONG WINAPI
IDirectMusicBufferImpl_AddRef (LPDIRECTMUSICBUFFER iface
)
61 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
62 TRACE("(%p) : AddRef from %ld\n", This
, This
->ref
);
66 ULONG WINAPI
IDirectMusicBufferImpl_Release (LPDIRECTMUSICBUFFER iface
)
68 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
69 ULONG ref
= --This
->ref
;
70 TRACE("(%p) : ReleaseRef to %ld\n", This
, This
->ref
);
72 HeapFree(GetProcessHeap(), 0, This
);
77 /* IDirectMusicBuffer Interface follow: */
78 HRESULT WINAPI
IDirectMusicBufferImpl_Flush (LPDIRECTMUSICBUFFER iface
)
80 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
82 FIXME("(%p): stub\n", This
);
87 HRESULT WINAPI
IDirectMusicBufferImpl_TotalTime (LPDIRECTMUSICBUFFER iface
, LPREFERENCE_TIME prtTime
)
89 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
91 FIXME("(%p, %p): stub\n", This
, prtTime
);
96 HRESULT WINAPI
IDirectMusicBufferImpl_PackStructured (LPDIRECTMUSICBUFFER iface
, REFERENCE_TIME rt
, DWORD dwChannelGroup
, DWORD dwChannelMessage
)
98 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
100 FIXME("(%p, %lli, %ld, %ld): stub\n", This
, rt
, dwChannelGroup
, dwChannelMessage
);
105 HRESULT WINAPI
IDirectMusicBufferImpl_PackUnstructured (LPDIRECTMUSICBUFFER iface
, REFERENCE_TIME rt
, DWORD dwChannelGroup
, DWORD cb
, LPBYTE lpb
)
107 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
109 FIXME("(%p, %lli, %ld, %ld, %p): stub\n", This
, rt
, dwChannelGroup
, cb
, lpb
);
114 HRESULT WINAPI
IDirectMusicBufferImpl_ResetReadPtr (LPDIRECTMUSICBUFFER iface
)
116 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
118 FIXME("(%p): stub\n", This
);
123 HRESULT WINAPI
IDirectMusicBufferImpl_GetNextEvent (LPDIRECTMUSICBUFFER iface
, LPREFERENCE_TIME prt
, LPDWORD pdwChannelGroup
, LPDWORD pdwLength
, LPBYTE
* ppData
)
125 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
127 FIXME("(%p, %p, %p, %p, %p): stub\n", This
, prt
, pdwChannelGroup
, pdwLength
, ppData
);
132 HRESULT WINAPI
IDirectMusicBufferImpl_GetRawBufferPtr (LPDIRECTMUSICBUFFER iface
, LPBYTE
* ppData
)
134 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
136 FIXME("(%p, %p): stub\n", This
, ppData
);
141 HRESULT WINAPI
IDirectMusicBufferImpl_GetStartTime (LPDIRECTMUSICBUFFER iface
, LPREFERENCE_TIME prt
)
143 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
145 FIXME("(%p, %p): stub\n", This
, prt
);
150 HRESULT WINAPI
IDirectMusicBufferImpl_GetUsedBytes (LPDIRECTMUSICBUFFER iface
, LPDWORD pcb
)
152 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
154 FIXME("(%p, %p): stub\n", This
, pcb
);
159 HRESULT WINAPI
IDirectMusicBufferImpl_GetMaxBytes (LPDIRECTMUSICBUFFER iface
, LPDWORD pcb
)
161 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
163 FIXME("(%p, %p): stub\n", This
, pcb
);
168 HRESULT WINAPI
IDirectMusicBufferImpl_GetBufferFormat (LPDIRECTMUSICBUFFER iface
, LPGUID pGuidFormat
)
170 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
172 FIXME("(%p, %p): stub\n", This
, pGuidFormat
);
177 HRESULT WINAPI
IDirectMusicBufferImpl_SetStartTime (LPDIRECTMUSICBUFFER iface
, REFERENCE_TIME rt
)
179 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
181 FIXME("(%p, %lli): stub\n", This
, rt
);
186 HRESULT WINAPI
IDirectMusicBufferImpl_SetUsedBytes (LPDIRECTMUSICBUFFER iface
, DWORD cb
)
188 ICOM_THIS(IDirectMusicBufferImpl
,iface
);
190 FIXME("(%p, %ld): stub\n", This
, cb
);
195 ICOM_VTABLE(IDirectMusicBuffer
) DirectMusicBuffer_Vtbl
=
197 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
198 IDirectMusicBufferImpl_QueryInterface
,
199 IDirectMusicBufferImpl_AddRef
,
200 IDirectMusicBufferImpl_Release
,
201 IDirectMusicBufferImpl_Flush
,
202 IDirectMusicBufferImpl_TotalTime
,
203 IDirectMusicBufferImpl_PackStructured
,
204 IDirectMusicBufferImpl_PackUnstructured
,
205 IDirectMusicBufferImpl_ResetReadPtr
,
206 IDirectMusicBufferImpl_GetNextEvent
,
207 IDirectMusicBufferImpl_GetRawBufferPtr
,
208 IDirectMusicBufferImpl_GetStartTime
,
209 IDirectMusicBufferImpl_GetUsedBytes
,
210 IDirectMusicBufferImpl_GetMaxBytes
,
211 IDirectMusicBufferImpl_GetBufferFormat
,
212 IDirectMusicBufferImpl_SetStartTime
,
213 IDirectMusicBufferImpl_SetUsedBytes
216 /* for ClassFactory */
217 HRESULT WINAPI
DMUSIC_CreateDirectMusicBuffer (LPCGUID lpcGUID
, LPDIRECTMUSICBUFFER
* ppDMBuff
, LPUNKNOWN pUnkOuter
)
219 if (IsEqualIID (lpcGUID
, &IID_IDirectMusicBuffer
)) {
221 return E_NOINTERFACE
;
224 WARN("No interface found\n");
225 return E_NOINTERFACE
;