Функция GetNextWindow возвращает первое окно, которое выше (или ниже, в зависимости от второго аргумента) твоего или NULL если таких окон нет. Соответственно вызываешь GetNextWindow и смотришь результат: если NULL - значит твоё окно самое верхнее, иначе - есть окна выше него. Возможно что далее тебе нужно будет проверить перекрывают ли они твоё окно или находятся в стороне и никак не мешают. Это можно сделать получив их координаты и размеры функцией GetWindowRect и сравнив с координатами и размерами своего окна (для чего пригодится функция IntersectRect). Чтобы проверить все окна (из тех что выше) вызывай GetNextWindow в цикле, в первый раз передав ей hwnd своего окна, каждый следующий раз - тот hwnd, который она вернёт и так до тех пор пока она не вернёт NULL.