]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/ole/uuid.h
Fixes for OpenVMS on IA64
[wxWidgets.git] / include / wx / msw / ole / uuid.h
index 211ce71f5edec49c175b1b0adce4591cc5e1fdf1..1b31d7373c61b64411f285666e74f208ac4e29f4 100644 (file)
@@ -1,23 +1,20 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        ole/uuid.h
+// Name:        wx/msw/ole/uuid.h
 // Purpose:     encapsulates an UUID with some added helper functions
 // Author:      Vadim Zeitlin
-// Modified by: 
+// Modified by:
 // Created:     11.07.97
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 //
 // Notes:       you should link your project with RPCRT4.LIB!
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef   _OLEUUID_H
-#define   _OLEUUID_H
-
-#ifdef __GNUG__
-#pragma interface "uuid.h"
-#endif
+#ifndef   _WX_OLEUUID_H
+#define   _WX_OLEUUID_H
 
+#include "wx/chartype.h"
 // ------------------------------------------------------------------
 // UUID (Universally Unique IDentifier) definition
 // ------------------------------------------------------------------
 // ----- taken from RPC.H
 #ifndef UUID_DEFINED            // in some cases RPC.H will be already
   #ifdef  __WIN32__             // included, so avoid redefinition
-    typedef struct                
+    typedef struct
     {
       unsigned long   Data1;
       unsigned short  Data2;
       unsigned short  Data3;
       unsigned char   Data4[8];
     } UUID;                     // UUID = GUID = CLSID = LIBID = IID
-  #else   // WIN16
-    #error "Don't know about UUIDs on this platform"
   #endif  // WIN32
 #endif  // UUID_DEFINED
 
@@ -49,12 +44,12 @@ typedef unsigned char uchar;
 // ------------------------------------------------------------------
 
 // uses RPC functions to create/convert Universally Unique Identifiers
-class Uuid
+class WXDLLIMPEXP_CORE Uuid
 {
 private:
   UUID  m_uuid;
-  uchar *m_pszUuid;   // this string is alloc'd and freed by RPC 
-  char  *m_pszCForm;  // this string is allocated in Set/Create
+  wxUChar *m_pszUuid;   // this string is alloc'd and freed by RPC
+  wxChar  *m_pszCForm;  // this string is allocated in Set/Create
 
   void  UuidToCForm();
 
@@ -64,7 +59,7 @@ private:
 public:
   // ctors & dtor
   Uuid()                 { Init();            }
-  Uuid(const char *pc)   { Init(); Set(pc);   }
+  Uuid(const wxChar *pc) { Init(); Set(pc);   }
   Uuid(const UUID &uuid) { Init(); Set(uuid); }
  ~Uuid();
 
@@ -75,17 +70,21 @@ public:
   // create a brand new UUID
   void Create();
 
-  // set value of UUID 
-  bool Set(const char *pc);   // from a string, returns true if ok
+  // set value of UUID
+  bool Set(const wxChar *pc); // from a string, returns true if ok
   void Set(const UUID& uuid); // from another UUID (never fails)
 
+  // comparison operators
+  bool operator==(const Uuid& uuid) const;
+  bool operator!=(const Uuid& uuid) const { return !(*this == uuid); }
+
   // accessors
-  operator const UUID*() const { return &m_uuid;             }
-  operator const char*() const { return (char *)(m_pszUuid); }
+  operator const UUID*()   const { return &m_uuid;               }
+  operator const wxChar*() const { return (wxChar *)(m_pszUuid); }
 
   // return string representation of the UUID in the C form
   // (as in DEFINE_GUID macro)
-  const char *CForm() const    { return m_pszCForm;          }
+  const wxChar *CForm() const    { return m_pszCForm;            }
 };
 
-#endif //_OLEUUID_H
\ No newline at end of file
+#endif //_WX_OLEUUID_H