Implemented ExtractIconEx16, added some consts to ExtractIconEx*.
[wine] / include / interfaces.h
1 #ifndef _WINE_INTERFACES_H
2 #define _WINE_INTERFACES_H
3
4 #include "ole.h"
5 #include "ole2.h"
6 #include "compobj.h"
7
8 #define STDMETHOD(xfn) HRESULT (CALLBACK *fn##xfn)
9 #define STDMETHOD_(ret,xfn) ret (CALLBACK *fn##xfn)
10 #define PURE
11 #define FAR
12 #define THIS_ THIS,
13
14
15 DEFINE_OLEGUID(IID_IUnknown,0,0,0);
16 DEFINE_OLEGUID(IID_IClassFactory,1,0,0);
17 DEFINE_OLEGUID(IID_IMalloc,2,0,0);
18 DEFINE_OLEGUID(IID_IMarshal,3,0,0);
19 DEFINE_OLEGUID(IID_IStorage,0xb,0,0);
20 DEFINE_OLEGUID(IID_IStream,0xc,0,0);
21 DEFINE_OLEGUID(IID_IBindCtx,0xe,0,0);
22 DEFINE_OLEGUID(IID_IMoniker,0xf,0,0);
23 DEFINE_OLEGUID(IID_IRunningObject,0x10,0,0);
24 DEFINE_OLEGUID(IID_IRootStorage,0x12,0,0);
25 DEFINE_OLEGUID(IID_IMessageFilter,0x16,0,0);
26 DEFINE_OLEGUID(IID_IStdMarshalInfo,0x18,0,0);
27
28
29 DEFINE_OLEGUID(IID_IDispatch,       0x00020400,0,0);
30 DEFINE_OLEGUID(IID_ITypeInfo,       0x00020401,0,0);
31 DEFINE_OLEGUID(IID_ITypeLib,        0x00020402,0,0);
32 DEFINE_OLEGUID(IID_ITypeComp,       0x00020403,0,0);
33 DEFINE_OLEGUID(IID_IEnumVariant,    0x00020404,0,0);
34 DEFINE_OLEGUID(IID_ICreateTypeInfo, 0x00020405,0,0);
35 DEFINE_OLEGUID(IID_ICreateTypeLib,  0x00020406,0,0);
36 DEFINE_OLEGUID(IID_ICreateTypeInfo2,0x0002040E,0,0);
37 DEFINE_OLEGUID(IID_ICreateTypeLib2, 0x0002040F,0,0);
38 DEFINE_OLEGUID(IID_ITypeChangeEvents,0x00020410,0,0);
39 DEFINE_OLEGUID(IID_ITypeLib2,       0x00020411,0,0);
40 DEFINE_OLEGUID(IID_ITypeInfo2,      0x00020412,0,0);
41 DEFINE_GUID(IID_IErrorInfo,         0x1CF2B120,0x547D,0x101B,0x8E,0x65,
42         0x08,0x00, 0x2B,0x2B,0xD1,0x19);
43 DEFINE_GUID(IID_ICreateErrorInfo,   0x22F03340,0x547D,0x101B,0x8E,0x65,
44         0x08,0x00, 0x2B,0x2B,0xD1,0x19);
45 DEFINE_GUID(IID_ISupportErrorInfo,  0xDF0B3D60,0x547D,0x101B,0x8E,0x65,
46         0x08,0x00, 0x2B,0x2B,0xD1,0x19);
47
48 #include "objbase.h"
49
50 #define THIS LPCLASSFACTORY this
51 typedef struct {
52         STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
53         STDMETHOD_(ULONG,AddRef) (THIS) PURE;
54         STDMETHOD_(ULONG,Release) (THIS) PURE;
55         STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObject) PURE;
56         STDMETHOD(LockServer) (THIS_ BOOL32) PURE;
57 } *LPCLASSFACTORY_VTABLE,IClassFactory_VTable;
58
59 #undef THIS
60
61 #define THIS LPMALLOC32 this
62 typedef struct {
63         STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
64         STDMETHOD_(ULONG,AddRef) (THIS) PURE;
65         STDMETHOD_(ULONG,Release) (THIS) PURE;
66
67         STDMETHOD_(LPVOID,Alloc) ( THIS_ DWORD cb);
68         STDMETHOD_(LPVOID,Realloc) ( THIS_ LPVOID pv,DWORD cb);
69         STDMETHOD_(VOID,Free) ( THIS_ LPVOID pv);
70         STDMETHOD_(DWORD,GetSize) ( THIS_ LPVOID pv);
71         STDMETHOD_(INT32,DidAlloc) ( THIS_ LPVOID pv);
72         STDMETHOD_(LPVOID,HeapMinimize) ( THIS );
73 } *LPMALLOC32_VTABLE,IMalloc32_VTable;
74
75 #undef THIS
76
77 #define THIS LPMALLOC16 this
78 typedef struct {
79         STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
80         STDMETHOD_(ULONG,AddRef) (THIS) PURE;
81         STDMETHOD_(ULONG,Release) (THIS) PURE;
82
83         STDMETHOD_(LPVOID,Alloc) ( THIS_ DWORD cb);
84         STDMETHOD_(LPVOID,Realloc) ( THIS_ LPVOID pv,DWORD cb);
85         STDMETHOD_(VOID,Free) ( THIS_ LPVOID pv);
86         STDMETHOD_(DWORD,GetSize) ( THIS_ LPVOID pv);
87         STDMETHOD_(INT16,DidAlloc) ( THIS_ LPVOID pv);
88         STDMETHOD_(LPVOID,HeapMinimize) ( THIS );
89 } *LPMALLOC16_VTABLE,IMalloc16_VTable;
90
91 #undef THIS
92
93 /* private prototypes for the constructors */
94 #ifdef __WINE__
95 LPUNKNOWN       IUnknown_Constructor(void);
96 LPMALLOC16      IMalloc16_Constructor(void);
97 LPMALLOC32      IMalloc32_Constructor(void);
98 #endif
99
100 HRESULT WINAPI CoGetMalloc32(DWORD, LPMALLOC32*);
101
102 #undef STDMETHOD
103 #undef STDMETHOD_
104 #undef PURE
105 #undef FAR
106 #undef THIS_
107 #endif /*_WINE_INTERFACES_H*/