#ifndef __WIN32K_NTUSER_H
#define __WIN32K_NTUSER_H
-typedef struct _PROCESSINFO *PPROCESSINFO;
-typedef struct _THREADINFO *PTHREADINFO;
+struct _PROCESSINFO;
+struct _THREADINFO;
struct _DESKTOP;
struct _WND;
struct tagPOPUPMENU;
#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
-#define HANDLEENTRY_INDESTROY 1
+#define HANDLEENTRY_DESTROY 1
+#define HANDLEENTRY_INDESTROY 2
typedef struct _USER_HANDLE_ENTRY
{
union
{
PVOID pi;
- PTHREADINFO pti; /* pointer to Win32ThreadInfo */
- PPROCESSINFO ppi; /* pointer to W32ProcessInfo */
+ struct _THREADINFO *pti; /* pointer to Win32ThreadInfo */
+ struct _PROCESSINFO *ppi; /* pointer to W32ProcessInfo */
};
unsigned char type; /* object type (0 if free) */
unsigned char flags;
HWND hProgmanWindow;
HWND hShellWindow;
struct _WND *spwndShell;
+ struct _WND *spwndBkGnd;
- PPROCESSINFO ppiShellProcess;
+ struct _PROCESSINFO *ppiShellProcess;
union
{
typedef struct _THROBJHEAD
{
HEAD;
- PTHREADINFO pti;
+ struct _THREADINFO *pti;
} THROBJHEAD, *PTHROBJHEAD;
typedef struct _THRDESKHEAD
{
HEAD;
ULONG hTaskWow;
- PPROCESSINFO ppi;
+ struct _PROCESSINFO *ppi;
} PROCMARKHEAD, *PPROCMARKHEAD;
#define UserHMGetHandle(obj) ((obj)->head.h)
ULONG_PTR offPfn;
ULONG flags; /* Some internal flags */
INT ihmod;
- PTHREADINFO ptiHooked;
+ struct _THREADINFO *ptiHooked;
struct _DESKTOP *rpdesk;
/* ReactOS */
LIST_ENTRY Chain; /* Hook chain entry */
LPDWORD lpdwRegisteredClasses;
ULONG Win32ClientInfo3[26];
/* It's just a pointer reference not to be used w the structure in user space. */
- PPROCESSINFO ppi;
+ struct _PROCESSINFO *ppi;
} CLIENTINFO, *PCLIENTINFO;
/* Make sure it fits into the TEB */
/* Hack */
#define MNF_SYSMENU 0x0200
+/* (other FocusedItem values give the position of the focused item) */
+#define NO_SELECTED_ITEM 0xffff
+
typedef struct tagMENU
{
PROCDESKHEAD head;
struct _WND *spwndPrevPopup;
PMENU spmenu;
PMENU spmenuAlternate;
- struct _WND *spwndActivePopup;
+ struct _WND *spwndActivePopup;
struct tagPOPUPMENU *ppopupmenuRoot;
struct tagPOPUPMENU *ppmDelayedFree;
UINT posSelectedItem;
INT cbclsExtra;
INT cbwndExtra;
HINSTANCE hModule;
-#ifdef NEW_CURSORICON
struct _CURICON_OBJECT *spicn;
struct _CURICON_OBJECT *spcur;
-#else
- HANDLE hIcon; /* FIXME - Use pointer! */
- HANDLE hCursor; /* FIXME - Use pointer! */
-#endif
HBRUSH hbrBackground;
PWSTR lpszMenuName; /* kernel use */
PSTR lpszAnsiClassName; /* " */
-#ifdef NEW_CURSORICON
struct _CURICON_OBJECT *spicnSm;
-#else
- HANDLE hIconSm; /* FIXME - Use pointer! */
-
- //// ReactOS doesn't support cache icons. */
- HICON hIconSmIntern; /* Internal small icon, derived from hIcon */
-#endif
////
UINT Unicode:1; // !CSF_ANSIPROC
UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC
SBCALC SBCalc;
} SBWND, *PSBWND;
+typedef struct _MDIWND
+{
+ WND wnd;
+ DWORD dwReserved;
+ PVOID pmdi;
+} MDIWND, *PMDIWND;
+
+#define GWLP_MDIWND 4
+
typedef struct _MENUWND
{
WND wnd;
INT cy;
} OEMBITMAPINFO, *POEMBITMAPINFO;
+typedef enum _OBI_TYPES
+{
+ OBI_CLOSE = 0,
+ OBI_UPARROW = 46,
+ OBI_UPARROWI = 49,
+ OBI_DNARROW = 50,
+ OBI_DNARROWI = 53,
+ OBI_MNARROW = 62,
+ OBI_CTYPES = 93
+} OBI_TYPES;
+
typedef struct tagMBSTRING
{
WCHAR szName[16];
DWORD dwKeyCache;
DWORD dwAsyncKeyCache;
ULONG cCaptures;
- OEMBITMAPINFO oembmi[93];
+ OEMBITMAPINFO oembmi[OBI_CTYPES];
RECT rcScreenReal;
USHORT BitCount;
USHORT dmLogPixels;
HANDLE Data;
} PROPLISTITEM, *PPROPLISTITEM;
+#define PROPERTY_FLAG_SYSTEM 1
+
typedef struct _PROPERTY
{
LIST_ENTRY PropListEntry;
LUID luid;
} BROADCASTPARM, *PBROADCASTPARM;
-PTHREADINFO GetW32ThreadInfo(VOID);
-PPROCESSINFO GetW32ProcessInfo(VOID);
+struct _THREADINFO *GetW32ThreadInfo(VOID);
+struct _PROCESSINFO *GetW32ProcessInfo(VOID);
typedef struct _WNDMSG
{
ULONG bpp;
ULONG cx;
ULONG cy;
- INT cpcur;
- INT cicur;
+ UINT cpcur;
+ UINT cicur;
struct tagCURSORDATA *aspcur;
DWORD *aicur;
INT *ajifRate;
- INT iicur;
+ UINT iicur;
} CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
/* CURSORF_flags: */
DWORD dwUnknown1,
DWORD dwUnknown2,
DWORD dwUnknown3);
+
+DWORD
+APIENTRY
+NtUserDbgWin32HeapFail(
+ DWORD Unknown0,
+ DWORD Unknown1);
+
+DWORD
+APIENTRY
+NtUserDbgWin32HeapStat(
+ DWORD Unknown0,
+ DWORD Unknown1);
BOOL
NTAPI
DWORD
NTAPI
NtUserAlterWindowStyle(
- DWORD Unknown0,
- DWORD Unknown1,
- DWORD Unknown2);
+ HWND hWnd,
+ DWORD Index,
+ LONG NewValue);
BOOL
NTAPI
NtUserChangeDisplaySettings(
PUNICODE_STRING lpszDeviceName,
LPDEVMODEW lpDevMode,
- HWND hwnd,
DWORD dwflags,
LPVOID lParam);
/* Console commands for NtUserConsoleControl */
typedef enum _CONSOLECONTROL
{
- GuiConsoleWndClassAtom,
+ ConsoleCtrlDesktopConsoleThread = 0,
+ GuiConsoleWndClassAtom = 1,
ConsoleMakePalettePublic = 5,
ConsoleAcquireDisplayOwnership,
} CONSOLECONTROL, *PCONSOLECONTROL;
+typedef struct _DESKTOP_CONSOLE_THREAD
+{
+ HDESK DesktopHandle;
+ ULONG_PTR ThreadId;
+} DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD;
+
NTSTATUS
APIENTRY
NtUserConsoleControl(
NtUserEvent(
DWORD Unknown0);
-DWORD
+INT
NTAPI
NtUserExcludeUpdateRgn(
HDC hDC,
LPRECT lpRect,
BOOL fErase);
-int
+INT
NTAPI
NtUserGetUpdateRgn(
HWND hWnd,
NtUserRegisterClassExWOW(
WNDCLASSEXW* lpwcx,
PUNICODE_STRING pustrClassName,
- PUNICODE_STRING pustrCNVersion,
+ PUNICODE_STRING pustrCVersion,
PCLSMENUNAME pClassMenuName,
DWORD fnID,
DWORD Flags,
HWND hWnd,
ATOM Atom);
-DWORD
-NTAPI
+HDESK
+APIENTRY
NtUserResolveDesktop(
- DWORD dwUnknown1,
- DWORD dwUnknown2,
- DWORD dwUnknown3,
- DWORD dwUnknown4);
+ IN HANDLE ProcessHandle,
+ IN PUNICODE_STRING DesktopPath,
+ DWORD dwUnknown,
+ OUT HWINSTA* phWinSta);
DWORD
NTAPI
HANDLE Handle,
PICONINFO IconInfo);
-#ifdef NEW_CURSORICON
-
BOOL
NTAPI
NtUserSetCursorIconData(
_In_ HCURSOR hCursor,
- _In_ PUNICODE_STRING pustrModule,
- _In_ PUNICODE_STRING puSrcName,
+ _In_opt_ PUNICODE_STRING pustrModule,
+ _In_opt_ PUNICODE_STRING puSrcName,
_In_ const CURSORDATA *pCursorData);
typedef struct _tagFINDEXISTINGCURICONPARAM
_In_ PUNICODE_STRING pustrRsrc,
_In_ FINDEXISTINGCURICONPARAM *param);
-#else /* NEW_CURSORICON */
-
-BOOL
-NTAPI
-NtUserSetCursorIconData(
- HANDLE Handle,
- PBOOL fIcon,
- POINT *Hotspot,
- HMODULE hModule,
- HRSRC hRsrc,
- HRSRC hGroupRsrc);
-
-HICON
-NTAPI
-NtUserFindExistingCursorIcon(
- HMODULE hModule,
- HRSRC hRsrc,
- LONG cx,
- LONG cy);
-
-#endif /* NEW_CURSORICON */
-
DWORD
NTAPI
NtUserSetDbgTag(
DWORD Unknown0,
DWORD Unknown1);
+
+DWORD
+APIENTRY
+NtUserSetDbgTagCount(
+ DWORD Unknown0);
HWND
NTAPI
DWORD
NTAPI
NtUserSetRipFlags(
- DWORD Unknown0,
- DWORD Unknown1);
+ DWORD Unknown0);
DWORD
NTAPI
BOOL
NTAPI
NtUserValidateHandleSecure(
- HANDLE hHdl,
- BOOL Restricted);
+ HANDLE hHdl);
BOOL
NTAPI
BOOL
APIENTRY
NtUserValidateTimerCallback(
- HWND hWnd,
- WPARAM wParam,
LPARAM lParam);
DWORD
/* Should be done in usermode */
-/* (other FocusedItem values give the position of the focused item) */
-#define NO_SELECTED_ITEM 0xffff
-
-typedef struct tagROSMENUINFO
-{
- /* ----------- MENUINFO ----------- */
- DWORD cbSize;
- DWORD fMask;
- DWORD dwStyle;
- UINT cyMax;
- HBRUSH hbrBack;
- DWORD dwContextHelpID;
- ULONG_PTR dwMenuData;
- /* ----------- Extra ----------- */
- ULONG fFlags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
- UINT iItem; /* Currently focused item */
- UINT cItems; /* Number of items in the menu */
- WORD cxMenu; /* Width of the whole menu */
- WORD cyMenu; /* Height of the whole menu */
- ULONG cxTextAlign;
- PWND spwndNotify; /* window receiving the messages for ownerdraw */
- INT iTop;
- INT iMaxTop;
- DWORD dwArrowsOn:2;
-
- HMENU Self; /* Handle of this menu */
- HWND Wnd; /* Window containing the menu */
- BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
-} ROSMENUINFO, *PROSMENUINFO;
-
-typedef struct tagROSMENUITEMINFO
-{
- /* ----------- MENUITEMINFOW ----------- */
- UINT cbSize;
- UINT fMask;
- UINT fType;
- UINT fState;
- UINT wID;
- HMENU hSubMenu;
- HBITMAP hbmpChecked;
- HBITMAP hbmpUnchecked;
- DWORD dwItemData;
- LPWSTR dwTypeData;
- UINT cch;
- HBITMAP hbmpItem;
- /* ----------- Extra ----------- */
- RECT Rect; /* Item area (relative to menu window) */
- UINT dxTab; /* X position of text after Tab */
- LPWSTR lpstr; /* Copy of the text pointer in MenuItem->Text */
- SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
-} ROSMENUITEMINFO, *PROSMENUITEMINFO;
-
HMONITOR
NTAPI
NtUserMonitorFromPoint(