Release 971130
[wine/hacks.git] / include / interfaces.h
blob5e912daa9d9e6553a6827a4b22cd9528f5c53982
1 #ifndef _WINE_INTERFACES_H
2 #define _WINE_INTERFACES_H
4 #include "ole.h"
5 #include "ole2.h"
6 #include "compobj.h"
8 DEFINE_OLEGUID(IID_IUnknown,0,0,0);
9 DEFINE_OLEGUID(IID_IClassFactory,1,0,0);
10 DEFINE_OLEGUID(IID_IMalloc,2,0,0);
11 DEFINE_OLEGUID(IID_IMarshal,3,0,0);
12 DEFINE_OLEGUID(IID_IStorage,0xb,0,0);
13 DEFINE_OLEGUID(IID_IStream,0xc,0,0);
14 DEFINE_OLEGUID(IID_IBindCtx,0xe,0,0);
15 DEFINE_OLEGUID(IID_IMoniker,0xf,0,0);
16 DEFINE_OLEGUID(IID_IRunningObject,0x10,0,0);
17 DEFINE_OLEGUID(IID_IRootStorage,0x12,0,0);
18 DEFINE_OLEGUID(IID_IMessageFilter,0x16,0,0);
19 DEFINE_OLEGUID(IID_IStdMarshalInfo,0x18,0,0);
21 typedef struct tagUNKNOWN *LPUNKNOWN,IUnknown;
22 typedef struct {
23 HRESULT (CALLBACK *fnQueryInterface)(LPUNKNOWN this,REFIID refiid,LPVOID *obj);
24 HRESULT (CALLBACK *fnAddRef)(LPUNKNOWN this);
25 HRESULT (CALLBACK *fnRelease)(LPUNKNOWN this);
26 } *LPUNKNOWN_VTABLE;
28 struct tagUNKNOWN {
29 LPUNKNOWN_VTABLE lpvtbl;
30 /* internal stuff. Not needed until we actually implement IUnknown */
33 typedef struct tagCLASSFACTORY *LPCLASSFACTORY,IClassFactory;
34 typedef struct {
35 HRESULT (CALLBACK *fnQueryInterface)(LPCLASSFACTORY this,REFIID refiid,LPVOID *obj);
36 HRESULT (CALLBACK *fnAddRef)(LPCLASSFACTORY this);
37 HRESULT (CALLBACK *fnRelease)(LPCLASSFACTORY this);
38 HRESULT (CALLBACK *fnCreateInstance)(LPCLASSFACTORY this,LPUNKNOWN pUnkOuter,REFIID riid,LPVOID * ppvObject);
39 } *LPCLASSFACTORY_VTABLE;
41 struct tagCLASSFACTORY {
42 LPCLASSFACTORY_VTABLE lpvtbl;
43 /*internal stuff. Not needed until we actually implement IClassFactory*/
45 #endif /*_WINE_INTERFACES_H*/