]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dlmsw.cpp
Fixed tab removal bug, and empty text element
[wxWidgets.git] / src / msw / dlmsw.cpp
index 7faff796a5f4c93818e04e4e3461576b97eb8265..25700c5cdb5a4b828eba5ea0067bedc9314bdc0d 100644 (file)
@@ -28,7 +28,7 @@
 #include "wx/msw/private.h"
 #include "wx/msw/debughlp.h"
 
-const wxString wxDynamicLibrary::ms_dllext(_T(".dll"));
+const wxString wxDynamicLibrary::ms_dllext(wxT(".dll"));
 
 // ----------------------------------------------------------------------------
 // private classes
@@ -65,7 +65,7 @@ private:
     wxDynamicLibrary m_dll;
 
 
-    DECLARE_NO_COPY_CLASS(wxVersionDLL)
+    wxDECLARE_NO_COPY_CLASS(wxVersionDLL);
 };
 
 // class used to create wxDynamicLibraryDetails objects
@@ -121,9 +121,9 @@ HMODULE wxGetModuleHandle(const char *name, void *addr)
     static GetModuleHandleEx_t s_pfnGetModuleHandleEx = INVALID_FUNC_PTR;
     if ( s_pfnGetModuleHandleEx == INVALID_FUNC_PTR )
     {
-        wxDynamicLibrary dll(_T("kernel32.dll"), wxDL_VERBATIM);
+        wxDynamicLibrary dll(wxT("kernel32.dll"), wxDL_VERBATIM);
         s_pfnGetModuleHandleEx =
-            (GetModuleHandleEx_t)dll.RawGetSymbol(_T("GetModuleHandleExA"));
+            (GetModuleHandleEx_t)dll.RawGetSymbol(wxT("GetModuleHandleExA"));
 
         // dll object can be destroyed, kernel32.dll won't be unloaded anyhow
     }
@@ -139,9 +139,12 @@ HMODULE wxGetModuleHandle(const char *name, void *addr)
     }
 
     // Windows CE only has Unicode API, so even we have an ANSI string here, we
-    // still need to use GetModuleHandleW() there and so do it everywhere to
-    // avoid #ifdefs -- this code is not performance-critical anyhow...
-    return ::GetModuleHandle(wxString::FromAscii((char *)name));
+    // still need to use GetModuleHandleW() there
+#ifdef __WXWINCE__
+    return ::GetModuleHandleW(wxConvLibc.cMB2WC(name).data());
+#else
+    return ::GetModuleHandleA((char *)name);
+#endif
 }
 
 // ============================================================================
@@ -158,7 +161,7 @@ wxVersionDLL::wxVersionDLL()
     // handle it
     wxLogNull noLog;
 
-    if ( m_dll.Load(_T("version.dll"), wxDL_VERBATIM) )
+    if ( m_dll.Load(wxT("version.dll"), wxDL_VERBATIM) )
     {
         // the functions we load have either 'A' or 'W' suffix depending on
         // whether we're in ANSI or Unicode build
@@ -169,7 +172,7 @@ wxVersionDLL::wxVersionDLL()
         #endif // UNICODE/ANSI
 
         #define LOAD_VER_FUNCTION(name)                                       \
-            m_pfn ## name = (name ## _t)m_dll.GetSymbol(_T(#name SUFFIX));    \
+            m_pfn ## name = (name ## _t)m_dll.GetSymbol(wxT(#name SUFFIX));    \
         if ( !m_pfn ## name )                                                 \
         {                                                                     \
             m_dll.Unload();                                                   \
@@ -191,7 +194,7 @@ wxString wxVersionDLL::GetFileVersion(const wxString& filename) const
     wxString ver;
     if ( m_dll.IsLoaded() )
     {
-        wxChar *pc = wx_const_cast(wxChar *, filename.wx_str());
+        wxChar *pc = const_cast<wxChar *>((const wxChar*) filename.t_str());
 
         DWORD dummy;
         DWORD sizeVerInfo = m_pfnGetFileVersionInfoSize(pc, &dummy);
@@ -202,10 +205,13 @@ wxString wxVersionDLL::GetFileVersion(const wxString& filename) const
             {
                 void *pVer;
                 UINT sizeInfo;
-                if ( m_pfnVerQueryValue(buf.data(), _T("\\"), &pVer, &sizeInfo) )
+                if ( m_pfnVerQueryValue(buf.data(),
+                                        const_cast<wxChar *>(wxT("\\")),
+                                        &pVer,
+                                        &sizeInfo) )
                 {
                     VS_FIXEDFILEINFO *info = (VS_FIXEDFILEINFO *)pVer;
-                    ver.Printf(_T("%d.%d.%d.%d"),
+                    ver.Printf(wxT("%d.%d.%d.%d"),
                                HIWORD(info->dwFileVersionMS),
                                LOWORD(info->dwFileVersionMS),
                                HIWORD(info->dwFileVersionLS),
@@ -236,11 +242,11 @@ wxDynamicLibraryDetailsCreator::EnumModulesProc(NameStr_t name,
 
     // fill in simple properties
     details->m_name = wxString::FromAscii(name);
-    details->m_address = wx_reinterpret_cast(void *, base);
+    details->m_address = wxUIntToPtr(base);
     details->m_length = size;
 
     // to get the version, we first need the full path
-    HMODULE hmod = wxGetModuleHandle(name, (void *)base);
+    HMODULE hmod = wxGetModuleHandle(name, details->m_address);
     if ( hmod )
     {
         wxString fullname = wxGetFullModuleName(hmod);
@@ -276,9 +282,11 @@ wxDllType wxDynamicLibrary::GetProgramHandle()
 
 /* static */
 wxDllType
-wxDynamicLibrary::RawLoad(const wxString& libname, int WXUNUSED(flags))
+wxDynamicLibrary::RawLoad(const wxString& libname, int flags)
 {
-    return ::LoadLibrary(libname);
+    return flags & wxDL_GET_LOADED
+            ? ::GetModuleHandle(libname.t_str())
+            : ::LoadLibrary(libname.t_str());
 }
 
 /* static */
@@ -325,7 +333,7 @@ wxDynamicLibraryDetailsArray wxDynamicLibrary::ListLoaded()
                                 &params
                             ) )
         {
-            wxLogLastError(_T("EnumerateLoadedModules"));
+            wxLogLastError(wxT("EnumerateLoadedModules"));
         }
     }
 #endif // wxUSE_DBGHELP