Make the REFxxx types const even in C. Also add FMTID.
[wine/multimedia.git] / include / wtypes.h
blob5e66faa026a4e250deb405684092afe6b6c6c1ee
1 /*
2 * Defines the basic types used by COM interfaces.
3 */
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
9 #include "wintypes.h"
12 typedef WORD CLIPFORMAT32, *LPCLIPFORMAT32;
13 DECL_WINELIB_TYPE(CLIPFORMAT)
15 typedef CHAR OLECHAR16;
16 typedef WCHAR OLECHAR32;
17 DECL_WINELIB_TYPE(OLECHAR)
19 typedef LPSTR LPOLESTR16;
20 typedef LPWSTR LPOLESTR32;
21 DECL_WINELIB_TYPE(LPOLESTR)
23 typedef LPCSTR LPCOLESTR16;
24 typedef LPCWSTR LPCOLESTR32;
25 DECL_WINELIB_TYPE(LPCOLESTR)
27 typedef OLECHAR16 *BSTR16;
28 typedef OLECHAR32 *BSTR32;
29 DECL_WINELIB_TYPE(BSTR)
31 typedef BSTR16 *LPBSTR16;
32 typedef BSTR32 *LPBSTR32;
33 DECL_WINELIB_TYPE(LPBSTR)
35 #ifndef GUID_DEFINED
36 #define GUID_DEFINED
37 struct _GUID
39 DWORD Data1;
40 WORD Data2;
41 WORD Data3;
42 BYTE Data4[8];
44 #endif
46 typedef struct _GUID GUID,*LPGUID;
47 typedef struct _GUID CLSID,*LPCLSID;
48 typedef struct _GUID IID,*LPIID;
49 typedef struct _GUID FMTID,*LPFMTID;
50 #ifdef __cplusplus
51 #define REFGUID const GUID &
52 #define REFCLSID const CLSID &
53 #define REFIID const IID &
54 #define REFFMTID const FMTID &
55 #else // !__cplusplus
56 #define REFGUID const GUID* const
57 #define REFCLSID const CLSID* const
58 #define REFIID const IID* const
59 #define REFFMTID const FMTID* const
60 #endif // !__cplusplus
63 #define DECLARE_HANDLE(a) typedef HANDLE16 a##16; typedef HANDLE32 a##32
64 DECLARE_HANDLE(HMETAFILEPICT);
65 #undef DECLARE_HANDLE
67 typedef enum tagCLSCTX
69 CLSCTX_INPROC_SERVER = 0x1,
70 CLSCTX_INPROC_HANDLER = 0x2,
71 CLSCTX_LOCAL_SERVER = 0x4,
72 CLSCTX_INPROC_SERVER16 = 0x8,
73 CLSCTX_REMOTE_SERVER = 0x10,
74 CLSCTX_INPROC_HANDLER16 = 0x20,
75 CLSCTX_INPROC_SERVERX86 = 0x40,
76 CLSCTX_INPROC_HANDLERX86 = 0x80
77 } CLSCTX;
79 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
80 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
81 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
84 #endif /* __WINE_WTYPES_H */