EnumDesktopsW function (winuser.h)

Enumerates all desktops associated with the specified window station of the calling process. The function passes the name of each desktop, in turn, to an application-defined callback function.


BOOL EnumDesktopsW(
  [in, optional] HWINSTA          hwinsta,
  [in]           DESKTOPENUMPROCW lpEnumFunc,
  [in]           LPARAM           lParam


[in, optional] hwinsta

A handle to the window station whose desktops are to be enumerated. This handle is returned by the CreateWindowStation, GetProcessWindowStation, or OpenWindowStation function, and must have the WINSTA_ENUMDESKTOPS access right. For more information, see Window Station Security and Access Rights.

If this parameter is NULL, the current window station is used.

[in] lpEnumFunc

A pointer to an application-defined EnumDesktopProc callback function.

[in] lParam

An application-defined value to be passed to the callback function.

Return value

If the function succeeds, it returns the nonzero value returned by the callback function that was pointed to by lpEnumFunc.

If the function is unable to perform the enumeration, the return value is zero. Call GetLastError to get extended error information.

If the callback function fails, the return value is zero. The callback function can call SetLastError to set an error code for the caller to retrieve by calling GetLastError.


The EnumDesktops function enumerates only those desktops for which the calling process has the DESKTOP_ENUMERATE access right. For more information, see Desktop Security and Access Rights.

The EnumDesktops function repeatedly invokes the lpEnumFunc callback function until the last desktop is enumerated or the callback function returns FALSE.


The winuser.h header defines EnumDesktops as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header winuser.h (include Windows.h)
Library User32.lib
DLL User32.dll

See also






Window Station and Desktop Functions