#include "wx/msw/private.h"
#include "wx/msw/debughlp.h"
-const wxChar *wxDynamicLibrary::ms_dllext = _T(".dll");
+const wxString wxDynamicLibrary::ms_dllext(_T(".dll"));
// ----------------------------------------------------------------------------
// private classes
}
// 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
}
// ============================================================================
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);
{
void *pVer;
UINT sizeInfo;
- if ( m_pfnVerQueryValue(buf.data(), _T("\\"), &pVer, &sizeInfo) )
+ if ( m_pfnVerQueryValue(buf.data(),
+ const_cast<wxChar *>(_T("\\")),
+ &pVer,
+ &sizeInfo) )
{
VS_FIXEDFILEINFO *info = (VS_FIXEDFILEINFO *)pVer;
ver.Printf(_T("%d.%d.%d.%d"),
// 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);
/* 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 */