///////////////////////////////////////////////////////////////////////////////
-// Name: ole/uuid.cpp
+// Name: src/msw/ole/uuid.cpp
// Purpose: implements Uuid class, see uuid.h for details
// Author: Vadim Zeitlin
-// Modified by:
+// Modified by:
// Created: 12.09.96
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// Declarations
// ============================================================================
-#ifdef __GNUG__
-#pragma implementation "uuid.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
-#include "wx/setup.h"
+#if wxUSE_OLE && (wxUSE_DRAG_AND_DROP || wxUSE_DATAOBJ)
-#if wxUSE_DRAG_AND_DROP
+#ifndef WX_PRECOMP
+ #include "wx/msw/wrapwin.h"
+#endif
-// standard headers
#include <rpc.h> // UUID related functions
#include "wx/msw/ole/uuid.h"
// copy ctor
Uuid::Uuid(const Uuid& uuid)
{
- // bitwise copy Ok for UUIDs
- m_uuid = uuid.m_uuid;
+ // bitwise copy Ok for UUIDs
+ m_uuid = uuid.m_uuid;
// force the string to be allocated by RPC
// (we free it later with RpcStringFree)
return *this;
}
+bool Uuid::operator==(const Uuid& uuid) const
+{
+ // IsEqualGUID() returns BOOL and not bool so use an explicit comparison to
+ // avoid MSVC warnings about int->bool conversion
+ return IsEqualGUID(m_uuid, uuid.m_uuid) != 0;
+}
+
// dtor
-Uuid::~Uuid()
-{
+Uuid::~Uuid()
+{
// this string must be allocated by RPC!
// (otherwise you get a debug breakpoint deep inside RPC DLL)
- if ( m_pszUuid )
+ if ( m_pszUuid )
#ifdef _UNICODE
RpcStringFree((unsigned short **)&m_pszUuid);
#else
// can't fail
UuidCreate(&uuid);
-
+
Set(uuid);
}
if ( UuidFromString((wxUChar *)pc, &m_uuid) != RPC_S_OK)
#endif
// failed: probably invalid string
- return FALSE;
+ return false;
// transform it back to string to normalize it
#ifdef _UNICODE
// update m_pszCForm
UuidToCForm();
- return TRUE;
+ return true;
}
// stores m_uuid in m_pszCForm in a format required by
if ( m_pszCForm == NULL )
m_pszCForm = new wxChar[UUID_CSTRLEN];
- wsprintf(m_pszCForm, wxT("0x%8.8X,0x%4.4X,0x%4.4X,0x%2.2X,0x2.2%X,"
- "0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X"),
+ wsprintf(m_pszCForm, wxT("0x%8.8X,0x%4.4X,0x%4.4X,0x%2.2X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X"),
m_uuid.Data1, m_uuid.Data2, m_uuid.Data3,
- m_uuid.Data4[1], m_uuid.Data4[2], m_uuid.Data4[3], m_uuid.Data4[4],
- m_uuid.Data4[5], m_uuid.Data4[6], m_uuid.Data4[7], m_uuid.Data4[8]);
+ m_uuid.Data4[0], m_uuid.Data4[1], m_uuid.Data4[2], m_uuid.Data4[3],
+ m_uuid.Data4[4], m_uuid.Data4[5], m_uuid.Data4[6], m_uuid.Data4[7]);
}
#endif