Implement ResetDC and PHYSICALOFFSET[X|Y] devcaps.
[wine] / dlls / quartz / memalloc.h
1 /*
2  * Copyright (C) Hidenori TAKESHIMA
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef WINE_DSHOW_MEMALLOC_H
20 #define WINE_DSHOW_MEMALLOC_H
21
22 /*
23                 implements CLSID_MemoryAllocator.
24
25         - At least, the following interfaces should be implemented:
26
27         IUnknown
28                 + IMemAllocator
29
30 */
31
32 #include "iunk.h"
33 #include "sample.h"
34
35 typedef struct MA_IMemAllocatorImpl
36 {
37         ICOM_VFIELD(IMemAllocator);
38 } MA_IMemAllocatorImpl;
39
40 typedef struct CMemoryAllocator
41 {
42         QUARTZ_IUnkImpl unk;
43         MA_IMemAllocatorImpl    memalloc;
44
45         /* IMemAllocator fields. */
46         CRITICAL_SECTION        csMem;
47         ALLOCATOR_PROPERTIES    prop;
48         HANDLE  hEventSample;
49         BYTE*   pData;
50         CMemMediaSample**       ppSamples;
51 } CMemoryAllocator;
52
53 #define CMemoryAllocator_THIS(iface,member)             CMemoryAllocator*       This = ((CMemoryAllocator*)(((char*)iface)-offsetof(CMemoryAllocator,member)))
54
55 HRESULT QUARTZ_CreateMemoryAllocator(IUnknown* punkOuter,void** ppobj);
56
57 HRESULT CMemoryAllocator_InitIMemAllocator( CMemoryAllocator* pma );
58 void CMemoryAllocator_UninitIMemAllocator( CMemoryAllocator* pma );
59
60
61 #endif  /* WINE_DSHOW_MEMALLOC_H */