1 #ifndef __WINE_OBJBASE_H
2 #define __WINE_OBJBASE_H
5 #include "wine/obj_base.h"
7 /* the following depend only on obj_base.h */
8 #include "wine/obj_misc.h"
9 #include "wine/obj_channel.h"
10 #include "wine/obj_clientserver.h"
11 #include "wine/obj_marshal.h"
12 #include "wine/obj_storage.h"
14 /* the following depend on obj_storage.h */
15 #include "wine/obj_moniker.h"
16 #include "wine/obj_propertystorage.h"
18 /* the following depend on obj_moniker.h */
19 #include "wine/obj_dataobject.h"
21 /* FIXME: the following should be moved to one of the wine/obj_XXX.h headers */
23 /*****************************************************************************
26 /* FIXME: more CoXXX functions are missing */
27 DWORD WINAPI
CoBuildVersion(void);
29 typedef enum tagCOINIT
31 COINIT_APARTMENTTHREADED
= 0x2, /* Apartment model */
32 COINIT_MULTITHREADED
= 0x0, /* OLE calls objects on any thread */
33 COINIT_DISABLE_OLE1DDE
= 0x4, /* Don't use DDE for Ole1 support */
34 COINIT_SPEED_OVER_MEMORY
= 0x8 /* Trade memory for speed */
37 HRESULT WINAPI
CoInitialize16(LPVOID lpReserved
);
38 HRESULT WINAPI
CoInitialize32(LPVOID lpReserved
);
39 #define CoInitialize WINELIB_NAME(CoInitialize)
41 HRESULT WINAPI
CoInitializeEx32(LPVOID lpReserved
, DWORD dwCoInit
);
42 #define CoInitializeEx WINELIB_NAME(CoInitializeEx)
44 void WINAPI
CoUninitialize(void);
47 HRESULT WINAPI
CoCreateGuid(GUID
*pguid
);
49 /* class registration flags; passed to CoRegisterClassObject */
50 typedef enum tagREGCLS
53 REGCLS_MULTIPLEUSE
= 1,
54 REGCLS_MULTI_SEPARATE
= 2,
58 HRESULT WINAPI
CoRegisterClassObject16(REFCLSID rclsid
, LPUNKNOWN pUnk
, DWORD dwClsContext
, DWORD flags
, LPDWORD lpdwRegister
);
59 HRESULT WINAPI
CoRegisterClassObject32(REFCLSID rclsid
,LPUNKNOWN pUnk
,DWORD dwClsContext
,DWORD flags
,LPDWORD lpdwRegister
);
60 #define CoRegisterClassObject WINELIB_NAME(CoRegisterClassObject)
62 HRESULT WINAPI
CoRevokeClassObject(DWORD dwRegister
);
63 HRESULT WINAPI
CoGetClassObject(REFCLSID rclsid
, DWORD dwClsContext
,LPVOID pvReserved
, const REFIID iid
, LPVOID
*ppv
);
66 HRESULT WINAPI
CoCreateInstance(REFCLSID rclsid
,LPUNKNOWN pUnkOuter
,DWORD dwClsContext
,REFIID iid
,LPVOID
*ppv
);
67 void WINAPI
CoFreeLibrary(HINSTANCE32 hLibrary
);
68 void WINAPI
CoFreeAllLibraries(void);
69 void WINAPI
CoFreeUnusedLibraries(void);
70 HRESULT WINAPI
CoFileTimeNow(FILETIME
*lpFileTime
);
71 LPVOID WINAPI
CoTaskMemAlloc(ULONG size
);
72 void WINAPI
CoTaskMemFree(LPVOID ptr
);
73 HINSTANCE32 WINAPI
CoLoadLibrary(LPOLESTR16 lpszLibName
, BOOL32 bAutoFree
);
75 HRESULT WINAPI
CoLockObjectExternal16(LPUNKNOWN pUnk
,BOOL16 fLock
,BOOL16 fLastUnlockReleases
);
76 HRESULT WINAPI
CoLockObjectExternal32(LPUNKNOWN pUnk
,BOOL32 fLock
,BOOL32 fLastUnlockReleases
);
77 #define CoLockObjectExternal WINELIB_NAME(CoLockObjectExternal)
80 /* internal Wine stuff */
83 /*****************************************************************************
84 * IClassFactory interface
87 typedef struct _IClassFactory
{
89 ICOM_VTABLE(IClassFactory
)* lpvtbl
;
93 HRESULT
WINE_StringFromCLSID(const CLSID
*id
, LPSTR
);
96 /*****************************************************************************
99 /* private prototypes for the constructors */
100 LPMALLOC16
IMalloc16_Constructor(void);
101 LPMALLOC32
IMalloc32_Constructor(void);
104 /*****************************************************************************
108 typedef struct _IUnknown
{
109 /* IUnknown fields */
110 ICOM_VTABLE(IUnknown
)* lpvtbl
;
114 LPUNKNOWN
IUnknown_Constructor(void);
116 #endif /* __WINE_OBJBASE_H */