Ignore:
Timestamp:
Apr 7, 2002, 11:37:35 PM (23 years ago)
Author:
sandervl
Message:

fixed double handle allocated for desktop window + made EnumWindows a bit safer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/win32wbase.cpp

    r8132 r8210  
    1 /* $Id: win32wbase.cpp,v 1.321 2002-03-28 16:20:06 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.322 2002-04-07 21:37:34 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    29982998 BOOL             rc;
    29992999 HWND             hwnd = WNDHANDLE_MAGIC_HIGHWORD;
     3000 DWORD            dwStyle;
    30003001
    30013002    dprintf(("EnumWindows %x %x", lpfn, lParam));
     
    30033004    for(int i=0;i<MAX_WINDOW_HANDLES;i++)
    30043005    {
    3005         window = GetWindowFromHandle(hwnd++);
    3006         if(window)
    3007         {
    3008             if ((window->getStyle() & WS_POPUP) || ((window->getStyle() & WS_CAPTION) == WS_CAPTION))
     3006        window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     3007        if(window) {
     3008            if(window->getWindowHandle() != hwnd) {
     3009                dprintf(("CORRUPT WINDOW %x %x", window, hwnd));
     3010            }
     3011            RELEASE_WNDOBJ(window);
     3012            dwStyle = ::GetWindowLongA(hwnd, GWL_STYLE);
     3013            if ((dwStyle & WS_POPUP) || ((dwStyle & WS_CAPTION) == WS_CAPTION))
    30093014            {
    3010                 dprintf2(("EnumWindows: Found Window %x", window->getWindowHandle()));
    3011                 if((rc = lpfn(window->getWindowHandle(), lParam)) == FALSE) {
     3015                dprintf2(("EnumWindows: Found Window %x", hwnd));
     3016                if((rc = lpfn(hwnd, lParam)) == FALSE) {
    30123017                    break;
    30133018                }
    30143019            }
    3015             RELEASE_WNDOBJ(window);
    3016         }
    3017     }
    3018     if(window) RELEASE_WNDOBJ(window);
     3020        }
     3021        hwnd++;
     3022    }
    30193023    return TRUE;
    30203024}
Note: See TracChangeset for help on using the changeset viewer.