/*
* Copyright (C) the Wine project
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef _WINUSER_
#define _WINUSER_
#if !defined(_USER32_)
#else
#define WINUSERAPI
#endif
#ifndef RC_INVOKED
#include <stdarg.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Define a bunch of callback types */
#if defined(STRICT)
#else
#endif /* STRICT */
typedef struct tagUSEROBJECTFLAGS {
typedef struct tagBSMINFO {
/* Window stations */
/* Desktops */
/* flags for FILTERKEYS dwFlags field */
typedef struct tagFILTERKEYS
{
/* flags for TOGGLEKEYS dwFlags field */
typedef struct tagTOGGLEKEYS
{
/* flags for MOUSEKEYS dwFlags field */
typedef struct tagMOUSEKEYS
{
/* struct and defines for GetMouseMovePointsEx */
typedef struct tagMOUSEMOVEPOINT {
int x;
int y;
/* flags for STICKYKEYS dwFlags field */
typedef struct tagSTICKYKEYS
{
/* flags for ACCESSTIMEOUT dwFlags field */
typedef struct tagACCESSTIMEOUT
{
/* flags for SERIALKEYS dwFlags field */
typedef struct tagSERIALKEYSA
{
typedef struct tagSERIALKEYSW {
/* flags for SOUNDSENTRY dwFlags field */
typedef struct tagSOUNDSENTRYA
{
typedef struct tagSOUNDSENTRYW
{
/* flags for HIGHCONTRAST dwFlags field */
typedef struct tagHIGHCONTRASTA
{
typedef struct tagHIGHCONTRASTW
{
typedef struct tagEVENTMSG
{
/* WH_KEYBOARD_LL structure */
typedef struct tagKBDLLHOOKSTRUCT
{
/* WH_MOUSE_LL structure */
typedef struct tagMSLLHOOKSTRUCT
{
/* Mouse hook structure */
typedef struct
{
/* Hardware hook structure */
typedef struct
{
/* Debug hook structure */
typedef struct tagDEBUGHOOKINFO
{
#define HKL_PREV 0
typedef struct tagMOUSEINPUT
{
typedef struct tagKEYBDINPUT
{
typedef struct tagHARDWAREINPUT
{
#define INPUT_MOUSE 0
typedef struct tagINPUT
{
union
{
typedef struct tagRAWINPUTDEVICELIST
{
typedef struct tagRAWHID {
typedef struct tagRAWKEYBOARD {
typedef struct tagRAWMOUSE {
union {
struct {
typedef struct tagRAWINPUTHEADER {
typedef struct tagRAWINPUT {
union {
} data;
typedef struct tagRAWINPUTDEVICE {
typedef struct tagRID_DEVICE_INFO_MOUSE {
typedef struct tagRID_DEVICE_INFO_KEYBOARD {
typedef struct tagRID_DEVICE_INFO_HID {
typedef struct tagRID_DEVICE_INFO {
union {
#define RIM_INPUT 0
#define RIM_TYPEMOUSE 0
#define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize)))
#if (_WIN32_WINNT >= 0x0601)
#endif
typedef struct tagGUITHREADINFO
{
/***** Dialogs *****/
/* Gcc on Solaris has a version of this that we don't care about */
typedef struct tagANIMATIONINFO
{
typedef struct tagNMHDR
{
typedef struct tagDRAWTEXTPARAMS
{
typedef struct
{
typedef struct
{
typedef struct tagWINDOWPLACEMENT
{
/* WINDOWPLACEMENT flags */
/***** Dialogs *****/
#ifndef RC_INVOKED
# ifdef WINE_NO_UNICODE_MACROS /* force using a cast */
# else
# endif
#endif
/* Predefined resource types */
/* cbWndExtra bytes for dialog class */
/* Dialog messages */
/* Bit flags for DRAWITEMSTRUCT.CtlType */
/* Bit flags for DRAWITEMSTRUCT.itemAction */
/* Bit flags for DRAWITEMSTRUCT.itemState */
#ifndef NOCOLOR
#define COLOR_SCROLLBAR 0
/* win95 colors */
/* win98 colors */
/* WM_CTLCOLOR values */
#define CTLCOLOR_MSGBOX 0
#endif /* NOCOLOR */
/* IMESTATUS type */
/* IMESTATUS type specific data */
/* EDITWORDBREAKPROC code values */
#define WB_LEFT 0
/* Edit control notification codes */
/* New since win95 : EM_SETMARGIN parameters */
/* GetSystemMetrics() codes */
#define SM_CXSCREEN 0
/* wParam for WM_POWERBROADCAST */
/* MsgWaitForMultipleObjectsEx flags */
/* WM_GETDLGCODE values */
/* Used for EnumDisplaySettingsEx */
/* Used for PrintWindow */
/****** Window classes ******/
typedef struct tagCREATESTRUCTA
{
INT y;
INT x;
typedef struct tagCREATESTRUCTW
{
INT y;
INT x;
typedef struct tagPAINTSTRUCT
{
typedef struct tagCLIENTCREATESTRUCT
{
typedef struct tagMDICREATESTRUCTA
{
INT x;
INT y;
typedef struct tagMDICREATESTRUCTW
{
INT x;
INT y;
typedef struct tagSTYLESTRUCT {
/* Offsets for GetWindowLong() and GetWindowWord() */
#if !defined _WIN64 && !defined __WINESRC__
# define DWL_MSGRESULT 0
#endif /* _WIN64 && __WINESRC__ */
/* Offsets for GetWindowLongPtr() and SetWindowLongPtr() */
#define DWLP_MSGRESULT 0
/* GetWindow() constants */
#define GW_HWNDFIRST 0
/* GetAncestor() constants */
/* WM_GETMINMAXINFO struct */
typedef struct tagMINMAXINFO
{
/* RedrawWindow() flags */
/* debug flags */
/* WM_WINDOWPOSCHANGING/CHANGED struct */
typedef struct tagWINDOWPOS
{
INT x;
INT y;
/* WM_NCCALCSIZE parameter structure */
typedef struct
{
/* Offsets for GetClassLong() and GetClassWord() */
#if !defined _WIN64 && !defined __WINESRC__
#endif /* _WIN64 && __WINESRC__ */
/* BroadcastSystemMessage flags */
/***** Window hooks *****/
/* Hook values */
#define WH_JOURNALRECORD 0
/* Hook action codes */
#define HC_ACTION 0
/* CallMsgFilter() values */
#define MSGF_DIALOGBOX 0
typedef struct tagWNDCLASSA
{
typedef struct tagWNDCLASSW
{
typedef struct tagCOPYDATASTRUCT {
typedef struct tagMDINEXTMENU {
typedef struct tagMULTIKEYHELPA
{
typedef struct tagMULTIKEYHELPW
{
typedef struct tagHELPWININFOA {
int wStructSize;
int x;
int y;
int dx;
int dy;
int wMax;
typedef struct tagHELPWININFOW {
int wStructSize;
int x;
int y;
int dx;
int dy;
int wMax;
/* ChangeDisplaySettings return codes */
#define DISP_CHANGE_SUCCESSFUL 0
/* ChangeDisplaySettings.dwFlags */
typedef struct tagWNDCLASSEXA
{
typedef struct tagWNDCLASSEXW
{
typedef struct tagMSG
{
/* Cursors / Icons */
typedef struct _ICONINFO {
typedef struct _ICONINFOEXA
{
typedef struct _ICONINFOEXW
{
typedef struct tagCURSORINFO
{
/* this is the 6 byte accel struct used in Win32 when presented to the user */
typedef struct tagACCEL
{
#ifdef WORDS_BIGENDIAN
#else
#endif
/* Flags for TrackPopupMenu */
typedef struct tagTPMPARAMS
{
/*
* Combobox information
*/
typedef struct tagCOMBOBOXINFO
{
typedef struct tagMENUITEMINFOA {
typedef struct tagMENUITEMINFOW {
typedef struct tagMENUBARINFO {
typedef struct tagMENUINFO {
typedef struct {
typedef struct {
/* Field specifiers for MENUITEMINFO[AW] type. */
#define SB_LINEUP 0
#define SB_LINELEFT 0
/* Scroll bar selection constants */
#define SB_HORZ 0
/* EnableScrollBar() flags */
/* Static Control Messages */
#define STN_CLICKED 0
/* Scrollbar messages */
/* Scrollbar info */
typedef struct tagSCROLLINFO
{
typedef struct tagSCROLLBARINFO
{
/* GetScrollInfo() flags */
/* Listbox messages */
/* Listbox notification codes */
/* Listbox message return values */
#define LB_OKAY 0
/* Combo box messages */
/* Combo box notification codes */
/* Combo box message return values */
#define CB_OKAY 0
/* Structure pointed to by lParam of WM_HELP */
typedef struct tagHELPINFO
{
typedef struct tagMSGBOXPARAMSA
{
typedef struct tagMSGBOXPARAMSW
{
#ifndef CCHDEVICENAME
#endif
typedef struct tagMONITORINFO
{
typedef struct tagMONITORINFOEXA
{ /* the 4 first entries are the same as MONITORINFO */
typedef struct tagMONITORINFOEXW
{ /* the 4 first entries are the same as MONITORINFO */
#include <pshpack2.h>
typedef struct tagDLGTEMPLATE
{
short x;
short y;
short cx;
short cy;
} DLGTEMPLATE;
typedef struct tagDLGITEMTEMPLATE
{
short x;
short y;
short cx;
short cy;
#include <poppack.h>
/* CBT hook values */
#define HCBT_MOVESIZE 0
/* CBT hook structures */
typedef struct tagCBT_CREATEWNDA
{
typedef struct tagCBT_CREATEWNDW
{
typedef struct tagCBTACTIVATESTRUCT
{
/* modifiers for RegisterHotKey */
/* ids for RegisterHotKey */
/* keybd_event flags */
/* mouse_event flags */
/* ExitWindows() flags */
/* ExitWindowsEx() flags */
#define EWX_LOGOFF 0
/* SetLastErrorEx types */
/* Predefined resources */
#define MNC_IGNORE 0
/* SystemParametersInfo */
/* SystemParametersInfo flags */
typedef struct tagNONCLIENTMETRICSA {
typedef struct tagNONCLIENTMETRICSW {
typedef struct tagICONMETRICSA {
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
typedef struct tagICONMETRICSW {
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
typedef struct tagUPDATELAYEREDWINDOWINFO
{
#endif /* defined(_WINGDI_) && !defined(NOGDI) */
typedef struct tagMINIMIZEDMETRICS {
int iWidth;
int iHorzGap;
int iVertGap;
int iArrange;
/* Window scrolling */
/* CreateWindow() coordinates */
/* ChildWindowFromPointEx Flags */
/* PeekMessage() options */
/* SetTimer() limits */
/* AnimateWindow() flags */
/* FlashWindowEx() flags */
typedef struct {
/* SetLayeredWindowAttributes() flags */
/* UpdateLayeredWindow() flags */
/* SetWindowPos() and WINDOWPOS flags */
/* undocumented SWP flags - from SDK 3.1 */
/* SetWindowPos() hwndInsertAfter field values */
/* GetDCEx flags */
/* for GetMenuDefaultItem */
/* DrawText() flags */
/* DrawCaption()/DrawCaptionTemp() flags */
/* DrawEdge() flags */
/* border flags */
/* DrawFrameControl() uType's */
/* uState's */
/* additional state of the control */
/* Image type */
/* State type */
/* UserObjectInformation classes */
/* Sent as the lParam of a WM_DRAWITEM message to instruct how an
* owner drawn control is to be drawn */
typedef struct tagDRAWITEMSTRUCT
{
typedef struct tagMEASUREITEMSTRUCT
{
typedef struct tagDELETEITEMSTRUCT
{
typedef struct tagCOMPAREITEMSTRUCT
{
/* MapVirtualKey translation types */
#define MAPVK_VK_TO_VSC 0
typedef struct tagTRACKMOUSEEVENT {
/* Queue status flags */
/* Extra (undocumented) queue wake bits - see "Undoc. Windows" */
/* InSendMessageEx flags */
/* Shell hook values */
/* App commands */
#define FAPPCOMMAND_KEY 0
/* types of LoadImage */
#define IMAGE_BITMAP 0
/* loadflags to LoadImage */
/* Flags for DrawIconEx. */
/* RegisterDeviceNotification stuff */
/* used for GetWindowInfo() */
typedef struct tagWINDOWINFO {
/* used for GetTitleBarInfo() */
typedef struct tagTITLEBARINFO {
/* used by GetLastInputInfo */
typedef struct tagLASTINPUTINFO {
/* used by GetAltTabInfo */
typedef struct
{
/* SetWinEventHook() flags */
/* Object Id's */
#define CHILDID_SELF 0
#define INDEXID_OBJECT 0
#define INDEXID_CONTAINER 0
/* System object Id's */
#define OBJID_WINDOW 0
/* User event Id limits */
/* System events */
/* Console events */
/* Object events */
/* Sound events */
/* Alert events */
/* System state flags */
/* Lock codes for LockSetForegroundWindow */
/* Values for AllowSetForegroundWindow */
WINUSERAPI HDESK WINAPI CreateDesktopA(LPCSTR,LPCSTR,LPDEVMODEA,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
WINUSERAPI HDESK WINAPI CreateDesktopW(LPCWSTR,LPCWSTR,LPDEVMODEW,DWORD,ACCESS_MASK,LPSECURITY_ATTRIBUTES);
WINUSERAPI BOOL WINAPI UpdateLayeredWindow(HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD);
#endif /* defined(_WINGDI_) && !defined(NOGDI) */
/* no CharNextExW (doesn't make sense) */
/* no CharPrevExW (doesn't make sense) */
#define CreateWindowA(className,titleName,style,x,y,width,height,parent,menu,instance,param) CreateWindowExA(0,className,titleName,style,x,y,width,height,parent,menu,instance,param)
#define CreateWindowW(className,titleName,style,x,y,width,height,parent,menu,instance,param) CreateWindowExW(0,className,titleName,style,x,y,width,height,parent,menu,instance,param)
WINUSERAPI HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,INT,INT,INT,INT,HWND,HMENU,HINSTANCE,LPVOID);
WINUSERAPI HWND WINAPI CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,INT,INT,INT,INT,HWND,HMENU,HINSTANCE,LPVOID);
WINUSERAPI HWND WINAPI CreateMDIWindowW(LPCWSTR,LPCWSTR,DWORD,INT,INT,INT,INT,HWND,HINSTANCE,LPARAM);
#define DialogBoxIndirectA(inst,template,owner,func) DialogBoxIndirectParamA(inst,template,owner,func,0)
#define DialogBoxIndirectW(inst,template,owner,func) DialogBoxIndirectParamW(inst,template,owner,func,0)
#ifdef _WIN64
#else
#endif
WINUSERAPI BOOL WINAPI GetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
#ifdef _WIN64
#else
#endif
#define PostAppMessageA(thread,msg,wparam,lparam) PostThreadMessageA((DWORD)(thread),msg,wparam,lparam)
#define PostAppMessageW(thread,msg,wparam,lparam) PostThreadMessageW((DWORD)(thread),msg,wparam,lparam)
#ifdef _WIN64
#else
#endif
#ifdef _WIN64
#else
#endif
WINUSERAPI HWINEVENTHOOK WINAPI SetWinEventHook(DWORD,DWORD,HMODULE,WINEVENTPROC,DWORD,DWORD,DWORD);
/* Undocumented functions */
/* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */
#ifdef __WINESRC__
#endif
#ifdef __cplusplus
}
#endif
#endif /* _WINUSER_ */