Berend Reitsma <berend at asset-control.com>
[wine.git] / include / interfaces.h
blobc0768d1db8744e048e01b9ad3b471ce7d3a2fa67
1 #ifndef _WINE_INTERFACES_H
2 #define _WINE_INTERFACES_H
4 #include "ole.h"
5 #include "ole2.h"
6 #include "compobj.h"
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,
14 /* fixme move to wine/obj_*.h */
15 DEFINE_OLEGUID(IID_IDispatch, 0x00020400,0,0);
16 DEFINE_OLEGUID(IID_ITypeInfo, 0x00020401,0,0);
17 DEFINE_OLEGUID(IID_ITypeLib, 0x00020402,0,0);
18 DEFINE_OLEGUID(IID_ITypeComp, 0x00020403,0,0);
19 DEFINE_OLEGUID(IID_IEnumVariant, 0x00020404,0,0);
20 DEFINE_OLEGUID(IID_ICreateTypeInfo, 0x00020405,0,0);
21 DEFINE_OLEGUID(IID_ICreateTypeLib, 0x00020406,0,0);
22 DEFINE_OLEGUID(IID_ICreateTypeInfo2,0x0002040E,0,0);
23 DEFINE_OLEGUID(IID_ICreateTypeLib2, 0x0002040F,0,0);
24 DEFINE_OLEGUID(IID_ITypeChangeEvents,0x00020410,0,0);
25 DEFINE_OLEGUID(IID_ITypeLib2, 0x00020411,0,0);
26 DEFINE_OLEGUID(IID_ITypeInfo2, 0x00020412,0,0);
27 DEFINE_GUID(IID_IErrorInfo, 0x1CF2B120,0x547D,0x101B,0x8E,0x65,
28 0x08,0x00, 0x2B,0x2B,0xD1,0x19);
29 DEFINE_GUID(IID_ICreateErrorInfo, 0x22F03340,0x547D,0x101B,0x8E,0x65,
30 0x08,0x00, 0x2B,0x2B,0xD1,0x19);
31 DEFINE_GUID(IID_ISupportErrorInfo, 0xDF0B3D60,0x547D,0x101B,0x8E,0x65,
32 0x08,0x00, 0x2B,0x2B,0xD1,0x19);
34 #include "objbase.h"
36 #define THIS LPCLASSFACTORY this
37 typedef struct {
38 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
39 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
40 STDMETHOD_(ULONG,Release) (THIS) PURE;
41 STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObject) PURE;
42 STDMETHOD(LockServer) (THIS_ BOOL32) PURE;
43 } *LPCLASSFACTORY_VTABLE,IClassFactory_VTable;
45 #undef THIS
47 #define THIS LPMALLOC32 this
48 typedef struct {
49 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
50 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
51 STDMETHOD_(ULONG,Release) (THIS) PURE;
53 STDMETHOD_(LPVOID,Alloc) ( THIS_ DWORD cb);
54 STDMETHOD_(LPVOID,Realloc) ( THIS_ LPVOID pv,DWORD cb);
55 STDMETHOD_(VOID,Free) ( THIS_ LPVOID pv);
56 STDMETHOD_(DWORD,GetSize) ( THIS_ LPVOID pv);
57 STDMETHOD_(INT32,DidAlloc) ( THIS_ LPVOID pv);
58 STDMETHOD_(LPVOID,HeapMinimize) ( THIS );
59 } *LPMALLOC32_VTABLE,IMalloc32_VTable;
61 #undef THIS
63 #define THIS LPMALLOC16 this
64 typedef struct {
65 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
66 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
67 STDMETHOD_(ULONG,Release) (THIS) PURE;
69 STDMETHOD_(LPVOID,Alloc) ( THIS_ DWORD cb);
70 STDMETHOD_(LPVOID,Realloc) ( THIS_ LPVOID pv,DWORD cb);
71 STDMETHOD_(VOID,Free) ( THIS_ LPVOID pv);
72 STDMETHOD_(DWORD,GetSize) ( THIS_ LPVOID pv);
73 STDMETHOD_(INT16,DidAlloc) ( THIS_ LPVOID pv);
74 STDMETHOD_(LPVOID,HeapMinimize) ( THIS );
75 } *LPMALLOC16_VTABLE,IMalloc16_VTable;
77 #undef THIS
79 /* private prototypes for the constructors */
80 #ifdef __WINE__
81 LPUNKNOWN IUnknown_Constructor(void);
82 LPMALLOC16 IMalloc16_Constructor(void);
83 LPMALLOC32 IMalloc32_Constructor(void);
84 #endif
86 HRESULT WINAPI CoGetMalloc32(DWORD, LPMALLOC32*);
88 #undef STDMETHOD
89 #undef STDMETHOD_
90 #undef PURE
91 #undef FAR
92 #undef THIS_
93 #endif /*_WINE_INTERFACES_H*/