home *** CD-ROM | disk | FTP | other *** search
- // WinList.cmm Display a list of all windows and all their child windows
-
- DisplayWindowChildren(0,NULL);
-
- DisplayWindowChildren(ChildDepth,ParentHandle)
- {
- WList = WindowList(ParentHandle);
- if ( NULL == WList ) return; // if no windows in this list, then nothing to display
- count = 1 + GetArraySpan(WList);
- for ( i = 0; i < count; i++ ) {
- hwnd = WList[i];
- // to avoid printing all windows more than once, only print if the direct
- // parent is the ParentHandle of this depth
- if ( ParentHandle == GetParentHandle(hwnd) ) {
- printf("\n%*d",7 * ChildDepth,hwnd);
- PrintWindowTextIfAny(hwnd)
- DisplayWindowChildren(ChildDepth+1,hwnd);
- }
- }
- }
-
- PrintWindowTextIfAny(handle) // print name of window if it has one
- {
- #define MAX_TEXT_LEN 50
- BLObSize(buf,MAX_TEXT_LEN+1);
- if ( 0 != DynamicLink("USER","GETWINDOWTEXT",SWORD16,PASCAL,
- handle,buf,MAX_TEXT_LEN) )
- printf(" %s",buf);
- }
-
- GetParentHandle(WindowHandle)
- {
- return( DynamicLink("USER","GETPARENT",SWORD16,PASCAL,WindowHandle) );
- }
-
- getch();
-