This example begins window enumeration of all main windows (i.e. all immediate children of the Desktop), after which WinGetNextWindow is called in a loop to enumerate all the children, until all children are found and the enumeration ends.
#define INCL_WINWINDOWMGR /* Window Manager Functions */ #include <os2.h> HWND hwndParent; /* Handle of the window whose child windows are to be enumerated */ HWND hwndNext; /* current enumeration handle */ HENUM henum; /* enumeration handle */ BOOL fSuccess; /* success indicator */ SHORT sRetLen; /* returned string length */ SHORT sLength = 10; /* string buffer length */ char pchBuffer[10]; /* string buffer */ hwndParent = HWND_DESKTOP; henum = WinBeginEnumWindows(hwndParent); while ((hwndNext = WinGetNextWindow(henum)) != NULLHANDLE) { . . . } fSuccess = WinEndEnumWindows (henum);