Line | |
---|
1 | #ifndef WINE_DSHOW_MEMALLOC_H
|
---|
2 | #define WINE_DSHOW_MEMALLOC_H
|
---|
3 |
|
---|
4 | /*
|
---|
5 | implements CLSID_MemoryAllocator.
|
---|
6 |
|
---|
7 | - At least, the following interfaces should be implemented:
|
---|
8 |
|
---|
9 | IUnknown
|
---|
10 | + IMemAllocator
|
---|
11 |
|
---|
12 | */
|
---|
13 |
|
---|
14 | #include "iunk.h"
|
---|
15 |
|
---|
16 | typedef struct MA_IMemAllocatorImpl
|
---|
17 | {
|
---|
18 | ICOM_VFIELD(IMemAllocator);
|
---|
19 | } MA_IMemAllocatorImpl;
|
---|
20 |
|
---|
21 | typedef struct CMemoryAllocator
|
---|
22 | {
|
---|
23 | QUARTZ_IUnkImpl unk;
|
---|
24 | MA_IMemAllocatorImpl memalloc;
|
---|
25 |
|
---|
26 | /* IMemAllocator fields. */
|
---|
27 | CRITICAL_SECTION csMem;
|
---|
28 | ALLOCATOR_PROPERTIES prop;
|
---|
29 | } CMemoryAllocator;
|
---|
30 |
|
---|
31 | #define CMemoryAllocator_THIS(iface,member) CMemoryAllocator* This = ((CMemoryAllocator*)(((char*)iface)-offsetof(CMemoryAllocator,member)))
|
---|
32 |
|
---|
33 | HRESULT QUARTZ_CreateMemoryAllocator(IUnknown* punkOuter,void** ppobj);
|
---|
34 |
|
---|
35 | HRESULT CMemoryAllocator_InitIMemAllocator( CMemoryAllocator* pma );
|
---|
36 | void CMemoryAllocator_UninitIMemAllocator( CMemoryAllocator* pma );
|
---|
37 |
|
---|
38 |
|
---|
39 | #endif /* WINE_DSHOW_MEMALLOC_H */
|
---|
Note:
See
TracBrowser
for help on using the repository browser.