DoDragDrop and OleIsCurrentClipboard stub implementation.
[wine] / include / objbase.h
1 #ifndef __WINE_OBJBASE_H
2 #define __WINE_OBJBASE_H
3
4
5 #include "wine/obj_base.h"
6
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"
13
14 /* the following depend on obj_storage.h */
15 #include "wine/obj_moniker.h"
16 #include "wine/obj_propertystorage.h"
17
18 /* the following depend on obj_moniker.h */
19 #include "wine/obj_dataobject.h"
20
21 /* FIXME: the following should be moved to one of the wine/obj_XXX.h headers */
22
23 /*****************************************************************************
24  * CoXXX API
25  */
26 /* FIXME: more CoXXX functions are missing */
27 DWORD WINAPI CoBuildVersion(void);
28
29 typedef enum tagCOINIT
30 {
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 */
35 } COINIT;
36
37 HRESULT WINAPI CoInitialize16(LPVOID lpReserved);
38 HRESULT WINAPI CoInitialize32(LPVOID lpReserved);
39 #define CoInitialize WINELIB_NAME(CoInitialize)
40
41 HRESULT WINAPI CoInitializeEx32(LPVOID lpReserved, DWORD dwCoInit);
42 #define CoInitializeEx WINELIB_NAME(CoInitializeEx)
43
44 void WINAPI CoUninitialize(void);
45
46
47 HRESULT WINAPI CoCreateGuid(GUID *pguid);
48
49 /* class registration flags; passed to CoRegisterClassObject */
50 typedef enum tagREGCLS
51 {
52     REGCLS_SINGLEUSE = 0,
53     REGCLS_MULTIPLEUSE = 1,
54     REGCLS_MULTI_SEPARATE = 2,
55     REGCLS_SUSPENDED = 4
56 } REGCLS;
57
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)
61
62 HRESULT WINAPI CoRevokeClassObject(DWORD dwRegister);
63 HRESULT WINAPI CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext,LPVOID pvReserved, const REFIID iid, LPVOID *ppv);
64
65
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);
74
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)
78
79
80 /* internal Wine stuff */
81
82
83 /*****************************************************************************
84  * IClassFactory interface
85  */
86
87 typedef struct _IClassFactory {
88     /* IUnknown fields */
89     ICOM_VTABLE(IClassFactory)* lpvtbl;
90     DWORD                       ref;
91 } _IClassFactory;
92
93 HRESULT WINE_StringFromCLSID(const CLSID *id, LPSTR);
94
95
96 /*****************************************************************************
97  * IMalloc interface
98  */
99 /* private prototypes for the constructors */
100 LPMALLOC16      IMalloc16_Constructor(void);
101 LPMALLOC32      IMalloc32_Constructor(void);
102
103
104 /*****************************************************************************
105  * IUnknown interface
106  */
107
108 typedef struct _IUnknown {
109     /* IUnknown fields */
110     ICOM_VTABLE(IUnknown)* lpvtbl;
111     DWORD                  ref;
112 } _IUnknown;
113
114 LPUNKNOWN       IUnknown_Constructor(void);
115
116 #endif /* __WINE_OBJBASE_H */