from win32com.shell import shell
from win32com.shell.shellcon import *

sf = shell.SHGetDesktopFolder()
print "Shell Folder is", sf

names = []
for i in sf: # Magically calls EnumObjects
    name = sf.GetDisplayNameOf(i, SHGDN_NORMAL)
    names.append(name)

# And get the enumerator manually    
enum = sf.EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN)
num = 0
for i in enum:
    num += 1
if num != len(names):
    print "Should have got the same number of names!?"
print "Found", len(names), "items on the desktop"
for name in names:
    print name
