git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        ole/uuid.h
 | 
						|
// Purpose:     encapsulates an UUID with some added helper functions
 | 
						|
// Author:      Vadim Zeitlin
 | 
						|
// Modified by:
 | 
						|
// Created:     11.07.97
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 | 
						|
// Licence:     wxWindows licence
 | 
						|
//
 | 
						|
// Notes:       you should link your project with RPCRT4.LIB!
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#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
 | 
						|
    {
 | 
						|
      unsigned long   Data1;
 | 
						|
      unsigned short  Data2;
 | 
						|
      unsigned short  Data3;
 | 
						|
      unsigned char   Data4[8];
 | 
						|
    } UUID;                     // UUID = GUID = CLSID = LIBID = IID
 | 
						|
  #endif  // WIN32
 | 
						|
#endif  // UUID_DEFINED
 | 
						|
 | 
						|
#ifndef GUID_DEFINED
 | 
						|
  typedef UUID GUID;
 | 
						|
  #define UUID_DEFINED          // prevent redefinition
 | 
						|
#endif  // GUID_DEFINED
 | 
						|
 | 
						|
typedef unsigned char uchar;
 | 
						|
 | 
						|
// ------------------------------------------------------------------
 | 
						|
// a class to store UUID and it's string representation
 | 
						|
// ------------------------------------------------------------------
 | 
						|
 | 
						|
// uses RPC functions to create/convert Universally Unique Identifiers
 | 
						|
class WXDLLEXPORT Uuid
 | 
						|
{
 | 
						|
private:
 | 
						|
  UUID  m_uuid;
 | 
						|
  wxUChar *m_pszUuid;   // this string is alloc'd and freed by RPC
 | 
						|
  wxChar  *m_pszCForm;  // this string is allocated in Set/Create
 | 
						|
 | 
						|
  void  UuidToCForm();
 | 
						|
 | 
						|
  // function used to set initial state by all ctors
 | 
						|
  void  Init() { m_pszUuid = NULL; m_pszCForm = NULL; }
 | 
						|
 | 
						|
public:
 | 
						|
  // ctors & dtor
 | 
						|
  Uuid()                 { Init();            }
 | 
						|
  Uuid(const wxChar *pc) { Init(); Set(pc);   }
 | 
						|
  Uuid(const UUID &uuid) { Init(); Set(uuid); }
 | 
						|
 ~Uuid();
 | 
						|
 | 
						|
  // copy ctor and assignment operator needed for this class
 | 
						|
  Uuid(const Uuid& uuid);
 | 
						|
  Uuid& operator=(const Uuid& uuid);
 | 
						|
 | 
						|
  // create a brand new UUID
 | 
						|
  void Create();
 | 
						|
 | 
						|
  // 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)
 | 
						|
 | 
						|
  // accessors
 | 
						|
  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 wxChar *CForm() const    { return m_pszCForm;            }
 | 
						|
};
 | 
						|
 | 
						|
#endif //_WX_OLEUUID_H
 |