source: trunk/include/win/guiddef.h@ 21360

Last change on this file since 21360 was 21360, checked in by vladest, 16 years ago
  1. Security interface constants and structures added
  2. Fixed conflicts of data definitions in security interface
File size: 3.3 KB
Line 
1/*
2 * Copyright (C) 2000 Alexandre Julliard
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
19#ifndef GUID_DEFINED
20#define GUID_DEFINED
21typedef struct _GUID
22{
23 unsigned long Data1;
24 unsigned short Data2;
25 unsigned short Data3;
26 unsigned char Data4[ 8 ];
27} GUID;
28#endif
29
30#ifndef __LPCGUID_DEFINED__
31#define __LPCGUID_DEFINED__
32typedef const GUID *LPCGUID;
33#endif
34
35#undef DEFINE_GUID
36
37#ifdef INITGUID
38#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
39 const GUID name = \
40 { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
41#else
42#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
43 extern const GUID name
44#endif
45
46#define DEFINE_OLEGUID(name, l, w1, w2) \
47 DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46)
48
49#ifndef _GUIDDEF_H_
50#define _GUIDDEF_H_
51
52#ifndef __LPGUID_DEFINED__
53#define __LPGUID_DEFINED__
54typedef GUID *LPGUID;
55typedef GUID CLSID,*LPCLSID;
56#endif
57
58#ifndef __IID_DEFINED__
59#define __IID_DEFINED__
60typedef GUID IID,*LPIID;
61#endif /* ndef __IID_DEFINED__ */
62typedef GUID FMTID,*LPFMTID;
63
64#ifdef __midl_proxy
65#define __MIDL_CONST
66#else
67#define __MIDL_CONST const
68#endif
69
70#if defined(__cplusplus) && !defined(CINTERFACE)
71#define REFGUID const GUID &
72#define REFCLSID const CLSID &
73#define REFIID const IID &
74#define REFFMTID const FMTID &
75#else /* !defined(__cplusplus) && !defined(CINTERFACE) */
76#define REFGUID const GUID* __MIDL_CONST
77#define REFCLSID const CLSID* __MIDL_CONST
78#define REFIID const IID* __MIDL_CONST
79#define REFFMTID const FMTID* __MIDL_CONST
80#endif /* !defined(__cplusplus) && !defined(CINTERFACE) */
81
82#if defined(__cplusplus) && !defined(CINTERFACE)
83#define IsEqualGUID(rguid1, rguid2) (!memcmp(&(rguid1), &(rguid2), sizeof(GUID)))
84#else /* defined(__cplusplus) && !defined(CINTERFACE) */
85#define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID)))
86#endif /* defined(__cplusplus) && !defined(CINTERFACE) */
87#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
88#define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)
89#if 0
90#if defined(__cplusplus) && !defined(CINTERFACE)
91#include <string.h>
92inline bool operator==(const GUID& guidOne, const GUID& guidOther)
93{
94 return !memcmp(&guidOne,&guidOther,sizeof(GUID));
95}
96inline bool operator!=(const GUID& guidOne, const GUID& guidOther)
97{
98 return !(guidOne == guidOther);
99}
100#endif
101#endif
102extern const IID GUID_NULL;
103#define IID_NULL GUID_NULL
104#define CLSID_NULL GUID_NULL
105#define FMTID_NULL GUID_NULL
106
107#endif /* _GUIDDEF_H_ */
Note: See TracBrowser for help on using the repository browser.