Ignore:
Timestamp:
Jun 9, 2001, 4:50:26 PM (24 years ago)
Author:
sandervl
Message:

reference count (window + class objects) rewrite

File:
1 edited

Legend:

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

    r4194 r5935  
    1 /* $Id: defwndproc.cpp,v 1.14 2000-09-05 19:20:33 sandervl Exp $ */
     1/* $Id: defwndproc.cpp,v 1.15 2001-06-09 14:50:17 sandervl Exp $ */
    22
    33/*
     
    3131{
    3232  Win32BaseWindow *window;
     33  LRESULT result;
    3334
    3435    dprintf2(("DefWindowProcA %x %x %x %x", hwnd, Msg, wParam, lParam));
     
    3839        return 0;
    3940    }
    40     return window->DefWindowProcA(Msg, wParam, lParam);
     41    result = window->DefWindowProcA(Msg, wParam, lParam);
     42    RELEASE_WNDOBJ(window);
     43    return result;
    4144}
    4245//******************************************************************************
     
    4548{
    4649  Win32BaseWindow *window;
     50  LRESULT result;
    4751
    4852    dprintf2(("DefWindowProcW %x %x %x %x", hwnd, Msg, wParam, lParam));
     
    5256        return 0;
    5357    }
    54     return window->DefWindowProcW(Msg, wParam, lParam);
     58    result = window->DefWindowProcW(Msg, wParam, lParam);
     59    RELEASE_WNDOBJ(window);
     60    return result;
    5561}
    5662//******************************************************************************
     
    5965{
    6066  Win32Dialog *dialog;
     67  LRESULT result;
    6168
    6269    dialog = (Win32Dialog *)Win32BaseWindow::GetWindowFromHandle(hwnd);
     
    6875    }
    6976    if(dialog->IsDialog())
    70          return dialog->DefDlgProcA(Msg, wParam, lParam);
    71     else return dialog->DefWindowProcA(Msg, wParam, lParam);
     77         result = dialog->DefDlgProcA(Msg, wParam, lParam);
     78    else result = dialog->DefWindowProcA(Msg, wParam, lParam);
     79    RELEASE_WNDOBJ(dialog);
     80    return result;
    7281}
    7382//******************************************************************************
     
    7685{
    7786  Win32Dialog *dialog;
     87  LRESULT result;
    7888
    7989    dialog = (Win32Dialog *)Win32BaseWindow::GetWindowFromHandle(hwnd);
     
    8595    }
    8696    if(dialog->IsDialog())
    87          return dialog->DefDlgProcW(Msg, wParam, lParam);
    88     else return dialog->DefWindowProcW(Msg, wParam, lParam);
     97         result = dialog->DefDlgProcW(Msg, wParam, lParam);
     98    else result = dialog->DefWindowProcW(Msg, wParam, lParam);
     99    RELEASE_WNDOBJ(dialog);
     100    return result;
    89101}
    90102//******************************************************************************
     
    93105{
    94106  Win32Window *window;
     107  LRESULT result;
    95108
    96109    window = (Win32Window *)Win32BaseWindow::GetWindowFromHandle(hwndFrame);
     
    99112        return 0;
    100113    }
    101     return window->DefFrameProcA(hwndMDIClient, Msg, wParam, lParam);
     114    result = window->DefFrameProcA(hwndMDIClient, Msg, wParam, lParam);
     115    RELEASE_WNDOBJ(window);
     116    return result;
    102117}
    103118//******************************************************************************
     
    106121{
    107122  Win32Window *window;
     123  LRESULT result;
    108124
    109125    window = (Win32Window *)Win32BaseWindow::GetWindowFromHandle(hwndFrame);
     
    112128        return 0;
    113129    }
    114     return window->DefFrameProcW(hwndMDIClient, Msg, wParam, lParam);
     130    result = window->DefFrameProcW(hwndMDIClient, Msg, wParam, lParam);
     131    RELEASE_WNDOBJ(window);
     132    return result;
    115133}
    116134//******************************************************************************
     
    119137{
    120138  Win32MDIChildWindow *window;
     139  LRESULT result;
    121140
    122141    window = (Win32MDIChildWindow *)Win32BaseWindow::GetWindowFromHandle(hwnd);
     
    127146    if(!window->isMDIChild()) {
    128147         dprintf(("App called DefMDIChildProcA for non-MDI window %x", hwnd));
    129          return window->DefWindowProcA(Msg, wParam, lParam);
     148         result = window->DefWindowProcA(Msg, wParam, lParam);
    130149    }
    131     else return window->DefMDIChildProcA(Msg, wParam, lParam);
    132    
     150    else result = window->DefMDIChildProcA(Msg, wParam, lParam);
     151    RELEASE_WNDOBJ(window);
     152    return result;
    133153}
    134154//******************************************************************************
     
    137157{
    138158  Win32MDIChildWindow *window;
     159  LRESULT result;
    139160
    140161    window = (Win32MDIChildWindow *)Win32BaseWindow::GetWindowFromHandle(hwnd);
     
    145166    if(!window->isMDIChild()) {
    146167         dprintf(("App called DefMDIChildProcA for non-MDI window %x", hwnd));
    147          return window->DefWindowProcW(Msg, wParam, lParam);
     168         result = window->DefWindowProcW(Msg, wParam, lParam);
    148169    }
    149     else return window->DefMDIChildProcW(Msg, wParam, lParam);
     170    else result = window->DefMDIChildProcW(Msg, wParam, lParam);
     171    RELEASE_WNDOBJ(window);
     172    return result;
    150173}
    151174//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.