X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/269c86d089ffef61459339bf10887aaa86ca81d8..d21d2e5adf7a5acf3b496a9c4e87eab220bd75d8:/src/msw/utils.cpp?ds=sidebyside diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 453880612d..590486daf8 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -454,7 +454,9 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) if ( path.empty() ) return FALSE; -#if defined(__WIN32__) && !defined(__GNUWIN32__) +// old w32api don't have ULARGE_INTEGER +#if defined(__WIN32__) && \ + (!defined(__GNUWIN32__) || wxCHECK_W32API_VERSION( 0, 3 )) // GetDiskFreeSpaceEx() is not available under original Win95, check for // it typedef BOOL (*GetDiskFreeSpaceEx_t)(LPCTSTR, @@ -1379,59 +1381,47 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height) wxString WXDLLEXPORT wxGetWindowText(WXHWND hWnd) { wxString str; - int len = GetWindowTextLength((HWND)hWnd) + 1; - GetWindowText((HWND)hWnd, str.GetWriteBuf(len), len); - str.UngetWriteBuf(); + + if ( hWnd ) + { + int len = GetWindowTextLength((HWND)hWnd) + 1; + ::GetWindowText((HWND)hWnd, str.GetWriteBuf(len), len); + str.UngetWriteBuf(); + } return str; } wxString WXDLLEXPORT wxGetWindowClass(WXHWND hWnd) { -#ifdef __WXMICROWIN__ - // MICROWIN_TODO - return wxEmptyString; -#else wxString str; - int len = 256; // some starting value - - for ( ;; ) + // MICROWIN_TODO +#ifndef __WXMICROWIN__ + if ( hWnd ) { - // as we've #undefined GetClassName we must now manually choose the - // right function to call - int count = - - #ifndef __WIN32__ - GetClassName - #else // Win32 - #ifdef UNICODE - GetClassNameW - #else // !Unicode - #ifdef __TWIN32__ - GetClassName - #else // !Twin32 - GetClassNameA - #endif // Twin32/!Twin32 - #endif // Unicode/ANSI - #endif // Win16/32 - ((HWND)hWnd, str.GetWriteBuf(len), len); + int len = 256; // some starting value - str.UngetWriteBuf(); - if ( count == len ) + for ( ;; ) { - // the class name might have been truncated, retry with larger - // buffer - len *= 2; - } - else - { - break; + int count = ::GetClassName((HWND)hWnd, str.GetWriteBuf(len), len); + + str.UngetWriteBuf(); + if ( count == len ) + { + // the class name might have been truncated, retry with larger + // buffer + len *= 2; + } + else + { + break; + } } } +#endif // !__WXMICROWIN__ return str; -#endif } WXWORD WXDLLEXPORT wxGetWindowId(WXHWND hWnd)