From d921c5d4934b732986ea897d65f49be1b34492ce Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Fri, 8 Oct 2004 20:50:06 +0000 Subject: [PATCH] Add some reason codes for ExitWindowsEx(). Also add EWX_FORCEIFHUNG. --- include/Makefile.in | 1 + include/reason.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ include/winreg.h | 13 +++++++++++++ include/winuser.h | 1 + 4 files changed, 59 insertions(+) create mode 100644 include/reason.h diff --git a/include/Makefile.in b/include/Makefile.in index 0dfc0fa2da1..d5ec69af142 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -180,6 +180,7 @@ WINDOWS_INCLUDES = \ pshpack4.h \ pshpack8.h \ ras.h \ + reason.h \ regstr.h \ richedit.h \ richole.h \ diff --git a/include/reason.h b/include/reason.h new file mode 100644 index 00000000000..941f3cf7771 --- /dev/null +++ b/include/reason.h @@ -0,0 +1,44 @@ +/* + * ExitWindowsEx() reason codes + * + * Copyright (C) the Wine project + * + * This library is free software; you can redistribute it and/or + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_REASON_H +#define __WINE_REASON_H + + +#define SHTDN_REASON_FLAG_USER_DEFINED 0x40000000 +#define SHTDN_REASON_FLAG_PLANNED 0x80000000 + +#define SHTDN_REASON_MAJOR_OTHER 0x00000000 +#define SHTDN_REASON_MAJOR_NONE 0x00000000 +#define SHTDN_REASON_MAJOR_HARDWARE 0x00010000 +#define SHTDN_REASON_MAJOR_OPERATINGSYSTEM 0x00020000 +#define SHTDN_REASON_MAJOR_SOFTWARE 0x00030000 +#define SHTDN_REASON_MAJOR_APPLICATION 0x00040000 +#define SHTDN_REASON_MAJOR_SYSTEM 0x00050000 +#define SHTDN_REASON_MAJOR_POWER 0x00060000 +#define SHTDN_REASON_MAJOR_LEGACY_API 0x00070000 + +#define SHTDN_REASON_MINOR_OTHER 0x00000000 +#define SHTDN_REASON_MINOR_NONE 0x000000ff + +#define SHTDN_REASON_UNKNOWN SHTDN_REASON_MINOR_NONE +#define SHTDN_REASON_LEGACY_API (SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED) + +#endif diff --git a/include/winreg.h b/include/winreg.h index f6df970828c..2e0edb3caf7 100644 --- a/include/winreg.h +++ b/include/winreg.h @@ -52,6 +52,19 @@ typedef struct value_entW { typedef ACCESS_MASK REGSAM; +/* + * InitiateSystemShutdown() reasons + */ +#include + +#define REASON_OTHER (SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER) +#define REASON_UNKNOWN SHTDN_REASON_UNKNOWN +#define REASON_LEGACY_API SHTDN_REASON_LEGACY_API +#define REASON_PLANNED_FLAG SHTDN_REASON_FLAG_PLANNED + +#define MAX_SHUTDOWN_TIMEOUT (10*365*24*60*60) + + BOOL WINAPI AbortSystemShutdownA(LPSTR); BOOL WINAPI AbortSystemShutdownW(LPWSTR); #define AbortSystemShutdown WINELIB_NAME_AW(AbortSystemShutdown) diff --git a/include/winuser.h b/include/winuser.h index 0c6c469887a..6cd6815c6d5 100644 --- a/include/winuser.h +++ b/include/winuser.h @@ -2526,6 +2526,7 @@ typedef struct #define EWX_REBOOT 2 #define EWX_FORCE 4 #define EWX_POWEROFF 8 +#define EWX_FORCEIFHUNG 16 /* SetLastErrorEx types */ #define SLE_ERROR 0x00000001