browseui: Use ifaces instead of vtbl pointers in ACLMulti.
[wine] / dlls / browseui / browseui.h
1 /*
2  * Internal header for browseui.dll
3  *
4  * Copyright 2007 Mikolaj Zalewski
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #ifndef __WINE_BROWSEUI_H
22 #define __WINE_BROWSEUI_H
23
24 extern LONG BROWSEUI_refCount;
25 extern HINSTANCE BROWSEUI_hinstance;
26
27 extern HRESULT ACLMulti_Constructor(IUnknown *punkOuter, IUnknown **ppOut);
28 extern HRESULT ProgressDialog_Constructor(IUnknown *punkOuter, IUnknown **ppOut);
29 extern HRESULT CompCatCacheDaemon_Constructor(IUnknown *punkOuter, IUnknown **ppOut);
30 extern HRESULT ACLShellSource_Constructor(IUnknown *punkOuter, IUnknown **ppOut);
31
32 extern const GUID CLSID_CompCatCacheDaemon;
33
34 static inline void *heap_alloc(size_t size)
35 {
36     return HeapAlloc(GetProcessHeap(), 0, size);
37 }
38
39 static inline void *heap_alloc_zero(size_t size)
40 {
41     return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
42 }
43
44 static inline void *heap_realloc(void *mem, size_t size)
45 {
46     return mem ? HeapReAlloc(GetProcessHeap(), 0, mem, size) : heap_alloc(size);
47 }
48
49 static inline BOOL heap_free(void *mem)
50 {
51     return HeapFree(GetProcessHeap(), 0, mem);
52 }
53
54 #endif /* __WINE_BROWSEUI_H */