用EnumWindows和EnumChildWindows枚举不到全部窗口?该怎么处理

用EnumWindows和EnumChildWindows枚举不到全部窗口?
为什么用SPY++看到的窗口比我用这两个函数枚举出来的多?
也就是一些窗口枚举不到,为什么?

还有一些在桌面上可以用SPY++看到的都枚举不到。

------解决方案--------------------
Delphi(Pascal) code

procedure TForm1.Button1Click(Sender: TObject);
var
  h: HWnd;
  p: array[0..254] of char;
begin
  h := GetWindow(Handle, GW_HWNDFIRST);
  while h <> 0 do
  begin
    if GetWindowText(h, p, 255) > 0 then Memo1.Lines.Add(p);
    h := GetWindow(h, GW_HWNDNEXT);
  end;
end;