Release 980413
[wine] / include / compobj.h
1 #ifndef COMPOBJ_H
2 #define COMPOBJ_H
3
4 #include "ole.h"
5
6 struct tagGUID
7 {
8     DWORD Data1;
9     WORD  Data2;
10     WORD  Data3;
11     BYTE  Data4[8];
12 };
13
14 typedef struct tagGUID  GUID,*LPGUID,*REFGUID;
15 typedef struct tagGUID  CLSID,*LPCLSID,*REFCLSID;
16 typedef struct tagGUID  IID,*REFIID,*LPIID;
17
18 OLESTATUS WINAPI StringFromCLSID16(const CLSID *id, LPOLESTR16*);
19 OLESTATUS WINAPI StringFromCLSID32(const CLSID *id, LPOLESTR32*);
20 #define StringFromCLSID WINELIB_NAME(StringFromCLSID)
21 OLESTATUS WINAPI CLSIDFromString16(LPCOLESTR16, CLSID *);
22 OLESTATUS WINAPI CLSIDFromString32(LPCOLESTR32, CLSID *);
23 #define CLSIDFromString WINELIB_NAME(CLSIDFromString)
24
25 OLESTATUS WINAPI WINE_StringFromCLSID(const CLSID *id, LPSTR);
26
27 INT32 WINAPI StringFromGUID2(REFGUID id, LPOLESTR32 str, INT32 cmax);
28
29
30 #ifdef INITGUID
31 #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
32         const GUID name =\
33         { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }
34 #else
35 #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
36     extern const GUID name
37 #endif
38
39 #define DEFINE_OLEGUID(name, l, w1, w2) \
40         DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46)
41
42 #define DEFINE_SHLGUID(name, l, w1, w2) DEFINE_OLEGUID(name,l,w1,w2)
43 #endif