X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/450d55bab8e320fd6dc9c1a64671380947288e7a..11bfe4bfdc79b0374a0f287dac80efa262b365a7:/src/msw/mslu.cpp diff --git a/src/msw/mslu.cpp b/src/msw/mslu.cpp index f604482fe4..f6f373a965 100644 --- a/src/msw/mslu.cpp +++ b/src/msw/mslu.cpp @@ -23,8 +23,27 @@ #ifndef WX_PRECOMP #include "wx/defs.h" + #include "wx/utils.h" #endif +//------------------------------------------------------------------------ +// Check for use of MSLU +//------------------------------------------------------------------------ + +#if wxUSE_BASE + +bool WXDLLIMPEXP_BASE wxUsingUnicowsDll() +{ +#if wxUSE_UNICODE_MSLU + return (wxGetOsVersion() == wxWIN95); +#else + return false; +#endif +} + +#endif // wxUSE_BASE + + #if wxUSE_UNICODE_MSLU //------------------------------------------------------------------------ @@ -62,11 +81,10 @@ #if wxUSE_GUI -WXDLLIMPEXP_BASE int wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, - WXFARPROC outputFunc, - WXLPARAM lData, WXWPARAM wData, - int x, int y, int cx, int cy, - unsigned int flags) +WXDLLEXPORT int wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, WXFARPROC outputFunc, + WXLPARAM lData, WXWPARAM wData, + int x, int y, int cx, int cy, + unsigned int flags) { // VS: There's yet another bug in MSLU: DrawStateW behaves like if it was // expecting char*, not wchar_t* input. We have to use DrawStateA @@ -110,7 +128,7 @@ static void wxFixOPENFILENAME(LPOPENFILENAME ofn) #endif } -WXDLLIMPEXP_BASE int wxMSLU_GetOpenFileNameW(void *ofn) +WXDLLEXPORT int wxMSLU_GetOpenFileNameW(void *ofn) { int ret = GetOpenFileName((LPOPENFILENAME)ofn); if ( wxUsingUnicowsDll() && ret != 0 ) @@ -118,7 +136,7 @@ WXDLLIMPEXP_BASE int wxMSLU_GetOpenFileNameW(void *ofn) return ret; } -WXDLLIMPEXP_BASE int wxMSLU_GetSaveFileNameW(void *ofn) +WXDLLEXPORT int wxMSLU_GetSaveFileNameW(void *ofn) { int ret = GetSaveFileName((LPOPENFILENAME)ofn); if ( wxUsingUnicowsDll() && ret != 0 ) @@ -151,6 +169,14 @@ WXDLLIMPEXP_BASE int wxMSLU__tremove(const wxChar *name) return _tremove(name); } +WXDLLIMPEXP_BASE FILE* wxMSLU__tfopen(const wxChar *name,const wxChar* mode) +{ + if ( wxUsingUnicowsDll() ) + return fopen(wxConvFile.cWX2MB(name),wxConvFile.cWX2MB(mode)); + else + return _tfopen(name,mode); +} + #if defined( __VISUALC__ ) \ || ( defined(__MINGW32__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \ || ( defined(__MWERKS__) && defined(__WXMSW__) ) \ @@ -200,6 +226,14 @@ WXDLLIMPEXP_BASE int wxMSLU__wstat(const wxChar *name, struct _stat *buffer) return _wstat(name, buffer); } +WXDLLIMPEXP_BASE int wxMSLU__wstati64(const wxChar *name, struct _stati64 *buffer) +{ + if ( wxUsingUnicowsDll() ) + return _stati64((const char*)wxConvFile.cWX2MB(name), buffer); + else + return _wstati64(name, buffer); +} + #endif // compilers having wopen() &c #endif // wxUSE_BASE