Small patch.
[wine/multimedia.git] / include / objbase.h
blob38a540ce743d3bdfba4316d7c960e0a96f1bf744
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 /*****************************************************************************
24 * CoXXX API
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 */
35 } COINIT;
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
52 REGCLS_SINGLEUSE = 0,
53 REGCLS_MULTIPLEUSE = 1,
54 REGCLS_MULTI_SEPARATE = 2,
55 REGCLS_SUSPENDED = 4
56 } REGCLS;
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 {
88 /* IUnknown fields */
89 ICOM_VTABLE(IClassFactory)* lpvtbl;
90 DWORD ref;
91 } _IClassFactory;
93 HRESULT WINE_StringFromCLSID(const CLSID *id, LPSTR);
96 /*****************************************************************************
97 * IMalloc interface
99 /* private prototypes for the constructors */
100 LPMALLOC16 IMalloc16_Constructor(void);
101 LPMALLOC32 IMalloc32_Constructor(void);
104 /*****************************************************************************
105 * IUnknown interface
108 typedef struct _IUnknown {
109 /* IUnknown fields */
110 ICOM_VTABLE(IUnknown)* lpvtbl;
111 DWORD ref;
112 } _IUnknown;
114 LPUNKNOWN IUnknown_Constructor(void);
116 #endif /* __WINE_OBJBASE_H */