]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/ole/oleutils.h
Added wxCURSOR_ARROWWAIT which is the default arrow+hourglass cursor
[wxWidgets.git] / include / wx / msw / ole / oleutils.h
index 1430abbbe294aecd3e20e65703cfb161354c65b9..da8a992d1ff05a45a244477503fda177c44ad502 100644 (file)
@@ -2,20 +2,24 @@
 // Name:        oleutils.h
 // Purpose:     OLE helper routines, OLE debugging support &c
 // Author:      Vadim Zeitlin
-// Modified by: 
+// Modified by:
 // Created:     19.02.1998
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef   _OLEUTILS_H
-#define   _OLEUTILS_H
+#ifndef   _WX_OLEUTILS_H
+#define   _WX_OLEUTILS_H
 
 #ifdef __GNUG__
 #pragma interface "oleutils.h"
 #endif
 
+#include "wx/defs.h"
+#if wxUSE_NORLANDER_HEADERS
+#include <ole2.h>
+#endif
 // ============================================================================
 // General purpose functions and macros
 // ============================================================================
@@ -42,7 +46,7 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount);
 // ============================================================================
 
 /*
-   The most dumb implementation of IUnknown methods. We don't support 
+   The most dumb implementation of IUnknown methods. We don't support
    aggregation nor containment, but for 99% of cases this simple
    implementation is quite enough.
 
@@ -81,9 +85,9 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount);
 #define   IMPLEMENT_IUNKNOWN_METHODS(classname)                               \
   STDMETHODIMP classname::QueryInterface(REFIID riid, void **ppv)             \
   {                                                                           \
-    wxLogQueryInterface(#classname, riid);                                    \
+    wxLogQueryInterface(_T(#classname), riid);                                \
                                                                               \
-    if ( IsIidFromList(riid, ms_aIids, WXSIZEOF(ms_aIids)) ) {                  \
+    if ( IsIidFromList(riid, ms_aIids, WXSIZEOF(ms_aIids)) ) {                \
       *ppv = this;                                                            \
       AddRef();                                                               \
                                                                               \
@@ -92,20 +96,20 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount);
     else {                                                                    \
       *ppv = NULL;                                                            \
                                                                               \
-      return (HRESULT) E_NOINTERFACE;                                                   \
+      return (HRESULT) E_NOINTERFACE;                                         \
     }                                                                         \
   }                                                                           \
                                                                               \
   STDMETHODIMP_(ULONG) classname::AddRef()                                    \
   {                                                                           \
-    wxLogAddRef(#classname, m_cRef);                                          \
+    wxLogAddRef(_T(#classname), m_cRef);                                      \
                                                                               \
     return ++m_cRef;                                                          \
   }                                                                           \
                                                                               \
   STDMETHODIMP_(ULONG) classname::Release()                                   \
   {                                                                           \
-    wxLogRelease(#classname, m_cRef);                                         \
+    wxLogRelease(_T(#classname), m_cRef);                                     \
                                                                               \
     if ( --m_cRef == 0 ) {                                                    \
       delete this;                                                            \
@@ -119,27 +123,26 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount);
 // Debugging support
 // ============================================================================
 
-#ifdef  __DEBUG__
-
-// ----------------------------------------------------------------------------
-// 
-// ----------------------------------------------------------------------------
-
+// VZ: I don't know it's not done for compilers other than VC++ but I leave it
+//     as is. Please note, though, that tracing OLE interface calls may be
+//     incredibly useful when debugging OLE programs.
+#if defined(__WXDEBUG__) && defined(__VISUALC__) && (__VISUALC__ >= 1000)
 // ----------------------------------------------------------------------------
 // All OLE specific log functions have DebugTrace level (as LogTrace)
 // ----------------------------------------------------------------------------
 
 // tries to translate riid into a symbolic name, if possible
-void wxLogQueryInterface(const char *szInterface, REFIID riid);
+void wxLogQueryInterface(const wxChar *szInterface, REFIID riid);
 
 // these functions print out the new value of reference counter
-void wxLogAddRef (const char *szInterface, ULONG cRef);
-void wxLogRelease(const char *szInterface, ULONG cRef);
+void wxLogAddRef (const wxChar *szInterface, ULONG cRef);
+void wxLogRelease(const wxChar *szInterface, ULONG cRef);
 
-#else   //!DEBUG
+#else   //!WXDEBUG
   #define   wxLogQueryInterface(szInterface, riid)
   #define   wxLogAddRef(szInterface, cRef)
   #define   wxLogRelease(szInterface, cRef)
-#endif  //DEBUG
+#endif  //WXDEBUG
+
+#endif  //_WX_OLEUTILS_H
 
-#endif  //_OLEUTILS_H
\ No newline at end of file