Changeset 934 for trunk/src


Ignore:
Timestamp:
Sep 14, 1999, 10:46:40 PM (26 years ago)
Author:
sandervl
Message:

Implemented Enum(Thread/Child)Windows

Location:
trunk/src/user32/new
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/new/makefile

    r923 r934  
    1 # $Id: makefile,v 1.50 1999-09-13 16:13:46 dengert Exp $
     1# $Id: makefile,v 1.51 1999-09-14 20:46:39 sandervl Exp $
    22
    33#
     
    2525        dde.obj heapshared.obj win32wndhandle.obj \
    2626        icon.obj hook.obj hooks.obj winmenu.obj \
    27         usrcall.obj defwndproc.obj syscolor.obj char.obj initterm.obj \
     27        defwndproc.obj syscolor.obj char.obj initterm.obj \
    2828        uitools.obj unknown.obj spy.obj wndmsg.obj \
    2929        pmwindow.obj win32class.obj win32wnd.obj win32dlg.obj \
     
    6868winmenu.obj: winmenu.cpp user32.h $(PDWIN32_INCLUDE)\winres.h $(PDWIN32_INCLUDE)\winresmenu.h win32wbase.h
    6969syscolor.obj: syscolor.cpp syscolor.h
    70 usrcall.obj: usrcall.cpp usrcall.h
    7170dde.obj: dde.cpp
    7271hook.obj: hook.cpp hooks.h
  • trunk/src/user32/new/oslibwin.cpp

    r724 r934  
    1 /* $Id: oslibwin.cpp,v 1.26 1999-08-28 14:09:29 sandervl Exp $ */
     1/* $Id: oslibwin.cpp,v 1.27 1999-09-14 20:46:39 sandervl Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    678678{
    679679   if(hwnd == OSLIB_HWND_DESKTOP)       hwnd = HWND_DESKTOP;
     680   else
     681   if(hwnd == OSLIB_HWND_OBJECT)        hwnd = HWND_OBJECT;
    680682
    681683   return WinBeginEnumWindows(hwnd);
     
    706708//******************************************************************************
    707709//******************************************************************************
     710BOOL OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid)
     711{
     712   return WinQueryWindowProcess(hwnd, pid, tid);
     713}
     714//******************************************************************************
     715//******************************************************************************
  • trunk/src/user32/new/oslibwin.h

    r835 r934  
    1 /* $Id: oslibwin.h,v 1.24 1999-09-05 15:53:09 sandervl Exp $ */
     1/* $Id: oslibwin.h,v 1.25 1999-09-14 20:46:39 sandervl Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    3131
    3232#define OSLIB_HWND_DESKTOP      0
     33#define OSLIB_HWND_OBJECT       1
     34
    3335BOOL  OSLibWinSetParent(HWND hwnd, HWND hwndParent, ULONG fRedraw = TRUE);
    3436
     
    235237HWND  OSLibWinQueryClientWindow(HWND hwndFrame);
    236238BOOL  OSLibWinEndEnumWindows(HWND hwndEnum);
     239BOOL  OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid);
    237240
    238241#endif //__OSLIBWIN_H__
  • trunk/src/user32/new/user32.cpp

    r903 r934  
    1 /* $Id: user32.cpp,v 1.20 1999-09-10 19:00:11 dengert Exp $ */
     1/* $Id: user32.cpp,v 1.21 1999-09-14 20:46:40 sandervl Exp $ */
    22
    33/*
     
    3131#include "user32.h"
    3232#include <winicon.h>
    33 #include "usrcall.h"
    3433#include "syscolor.h"
    3534
     
    830829//******************************************************************************
    831830//******************************************************************************
    832 BOOL WIN32API EnumChildWindows(HWND hwnd, WNDENUMPROC lpfn, LPARAM lParam)
    833 {
    834  BOOL                rc;
    835  EnumWindowCallback *callback = new EnumWindowCallback(lpfn, lParam);
    836 
    837 #ifdef DEBUG
    838   WriteLog("USER32:  EnumChildWindows\n");
    839 #endif
    840   rc = O32_EnumChildWindows(hwnd, callback->GetOS2Callback(), (LPARAM)callback);
    841   if(callback)
    842     delete callback;
    843   return(rc);
    844 }
    845 //******************************************************************************
    846 //******************************************************************************
    847 BOOL WIN32API EnumWindows(WNDENUMPROC lpfn, LPARAM lParam)
    848 {
    849  BOOL                rc;
    850  EnumWindowCallback *callback = new EnumWindowCallback(lpfn, lParam);
    851 
    852 #ifdef DEBUG
    853   WriteLog("USER32:  EnumWindows\n");
    854 #endif
    855   rc = O32_EnumWindows(callback->GetOS2Callback(), (LPARAM)callback);
    856   if(callback)
    857         delete callback;
    858   return(rc);
    859 }
    860 //******************************************************************************
    861 //******************************************************************************
    862831INT WIN32API ExcludeUpdateRgn( HDC arg1, HWND  arg2)
    863832{
  • trunk/src/user32/new/window.cpp

    r903 r934  
    1 /* $Id: window.cpp,v 1.24 1999-09-10 19:00:11 dengert Exp $ */
     1/* $Id: window.cpp,v 1.25 1999-09-14 20:46:40 sandervl Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    2424#include "user32.h"
    2525#include "winicon.h"
    26 #include "usrcall.h"
    2726
    2827//******************************************************************************
     
    983982BOOL WIN32API EnumThreadWindows(DWORD dwThreadId, WNDENUMPROC lpfn, LPARAM lParam)
    984983{
    985  BOOL                rc;
    986  EnumWindowCallback *callback = new EnumWindowCallback(lpfn, lParam);
    987 
    988   dprintf(("USER32:  EnumThreadWindows\n"));
    989   //CB: replace
    990   rc = O32_EnumThreadWindows(dwThreadId, callback->GetOS2Callback(), (LPARAM)callback);
    991   if(callback)
    992     delete callback;
    993   return(rc);
     984 Win32BaseWindow *window;
     985 BOOL   rc;
     986 ULONG  henum;
     987 HWND   hwndNext;
     988 ULONG  tid;
     989 ULONG  pid, curpid;
     990
     991  dprintf(("EnumThreadWindows\n"));
     992
     993  curpid = GetCurrentProcessId();
     994
     995  henum = OSLibWinBeginEnumWindows(OSLIB_HWND_DESKTOP);         
     996  while ((hwndNext = OSLibWinGetNextWindow(henum)) != 0)
     997  {
     998        OSLibWinQueryWindowProcess(hwndNext, &pid, &tid);
     999        if(!(curpid == pid && dwThreadId == tid))
     1000                continue;
     1001
     1002        window = Win32BaseWindow::GetWindowFromHandle(hwndNext);
     1003        if(window == NULL) {
     1004                //OS/2 window or non-frame window, so skip it
     1005                continue;
     1006        }
     1007        if((rc = lpfn(window->getWindowHandle(), lParam)) == FALSE)
     1008                break;
     1009  }
     1010  OSLibWinEndEnumWindows (henum);
     1011  return TRUE;
     1012}
     1013//******************************************************************************
     1014//******************************************************************************
     1015BOOL WIN32API EnumChildWindows(HWND hwnd, WNDENUMPROC lpfn, LPARAM lParam)
     1016{
     1017 Win32BaseWindow *window, *parentwindow;
     1018 BOOL   rc = TRUE;
     1019 ULONG  henum;
     1020 HWND   hwndNext;
     1021
     1022  dprintf(("EnumChildWindows %x %x\n", hwnd, lParam));
     1023
     1024  parentwindow = Win32BaseWindow::GetWindowFromHandle(hwnd);
     1025  if(!parentwindow) {
     1026        dprintf(("EnumChildWindows, window %x not found", hwnd));
     1027        return FALSE;
     1028  }
     1029
     1030  henum = OSLibWinBeginEnumWindows(OSLIB_HWND_DESKTOP);         
     1031  while ((hwndNext = OSLibWinGetNextWindow(henum)) != 0)
     1032  {
     1033        window = Win32BaseWindow::GetWindowFromHandle(hwndNext);
     1034        if(window == NULL) {
     1035                //OS/2 window or non-frame window, so skip it
     1036                continue;
     1037        }
     1038        if((rc = lpfn(window->getWindowHandle(), lParam)) == FALSE)
     1039        {
     1040                rc = FALSE;
     1041                break;
     1042        }
     1043  }
     1044  OSLibWinEndEnumWindows(henum);
     1045  return rc;
     1046}
     1047//******************************************************************************
     1048//******************************************************************************
     1049BOOL WIN32API EnumWindows(WNDENUMPROC lpfn, LPARAM lParam)
     1050{
     1051 Win32BaseWindow *window;
     1052 BOOL   rc;
     1053 ULONG  henum;
     1054 HWND   hwndNext, hwndParent = OSLIB_HWND_DESKTOP;
     1055
     1056  dprintf(("EnumThreadWindows\n"));
     1057
     1058  do {
     1059        henum = OSLibWinBeginEnumWindows(hwndParent);         
     1060        while ((hwndNext = OSLibWinGetNextWindow(henum)) != 0)
     1061        {
     1062                window = Win32BaseWindow::GetWindowFromHandle(hwndNext);
     1063                if(window == NULL) {
     1064                        //OS/2 window or non-frame window, so skip it
     1065                        continue;
     1066                }
     1067                if((rc = lpfn(window->getWindowHandle(), lParam)) == FALSE) {
     1068                        goto Abort;
     1069                }
     1070        }
     1071        if(hwndParent == OSLIB_HWND_OBJECT)
     1072                break;
     1073        hwndParent = OSLIB_HWND_OBJECT;
     1074        OSLibWinEndEnumWindows(henum);
     1075  }
     1076  while(TRUE);
     1077
     1078Abort:
     1079  OSLibWinEndEnumWindows(henum);
     1080  return TRUE;
    9941081}
    9951082//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.