53 TRACE(
"(%p, %p, %p)\n", pppFilters, pNumFilters, ppEnum);
67 IGraphVersion_AddRef(pVersionSource);
71 hr = IGraphVersion_QueryVersion(pVersionSource, ¤tVersion);
105 TRACE(
"(%p)->()\n", iface);
115 TRACE(
"(%p)->()\n", iface);
119 IGraphVersion_Release(
This->pVersionSource);
135 cFetched =
min(*
This->pNumFilters,
This->uIndex + cFilters) -
This->uIndex;
137 TRACE(
"(%p)->(%u, %p, %p)\n", iface, cFilters, ppFilters, pcFetched);
140 hr = IGraphVersion_QueryVersion(
This->pVersionSource, ¤tVersion);
141 if (
hr==
S_OK &&
This->Version != currentVersion)
148 for (
i = 0;
i < cFetched;
i++)
150 ppFilters[
i] = (*
This->pppFilters)[
This->uIndex +
i];
151 IBaseFilter_AddRef(ppFilters[
i]);
154 This->uIndex += cFetched;
157 *pcFetched = cFetched;
159 if (cFetched != cFilters)
168 TRACE(
"(%p)->(%u)\n", iface, cFilters);
170 if (
This->uIndex + cFilters < *This->pNumFilters)
172 This->uIndex += cFilters;
184 TRACE(
"(%p)->()\n", iface);
187 hr = IGraphVersion_QueryVersion(
This->pVersionSource, ¤tVersion);
189 This->Version = currentVersion;
198 TRACE(
"(%p)->(%p)\n", iface, ppEnum);
203 return IEnumFilters_Skip(*ppEnum,
This->uIndex);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
const char * qzdebugstr_guid(const GUID *id)
static ULONG WINAPI IEnumFiltersImpl_AddRef(IEnumFilters *iface)
static HRESULT WINAPI IEnumFiltersImpl_Reset(IEnumFilters *iface)
static HRESULT WINAPI IEnumFiltersImpl_Clone(IEnumFilters *iface, IEnumFilters **ppEnum)
static ULONG WINAPI IEnumFiltersImpl_Release(IEnumFilters *iface)
static HRESULT WINAPI IEnumFiltersImpl_Next(IEnumFilters *iface, ULONG cFilters, IBaseFilter **ppFilters, ULONG *pcFetched)
static IEnumFiltersImpl * impl_from_IEnumFilters(IEnumFilters *iface)
static HRESULT WINAPI IEnumFiltersImpl_QueryInterface(IEnumFilters *iface, REFIID riid, LPVOID *ppv)
HRESULT IEnumFiltersImpl_Construct(IGraphVersion *pVersionSource, IBaseFilter ***pppFilters, ULONG *pNumFilters, IEnumFilters **ppEnum)
static const struct IEnumFiltersVtbl IEnumFiltersImpl_Vtbl
static HRESULT WINAPI IEnumFiltersImpl_Skip(IEnumFilters *iface, ULONG cFilters)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
#define IsEqualIID(riid1, riid2)
IEnumFilters IEnumFilters_iface
IBaseFilter *** pppFilters
IGraphVersion * pVersionSource
#define CONTAINING_RECORD(address, type, field)
#define VFW_E_ENUM_OUT_OF_SYNC