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/clipboard.cpp

    r5606 r5935  
    1 /* $Id: clipboard.cpp,v 1.11 2001-04-27 17:36:36 sandervl Exp $ */
     1/* $Id: clipboard.cpp,v 1.12 2001-06-09 14:50:16 sandervl Exp $ */
    22
    33/*
     
    2727{
    2828  Win32BaseWindow *wndRemove, *wndNext;
     29  HWND hwndOS2Remove, hwndOS2Next;
    2930
    3031    wndRemove = Win32BaseWindow::GetWindowFromHandle(hwndRemove);
     
    3435        return 0;
    3536    }
     37    hwndOS2Remove = wndRemove->getOS2WindowHandle();
     38    RELEASE_WNDOBJ(wndRemove);
     39
    3640    wndNext = Win32BaseWindow::GetWindowFromHandle(hwndNext);
    3741    if(!wndNext) {
     
    4044        return 0;
    4145    }
     46    hwndOS2Next = wndNext->getOS2WindowHandle();
     47    RELEASE_WNDOBJ(wndNext);
     48
    4249    dprintf(("USER32:  ChangeClipboardChain\n"));
    43     return O32_ChangeClipboardChain(wndRemove->getOS2WindowHandle(),
    44                                     wndNext->getOS2WindowHandle());
     50    return O32_ChangeClipboardChain(hwndOS2Remove, hwndOS2Next);
    4551}
    4652//******************************************************************************
     
    114120        return NULL;
    115121    }
    116     return window->getWindowHandle();
     122    hwndOwner = window->getWindowHandle();
     123    RELEASE_WNDOBJ(window);
     124    return hwndOwner;
    117125}
    118126//******************************************************************************
     
    131139        return NULL;
    132140    }
    133     return window->getWindowHandle();
     141    hwndViewer = window->getWindowHandle();
     142    RELEASE_WNDOBJ(window);
     143    return hwndViewer;
    134144}
    135145//******************************************************************************
     
    148158        return NULL;
    149159    }
    150     return window->getWindowHandle();
     160    hwnd = window->getWindowHandle();
     161    RELEASE_WNDOBJ(window);
     162    return hwnd;
    151163}
    152164//******************************************************************************
     
    177189            return 0;
    178190        }
     191        hwnd = window->getOS2WindowHandle();
     192        RELEASE_WNDOBJ(window);
    179193    }
    180194    dprintf(("USER32: OpenClipboard %x", hwnd));
    181     return O32_OpenClipboard(hwnd ? window->getOS2WindowHandle() : NULL);
     195    return O32_OpenClipboard(hwnd);
    182196}
    183197//******************************************************************************
     
    214228  Win32BaseWindow *wndnew, *wndold;
    215229  HWND hwndOld;
     230  HWND hwndOS2New;
    216231
    217232    wndnew = Win32BaseWindow::GetWindowFromHandle(hwndNew);
    218233    if(!wndnew) {
    219         dprintf(("OpenClipboard, window %x not found", hwndNew));
     234        dprintf(("SetClipboardViewer, window %x not found", hwndNew));
    220235        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
    221236        return 0;
    222237    }
    223     dprintf(("USER32:  SetClipboardViewer\n"));
    224     hwndOld = O32_SetClipboardViewer(wndnew->getOS2WindowHandle());
     238    dprintf(("USER32: SetClipboardViewer %x", hwndNew));
     239    hwndOS2New = wndnew->getOS2WindowHandle();
     240    RELEASE_WNDOBJ(wndnew);
     241
     242    hwndOld = O32_SetClipboardViewer(hwndOS2New);
    225243
    226244    wndold = Win32BaseWindow::GetWindowFromOS2Handle(hwndOld);
     
    229247        return 0;
    230248    }
    231     return wndold->getWindowHandle();
    232 }
    233 //******************************************************************************
    234 //******************************************************************************
     249    hwndOld = wndold->getWindowHandle();
     250    RELEASE_WNDOBJ(wndold);
     251    return hwndOld;
     252}
     253//******************************************************************************
     254//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.