]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/ole/uuid.h
1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: encapsulates an UUID with some added helper functions
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9 // Licence: wxWindows licence
11 // Notes: you should link your project with RPCRT4.LIB!
12 ///////////////////////////////////////////////////////////////////////////////
17 #include "wx/chartype.h"
18 // ------------------------------------------------------------------
19 // UUID (Universally Unique IDentifier) definition
20 // ------------------------------------------------------------------
22 // ----- taken from RPC.H
23 #ifndef UUID_DEFINED // in some cases RPC.H will be already
24 #ifdef __WIN32__ // included, so avoid redefinition
30 unsigned char Data4
[8];
31 } UUID
; // UUID = GUID = CLSID = LIBID = IID
33 #endif // UUID_DEFINED
37 #define UUID_DEFINED // prevent redefinition
38 #endif // GUID_DEFINED
40 typedef unsigned char uchar
;
42 // ------------------------------------------------------------------
43 // a class to store UUID and it's string representation
44 // ------------------------------------------------------------------
46 // uses RPC functions to create/convert Universally Unique Identifiers
47 class WXDLLIMPEXP_CORE Uuid
51 wxUChar
*m_pszUuid
; // this string is alloc'd and freed by RPC
52 wxChar
*m_pszCForm
; // this string is allocated in Set/Create
56 // function used to set initial state by all ctors
57 void Init() { m_pszUuid
= NULL
; m_pszCForm
= NULL
; }
62 Uuid(const wxChar
*pc
) { Init(); Set(pc
); }
63 Uuid(const UUID
&uuid
) { Init(); Set(uuid
); }
66 // copy ctor and assignment operator needed for this class
67 Uuid(const Uuid
& uuid
);
68 Uuid
& operator=(const Uuid
& uuid
);
70 // create a brand new UUID
74 bool Set(const wxChar
*pc
); // from a string, returns true if ok
75 void Set(const UUID
& uuid
); // from another UUID (never fails)
77 // comparison operators
78 bool operator==(const Uuid
& uuid
) const;
79 bool operator!=(const Uuid
& uuid
) const { return !(*this == uuid
); }
82 operator const UUID
*() const { return &m_uuid
; }
83 operator const wxChar
*() const { return (wxChar
*)(m_pszUuid
); }
85 // return string representation of the UUID in the C form
86 // (as in DEFINE_GUID macro)
87 const wxChar
*CForm() const { return m_pszCForm
; }
90 #endif //_WX_OLEUUID_H