]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dlmsw.cpp
Add code showing stereo support to the OpenGL cube sample.
[wxWidgets.git] / src / msw / dlmsw.cpp
index b8363c605bdedc3b3783fcb5a78d260f047d6eb0..00cd88b5cddd9c615c83c82294c79c02f37df8a5 100644 (file)
@@ -2,9 +2,8 @@
 // Name:        src/msw/dlmsw.cpp
 // Purpose:     Win32-specific part of wxDynamicLibrary and related classes
 // Author:      Vadim Zeitlin
 // Name:        src/msw/dlmsw.cpp
 // Purpose:     Win32-specific part of wxDynamicLibrary and related classes
 // Author:      Vadim Zeitlin
-// Modified by:
+// Modified by: Suzumizaki-kimitaka 2013-04-09
 // Created:     2005-01-10 (partly extracted from common/dynlib.cpp)
 // Created:     2005-01-10 (partly extracted from common/dynlib.cpp)
-// RCS-ID:      $Id$
 // Copyright:   (c) 1998-2005 Vadim Zeitlin <vadim@wxwindows.org>
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 1998-2005 Vadim Zeitlin <vadim@wxwindows.org>
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #include "wx/msw/debughlp.h"
 #include "wx/filename.h"
 
 #include "wx/msw/debughlp.h"
 #include "wx/filename.h"
 
-const wxString wxDynamicLibrary::ms_dllext(wxT(".dll"));
+// defined for TDM's GCC/mingw32
+#ifndef PCTSTR
+#define PCTSTR LPCTSTR
+#endif
 
 // ----------------------------------------------------------------------------
 // private classes
 
 // ----------------------------------------------------------------------------
 // private classes
@@ -80,15 +82,8 @@ public:
         wxVersionDLL *verDLL;
     };
 
         wxVersionDLL *verDLL;
     };
 
-    // TODO: fix EnumerateLoadedModules() to use EnumerateLoadedModules64()
-    #ifdef __WIN64__
-        typedef DWORD64 DWORD_32_64;
-    #else
-        typedef DWORD DWORD_32_64;
-    #endif
-
     static BOOL CALLBACK
     static BOOL CALLBACK
-    EnumModulesProc(PCSTR name, DWORD_32_64 base, ULONG size, void *data);
+    EnumModulesProc(PCTSTR name, DWORD64 base, ULONG size, PVOID data);
 };
 
 // ============================================================================
 };
 
 // ============================================================================
@@ -116,7 +111,7 @@ wxVersionDLL::wxVersionDLL()
         #endif // UNICODE/ANSI
 
         #define LOAD_VER_FUNCTION(name)                                       \
         #endif // UNICODE/ANSI
 
         #define LOAD_VER_FUNCTION(name)                                       \
-            m_pfn ## name = (name ## _t)m_dll.GetSymbol(wxT(#name SUFFIX));    \
+            m_pfn ## name = (name ## _t)m_dll.GetSymbol(wxT(#name SUFFIX));   \
         if ( !m_pfn ## name )                                                 \
         {                                                                     \
             m_dll.Unload();                                                   \
         if ( !m_pfn ## name )                                                 \
         {                                                                     \
             m_dll.Unload();                                                   \
@@ -175,17 +170,21 @@ wxString wxVersionDLL::GetFileVersion(const wxString& filename) const
 
 /* static */
 BOOL CALLBACK
 
 /* static */
 BOOL CALLBACK
-wxDynamicLibraryDetailsCreator::EnumModulesProc(PCSTR name,
-                                                DWORD_32_64 base,
+wxDynamicLibraryDetailsCreator::EnumModulesProc(PCTSTR name,
+                                                DWORD64 base,
                                                 ULONG size,
                                                 ULONG size,
-                                                void *data)
+                                                PVOID data)
 {
     EnumModulesProcParams *params = (EnumModulesProcParams *)data;
 
     wxDynamicLibraryDetails *details = new wxDynamicLibraryDetails;
 
     // fill in simple properties
 {
     EnumModulesProcParams *params = (EnumModulesProcParams *)data;
 
     wxDynamicLibraryDetails *details = new wxDynamicLibraryDetails;
 
     // fill in simple properties
+#ifdef UNICODE
     details->m_name = name;
     details->m_name = name;
+#else
+    details->m_name = wxString(name, wxConvLocal);
+#endif
     details->m_address = wxUIntToPtr(base);
     details->m_length = size;
 
     details->m_address = wxUIntToPtr(base);
     details->m_length = size;
 
@@ -323,20 +322,14 @@ wxDynamicLibraryDetailsArray wxDynamicLibrary::ListLoaded()
         params.dlls = &dlls;
         params.verDLL = &verDLL;
 
         params.dlls = &dlls;
         params.verDLL = &verDLL;
 
-        // Note that the cast of EnumModulesProc is needed because the type of
-        // PENUMLOADED_MODULES_CALLBACK changed: in old SDK versions its first
-        // argument was non-const PSTR while now it's PCSTR. By explicitly
-        // casting to whatever the currently used headers require we ensure
-        // that the code compilers in any case.
-        if ( !wxDbgHelpDLL::EnumerateLoadedModules
+        if ( !wxDbgHelpDLL::EnumerateLoadedModulesT
                             (
                                 ::GetCurrentProcess(),
                             (
                                 ::GetCurrentProcess(),
-                                (PENUMLOADED_MODULES_CALLBACK)
                                 wxDynamicLibraryDetailsCreator::EnumModulesProc,
                                 &params
                             ) )
         {
                                 wxDynamicLibraryDetailsCreator::EnumModulesProc,
                                 &params
                             ) )
         {
-            wxLogLastError(wxT("EnumerateLoadedModules"));
+            wxLogLastError(wxT("EnumerateLoadedModulesT"));
         }
     }
 #endif // wxUSE_DBGHELP
         }
     }
 #endif // wxUSE_DBGHELP
@@ -377,7 +370,7 @@ WXHMODULE wxDynamicLibrary::MSWGetModuleHandle(const wxString& name, void *addr)
             return hmod;
     }
 
             return hmod;
     }
 
-    return ::GetModuleHandle(name);
+    return ::GetModuleHandle(name.t_str());
 }
 
 #endif // wxUSE_DYNLIB_CLASS
 }
 
 #endif // wxUSE_DYNLIB_CLASS