mirror of
https://github.com/reactos/reactos.git
synced 2024-09-06 10:52:52 +00:00
107 lines
2.3 KiB
C
107 lines
2.3 KiB
C
#pragma once
|
|
|
|
#include "window.h"
|
|
#include "clipboard.h"
|
|
|
|
#define WINSTA_ROOT_NAME L"\\Windows\\WindowStations"
|
|
#define WINSTA_ROOT_NAME_LENGTH 23
|
|
|
|
/* Window Station Status Flags */
|
|
#define WSS_LOCKED (1)
|
|
#define WSS_NOINTERACTIVE (2)
|
|
|
|
typedef enum
|
|
{
|
|
wmCenter = 0,
|
|
wmTile,
|
|
wmStretch
|
|
} WALLPAPER_MODE;
|
|
|
|
typedef struct _WINSTATION_OBJECT
|
|
{
|
|
PVOID SharedHeap; /* points to kmode memory! */
|
|
|
|
CSHORT Type;
|
|
CSHORT Size;
|
|
KSPIN_LOCK Lock;
|
|
UNICODE_STRING Name;
|
|
LIST_ENTRY DesktopListHead;
|
|
PRTL_ATOM_TABLE AtomTable;
|
|
HANDLE SystemMenuTemplate;
|
|
UINT CaretBlinkRate;
|
|
HANDLE ShellWindow;
|
|
HANDLE ShellListView;
|
|
|
|
/* Effects */
|
|
BOOL FontSmoothing; /* enable */
|
|
UINT FontSmoothingType; /* 1:Standard,2:ClearType */
|
|
/* FIXME: Big Icons (SPI_GETICONMETRICS?) */
|
|
BOOL DropShadow;
|
|
BOOL DragFullWindows;
|
|
BOOL FlatMenu;
|
|
|
|
/* ScreenSaver */
|
|
BOOL ScreenSaverRunning;
|
|
UINT ScreenSaverTimeOut;
|
|
/* Should this be on each desktop ? */
|
|
BOOL ScreenSaverActive;
|
|
|
|
/* Wallpaper */
|
|
HANDLE hbmWallpaper;
|
|
ULONG cxWallpaper, cyWallpaper;
|
|
WALLPAPER_MODE WallpaperMode;
|
|
|
|
ULONG Flags;
|
|
struct _DESKTOP* ActiveDesktop;
|
|
|
|
PCLIPBOARDSYSTEM Clipboard;
|
|
DWORD ClipboardSequenceNumber;
|
|
|
|
} WINSTATION_OBJECT, *PWINSTATION_OBJECT;
|
|
|
|
extern WINSTATION_OBJECT *InputWindowStation;
|
|
extern PPROCESSINFO LogonProcess;
|
|
|
|
NTSTATUS FASTCALL
|
|
InitWindowStationImpl(VOID);
|
|
|
|
NTSTATUS FASTCALL
|
|
CleanupWindowStationImpl(VOID);
|
|
|
|
NTSTATUS
|
|
APIENTRY
|
|
IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters);
|
|
|
|
VOID APIENTRY
|
|
IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
|
|
|
|
NTSTATUS
|
|
APIENTRY
|
|
IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters);
|
|
|
|
NTSTATUS FASTCALL
|
|
IntValidateWindowStationHandle(
|
|
HWINSTA WindowStation,
|
|
KPROCESSOR_MODE AccessMode,
|
|
ACCESS_MASK DesiredAccess,
|
|
PWINSTATION_OBJECT *Object);
|
|
|
|
BOOL FASTCALL
|
|
IntGetWindowStationObject(PWINSTATION_OBJECT Object);
|
|
|
|
BOOL FASTCALL
|
|
co_IntInitializeDesktopGraphics(VOID);
|
|
|
|
VOID FASTCALL
|
|
IntEndDesktopGraphics(VOID);
|
|
|
|
BOOL FASTCALL
|
|
IntGetFullWindowStationName(
|
|
OUT PUNICODE_STRING FullName,
|
|
IN PUNICODE_STRING WinStaName,
|
|
IN OPTIONAL PUNICODE_STRING DesktopName);
|
|
|
|
PWINSTATION_OBJECT FASTCALL IntGetWinStaObj(VOID);
|
|
|
|
/* EOF */
|