]> git.saurik.com Git - wxWidgets.git/commitdiff
got rid of wxBuffer (finally!!!)
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 2 Jul 2003 02:09:44 +0000 (02:09 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 2 Jul 2003 02:09:44 +0000 (02:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/private.h
include/wx/utils.h
src/msw/app.cpp
src/msw/listbox.cpp
src/msw/utils.cpp
src/msw/utilsgui.cpp

index 89cfd4eaaedf77b62e27018d382fd0afc891c874..3cda5809f9d459a5f88bf5c9bc5fee4f2bf16024 100644 (file)
@@ -486,8 +486,6 @@ private:
 // global data
 // ---------------------------------------------------------------------------
 
-WXDLLIMPEXP_DATA_BASE(extern wxChar*) wxBuffer;
-
 WXDLLIMPEXP_DATA_BASE(extern HINSTANCE) wxhInstance;
 
 // ---------------------------------------------------------------------------
index f393cbffb5443176f32700b16a4bc5b1d2f3efff..0880439f8530df57d501dca855a4b581e37eceaf 100644 (file)
@@ -56,12 +56,6 @@ class WXDLLIMPEXP_BASE wxPoint;
 // String functions (deprecated, use wxString)
 // ----------------------------------------------------------------------------
 
-// Useful buffer (FIXME VZ: To be removed!!!)
-// Now only needed in MSW port
-#if !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__) && !defined(__WXMGL__) && !defined(__WXMAC__)
-WXDLLIMPEXP_DATA_BASE(extern wxChar*) wxBuffer;
-#endif
-
 // Make a copy of this string using 'new'
 WXDLLIMPEXP_BASE wxChar* copystring(const wxChar *s);
 
index 904f0aaed73e3f20431bb33b1677012e29a464ef..dd14f9b06380b70a17862652e420ebd57ba944e7 100644 (file)
 // global variables
 // ---------------------------------------------------------------------------
 
-extern wxChar *wxBuffer;
 extern wxList WXDLLEXPORT wxPendingDelete;
 #ifndef __WXMICROWIN__
 extern void wxSetKeyboardHook(bool doIt);
@@ -287,8 +286,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     }
 #endif // wxUSE_UNICODE && !wxUSE_UNICODE_MSLU
 
-    wxBuffer = new wxChar[1500]; // FIXME
-
 #if defined(__WIN95__) && !defined(__WXMICROWIN__)
     InitCommonControls();
 #endif // __WIN95__
@@ -500,9 +497,6 @@ bool wxApp::UnregisterWindowClasses()
 
 void wxApp::CleanUp()
 {
-    delete[] wxBuffer;
-    wxBuffer = NULL;
-
 #ifndef __WXMICROWIN__
     wxSetKeyboardHook(FALSE);
 #endif
index 4d31896890d4cb253ac1f1659449a40a0975af51..8a3588b32c2b0e4a7110372171fcccda3b16d3f7 100644 (file)
@@ -583,13 +583,15 @@ void wxListBox::SetHorizontalExtent(const wxString& s)
             oldFont = (HFONT) ::SelectObject(dc, (HFONT) GetFont().GetResourceHandle());
 
         GetTextMetrics(dc, &lpTextMetric);
-        int i;
-        for (i = 0; i < m_noItems; i++)
+
+        // FIXME: buffer overflow!!
+        wxChar buf[1024];
+        for (int i = 0; i < m_noItems; i++)
         {
-            int len = (int)SendMessage(GetHwnd(), LB_GETTEXT, i, (LONG)wxBuffer);
-            wxBuffer[len] = 0;
+            int len = (int)SendMessage(GetHwnd(), LB_GETTEXT, i, (LPARAM)buf);
+            buf[len] = 0;
             SIZE extentXY;
-            ::GetTextExtentPoint(dc, (LPTSTR)wxBuffer, len, &extentXY);
+            ::GetTextExtentPoint(dc, buf, len, &extentXY);
             int extentX = (int)(extentXY.cx + lpTextMetric.tmAveCharWidth);
             if (extentX > largestExtent)
                 largestExtent = extentX;
index 2fa6d1bbc31aa77b2181b248f081d1434d9a4929..ce67545bdb758a3c22488acd0105317140aef199 100644 (file)
@@ -240,99 +240,86 @@ bool wxGetUserId(wxChar *buf, int maxSize)
 // Get user name e.g. Julian Smart
 bool wxGetUserName(wxChar *buf, int maxSize)
 {
-#if wxUSE_PENWINDOWS && !defined(__WATCOMC__) && !defined(__GNUWIN32__)
-    extern HANDLE g_hPenWin; // PenWindows Running?
-    if (g_hPenWin)
-    {
-        // PenWindows Does have a user concept!
-        // Get the current owner of the recognizer
-        GetPrivateProfileString("Current", "User", default_name, wxBuffer, maxSize - 1, "PENWIN.INI");
-        strncpy(buf, wxBuffer, maxSize - 1);
-    }
-    else
-#endif
-    {
 #ifdef USE_NET_API
-        CHAR szUserName[256];
-        if ( !wxGetUserId(szUserName, WXSIZEOF(szUserName)) )
-            return FALSE;
+    CHAR szUserName[256];
+    if ( !wxGetUserId(szUserName, WXSIZEOF(szUserName)) )
+        return FALSE;
 
-        // TODO how to get the domain name?
-        CHAR *szDomain = "";
+    // TODO how to get the domain name?
+    CHAR *szDomain = "";
 
-        // the code is based on the MSDN example (also see KB article Q119670)
-        WCHAR wszUserName[256];          // Unicode user name
-        WCHAR wszDomain[256];
-        LPBYTE ComputerName;
+    // the code is based on the MSDN example (also see KB article Q119670)
+    WCHAR wszUserName[256];          // Unicode user name
+    WCHAR wszDomain[256];
+    LPBYTE ComputerName;
 
-        USER_INFO_2 *ui2;         // User structure
+    USER_INFO_2 *ui2;         // User structure
 
-        // Convert ANSI user name and domain to Unicode
-        MultiByteToWideChar( CP_ACP, 0, szUserName, strlen(szUserName)+1,
-                wszUserName, WXSIZEOF(wszUserName) );
-        MultiByteToWideChar( CP_ACP, 0, szDomain, strlen(szDomain)+1,
-                wszDomain, WXSIZEOF(wszDomain) );
+    // Convert ANSI user name and domain to Unicode
+    MultiByteToWideChar( CP_ACP, 0, szUserName, strlen(szUserName)+1,
+            wszUserName, WXSIZEOF(wszUserName) );
+    MultiByteToWideChar( CP_ACP, 0, szDomain, strlen(szDomain)+1,
+            wszDomain, WXSIZEOF(wszDomain) );
 
-        // Get the computer name of a DC for the domain.
-        if ( NetGetDCName( NULL, wszDomain, &ComputerName ) != NERR_Success )
-        {
-            wxLogError(wxT("Can not find domain controller"));
+    // Get the computer name of a DC for the domain.
+    if ( NetGetDCName( NULL, wszDomain, &ComputerName ) != NERR_Success )
+    {
+        wxLogError(wxT("Can not find domain controller"));
 
-            goto error;
-        }
+        goto error;
+    }
 
-        // Look up the user on the DC
-        NET_API_STATUS status = NetUserGetInfo( (LPWSTR)ComputerName,
-                (LPWSTR)&wszUserName,
-                2, // level - we want USER_INFO_2
-                (LPBYTE *) &ui2 );
-        switch ( status )
-        {
-            case NERR_Success:
-                // ok
-                break;
+    // Look up the user on the DC
+    NET_API_STATUS status = NetUserGetInfo( (LPWSTR)ComputerName,
+            (LPWSTR)&wszUserName,
+            2, // level - we want USER_INFO_2
+            (LPBYTE *) &ui2 );
+    switch ( status )
+    {
+        case NERR_Success:
+            // ok
+            break;
 
-            case NERR_InvalidComputer:
-                wxLogError(wxT("Invalid domain controller name."));
+        case NERR_InvalidComputer:
+            wxLogError(wxT("Invalid domain controller name."));
 
-                goto error;
+            goto error;
 
-            case NERR_UserNotFound:
-                wxLogError(wxT("Invalid user name '%s'."), szUserName);
+        case NERR_UserNotFound:
+            wxLogError(wxT("Invalid user name '%s'."), szUserName);
 
-                goto error;
+            goto error;
 
-            default:
-                wxLogSysError(wxT("Can't get information about user"));
+        default:
+            wxLogSysError(wxT("Can't get information about user"));
 
-                goto error;
-        }
+            goto error;
+    }
 
-        // Convert the Unicode full name to ANSI
-        WideCharToMultiByte( CP_ACP, 0, ui2->usri2_full_name, -1,
-                buf, maxSize, NULL, NULL );
+    // Convert the Unicode full name to ANSI
+    WideCharToMultiByte( CP_ACP, 0, ui2->usri2_full_name, -1,
+            buf, maxSize, NULL, NULL );
 
-        return TRUE;
+    return TRUE;
 
 error:
-        wxLogError(wxT("Couldn't look up full user name."));
+    wxLogError(wxT("Couldn't look up full user name."));
 
-        return FALSE;
+    return FALSE;
 #else  // !USE_NET_API
-        // Could use NIS, MS-Mail or other site specific programs
-        // Use wxWindows configuration data
-        bool ok = GetProfileString(WX_SECTION, eUSERNAME, wxT(""), buf, maxSize - 1) != 0;
-        if ( !ok )
-        {
-            ok = wxGetUserId(buf, maxSize);
-        }
+    // Could use NIS, MS-Mail or other site specific programs
+    // Use wxWindows configuration data
+    bool ok = GetProfileString(WX_SECTION, eUSERNAME, wxT(""), buf, maxSize - 1) != 0;
+    if ( !ok )
+    {
+        ok = wxGetUserId(buf, maxSize);
+    }
 
-        if ( !ok )
-        {
-            wxStrncpy(buf, wxT("Unknown User"), maxSize);
-        }
-#endif // Win32/16
+    if ( !ok )
+    {
+        wxStrncpy(buf, wxT("Unknown User"), maxSize);
     }
+#endif // Win32/16
 
     return TRUE;
 }
index 70887df327d03a6c1d62f2f2c7e1dcd880b5b823..7d18ec21ad4577a8f7e7ce3a3c15ee650dbe8ee0 100644 (file)
@@ -83,22 +83,23 @@ bool wxWriteResource(const wxString& section, const wxString& entry, int value,
 bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file)
 {
     static const wxChar defunkt[] = wxT("$$default");
+
+    wxChar buf[1024];
     if (file != wxT(""))
     {
-        int n = GetPrivateProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)defunkt,
-                (LPTSTR)wxBuffer, 1000, (LPCTSTR)WXSTRINGCAST file);
-        if (n == 0 || wxStrcmp(wxBuffer, defunkt) == 0)
+        int n = GetPrivateProfileString(section, entry, defunkt,
+                                        buf, WXSIZEOF(buf), file);
+        if (n == 0 || wxStrcmp(buf, defunkt) == 0)
             return FALSE;
     }
     else
     {
-        int n = GetProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)defunkt,
-                (LPTSTR)wxBuffer, 1000);
-        if (n == 0 || wxStrcmp(wxBuffer, defunkt) == 0)
+        int n = GetProfileString(section, entry, defunkt, buf, WXSIZEOF(buf));
+        if (n == 0 || wxStrcmp(buf, defunkt) == 0)
             return FALSE;
     }
     if (*value) delete[] (*value);
-    *value = copystring(wxBuffer);
+    *value = copystring(buf);
     return TRUE;
 }