1/*
2 * Copyright (C) 2002 Alexandre Julliard
3 * Copyright (C) 2004 Vincent Béron
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
20import "unknwn.idl";
21import "objidl.idl";
22
23interface IDMOQualityControl;
24interface IDMOVideoOutputOptimizations;
25interface IMediaBuffer;
26interface IMediaObject;
27interface IMediaObjectInPlace;
28
29typedef struct _DMOMediaType
30{
31    GUID majortype;
32    GUID subtype;
33    BOOL bFixedSizeSamples;
34    BOOL bTemporalCompression;
35    ULONG lSampleSize;
36    GUID formattype;
37    IUnknown *pUnk;
38    ULONG cbFormat;
39    BYTE *pbFormat;
40} DMO_MEDIA_TYPE;
41
42/*****************************************************************************
43 * IEnumDMO interface
44 */
45[
46    object,
47    uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F),
48    pointer_default(unique)
49]
50interface IEnumDMO : IUnknown
51{
52    [local]
53    HRESULT Next(
54        [in] DWORD cItemsToFetch,
55        [out] CLSID *pCLSID,
56        [out] WCHAR **Names,
57        [out] DWORD *pcItemsFetched
58    );
59
60    HRESULT Skip(
61        [in] DWORD cItemsToSkip
62    );
63
64    HRESULT Reset();
65
66    HRESULT Clone(
67        [out] IEnumDMO **ppEnum
68    );
69}
70