Is there a way to get all the windows that are useful/visible to the user i.e. ones that are on the taskbar?

I am able to go through all the windoes using EnumWindowsProc
then I am using the following API calls to indicate (so I can then remove) windows not normally visible to the user...

GetWindowRect (to check if the window has size)
IsWindow (to check if is a window)

this still leaves some windows that I would like to have removed e.g.
Window # 85 : Tsp3216LWindow
Width = 112
Height = 27

How do I identify those windows

thanks for any help