X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d9628647644ad93efc3cc66554494cde0a86f0ed..dfa536091649144c61c9a59b8a088295d5d7d11e:/src/msw/mslu.cpp diff --git a/src/msw/mslu.cpp b/src/msw/mslu.cpp index 1fa85b050b..eb7866d90c 100644 --- a/src/msw/mslu.cpp +++ b/src/msw/mslu.cpp @@ -9,7 +9,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation #endif @@ -18,6 +18,7 @@ #ifdef __BORLANDC__ #pragma hdrstop +#include #endif #ifndef WX_PRECOMP @@ -34,7 +35,7 @@ // by calling the char version. We still want to use wchar_t version on // NT/2000/XP, though, because they allow for Unicode file names. // -// Moreover, there are bugs in unicows.dll, of course. We have to +// Moreover, there are bugs in unicows.dll, of course. We have to // workaround them, too. // //------------------------------------------------------------------------ @@ -44,11 +45,7 @@ #include #include - -#ifdef __GNUWIN32__ - #include - #include -#endif +#include #ifdef __VISUALC__ #include @@ -65,25 +62,25 @@ #if wxUSE_GUI -WXDLLEXPORT int wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, WXFARPROC outputFunc, - WXLPARAM lData, WXWPARAM wData, - int x, int y, int cx, int cy, +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 + // expecting char*, not wchar_t* input. We have to use DrawStateA // explicitly. if ( wxUsingUnicowsDll() ) { - return DrawStateA((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc, + return DrawStateA((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc, (LPARAM)(const char*) wxConvLocal.cWX2MB((const wxChar*)lData), wData, x, y, cx, cy, flags); } else { - return DrawStateW((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc, + return DrawStateW((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc, lData, wData, x, y, cx, cy, flags); } } @@ -91,10 +88,10 @@ WXDLLEXPORT int wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, WXFARPROC outputFunc, static void wxFixOPENFILENAME(LPOPENFILENAME ofn) { #ifdef OFN_EXPLORER - // VS: there's a bug in unicows.dll - when multiple files are selected, - // of.nFileOffset doesn't point to the first filename but rather to + // VS: there's a bug in unicows.dll - when multiple files are selected, + // of.nFileOffset doesn't point to the first filename but rather to // the last component of directory name. This bug is known to MSLU - // developers, but they are not going to fix it: "this is a true + // developers, but they are not going to fix it: "this is a true // limitation, that we have decided to live with" and "working // harder on this case just did not seem worth the effort"... // @@ -134,6 +131,8 @@ WXDLLEXPORT int wxMSLU_GetSaveFileNameW(void *ofn) // Missing libc file manipulation functions in Win9x //------------------------------------------------------------------------ +#if wxUSE_BASE + WXDLLEXPORT int wxMSLU__trename(const wxChar *oldname, const wxChar *newname) { if ( wxUsingUnicowsDll() ) @@ -152,12 +151,17 @@ WXDLLEXPORT int wxMSLU__tremove(const wxChar *name) #if defined( __VISUALC__ ) \ || ( defined(__MINGW32__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \ - || ( defined(__MWERKS__) && defined(__WXMSW__) ) + || ( defined(__MWERKS__) && defined(__WXMSW__) ) \ + || ( defined(__BORLANDC__) && (__BORLANDC__ > 0x460) ) WXDLLEXPORT int wxMSLU__wopen(const wxChar *name, int flags, int mode) { if ( wxUsingUnicowsDll() ) +#ifdef __BORLANDC__ + return open(wxConvFile.cWX2MB(name), flags, mode); +#else return _open(wxConvFile.cWX2MB(name), flags, mode); +#endif else return _wopen(name, flags, mode); } @@ -194,6 +198,8 @@ WXDLLEXPORT int wxMSLU__wstat(const wxChar *name, struct _stat *buffer) return _wstat(name, buffer); } -#endif +#endif // compilers having wopen() &c + +#endif // wxUSE_BASE #endif // wxUSE_UNICODE_MSLU