Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEarnie Boyd <earnie@users.sf.net>2001-12-03 22:59:34 +0300
committerEarnie Boyd <earnie@users.sf.net>2001-12-03 22:59:34 +0300
commit6dfcb5a3a9bb858d36c9ab0545ac5ea8726897ba (patch)
tree8022cf0bf4134927b9c484a71d204b8e390f0d37 /winsup/w32api
parent2a50e3df6f78914a051398e2a3b46882cfe0df27 (diff)
2001-12-03 Earnie Boyd <earnie@users.sf.net>
* include/accctrl.h: Change \r\n to \n. 2001-11-30 Danny Smith <dannysmith@users.sourceforge.net> * include/ipexport.h (IP_UNIDIRECTIONAL_ADAPTER_ADDRESS): Add structure definition. * include/iptypes.h (IP_PER_ADAPTER_INFO): Ditto. * include/iphlpapi.h (AddIPAddress,CreateProxyArpEntry, DeleteIPAddress,DeleteProxyArpEntry,EnableRouter, FlushIpNetTable,GetAdapterIndex,GetPerAdapterInfo, GetUniDirectionalAdapterInfo,SendARP,SetAdapterIpAddress, UnenableRouter) Declare functions. * lib/iphlpapi.def: Add function names to import lib. 2001-11-24 Danny Smith <dannysmith@users.sourceforge.net> * include/winnt.h (PACCESS_MASK): Add typedef. * include/aclapi.h: New file. * include/acctrl.h: New file. * lib/advapi32.def: Add missing symbols. * lib/test.c: Add #include <aclapi.h>. 2001-11-23 Danny Smith <dannysmith@users.sourceforge.net> * include/winbase.h (OSVERSIONINFO[AW],VER_PLATFORM_WIN32s, VER_PLATFORM_WIN32_WINDOWS,VER_PLATFORM_WIN32_NT): Move from here ... * include/winnt.h: ... to here. * include/winbase.h (VerifyVersionInfo[AW]): Add declaration. * include/winnt.h (OSVERSIONINFOEX[AW]): Add structure definitions and typedefs. (VER_NT_WORKSTATION,VER_NT_DOMAIN_CONTROLLER,VER_NT_SERVER): Add defines. 2001-11-19 Pierre Muller <muller@ics.u-strasbg.fr> * w32api/include/winnt.h: prepare SSE register support. (CONTEXT_EXTENDED_REGISTERS): Add new define. (MAXIMUM_SUPPORTED_EXTENSION): New define. (struct CONTEXT): ExtendedRegisters field added. 2001-11-16 Danny Smith <dannysmith@users.sourceforge.net> * include/winuser.h (tagALTTABINFO, tagCOMBOBOXINFO, tagCURSORINFO, tagMENUBARINFO, tagMENUINFO, tagMONITORINFO tagSCROLLBARINFO, tagTITLEBARINFO. tagWINDOWINFO, tagLASTINPUTINFO ): Define new structures. (EndMenu, GetAltTabInfo[AW],GetComboBoxInfo,GetCursorInfo, GetLastInputInfo, GetListBoxInfo, GetMenuBarInfo, GetMonitorInfo[AW], GetScrollBarInfo, GetTitleBarInfo, GetWindowInfo, GetWindowModuleFileName[AW],GetMenuInfo SetMenuInfo): Add new prototypes. * lib/user32.def: Add import stubs for above functions. * include/winuser.h (IDC_STATIC): Protect against prior definition. 2001-11-12 Corinna Vinschen <corinna@vinschen.de> * include/winbase.h (OSVERSIONINFOEX): Add definition. * include/winnt.h: Add VER_NT_* and VER_SUITE_* defines. 2001-11-10 Robert Collins <rbtcollins@hotmail.com> * include/winnt.h: Add Danny Smith's text comment about gcc compiler warnings with _AUTHORITY #defines. 2001-11-09 Robert Collins <rbtcollins@hotmail.com> * include/winnt.h (GetCurrentFiber): Create a prototype before the implementation; (GetFiberData): Ditto. 2001-11-09 Robert Collins <rbtcollins@hotmail.com> * include/winnt.h: Backout last change.
Diffstat (limited to 'winsup/w32api')
-rw-r--r--winsup/w32api/ChangeLog116
-rw-r--r--winsup/w32api/include/accctrl.h312
-rw-r--r--winsup/w32api/include/aclapi.h101
-rw-r--r--winsup/w32api/include/commdlg.h17
-rw-r--r--winsup/w32api/include/ipexport.h4
-rw-r--r--winsup/w32api/include/iphlpapi.h13
-rw-r--r--winsup/w32api/include/iptypes.h7
-rw-r--r--winsup/w32api/include/rpcdcep.h2
-rw-r--r--winsup/w32api/include/rpcproxy.h13
-rw-r--r--winsup/w32api/include/winbase.h11
-rw-r--r--winsup/w32api/include/windef.h6
-rw-r--r--winsup/w32api/include/windows.h7
-rw-r--r--winsup/w32api/include/winnt.h87
-rw-r--r--winsup/w32api/include/winsock.h14
-rw-r--r--winsup/w32api/include/winsock2.h14
-rw-r--r--winsup/w32api/include/winuser.h108
-rw-r--r--winsup/w32api/lib/advapi32.def215
-rw-r--r--winsup/w32api/lib/dinput.c2
-rw-r--r--winsup/w32api/lib/iphlpapi.def12
-rw-r--r--winsup/w32api/lib/kernel32.c26
-rw-r--r--winsup/w32api/lib/scrnsave.c4
-rw-r--r--winsup/w32api/lib/test.c1
-rw-r--r--winsup/w32api/lib/user32.def19
23 files changed, 1042 insertions, 69 deletions
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog
index 5f46d8970..a2ad39ec3 100644
--- a/winsup/w32api/ChangeLog
+++ b/winsup/w32api/ChangeLog
@@ -1,3 +1,39 @@
+2001-12-03 Earnie Boyd <earnie@users.sf.net>
+
+ * include/accctrl.h: Change \r\n to \n.
+
+2001-11-30 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/ipexport.h (IP_UNIDIRECTIONAL_ADAPTER_ADDRESS):
+ Add structure definition.
+ * include/iptypes.h (IP_PER_ADAPTER_INFO): Ditto.
+ * include/iphlpapi.h (AddIPAddress,CreateProxyArpEntry,
+ DeleteIPAddress,DeleteProxyArpEntry,EnableRouter,
+ FlushIpNetTable,GetAdapterIndex,GetPerAdapterInfo,
+ GetUniDirectionalAdapterInfo,SendARP,SetAdapterIpAddress,
+ UnenableRouter) Declare functions.
+ * lib/iphlpapi.def: Add function names to import lib.
+
+2001-11-24 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/winnt.h (PACCESS_MASK): Add typedef.
+ * include/aclapi.h: New file.
+ * include/acctrl.h: New file.
+ * lib/advapi32.def: Add missing symbols.
+ * lib/test.c: Add #include <aclapi.h>.
+
+2001-11-23 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/winbase.h (OSVERSIONINFO[AW],VER_PLATFORM_WIN32s,
+ VER_PLATFORM_WIN32_WINDOWS,VER_PLATFORM_WIN32_NT): Move from
+ here ...
+ * include/winnt.h: ... to here.
+ * include/winbase.h (VerifyVersionInfo[AW]): Add declaration.
+ * include/winnt.h (OSVERSIONINFOEX[AW]): Add structure definitions
+ and typedefs.
+ (VER_NT_WORKSTATION,VER_NT_DOMAIN_CONTROLLER,VER_NT_SERVER):
+ Add defines.
+
2001-11-19 Pierre Muller <muller@ics.u-strasbg.fr>
* w32api/include/winnt.h: prepare SSE register support.
@@ -5,6 +41,22 @@
(MAXIMUM_SUPPORTED_EXTENSION): New define.
(struct CONTEXT): ExtendedRegisters field added.
+2001-11-16 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/winuser.h (tagALTTABINFO, tagCOMBOBOXINFO,
+ tagCURSORINFO, tagMENUBARINFO, tagMENUINFO, tagMONITORINFO
+ tagSCROLLBARINFO, tagTITLEBARINFO. tagWINDOWINFO,
+ tagLASTINPUTINFO ): Define new structures.
+ (EndMenu, GetAltTabInfo[AW],GetComboBoxInfo,GetCursorInfo,
+ GetLastInputInfo, GetListBoxInfo, GetMenuBarInfo,
+ GetMonitorInfo[AW], GetScrollBarInfo, GetTitleBarInfo,
+ GetWindowInfo, GetWindowModuleFileName[AW],GetMenuInfo
+ SetMenuInfo): Add new prototypes.
+ * lib/user32.def: Add import stubs for above functions.
+
+ * include/winuser.h (IDC_STATIC): Protect against prior
+ definition.
+
2001-11-12 Corinna Vinschen <corinna@vinschen.de>
* include/winbase.h (OSVERSIONINFOEX): Add definition.
@@ -12,12 +64,13 @@
2001-11-10 Robert Collins <rbtcollins@hotmail.com>
- * include/winnt.h: Add Danny Smith's text comment about gcc compiler warnings
- with _AUTHORITY #defines.
+ * include/winnt.h: Add Danny Smith's text comment about gcc compiler
+ warnings with _AUTHORITY #defines.
2001-11-09 Robert Collins <rbtcollins@hotmail.com>
- * include/winnt.h (GetCurrentFiber): Create a prototype before the implementation;
+ * include/winnt.h (GetCurrentFiber): Create a prototype before the
+ implementation;
(GetFiberData): Ditto.
2001-11-09 Robert Collins <rbtcollins@hotmail.com>
@@ -26,11 +79,63 @@
2001-11-08 Robert Collins <rbtcollins@hotmail.com>
- * include/winnt.h: Define *_SID_AUTHORITY appropriately. (nested
- structures.)
+ * include/winnt.h: Define *_SID_AUTHORITY appropriately,
GetCurrentFiber: Create a prototype before the implementation;
GetFiberData: Ditto.
+2001-11-06 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/winuser.h (IDC_STATIC): Add define.
+ Thanks to: Benoit Laniel.
+
+2001-11-05 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/commdlg.h: Include <unknwn.h> rather than local
+ definition of LPUKNOWN.
+ * include/rpcproxy.h: Don't include if ndef CINTERFACE.
+ Emit warning.
+
+2001-11-05 Mattia Barbon <mbarbon@dsi.unive.it>
+
+ * include/windef.h (DECLSPEC_NORTEURN): Add an empty version
+ for Watcom.
+ (DECLARE_STDCALL_P): Use it to add __stdcall decoration for
+ functions of the form 'type * function(...)' in a way compatible
+ with both Watcom and GCC.
+ * include/rpcdcep.h (I_RpcAllocate): Use DECLARE_STDCALL_P.
+ * include/rpcproxy.h (CInterfaceProxyVtbl): Do not declare
+ zero-sized arrays for Watcom. Mark as __extension for __GNUC__.
+ * include/windows.h: Watcom can use anonymous structs/unions.
+ * include/winnt.h: Watcom can use 64 bit ints.
+ (GetCurrentFiber): Add another inline definition using
+ Watcom inline assembly syntax.
+ (GetFiberData): Likewise.
+ * include/winsock.h (inet_ntoa): Use DECLARE_STDCALL_P.
+ (gethostbyname): Likewise.
+ (gethostbyaddr}: Likewise.
+ (getservbyport}: Likewise.
+ (getservbyname}: Likewise.
+ (getprotobynumber}: Likewise.
+ (getprotobyname}: Likewise.
+ * include/winsock2.h (inet_ntoa): Use DECLARE_STDCALL_P.
+ (gethostbyname}: Likewise.
+ (gethostbyaddr}: Likewise.
+ (getservbyport}: Likewise.
+ (getservbyname}: Likewise.
+ (getprotobynumber}: Likewise.
+ (getprotobyname}: Likewise.
+ * lib/diinut.c: Correction for Watcom.
+ * lib/kernel32.c (GetCurrentFiber): Add another definition
+ using Watcom inline assembly syntax.
+ (GetFiberData): Likewise.
+ * lib/scrnsave.c (WinMain): Add break after default:
+ clause.
+
+2001-11-04 "stefan" <stefan@lkcc.org>
+
+ * include/winnt.h (GetCurrentFiber): Add prototype.
+ (GetFiberData): Likewise.
+
2001-11-04 Christopher Faylor <cgf@redhat.com>
* lib/Makefile.in: Add .NOTPARALLEL target since dlltool cannot run in
@@ -53,7 +158,6 @@
(PrintDlgEx[AW]): Add function declaration.
* lib/comdlg32.def (PrintDlgEx[AW]): Add function stubs.
* ChangeLog: Fix typo in last entry.
-
2001-11-01 TAMURA Kent <tkent@users.sourceforge.net>
diff --git a/winsup/w32api/include/accctrl.h b/winsup/w32api/include/accctrl.h
new file mode 100644
index 000000000..3db42795b
--- /dev/null
+++ b/winsup/w32api/include/accctrl.h
@@ -0,0 +1,312 @@
+#ifndef _ACCCRTL_H
+#define _ACCCRTL_H
+#include <wtypes.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define AccFree LocalFree
+#define ACTRL_RESERVED 0x00000000
+#define ACTRL_ACCESS_PROTECTED 0x00000001
+#define ACTRL_ACCESS_ALLOWED 0x00000001
+#define ACTRL_ACCESS_DENIED 0x00000002
+#define ACTRL_AUDIT_SUCCESS 0x00000004
+#define ACTRL_AUDIT_FAILURE 0x00000008
+#define ACTRL_SYSTEM_ACCESS 0x04000000
+#define ACTRL_DELETE 0x08000000
+#define ACTRL_READ_CONTROL 0x10000000
+#define ACTRL_CHANGE_ACCESS 0x20000000
+#define ACTRL_CHANGE_OWNER 0x40000000
+#define ACTRL_SYNCHRONIZE 0x80000000
+#define ACTRL_STD_RIGHTS_ALL 0xf8000000
+
+#define ACTRL_FILE_READ 0x00000001
+#define ACTRL_FILE_WRITE 0x00000002
+#define ACTRL_FILE_APPEND 0x00000004
+#define ACTRL_FILE_READ_PROP 0x00000008
+#define ACTRL_FILE_WRITE_PROP 0x00000010
+#define ACTRL_FILE_EXECUTE 0x00000020
+#define ACTRL_FILE_READ_ATTRIB 0x00000080
+#define ACTRL_FILE_WRITE_ATTRIB 0x00000100
+#define ACTRL_FILE_CREATE_PIPE 0x00000200
+#define ACTRL_DIR_LIST 0x00000001
+#define ACTRL_DIR_CREATE_OBJECT 0x00000002
+#define ACTRL_DIR_CREATE_CHILD 0x00000004
+#define ACTRL_DIR_DELETE_CHILD 0x00000040
+#define ACTRL_DIR_TRAVERSE 0x00000020
+#define ACTRL_KERNEL_TERMINATE 0x00000001
+#define ACTRL_KERNEL_THREAD 0x00000002
+#define ACTRL_KERNEL_VM 0x00000004
+#define ACTRL_KERNEL_VM_READ 0x00000008
+#define ACTRL_KERNEL_VM_WRITE 0x00000010
+#define ACTRL_KERNEL_DUP_HANDLE 0x00000020
+#define ACTRL_KERNEL_PROCESS 0x00000040
+#define ACTRL_KERNEL_SET_INFO 0x00000080
+#define ACTRL_KERNEL_GET_INFO 0x00000100
+#define ACTRL_KERNEL_CONTROL 0x00000200
+#define ACTRL_KERNEL_ALERT 0x00000400
+#define ACTRL_KERNEL_GET_CONTEXT 0x00000800
+#define ACTRL_KERNEL_SET_CONTEXT 0x00001000
+#define ACTRL_KERNEL_TOKEN 0x00002000
+#define ACTRL_KERNEL_IMPERSONATE 0x00004000
+#define ACTRL_KERNEL_DIMPERSONATE 0x00008000
+#define ACTRL_PRINT_SADMIN 0x00000001
+#define ACTRL_PRINT_SLIST 0x00000002
+#define ACTRL_PRINT_PADMIN 0x00000004
+#define ACTRL_PRINT_PUSE 0x00000008
+#define ACTRL_PRINT_JADMIN 0x00000010
+#define ACTRL_SVC_GET_INFO 0x00000001
+#define ACTRL_SVC_SET_INFO 0x00000002
+#define ACTRL_SVC_STATUS 0x00000004
+#define ACTRL_SVC_LIST 0x00000008
+#define ACTRL_SVC_START 0x00000010
+#define ACTRL_SVC_STOP 0x00000020
+#define ACTRL_SVC_PAUSE 0x00000040
+#define ACTRL_SVC_INTERROGATE 0x00000080
+#define ACTRL_SVC_UCONTROL 0x00000100
+#define ACTRL_REG_QUERY 0x00000001
+#define ACTRL_REG_SET 0x00000002
+#define ACTRL_REG_CREATE_CHILD 0x00000004
+#define ACTRL_REG_LIST 0x00000008
+#define ACTRL_REG_NOTIFY 0x00000010
+#define ACTRL_REG_LINK 0x00000020
+#define ACTRL_WIN_CLIPBRD 0x00000001
+#define ACTRL_WIN_GLOBAL_ATOMS 0x00000002
+#define ACTRL_WIN_CREATE 0x00000004
+#define ACTRL_WIN_LIST_DESK 0x00000008
+#define ACTRL_WIN_LIST 0x00000010
+#define ACTRL_WIN_READ_ATTRIBS 0x00000020
+#define ACTRL_WIN_WRITE_ATTRIBS 0x00000040
+#define ACTRL_WIN_SCREEN 0x00000080
+#define ACTRL_WIN_EXIT 0x00000100
+#define ACTRL_ACCESS_NO_OPTIONS 0x00000000
+#define ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES 0x00000001
+#define ACCCTRL_DEFAULT_PROVIDERA "Windows NT Access Provider"
+#define ACCCTRL_DEFAULT_PROVIDERW L"Windows NT Access Provider"
+#define TRUSTEE_ACCESS_ALLOWED 0x00000001L
+#define TRUSTEE_ACCESS_READ 0x00000002L
+#define TRUSTEE_ACCESS_WRITE 0x00000004L
+#define TRUSTEE_ACCESS_EXPLICIT 0x00000001L
+#define TRUSTEE_ACCESS_READ_WRITE (TRUSTEE_ACCESS_READ | TRUSTEE_ACCESS_WRITE)
+#define TRUSTEE_ACCESS_ALL 0xFFFFFFFFL
+#define NO_INHERITANCE 0x0
+#define SUB_OBJECTS_ONLY_INHERIT 0x1
+#define SUB_CONTAINERS_ONLY_INHERIT 0x2
+#define SUB_CONTAINERS_AND_OBJECTS_INHERIT 0x3
+#define INHERIT_NO_PROPAGATE 0x4
+#define INHERIT_ONLY 0x8
+#define INHERITED_ACCESS_ENTRY 0x10
+#define INHERITED_PARENT 0x10000000
+#define INHERITED_GRANDPARENT 0x20000000
+
+typedef ULONG INHERIT_FLAGS, *PINHERIT_FLAGS;
+typedef ULONG ACCESS_RIGHTS, *PACCESS_RIGHTS;
+
+typedef enum _ACCESS_MODE {
+ NOT_USED_ACCESS = 0,
+ GRANT_ACCESS,
+ SET_ACCESS,
+ DENY_ACCESS,
+ REVOKE_ACCESS,
+ SET_AUDIT_SUCCESS,
+ SET_AUDIT_FAILURE
+} ACCESS_MODE;
+typedef enum _SE_OBJECT_TYPE {
+ SE_UNKNOWN_OBJECT_TYPE = 0,
+ SE_FILE_OBJECT,
+ SE_SERVICE,
+ SE_PRINTER,
+ SE_REGISTRY_KEY,
+ SE_LMSHARE,
+ SE_KERNEL_OBJECT,
+ SE_WINDOW_OBJECT,
+ SE_DS_OBJECT,
+ SE_DS_OBJECT_ALL,
+ SE_PROVIDER_DEFINED_OBJECT,
+ SE_WMIGUID_OBJECT
+} SE_OBJECT_TYPE;
+typedef enum _TRUSTEE_TYPE {
+ TRUSTEE_IS_UNKNOWN,
+ TRUSTEE_IS_USER,
+ TRUSTEE_IS_GROUP,
+ TRUSTEE_IS_DOMAIN,
+ TRUSTEE_IS_ALIAS,
+ TRUSTEE_IS_WELL_KNOWN_GROUP,
+ TRUSTEE_IS_DELETED,
+ TRUSTEE_IS_INVALID,
+ TRUSTEE_IS_COMPUTER
+} TRUSTEE_TYPE;
+typedef enum _TRUSTEE_FORM {
+ TRUSTEE_IS_SID,
+ TRUSTEE_IS_NAME,
+ TRUSTEE_BAD_FORM,
+ TRUSTEE_IS_OBJECTS_AND_SID,
+ TRUSTEE_IS_OBJECTS_AND_NAME
+} TRUSTEE_FORM;
+typedef enum _MULTIPLE_TRUSTEE_OPERATION {
+ NO_MULTIPLE_TRUSTEE,
+ TRUSTEE_IS_IMPERSONATE
+} MULTIPLE_TRUSTEE_OPERATION;
+typedef struct _TRUSTEE_A {
+ struct _TRUSTEE_A *pMultipleTrustee;
+ MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
+ TRUSTEE_FORM TrusteeForm;
+ TRUSTEE_TYPE TrusteeType;
+ LPSTR ptstrName;
+} TRUSTEE_A, *PTRUSTEE_A, TRUSTEEA, *PTRUSTEEA;
+typedef struct _TRUSTEE_W {
+ struct _TRUSTEE_W *pMultipleTrustee;
+ MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
+ TRUSTEE_FORM TrusteeForm;
+ TRUSTEE_TYPE TrusteeType;
+ LPWSTR ptstrName;
+} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW;
+typedef struct _ACTRL_ACCESS_ENTRYA {
+ TRUSTEE_A Trustee;
+ ULONG fAccessFlags;
+ ACCESS_RIGHTS Access;
+ ACCESS_RIGHTS ProvSpecificAccess;
+ INHERIT_FLAGS Inheritance;
+ LPSTR lpInheritProperty;
+} ACTRL_ACCESS_ENTRYA, *PACTRL_ACCESS_ENTRYA;
+typedef struct _ACTRL_ACCESS_ENTRYW {
+ TRUSTEE_W Trustee;
+ ULONG fAccessFlags;
+ ACCESS_RIGHTS Access;
+ ACCESS_RIGHTS ProvSpecificAccess;
+ INHERIT_FLAGS Inheritance;
+ LPWSTR lpInheritProperty;
+} ACTRL_ACCESS_ENTRYW, *PACTRL_ACCESS_ENTRYW;
+typedef struct _ACTRL_ACCESS_ENTRY_LISTA {
+ ULONG cEntries;
+ ACTRL_ACCESS_ENTRYA *pAccessList;
+} ACTRL_ACCESS_ENTRY_LISTA, *PACTRL_ACCESS_ENTRY_LISTA;
+typedef struct _ACTRL_ACCESS_ENTRY_LISTW {
+ ULONG cEntries;
+ ACTRL_ACCESS_ENTRYW *pAccessList;
+} ACTRL_ACCESS_ENTRY_LISTW, *PACTRL_ACCESS_ENTRY_LISTW;
+typedef struct _ACTRL_PROPERTY_ENTRYA {
+ LPSTR lpProperty;
+ PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;
+ ULONG fListFlags;
+} ACTRL_PROPERTY_ENTRYA, *PACTRL_PROPERTY_ENTRYA;
+typedef struct _ACTRL_PROPERTY_ENTRYW {
+ LPWSTR lpProperty;
+ PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;
+ ULONG fListFlags;
+} ACTRL_PROPERTY_ENTRYW, *PACTRL_PROPERTY_ENTRYW;
+typedef struct _ACTRL_ALISTA {
+ ULONG cEntries;
+ PACTRL_PROPERTY_ENTRYA pPropertyAccessList;
+} ACTRL_ACCESSA, *PACTRL_ACCESSA, ACTRL_AUDITA, *PACTRL_AUDITA;
+typedef struct _ACTRL_ALISTW {
+ ULONG cEntries;
+ PACTRL_PROPERTY_ENTRYW pPropertyAccessList;
+} ACTRL_ACCESSW, *PACTRL_ACCESSW, ACTRL_AUDITW, *PACTRL_AUDITW;
+typedef struct _TRUSTEE_ACCESSA {
+ LPSTR lpProperty;
+ ACCESS_RIGHTS Access;
+ ULONG fAccessFlags;
+ ULONG fReturnedAccess;
+} TRUSTEE_ACCESSA, *PTRUSTEE_ACCESSA;
+typedef struct _TRUSTEE_ACCESSW {
+ LPWSTR lpProperty;
+ ACCESS_RIGHTS Access;
+ ULONG fAccessFlags;
+ ULONG fReturnedAccess;
+} TRUSTEE_ACCESSW, *PTRUSTEE_ACCESSW;
+typedef struct _ACTRL_OVERLAPPED {
+ _ANONYMOUS_UNION
+ union {
+ PVOID Provider;
+ ULONG Reserved1;
+ } DUMMYUNIONNAME;
+ ULONG Reserved2;
+ HANDLE hEvent;
+} ACTRL_OVERLAPPED, *PACTRL_OVERLAPPED;
+typedef struct _ACTRL_ACCESS_INFOA {
+ ULONG fAccessPermission;
+ LPSTR lpAccessPermissionName;
+} ACTRL_ACCESS_INFOA, *PACTRL_ACCESS_INFOA;
+typedef struct _ACTRL_ACCESS_INFOW {
+ ULONG fAccessPermission;
+ LPWSTR lpAccessPermissionName;
+} ACTRL_ACCESS_INFOW, *PACTRL_ACCESS_INFOW;
+typedef struct _ACTRL_CONTROL_INFOA {
+ LPSTR lpControlId;
+ LPSTR lpControlName;
+} ACTRL_CONTROL_INFOA, *PACTRL_CONTROL_INFOA;
+typedef struct _ACTRL_CONTROL_INFOW {
+ LPWSTR lpControlId;
+ LPWSTR lpControlName;
+} ACTRL_CONTROL_INFOW, *PACTRL_CONTROL_INFOW;
+typedef struct _EXPLICIT_ACCESS_A {
+ DWORD grfAccessPermissions;
+ ACCESS_MODE grfAccessMode;
+ DWORD grfInheritance;
+ TRUSTEE_A Trustee;
+} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;
+typedef struct _EXPLICIT_ACCESS_W {
+ DWORD grfAccessPermissions;
+ ACCESS_MODE grfAccessMode;
+ DWORD grfInheritance;
+ TRUSTEE_W Trustee;
+} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;
+typedef struct _OBJECTS_AND_SID {
+ DWORD ObjectsPresent;
+ GUID ObjectTypeGuid;
+ GUID InheritedObjectTypeGuid;
+ SID * pSid;
+} OBJECTS_AND_SID, *POBJECTS_AND_SID;
+typedef struct _OBJECTS_AND_NAME_A {
+ DWORD ObjectsPresent;
+ SE_OBJECT_TYPE ObjectType;
+ LPSTR ObjectTypeName;
+ LPSTR InheritedObjectTypeName;
+ LPSTR ptstrName;
+} OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A;
+typedef struct _OBJECTS_AND_NAME_W {
+ DWORD ObjectsPresent;
+ SE_OBJECT_TYPE ObjectType;
+ LPWSTR ObjectTypeName;
+ LPWSTR InheritedObjectTypeName;
+ LPWSTR ptstrName;
+} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
+
+
+#ifdef UNICODE
+#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW
+typedef TRUSTEE_W TRUSTEE_, *PTRUSTEE_;
+typedef TRUSTEEW TRUSTEE, *PTRUSTEE;
+typedef ACTRL_ACCESSW ACTRL_ACCESS, *PACTRL_ACCESS;
+typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
+typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
+typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
+typedef ACTRL_AUDITW ACTRL_AUDIT, *PACTRL_AUDIT;
+typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
+typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
+typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
+typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
+typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+#else
+#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA
+typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_;
+typedef TRUSTEEA TRUSTEE, *PTRUSTEE;
+typedef ACTRL_ACCESSA ACTRL_ACCESS, *PACTRL_ACCESS;
+typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
+typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
+typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
+typedef ACTRL_AUDITA ACTRL_AUDIT, *PACTRL_AUDIT;
+typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
+typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
+typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
+typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
+typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ACCCRTL_H */
diff --git a/winsup/w32api/include/aclapi.h b/winsup/w32api/include/aclapi.h
new file mode 100644
index 000000000..7e7e62960
--- /dev/null
+++ b/winsup/w32api/include/aclapi.h
@@ -0,0 +1,101 @@
+#ifndef _ACLAPI_H
+#define _ACLAPI_H
+
+#include <windows.h>
+#include <accctrl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
+VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
+DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
+ ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
+DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
+ ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
+VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
+VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
+VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
+ LPSTR,LPSTR,LPSTR);
+VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
+ LPWSTR,LPWSTR,LPWSTR);
+VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
+VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
+VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
+VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
+DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
+DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
+DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
+DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
+DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
+DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
+DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+ PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+ PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+ PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
+TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
+LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
+LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
+TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
+TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
+DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
+ PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
+DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
+ PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
+DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
+DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
+DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+
+/* These are deprecated by MS and not documented in Aug 2001 PSDK
+BuildImpersonateExplicitAccessWithName[AW]
+BuildImpersonateTrustee[AW]
+GetMultipleTrustee[AW]
+GetMultipleTrusteeOperation[AW]
+*/
+
+#ifdef UNICODE
+#define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
+#define BuildSecurityDescriptor BuildSecurityDescriptorW
+#define BuildTrusteeWithName BuildTrusteeWithNameW
+#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
+#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
+#define BuildTrusteeWithSid BuildTrusteeWithSidW
+#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
+#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
+#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
+#define GetNamedSecurityInfo GetNamedSecurityInfoW
+#define GetTrusteeForm GetTrusteeFormW
+#define GetTrusteeName GetTrusteeNameW
+#define GetTrusteeType GetTrusteeTypeW
+#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
+#define SetEntriesInAcl SetEntriesInAclW
+#define SetNamedSecurityInfo SetNamedSecurityInfoW
+#else
+#define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
+#define BuildSecurityDescriptor BuildSecurityDescriptorA
+#define BuildTrusteeWithName BuildTrusteeWithNameA
+#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
+#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
+#define BuildTrusteeWithSid BuildTrusteeWithSidA
+#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
+#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
+#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
+#define GetNamedSecurityInfo GetNamedSecurityInfoA
+#define GetTrusteeForm GetTrusteeFormA
+#define GetTrusteeName GetTrusteeNameA
+#define GetTrusteeType GetTrusteeTypeA
+#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
+#define SetEntriesInAcl SetEntriesInAclA
+#define SetNamedSecurityInfo SetNamedSecurityInfoA
+#endif /* UNICODE */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
diff --git a/winsup/w32api/include/commdlg.h b/winsup/w32api/include/commdlg.h
index cc19c41ad..d1a4433ee 100644
--- a/winsup/w32api/include/commdlg.h
+++ b/winsup/w32api/include/commdlg.h
@@ -427,21 +427,8 @@ typedef struct tagPDW {
HANDLE hSetupTemplate;
} PRINTDLGW,*LPPRINTDLGW;
#if (WINVER >= 0x0500)
-/* We could #include <unknwn.h> here but that would bring
-in a cascade of rpc dependencies */
-#ifndef __IUnknown_INTERFACE_DEFINED__
-#define __IUnknown_INTERFACE_DEFINED__
-#undef INTERFACE
-#define INTERFACE IUnknown
-DECLARE_INTERFACE(IUnknown)
-{
- STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
-};
-typedef IUnknown *LPUNKNOWN;
-#endif
-#include <prsht.h> /* for HPROPSHEETPAGE */
+#include <unknwn.h> /* for LPUNKNOWN */
+#include <prsht.h> /* for HPROPSHEETPAGE */
typedef struct tagPRINTPAGERANGE {
DWORD nFromPage;
DWORD nToPage;
diff --git a/winsup/w32api/include/ipexport.h b/winsup/w32api/include/ipexport.h
index 4505dc467..d2c755330 100644
--- a/winsup/w32api/include/ipexport.h
+++ b/winsup/w32api/include/ipexport.h
@@ -74,6 +74,10 @@ typedef struct {
LONG NumAdapters;
IP_ADAPTER_INDEX_MAP Adapter[ANY_SIZE];
} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO;
+typedef struct _IP_UNIDIRECTIONAL_ADAPTER_ADDRESS {
+ ULONG NumAdapters;
+ IPAddr Address[1];
+} IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, *PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;
#ifdef __cplusplus
}
#endif
diff --git a/winsup/w32api/include/iphlpapi.h b/winsup/w32api/include/iphlpapi.h
index e71da0aab..d2d112d3c 100644
--- a/winsup/w32api/include/iphlpapi.h
+++ b/winsup/w32api/include/iphlpapi.h
@@ -6,10 +6,17 @@
#ifdef __cplusplus
extern "C" {
#endif
+DWORD WINAPI AddIPAddress(IPAddr,IPMask,DWORD,PULONG,PULONG);
DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW);
DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW);
+DWORD WINAPI CreateProxyArpEntry(DWORD,DWORD,DWORD);
+DWORD WINAPI DeleteIPAddress(ULONG);
DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW);
DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW);
+DWORD WINAPI DeleteProxyArpEntry(DWORD,DWORD,DWORD);
+DWORD WINAPI EnableRouter(HANDLE*,OVERLAPPED*);
+DWORD WINAPI FlushIpNetTable(DWORD);
+DWORD WINAPI GetAdapterIndex(LPWSTR,PULONG);
DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO,PULONG);
DWORD WINAPI GetBestInterface(IPAddr,PDWORD);
DWORD WINAPI GetBestRoute(DWORD,DWORD,PMIB_IPFORWARDROW);
@@ -24,19 +31,25 @@ DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE,PULONG,BOOL);
DWORD WINAPI GetIpStatistics(PMIB_IPSTATS);
DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG);
DWORD WINAPI GetNumberOfInterfaces(PDWORD);
+DWORD WINAPI GetPerAdapterInfo(ULONG,PIP_PER_ADAPTER_INFO, PULONG);
BOOL WINAPI GetRTTAndHopCount(IPAddr,PULONG,ULONG,PULONG);
DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS);
DWORD WINAPI GetTcpTable(PMIB_TCPTABLE,PDWORD,BOOL);
+DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,PULONG);
DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS);
DWORD WINAPI GetUdpTable(PMIB_UDPTABLE,PDWORD,BOOL);
DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP);
DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP);
+DWORD WINAPI NotifyAddrChange(PHANDLE,LPOVERLAPPED);
+DWORD WINAPI NotifyRouteChange(PHANDLE,LPOVERLAPPED);
+DWORD WINAPI SendARP(IPAddr,IPAddr,PULONG,PULONG);
DWORD WINAPI SetIfEntry(PMIB_IFROW);
DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW);
DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW);
DWORD WINAPI SetIpStatistics(PMIB_IPSTATS);
DWORD WINAPI SetIpTTL(UINT);
DWORD WINAPI SetTcpEntry(PMIB_TCPROW);
+DWORD WINAPI UnenableRouter(OVERLAPPED*, LPDWORD);
#ifdef __cplusplus
}
#endif
diff --git a/winsup/w32api/include/iptypes.h b/winsup/w32api/include/iptypes.h
index 09abe15d6..8b5e8ae5e 100644
--- a/winsup/w32api/include/iptypes.h
+++ b/winsup/w32api/include/iptypes.h
@@ -50,6 +50,12 @@ typedef struct _IP_ADAPTER_INFO {
time_t LeaseObtained;
time_t LeaseExpires;
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
+typedef struct _IP_PER_ADAPTER_INFO {
+ UINT AutoconfigEnabled;
+ UINT AutoconfigActive;
+ PIP_ADDR_STRING CurrentDnsServer;
+ IP_ADDR_STRING DnsServerList;
+} IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
typedef struct _FIXED_INFO {
char HostName[MAX_HOSTNAME_LEN+4] ;
char DomainName[MAX_DOMAIN_NAME_LEN+4];
@@ -61,6 +67,7 @@ typedef struct _FIXED_INFO {
UINT EnableProxy;
UINT EnableDns;
} FIXED_INFO, *PFIXED_INFO;
+
#ifdef __cplusplus
}
#endif
diff --git a/winsup/w32api/include/rpcdcep.h b/winsup/w32api/include/rpcdcep.h
index 8479360a9..184d352f2 100644
--- a/winsup/w32api/include/rpcdcep.h
+++ b/winsup/w32api/include/rpcdcep.h
@@ -81,7 +81,7 @@ long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*);
void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*);
void __stdcall I_RpcClearMutex(I_RPC_MUTEX);
void __stdcall I_RpcDeleteMutex(I_RPC_MUTEX);
-__stdcall void *I_RpcAllocate(unsigned int);
+DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int);
void __stdcall I_RpcFree(void*);
void __stdcall I_RpcPauseExecution(unsigned long);
typedef void(__stdcall *PRPC_RUNDOWN) (void*);
diff --git a/winsup/w32api/include/rpcproxy.h b/winsup/w32api/include/rpcproxy.h
index fa968fc3a..5c6dba0f7 100644
--- a/winsup/w32api/include/rpcproxy.h
+++ b/winsup/w32api/include/rpcproxy.h
@@ -6,6 +6,9 @@
*/
#ifndef _RPCPROXY_H
#define _RPCPROXY_H
+#if defined __cplusplus && !defined CINTERFACE
+#warning "rpcproxy type definitions require CINTERFACE"
+#else
#ifdef __cplusplus
extern "C" {
#endif
@@ -121,7 +124,14 @@ typedef struct tagCInterfaceProxyHeader {
} CInterfaceProxyHeader;
typedef struct tagCInterfaceProxyVtbl {
CInterfaceProxyHeader header;
+#if defined(__WATCOMC__)
+ void *Vtbl[1];
+#else
+#ifdef __GNUC__
+__extension__
+#endif
void *Vtbl[0];
+#endif
} CInterfaceProxyVtbl;
typedef void (__RPC_STUB *PRPC_STUB_FUNCTION)(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*);
typedef struct tagCInterfaceStubHeader {
@@ -181,5 +191,6 @@ NdrCStdStubBuffer2_Release(IRpcStubBuffer*,IPSFactoryBuffer*);
#ifdef __cplusplus
}
#endif
-#endif
+#endif /* defined __cplusplus && !defined CINTERFACE */
+#endif /* ndef _RPCPROXY_H */
diff --git a/winsup/w32api/include/winbase.h b/winsup/w32api/include/winbase.h
index a75a7d5b1..a71c11568 100644
--- a/winsup/w32api/include/winbase.h
+++ b/winsup/w32api/include/winbase.h
@@ -427,9 +427,6 @@ extern "C" {
#define CBR_115200 115200
#define CBR_128000 128000
#define CBR_256000 256000
-#define VER_PLATFORM_WIN32s 0
-#define VER_PLATFORM_WIN32_WINDOWS 1
-#define VER_PLATFORM_WIN32_NT 2
#define BACKUP_INVALID 0
#define BACKUP_DATA 1
#define BACKUP_EA_DATA 2
@@ -1572,6 +1569,8 @@ BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED);
BOOL WINAPI UnmapViewOfFile(PVOID);
BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,PVOID,DWORD);
BOOL WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,PVOID,DWORD);
+BOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG);
+BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG);
PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD);
BOOL WINAPI VirtualFree(PVOID,DWORD,DWORD);
BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,DWORD,DWORD);
@@ -1610,8 +1609,6 @@ DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL);
typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO;
typedef WIN32_FIND_DATAW WIN32_FIND_DATA,*LPWIN32_FIND_DATA;
typedef HW_PROFILE_INFOW HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
-typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
-typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
#define AddAtom AddAtomW
#define BackupEventLog BackupEventLogW
@@ -1737,6 +1734,7 @@ typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
#define SetFileSecurity SetFileSecurityW
#define SetVolumeLabel SetVolumeLabelW
#define UpdateResource UpdateResourceW
+#define VerifyVersionInfo VerifyVersionInfoW
#define WaitNamedPipe WaitNamedPipeW
#define WritePrivateProfileSection WritePrivateProfileSectionW
#define WritePrivateProfileString WritePrivateProfileStringW
@@ -1747,8 +1745,6 @@ typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
typedef STARTUPINFOA STARTUPINFO,*LPSTARTUPINFO;
typedef WIN32_FIND_DATAA WIN32_FIND_DATA,*LPWIN32_FIND_DATA;
typedef HW_PROFILE_INFOA HW_PROFILE_INFO,*LPHW_PROFILE_INFO;
-typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
-typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
#define AddAtom AddAtomA
#define BackupEventLog BackupEventLogA
@@ -1874,6 +1870,7 @@ typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
#define SetFileSecurity SetFileSecurityA
#define SetVolumeLabel SetVolumeLabelA
#define UpdateResource UpdateResourceA
+#define VerifyVersionInfo VerifyVersionInfoA
#define WaitNamedPipe WaitNamedPipeA
#define WritePrivateProfileSection WritePrivateProfileSectionA
#define WritePrivateProfileString WritePrivateProfileStringA
diff --git a/winsup/w32api/include/windef.h b/winsup/w32api/include/windef.h
index 2d16d4492..f4de5cadb 100644
--- a/winsup/w32api/include/windef.h
+++ b/winsup/w32api/include/windef.h
@@ -88,7 +88,13 @@ extern "C" {
#define DECLSPEC_IMPORT __declspec(dllimport)
#define DECLSPEC_EXPORT __declspec(dllexport)
+#ifdef __GNUC__
#define DECLSPEC_NORETURN __declspec(noreturn)
+#define DECLARE_STDCALL_P( type ) __stdcall type
+#elif defined(__WATCOMC__)
+#define DECLSPEC_NORETURN
+#define DECLARE_STDCALL_P( type ) type __stdcall
+#endif /* __GNUC__/__WATCOMC__ */
#define MAKEWORD(a,b) ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
#define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
#define LOWORD(l) ((WORD)((DWORD)(l)))
diff --git a/winsup/w32api/include/windows.h b/winsup/w32api/include/windows.h
index 64e70c99b..ce8928b76 100644
--- a/winsup/w32api/include/windows.h
+++ b/winsup/w32api/include/windows.h
@@ -48,10 +48,13 @@
#else
#if defined(__cplusplus)
#define _ANONYMOUS_UNION __extension__
-#endif
+#endif /* __cplusplus */
#endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
#endif /* NONAMELESSUNION */
-#endif /* __GNUC__ */
+#elif defined(__WATCOMC__)
+#define _ANONYMOUS_UNION
+#define _ANONYMOUS_STRUCT
+#endif /* __GNUC__/__WATCOMC__ */
#ifndef _ANONYMOUS_UNION
#define _ANONYMOUS_UNION
diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h
index 1a21d8f98..a88605d98 100644
--- a/winsup/w32api/include/winnt.h
+++ b/winsup/w32api/include/winnt.h
@@ -117,7 +117,9 @@ typedef WORD LANGID;
#define _INTEGRAL_MAX_BITS 64
#undef __int64
#define __int64 long long
-#endif
+#elif defined(__WATCOMC__) && (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64 )
+#define _HAVE_INT64
+#endif /* __GNUC__/__WATCOMC */
#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)
typedef __int64 LONGLONG;
typedef unsigned __int64 DWORDLONG;
@@ -1057,6 +1059,12 @@ typedef BYTE BOOLEAN,*PBOOLEAN;
#define TAPE_LOCK 3
#define TAPE_UNLOCK 4
#define TAPE_FORMAT 5
+#define VER_PLATFORM_WIN32s 0
+#define VER_PLATFORM_WIN32_WINDOWS 1
+#define VER_PLATFORM_WIN32_NT 2
+#define VER_NT_WORKSTATION 1
+#define VER_NT_DOMAIN_CONTROLLER 2
+#define VER_NT_SERVER 3
#define BTYPE(x) ((x)&N_BTMASK)
#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
#define ISFCN(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_FUNCTION<<N_BTSHFT))
@@ -1089,7 +1097,7 @@ typedef BYTE BOOLEAN,*PBOOLEAN;
#define VER_SUITE_DATACENTER 128
#define VER_SUITE_PERSONAL 512
#ifndef RC_INVOKED
-typedef DWORD ACCESS_MASK;
+typedef DWORD ACCESS_MASK, *PACCESS_MASK;
#ifndef _GUID_DEFINED /* also defined in basetyps.h */
#define _GUID_DEFINED
typedef struct _GUID {
@@ -1790,7 +1798,6 @@ typedef struct _SE_IMPERSONATION_STATE {
BOOLEAN EffectiveOnly;
SECURITY_IMPERSONATION_LEVEL Level;
} SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE;
-
typedef struct _SID_IDENTIFIER_AUTHORITY {
BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
@@ -2015,6 +2022,48 @@ typedef struct _EVENTLOGRECORD {
DWORD DataLength;
DWORD DataOffset;
} EVENTLOGRECORD,*PEVENTLOGRECORD;
+typedef struct _OSVERSIONINFOA {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ CHAR szCSDVersion[128];
+} OSVERSIONINFOA,*POSVERSIONINFOA,*LPOSVERSIONINFOA;
+typedef struct _OSVERSIONINFOW {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ WCHAR szCSDVersion[128];
+} OSVERSIONINFOW,*POSVERSIONINFOW,*LPOSVERSIONINFOW;
+typedef struct _OSVERSIONINFOEXA {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ CHAR szCSDVersion[128];
+ WORD wServicePackMajor;
+ WORD wServicePackMinor;
+ WORD wSuiteMask;
+ BYTE wProductType;
+ BYTE wReserved;
+} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
+typedef struct _OSVERSIONINFOEXW {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ WCHAR szCSDVersion[128];
+ WORD wServicePackMajor;
+ WORD wServicePackMinor;
+ WORD wSuiteMask;
+ BYTE wProductType;
+ BYTE wReserved;
+} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
#pragma pack(push,2)
typedef struct _IMAGE_VXD_HEADER {
WORD e32_magic;
@@ -2542,6 +2591,20 @@ typedef struct _REPARSE_POINT_INFORMATION {
WORD ReparseDataLength;
WORD UnparsedNameLength;
} REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION;
+
+#ifdef UNICODE
+typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
+typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
+#else
+typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO;
+typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX;
+#endif
+
+#if defined(__GNUC__)
+
+PVOID GetCurrentFiber(void);
+PVOID GetFiberData(void);
+
PVOID GetCurrentFiber(void);
extern __inline__ PVOID GetCurrentFiber(void)
{
@@ -2553,6 +2616,7 @@ extern __inline__ PVOID GetCurrentFiber(void)
);
return ret;
}
+
PVOID GetFiberData(void);
extern __inline__ PVOID GetFiberData(void)
{
@@ -2566,6 +2630,23 @@ extern __inline__ PVOID GetFiberData(void)
return ret;
}
+#else
+
+extern PVOID GetCurrentFiber(void);
+#pragma aux GetCurrentFiber = \
+ "mov eax, dword ptr fs:0x10" \
+ value [eax] \
+ modify [eax];
+
+extern PVOID GetFiberData(void);
+#pragma aux GetFiberData = \
+ "mov eax, dword ptr fs:0x10" \
+ "mov eax, [eax]" \
+ value [eax] \
+ modify [eax];
+
+#endif /* __GNUC__ */
+
#endif
#ifdef __cplusplus
}
diff --git a/winsup/w32api/include/winsock.h b/winsup/w32api/include/winsock.h
index e88ad3b87..8ab489998 100644
--- a/winsup/w32api/include/winsock.h
+++ b/winsup/w32api/include/winsock.h
@@ -429,7 +429,7 @@ int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
int PASCAL getsockopt(SOCKET,int,int,char*,int*);
unsigned long PASCAL inet_addr(const char*);
-PASCAL char *inet_ntoa(struct in_addr);
+DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
int PASCAL listen(SOCKET,int);
int PASCAL recv(SOCKET,char*,int,int);
int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
@@ -438,12 +438,12 @@ int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
int PASCAL setsockopt(SOCKET,int,int,const char*,int);
int PASCAL shutdown(SOCKET,int);
SOCKET PASCAL socket(int,int,int);
-PASCAL struct hostent *gethostbyaddr(const char*,int,int);
-PASCAL struct hostent *gethostbyname(const char*);
-PASCAL struct servent *getservbyport(int,const char*);
-PASCAL struct servent *getservbyname(const char*,const char*);
-PASCAL struct protoent *getprotobynumber(int);
-PASCAL struct protoent *getprotobyname(const char*);
+DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
+DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
+DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
+DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
int PASCAL WSAStartup(WORD,LPWSADATA);
int PASCAL WSACleanup(void);
void PASCAL WSASetLastError(int);
diff --git a/winsup/w32api/include/winsock2.h b/winsup/w32api/include/winsock2.h
index 721d341f0..1af69337e 100644
--- a/winsup/w32api/include/winsock2.h
+++ b/winsup/w32api/include/winsock2.h
@@ -448,7 +448,7 @@ int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
int PASCAL getsockopt(SOCKET,int,int,char*,int*);
unsigned long PASCAL inet_addr(const char*);
-PASCAL char *inet_ntoa(struct in_addr);
+DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
int PASCAL listen(SOCKET,int);
int PASCAL recv(SOCKET,char*,int,int);
int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
@@ -457,12 +457,12 @@ int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
int PASCAL setsockopt(SOCKET,int,int,const char*,int);
int PASCAL shutdown(SOCKET,int);
SOCKET PASCAL socket(int,int,int);
-PASCAL struct hostent *gethostbyaddr(const char*,int,int);
-PASCAL struct hostent *gethostbyname(const char*);
-PASCAL struct servent *getservbyport(int,const char*);
-PASCAL struct servent *getservbyname(const char*,const char*);
-PASCAL struct protoent *getprotobynumber(int);
-PASCAL struct protoent *getprotobyname(const char*);
+DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
+DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
+DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
+DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
int PASCAL WSAStartup(WORD,LPWSADATA);
int PASCAL WSACleanup(void);
void PASCAL WSASetLastError(int);
diff --git a/winsup/w32api/include/winuser.h b/winsup/w32api/include/winuser.h
index 26986ccd2..4c5777bef 100644
--- a/winsup/w32api/include/winuser.h
+++ b/winsup/w32api/include/winuser.h
@@ -544,6 +544,9 @@ extern "C" {
#define GCL_MENUNAME (-8)
#define GCL_STYLE (-26)
#define GCL_WNDPROC (-24)
+#ifndef IDC_STATIC /* May be predefined by resource compiler. */
+#define IDC_STATIC (-1)
+#endif
#define IDC_ARROW MAKEINTRESOURCE(32512)
#define IDC_IBEAM MAKEINTRESOURCE(32513)
#define IDC_WAIT MAKEINTRESOURCE(32514)
@@ -2447,6 +2450,88 @@ typedef struct tagSTYLESTRUCT {
DWORD styleOld;
DWORD styleNew;
} STYLESTRUCT,*LPSTYLESTRUCT;
+typedef struct tagALTTABINFO {
+ DWORD cbSize;
+ int cItems;
+ int cColumns;
+ int cRows;
+ int iColFocus;
+ int iRowFocus;
+ int cxItem;
+ int cyItem;
+ POINT ptStart;
+} ALTTABINFO, *PALTTABINFO, *LPALTTABINFO;
+typedef struct tagCOMBOBOXINFO {
+ DWORD cbSize;
+ RECT rcItem;
+ RECT rcButton;
+ DWORD stateButton;
+ HWND hwndCombo;
+ HWND hwndItem;
+ HWND hwndList;
+} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
+typedef struct tagCURSORINFO {
+ DWORD cbSize;
+ DWORD flags;
+ HCURSOR hCursor;
+ POINT ptScreenPos;
+} CURSORINFO,*PCURSORINFO,*LPCURSORINFO;
+typedef struct tagMENUBARINFO {
+ DWORD cbSize;
+ RECT rcBar;
+ HMENU hMenu;
+ HWND hwndMenu;
+ BOOL fBarFocused:1;
+ BOOL fFocused:1;
+} MENUBARINFO, *PMENUBARINFO;
+typedef struct tagMENUINFO {
+ DWORD cbSize;
+ DWORD fMask;
+ DWORD dwStyle;
+ UINT cyMax;
+ HBRUSH hbrBack;
+ DWORD dwContextHelpID;
+ ULONG_PTR dwMenuData;
+} MENUINFO, *LPMENUINFO;
+typedef MENUINFO CONST *LPCMENUINFO;
+#define CCHILDREN_SCROLLBAR 5
+typedef struct tagSCROLLBARINFO {
+ DWORD cbSize;
+ RECT rcScrollBar;
+ int dxyLineButton;
+ int xyThumbTop;
+ int xyThumbBottom;
+ int reserved;
+ DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
+} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO;
+#define CCHILDREN_TITLEBAR 5
+typedef struct tagTITLEBARINFO {
+ DWORD cbSize;
+ RECT rcTitleBar;
+ DWORD rgstate[CCHILDREN_TITLEBAR + 1];
+} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
+typedef struct tagWINDOWINFO {
+ DWORD cbSize;
+ RECT rcWindow;
+ RECT rcClient;
+ DWORD dwStyle;
+ DWORD dwExStyle;
+ DWORD dwWindowStatus;
+ UINT cxWindowBorders;
+ UINT cyWindowBorders;
+ ATOM atomWindowType;
+ WORD wCreatorVersion;
+} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
+typedef struct tagLASTINPUTINFO {
+ UINT cbSize;
+ DWORD dwTime;
+} LASTINPUTINFO, * PLASTINPUTINFO;
+typedef struct tagMONITORINFO {
+ DWORD cbSize;
+ RECT rcMonitor;
+ RECT rcWork;
+ DWORD dwFlags;
+} MONITORINFO,*LPMONITORINFO;
#define AnsiToOem CharToOemA
#define OemToAnsi OemToCharA
@@ -2613,6 +2698,7 @@ BOOL WINAPI EnableScrollBar(HWND,UINT,UINT);
BOOL WINAPI EnableWindow(HWND,BOOL);
BOOL WINAPI EndDeferWindowPos(HDWP);
BOOL WINAPI EndDialog(HWND,int);
+BOOL WINAPI EndMenu(VOID);
BOOL WINAPI EndPaint(HWND,const PAINTSTRUCT*);
BOOL WINAPI EnumChildWindows(HWND,ENUMWINDOWSPROC,LPARAM);
UINT WINAPI EnumClipboardFormats(UINT);
@@ -2747,6 +2833,21 @@ int WINAPI GetWindowTextLengthA(HWND);
int WINAPI GetWindowTextLengthW(HWND);
int WINAPI GetWindowTextW(HWND,LPWSTR,int);
WORD WINAPI GetWindowWord(HWND,int);
+BOOL WINAPI GetAltTabInfoA(HWND,int,PALTTABINFO,LPSTR,UINT);
+BOOL WINAPI GetAltTabInfoW(HWND,int,PALTTABINFO,LPWSTR,UINT);
+BOOL WINAPI GetComboBoxInfo(HWND,PCOMBOBOXINFO);
+BOOL WINAPI GetCursorInfo(PCURSORINFO);
+BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO);
+DWORD WINAPI GetListBoxInfo(HWND);
+BOOL WINAPI GetMenuBarInfo(HWND,LONG,LONG,PMENUBARINFO);
+BOOL WINAPI GetMenuInfo(HMENU,LPMENUINFO);
+BOOL WINAPI GetScrollBarInfo(HWND,LONG,PSCROLLBARINFO);
+BOOL WINAPI GetTitleBarInfo(HWND,PTITLEBARINFO);
+BOOL WINAPI GetWindowInfo(HWND,PWINDOWINFO);
+BOOL WINAPI GetMonitorInfoA(HMONITOR,LPMONITORINFO);
+BOOL WINAPI GetMonitorInfoW(HMONITOR,LPMONITORINFO);
+UINT WINAPI GetWindowModuleFileNameA(HWND,LPSTR,UINT);
+UINT WINAPI GetWindowModuleFileNameW(HWND,LPWSTR,UINT);
BOOL WINAPI GrayStringA(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,int,int,int,int,int);
BOOL WINAPI GrayStringW(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,int,int,int,int,int);
BOOL WINAPI HideCaret(HWND);
@@ -2903,6 +3004,7 @@ BOOL WINAPI SetKeyboardState(PBYTE);
BOOL WINAPI SetMenu(HWND,HMENU);
BOOL WINAPI SetMenuContextHelpId(HMENU,DWORD);
BOOL WINAPI SetMenuDefaultItem(HMENU,UINT,UINT);
+BOOL WINAPI SetMenuInfo(HMENU,LPCMENUINFO);
BOOL WINAPI SetMenuItemBitmaps(HMENU,UINT,UINT,HBITMAP,HBITMAP);
BOOL WINAPI SetMenuItemInfoA(HMENU,UINT,BOOL,LPCMENUITEMINFOA);
BOOL WINAPI SetMenuItemInfoW( HMENU,UINT,BOOL,LPCMENUITEMINFOW);
@@ -3070,12 +3172,15 @@ typedef MULTIKEYHELPW MULTIKEYHELP,*PMULTIKEYHELP,*LPMULTIKEYHELP;
#define GetMenuItemInfo GetMenuItemInfoW
#define GetMenuString GetMenuStringW
#define GetMessage GetMessageW
+#define GetMonitorInfo GetMonitorInfoW
#define GetProp GetPropW
#define GetTabbedTextExtent GetTabbedTextExtentW
#define GetUserObjectInformation GetUserObjectInformationW
#define GetWindowLong GetWindowLongW
#define GetWindowText GetWindowTextW
#define GetWindowTextLength GetWindowTextLengthW
+#define GetAltTabInfo GetAltTabInfoW
+#define GetWindowModuleFileName GetWindowModuleFileNameW
#define GrayString GrayStringW
#define InsertMenu InsertMenuW
#define InsertMenuItem InsertMenuItemW
@@ -3218,12 +3323,15 @@ typedef MULTIKEYHELPA MULTIKEYHELP,*PMULTIKEYHELP,*LPMULTIKEYHELP;
#define GetMenuItemInfo GetMenuItemInfoA
#define GetMenuString GetMenuStringA
#define GetMessage GetMessageA
+#define GetMonitorInfo GetMonitorInfoA
#define GetProp GetPropA
#define GetTabbedTextExtent GetTabbedTextExtentA
#define GetUserObjectInformation GetUserObjectInformationA
#define GetWindowLong GetWindowLongA
#define GetWindowText GetWindowTextA
#define GetWindowTextLength GetWindowTextLengthA
+#define GetAltTabInfo GetAltTabInfoA
+#define GetWindowModuleFileName GetWindowModuleFileNameA
#define GrayString GrayStringA
#define InsertMenu InsertMenuA
#define InsertMenuItem InsertMenuItemA
diff --git a/winsup/w32api/lib/advapi32.def b/winsup/w32api/lib/advapi32.def
index 7cceaa1de..0c75d8efe 100644
--- a/winsup/w32api/lib/advapi32.def
+++ b/winsup/w32api/lib/advapi32.def
@@ -5,10 +5,25 @@ AbortSystemShutdownW@4
AccessCheck@32
AccessCheckAndAuditAlarmA@44
AccessCheckAndAuditAlarmW@44
+AccessCheckByType@44
+AccessCheckByTypeAndAuditAlarmA@64
+AccessCheckByTypeAndAuditAlarmW@64
+AccessCheckByTypeResultList@44
+AccessCheckByTypeResultListAndAuditAlarmA@64
+AccessCheckByTypeResultListAndAuditAlarmByHandleA@68
+AccessCheckByTypeResultListAndAuditAlarmByHandleW@68
+AccessCheckByTypeResultListAndAuditAlarmW@64
AddAccessAllowedAce@16
+AddAccessAllowedAceEx@20
+AddAccessAllowedObjectAce@28
AddAccessDeniedAce@16
+AddAccessDeniedAceEx@20
+AddAccessDeniedObjectAce@28
AddAce@20
AddAuditAccessAce@24
+AddAuditAccessAceEx@28
+AddAuditAccessObjectAce@36
+AddUsersToEncryptedFile@8
AdjustTokenGroups@24
AdjustTokenPrivileges@24
AllocateAndInitializeSid@44
@@ -17,34 +32,87 @@ AreAllAccessesGranted@8
AreAnyAccessesGranted@8
BackupEventLogA@8
BackupEventLogW@8
-BuildExplicitAccessWithName@20
-BuildSecurityDescriptor@36
-BuildTrusteeWithName@8
-BuildTrusteeWithSid@8
+BuildExplicitAccessWithNameA@20
+BuildExplicitAccessWithNameW@20
+BuildImpersonateExplicitAccessWithNameA@24
+BuildImpersonateExplicitAccessWithNameW@24
+BuildImpersonateTrusteeA@8
+BuildImpersonateTrusteeW@8
+BuildSecurityDescriptorA@36
+BuildSecurityDescriptorW@36
+BuildTrusteeWithNameA@8
+BuildTrusteeWithNameW@8
+BuildTrusteeWithObjectsAndNameA@24
+BuildTrusteeWithObjectsAndNameW@24
+BuildTrusteeWithObjectsAndSidA@20
+BuildTrusteeWithObjectsAndSidW@20
+BuildTrusteeWithSidA@8
+BuildTrusteeWithSidW@8
+CancelOverlappedAccess@4
+ChangeServiceConfig2A@12
+ChangeServiceConfig2W@12
ChangeServiceConfigA@44
ChangeServiceConfigW@44
+CheckTokenMembership@12
ClearEventLogA@8
ClearEventLogW@8
+CloseEncryptedFileRaw@4
CloseEventLog@4
CloseServiceHandle@4
+CloseTrace@8
+CommandLineFromMsiDescriptor@12
ControlService@12
+ControlTraceA@20
+ControlTraceW@20
+ConvertAccessToSecurityDescriptorA@20
+ConvertAccessToSecurityDescriptorW@20
+ConvertSDToStringSDRootDomainA@24
+ConvertSDToStringSDRootDomainW@24
+ConvertSecurityDescriptorToAccessA@28
+ConvertSecurityDescriptorToAccessNamedA@28
+ConvertSecurityDescriptorToAccessNamedW@28
+ConvertSecurityDescriptorToAccessW@28
+ConvertSecurityDescriptorToStringSecurityDescriptorA@20
+ConvertSecurityDescriptorToStringSecurityDescriptorW@20
+ConvertSidToStringSidA@8
+ConvertSidToStringSidW@8
+ConvertStringSDToSDRootDomainA@20
+ConvertStringSDToSDRootDomainW@20
+ConvertStringSecurityDescriptorToSecurityDescriptorA@16
+ConvertStringSecurityDescriptorToSecurityDescriptorW@16
+ConvertStringSidToSidA@8
+ConvertStringSidToSidW@8
+ConvertToAutoInheritPrivateObjectSecurity@24
CopySid@12
CreatePrivateObjectSecurity@24
+CreatePrivateObjectSecurityEx@32
CreateProcessAsUserA@44
CreateProcessAsUserW@44
+CreateProcessWithLogonW@44
+CreateRestrictedToken@36
CreateServiceA@52
CreateServiceW@52
+CreateTraceInstanceId@8
CryptAcquireContextA@20
CryptAcquireContextW@20
+CryptContextAddRef@12
CryptCreateHash@20
CryptDecrypt@24
CryptDeriveKey@20
CryptDestroyHash@4
CryptDestroyKey@4
+CryptDuplicateHash@16
+CryptDuplicateKey@16
CryptEncrypt@28
+CryptEnumProviderTypesA@24
+CryptEnumProviderTypesW@24
+CryptEnumProvidersA@24
+CryptEnumProvidersW@24
CryptExportKey@24
CryptGenKey@16
CryptGenRandom@12
+CryptGetDefaultProviderA@20
+CryptGetDefaultProviderW@20
CryptGetHashParam@20
CryptGetKeyParam@20
CryptGetProvParam@20
@@ -57,15 +125,20 @@ CryptSetHashParam@16
CryptSetKeyParam@16
CryptSetProvParam@16
CryptSetProviderA@8
+CryptSetProviderExA@16
+CryptSetProviderExW@16
CryptSetProviderW@8
CryptSignHashA@24
CryptSignHashW@24
CryptVerifySignatureA@24
CryptVerifySignatureW@24
+DecryptFileA@8
+DecryptFileW@8
DeleteAce@8
DeleteService@4
DeregisterEventSource@4
DestroyPrivateObjectSecurity@4
+DuplicateEncryptionInfoFile@8
DuplicateToken@12
DuplicateTokenEx@24
ElfBackupEventLogFileA@8
@@ -87,31 +160,66 @@ ElfRegisterEventSourceA@12
ElfRegisterEventSourceW@12
ElfReportEventA@48
ElfReportEventW@48
+EnableTrace@24
+EncryptFileA@4
+EncryptFileW@4
+EncryptionDisable@8
EnumDependentServicesA@24
EnumDependentServicesW@24
+EnumServiceGroupW@36
EnumServicesStatusA@32
+EnumServicesStatusExA@40
+EnumServicesStatusExW@40
EnumServicesStatusW@32
EqualPrefixSid@8
EqualSid@8
+FileEncryptionStatusA@8
+FileEncryptionStatusW@8
FindFirstFreeAce@8
+FreeEncryptionCertificateHashList@4
FreeSid@4
+GetAccessPermissionsForObjectA@36
+GetAccessPermissionsForObjectW@36
GetAce@12
GetAclInformation@16
+GetAuditedPermissionsFromAclA@16
+GetAuditedPermissionsFromAclW@16
+GetCurrentHwProfileA@4
+GetCurrentHwProfileW@4
+GetEffectiveRightsFromAclA@12
+GetEffectiveRightsFromAclW@12
+GetEventLogInformation@20
+GetExplicitEntriesFromAclA@12
+GetExplicitEntriesFromAclW@12
GetFileSecurityA@20
GetFileSecurityW@20
GetKernelObjectSecurity@20
GetLengthSid@4
-GetNamedSecurityInfo@32
+GetLocalManagedApplications@12
+GetManagedApplications@20
+GetMangledSiteSid@12
+GetMultipleTrusteeA@4
+GetMultipleTrusteeOperationA@4
+GetMultipleTrusteeOperationW@4
+GetMultipleTrusteeW@4
+GetNamedSecurityInfoA@32
+GetNamedSecurityInfoExA@36
+GetNamedSecurityInfoExW@36
+GetNamedSecurityInfoW@32
GetNumberOfEventLogRecords@8
GetOldestEventLogRecord@8
+GetOverlappedAccessResults@16
GetPrivateObjectSecurity@20
GetSecurityDescriptorControl@12
GetSecurityDescriptorDacl@16
GetSecurityDescriptorGroup@12
GetSecurityDescriptorLength@4
GetSecurityDescriptorOwner@12
+GetSecurityDescriptorRMControl@8
GetSecurityDescriptorSacl@16
GetSecurityInfo@32
+GetSecurityInfoExA@36
+GetSecurityInfoExW@36
GetServiceDisplayNameA@16
GetServiceDisplayNameW@16
GetServiceKeyNameA@16
@@ -120,14 +228,26 @@ GetSidIdentifierAuthority@4
GetSidLengthRequired@4
GetSidSubAuthority@8
GetSidSubAuthorityCount@4
+GetSiteDirectoryA@12
+GetSiteDirectoryW@12
+GetSiteNameFromSid@8
+GetSiteSidFromToken@4
+GetSiteSidFromUrl@4
GetTokenInformation@20
-GetTrusteeForm@4
-GetTrusteeName@4
-GetTrusteeType@4
+GetTraceEnableFlags@8
+GetTraceEnableLevel@8
+GetTraceLoggerHandle@4
+GetTrusteeFormA@4
+GetTrusteeFormW@4
+GetTrusteeNameA@4
+GetTrusteeNameW@4
+GetTrusteeTypeA@4
+GetTrusteeTypeW@4
GetUserNameA@8
GetUserNameW@8
I_ScSetServiceBitsA@20
I_ScSetServiceBitsW@20
+ImpersonateAnonymousToken@4
ImpersonateLoggedOnUser@4
ImpersonateNamedPipeClient@4
ImpersonateSelf@4
@@ -135,8 +255,13 @@ InitializeAcl@12
InitializeSecurityDescriptor@8
InitializeSid@12
InitiateSystemShutdownA@20
+InitiateSystemShutdownExA@24
+InitiateSystemShutdownExW@24
InitiateSystemShutdownW@20
+InstallApplication@4
+IsProcessRestricted@0
IsTextUnicode@12
+IsTokenRestricted@4
IsValidAcl@4
IsValidSecurityDescriptor@4
IsValidSid@4
@@ -153,7 +278,8 @@ LookupPrivilegeNameA@16
LookupPrivilegeNameW@16
LookupPrivilegeValueA@12
LookupPrivilegeValueW@12
-LookupSecurityDescriptorParts@28
+LookupSecurityDescriptorPartsA@28
+LookupSecurityDescriptorPartsW@28
LsaAddAccountRights@16
LsaAddPrivilegesToAccount@8
LsaClearAuditLog@4
@@ -161,6 +287,7 @@ LsaClose@4
LsaCreateAccount@16
LsaCreateSecret@16
LsaCreateTrustedDomain@16
+LsaCreateTrustedDomainEx@20
LsaDelete@4
LsaDeleteTrustedDomain@8
LsaEnumerateAccountRights@16
@@ -169,11 +296,14 @@ LsaEnumerateAccountsWithUserRight@16
LsaEnumeratePrivileges@20
LsaEnumeratePrivilegesOfAccount@8
LsaEnumerateTrustedDomains@20
+LsaEnumerateTrustedDomainsEx@20
LsaFreeMemory@4
LsaGetQuotasForAccount@8
+LsaGetRemoteUserName@12
LsaGetSystemAccessAccount@8
-LsaICLookupNames@28
-LsaICLookupSids@28
+LsaGetUserName@8
+LsaICLookupNames@32
+LsaICLookupSids@32
LsaLookupNames@20
LsaLookupPrivilegeDisplayName@16
LsaLookupPrivilegeName@12
@@ -184,22 +314,28 @@ LsaOpenAccount@16
LsaOpenPolicy@16
LsaOpenSecret@16
LsaOpenTrustedDomain@16
+LsaOpenTrustedDomainByName@16
+LsaQueryDomainInformationPolicy@12
LsaQueryInfoTrustedDomain@12
LsaQueryInformationPolicy@12
LsaQuerySecret@20
LsaQuerySecurityObject@12
LsaQueryTrustedDomainInfo@16
+LsaQueryTrustedDomainInfoByName@16
LsaRemoveAccountRights@20
LsaRemovePrivilegesFromAccount@12
LsaRetrievePrivateData@12
+LsaSetDomainInformationPolicy@12
LsaSetInformationPolicy@12
LsaSetInformationTrustedDomain@12
LsaSetQuotasForAccount@8
LsaSetSecret@12
LsaSetSecurityObject@12
LsaSetSystemAccessAccount@8
+LsaSetTrustedDomainInfoByName@16
LsaSetTrustedDomainInformation@16
LsaStorePrivateData@12
+MakeAbsoluteSD2@8
MakeAbsoluteSD@44
MakeSelfRelativeSD@12
MapGenericMask@8
@@ -215,6 +351,8 @@ ObjectPrivilegeAuditAlarmA@24
ObjectPrivilegeAuditAlarmW@24
OpenBackupEventLogA@8
OpenBackupEventLogW@8
+OpenEncryptedFileRawA@12
+OpenEncryptedFileRawW@12
OpenEventLogA@8
OpenEventLogW@8
OpenProcessToken@12
@@ -223,16 +361,27 @@ OpenSCManagerW@12
OpenServiceA@12
OpenServiceW@12
OpenThreadToken@16
+OpenTraceA@4
+OpenTraceW@4
PrivilegeCheck@12
PrivilegedServiceAuditAlarmA@20
PrivilegedServiceAuditAlarmW@20
+ProcessTrace@16
+QueryAllTracesA@12
+QueryAllTracesW@12
+QueryRecoveryAgentsOnEncryptedFile@8
+QueryServiceConfig2A@20
+QueryServiceConfig2W@20
QueryServiceConfigA@16
QueryServiceConfigW@16
QueryServiceLockStatusA@16
QueryServiceLockStatusW@16
QueryServiceObjectSecurity@20
QueryServiceStatus@8
+QueryServiceStatusEx@20
+QueryUsersOnEncryptedFile@8
QueryWindows31FilesMigration@4
+ReadEncryptedFileRaw@12
ReadEventLogA@28
ReadEventLogW@28
RegCloseKey@4
@@ -246,6 +395,7 @@ RegDeleteKeyA@8
RegDeleteKeyW@8
RegDeleteValueA@8
RegDeleteValueW@8
+RegDisablePredefinedCache@0
RegEnumKeyA@16
RegEnumKeyExA@32
RegEnumKeyExW@32
@@ -257,10 +407,13 @@ RegGetKeySecurity@16
RegLoadKeyA@12
RegLoadKeyW@12
RegNotifyChangeKeyValue@20
+RegOpenCurrentUser@8
RegOpenKeyA@12
RegOpenKeyExA@20
RegOpenKeyExW@20
RegOpenKeyW@12
+RegOpenUserClassesRoot@16
+RegOverridePredefKey@8
RegQueryInfoKeyA@48
RegQueryInfoKeyW@48
RegQueryMultipleValuesA@20
@@ -285,31 +438,54 @@ RegUnLoadKeyW@8
RegisterEventSourceA@8
RegisterEventSourceW@8
RegisterServiceCtrlHandlerA@8
+RegisterServiceCtrlHandlerExA@12
+RegisterServiceCtrlHandlerExW@12
RegisterServiceCtrlHandlerW@8
+RegisterTraceGuidsA@32
+RegisterTraceGuidsW@32
+RemoveTraceCallback@4
+RemoveUsersFromEncryptedFile@8
ReportEventA@36
ReportEventW@36
RevertToSelf@0
SetAclInformation@16
-SetEntriesInAcl@16
+SetEntriesInAccessListA@24
+SetEntriesInAccessListW@24
+SetEntriesInAclA@16
+SetEntriesInAclW@16
+SetEntriesInAuditListA@24
+SetEntriesInAuditListW@24
SetFileSecurityA@12
SetFileSecurityW@12
SetKernelObjectSecurity@12
-SetNamedSecurityInfo@28
+SetNamedSecurityInfoA@28
+SetNamedSecurityInfoExA@36
+SetNamedSecurityInfoExW@36
+SetNamedSecurityInfoW@28
SetPrivateObjectSecurity@20
+SetPrivateObjectSecurityEx@24
+SetSecurityDescriptorControl@12
SetSecurityDescriptorDacl@16
SetSecurityDescriptorGroup@12
SetSecurityDescriptorOwner@12
+SetSecurityDescriptorRMControl@8
SetSecurityDescriptorSacl@16
-SetSecurityInfo@@28
+SetSecurityInfo@28
+SetSecurityInfoExA@36
+SetSecurityInfoExW@36
SetServiceBits@16
SetServiceObjectSecurity@12
SetServiceStatus@8
SetThreadToken@8
SetTokenInformation@16
+SetTraceCallback@8
+SetUserFileEncryptionKey@4
StartServiceA@12
StartServiceCtrlDispatcherA@4
StartServiceCtrlDispatcherW@4
StartServiceW@12
+StartTraceA@12
+StartTraceW@12
SynchronizeWindows31FilesAndWindowsNTRegistry@16
SystemFunction001@12
SystemFunction002@12
@@ -344,7 +520,12 @@ SystemFunction030@8
SystemFunction031@8
SystemFunction032@8
SystemFunction033@8
+SystemFunction034@12
+TraceEvent@12
+TraceEventInstance@20
+TrusteeAccessToObjectA@24
+TrusteeAccessToObjectW@24
+UninstallApplication@4
UnlockServiceDatabase@4
-WinLoadTrustProvider@4
-WinSubmitCertificate@4
-WinVerifyTrust@12
+UnregisterTraceGuids@8
+WriteEncryptedFileRaw@12
diff --git a/winsup/w32api/lib/dinput.c b/winsup/w32api/lib/dinput.c
index 16580fbd6..1d022a484 100644
--- a/winsup/w32api/lib/dinput.c
+++ b/winsup/w32api/lib/dinput.c
@@ -21,7 +21,7 @@
Nothing.
*/
-#if defined(__LCC__) || defined(__GNUC__)
+#if defined(__LCC__) || defined(__GNUC__) || defined(__WATCOMC__)
#include <windows.h>
#include <objbase.h>
#else
diff --git a/winsup/w32api/lib/iphlpapi.def b/winsup/w32api/lib/iphlpapi.def
index 294c752ab..f4b088888 100644
--- a/winsup/w32api/lib/iphlpapi.def
+++ b/winsup/w32api/lib/iphlpapi.def
@@ -1,9 +1,16 @@
LIBRARY "IPHLPAPI.DLL"
EXPORTS
+AddIPAddress@20
CreateIpForwardEntry@4
CreateIpNetEntry@4
+CreateProxyArpEntry@12
+DeleteIPAddress@4
DeleteIpForwardEntry@4
DeleteIpNetEntry@4
+DeleteProxyArpEntry@12
+EnableRouter@8
+FlushIpNetTable@4
+GetAdapterIndex@8
GetAdaptersInfo@8
GetBestInterface@8
GetBestRoute@12
@@ -18,16 +25,21 @@ GetIpNetTable@12
GetIpStatistics@4
GetNetworkParams@8
GetNumberOfInterfaces@4
+GetPerAdapterInfo@12
GetRTTAndHopCount@16
GetTcpStatistics@4
GetTcpTable@12
GetUdpStatistics@4
GetUdpTable@12
+GetUniDirectionalAdapterInfo@8
IpReleaseAddress@4
IpRenewAddress@4
+SendARP@16
+SetAdapterIpAddress@20
SetIfEntry@4
SetIpForwardEntry@4
SetIpNetEntry@4
SetIpStatistics@4
SetIpTTL@4
SetTcpEntry@4
+UnenableRouter@8
diff --git a/winsup/w32api/lib/kernel32.c b/winsup/w32api/lib/kernel32.c
index c7c4b1807..d66a5064b 100644
--- a/winsup/w32api/lib/kernel32.c
+++ b/winsup/w32api/lib/kernel32.c
@@ -1,5 +1,7 @@
/* extern (library) versions of inline functions defined in winnt.h */
+#if defined(__GNUC__)
+
void* GetCurrentFiber(void)
{
void* ret;
@@ -23,3 +25,27 @@ void* GetFiberData(void)
return ret;
}
+#else
+
+void* GetCurrentFiber(void)
+{
+ void* res;
+ _asm {
+ mov eax, dword ptr fs:0x10
+ mov res, eax
+ };
+ return res;
+}
+
+void* GetFiberData(void)
+{
+ void* res;
+ _asm {
+ mov eax, dword ptr fs:0x10
+ mov eax, [eax]
+ mov res, eax
+ };
+ return res;
+}
+
+#endif /* __GNUC__ */
diff --git a/winsup/w32api/lib/scrnsave.c b/winsup/w32api/lib/scrnsave.c
index 9efa5737a..53e555d7d 100644
--- a/winsup/w32api/lib/scrnsave.c
+++ b/winsup/w32api/lib/scrnsave.c
@@ -155,8 +155,8 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
case '-':
case '/':
case ' ':
- default:
- ;
+ default:
+ break;
}
}
LaunchConfig();
diff --git a/winsup/w32api/lib/test.c b/winsup/w32api/lib/test.c
index b109629c4..2d9284c08 100644
--- a/winsup/w32api/lib/test.c
+++ b/winsup/w32api/lib/test.c
@@ -56,6 +56,7 @@
#include <winsock.h>
#include <ws2tcpip.h>
#include <setupapi.h>
+#include <aclapi.h>
#ifndef __OBJC__ /* problems with BOOL */
#include <ole2.h>
diff --git a/winsup/w32api/lib/user32.def b/winsup/w32api/lib/user32.def
index b5acc474d..e8e3628a5 100644
--- a/winsup/w32api/lib/user32.def
+++ b/winsup/w32api/lib/user32.def
@@ -171,6 +171,7 @@ EnableScrollBar@12
EnableWindow@8
EndDeferWindowPos@4
EndDialog@8
+EndMenu@0
EndPaint@8
EnumChildWindows@12
EnumClipboardFormats@4
@@ -198,6 +199,9 @@ FindWindowW@8
FlashWindow@8
FrameRect@12
FreeDDElParam@8
+GetAltTabInfo@20
+GetAltTabInfoA@20
+GetAltTabInfoW@20
GetActiveWindow@0
GetAsyncKeyState@4
GetCapture@0
@@ -219,7 +223,9 @@ GetClipboardFormatNameA@12
GetClipboardFormatNameW@12
GetClipboardOwner@0
GetClipboardViewer@0
+GetComboBoxInfo@8
GetCursor@0
+GetCursorInfo@4
GetCursorPos@4
GetDC@4
GetDCEx@12
@@ -247,10 +253,14 @@ GetKeyboardLayoutNameW@4
GetKeyboardState@4
GetKeyboardType@4
GetLastActivePopup@4
+GetLastInputInfo@4
+GetListBoxInfo@4
GetMenu@4
+GetMenuBarInfo@16
GetMenuCheckMarkDimensions@0
GetMenuContextHelpId@4
GetMenuDefaultItem@12
+GetMenuInfo@8
GetMenuItemCount@4
GetMenuItemID@8
GetMenuItemInfoA@16
@@ -264,6 +274,8 @@ GetMessageExtraInfo@0
GetMessagePos@0
GetMessageTime@0
GetMessageW@16
+GetMonitorInfoA@8
+GetMonitorInfoW@8
GetNextDlgGroupItem@12
GetNextDlgTabItem@12
GetOpenClipboardWindow@0
@@ -273,6 +285,7 @@ GetProcessWindowStation@0
GetPropA@8
GetPropW@8
GetQueueStatus@4
+GetScrollBarInfo@12
GetScrollInfo@12
GetScrollPos@8
GetScrollRange@16
@@ -285,6 +298,7 @@ GetSystemMetrics@4
GetTabbedTextExtentA@20
GetTabbedTextExtentW@20
GetThreadDesktop@4
+GetTitleBarInfo@8
GetTopWindow@4
GetUpdateRect@12
GetUpdateRgn@12
@@ -295,8 +309,12 @@ GetWindow@8
GetWindowContextHelpId@4
_imp__GetWindowContextHelpId@4
GetWindowDC@4
+GetWindowInfo@8
GetWindowLongA@8
GetWindowLongW@8
+GetWindowModuleFileName@12
+GetWindowModuleFileNameA@12
+GetWindowModuleFileNameW@12
GetWindowPlacement@8
GetWindowRect@8
GetWindowRgn@8
@@ -467,6 +485,7 @@ SetMenu@8
SetMenuContextHelpId@8
_imp__SetMenuContextHelpId@8
SetMenuDefaultItem@12
+SetMenuInfo@8
SetMenuItemBitmaps@20
SetMenuItemInfoA@16
SetMenuItemInfoW@16