From 6dfcb5a3a9bb858d36c9ab0545ac5ea8726897ba Mon Sep 17 00:00:00 2001 From: Earnie Boyd Date: Mon, 3 Dec 2001 19:59:34 +0000 Subject: 2001-12-03 Earnie Boyd * include/accctrl.h: Change \r\n to \n. 2001-11-30 Danny Smith * 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 * 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 . 2001-11-23 Danny Smith * 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 * 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 * 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 * include/winbase.h (OSVERSIONINFOEX): Add definition. * include/winnt.h: Add VER_NT_* and VER_SUITE_* defines. 2001-11-10 Robert Collins * include/winnt.h: Add Danny Smith's text comment about gcc compiler warnings with _AUTHORITY #defines. 2001-11-09 Robert Collins * include/winnt.h (GetCurrentFiber): Create a prototype before the implementation; (GetFiberData): Ditto. 2001-11-09 Robert Collins * include/winnt.h: Backout last change. --- winsup/w32api/ChangeLog | 116 ++++++++++++++- winsup/w32api/include/accctrl.h | 312 +++++++++++++++++++++++++++++++++++++++ winsup/w32api/include/aclapi.h | 101 +++++++++++++ winsup/w32api/include/commdlg.h | 17 +-- winsup/w32api/include/ipexport.h | 4 + winsup/w32api/include/iphlpapi.h | 13 ++ winsup/w32api/include/iptypes.h | 7 + winsup/w32api/include/rpcdcep.h | 2 +- winsup/w32api/include/rpcproxy.h | 13 +- winsup/w32api/include/winbase.h | 11 +- winsup/w32api/include/windef.h | 6 + winsup/w32api/include/windows.h | 7 +- winsup/w32api/include/winnt.h | 87 ++++++++++- winsup/w32api/include/winsock.h | 14 +- winsup/w32api/include/winsock2.h | 14 +- winsup/w32api/include/winuser.h | 108 ++++++++++++++ winsup/w32api/lib/advapi32.def | 215 ++++++++++++++++++++++++--- winsup/w32api/lib/dinput.c | 2 +- winsup/w32api/lib/iphlpapi.def | 12 ++ winsup/w32api/lib/kernel32.c | 26 ++++ winsup/w32api/lib/scrnsave.c | 4 +- winsup/w32api/lib/test.c | 1 + winsup/w32api/lib/user32.def | 19 +++ 23 files changed, 1042 insertions(+), 69 deletions(-) create mode 100644 winsup/w32api/include/accctrl.h create mode 100644 winsup/w32api/include/aclapi.h (limited to 'winsup/w32api') 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 + + * include/accctrl.h: Change \r\n to \n. + +2001-11-30 Danny Smith + + * 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 + + * 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 . + +2001-11-23 Danny Smith + + * 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 * 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 + + * 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 * include/winbase.h (OSVERSIONINFOEX): Add definition. @@ -12,12 +64,13 @@ 2001-11-10 Robert Collins - * 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 - * 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 @@ -26,11 +79,63 @@ 2001-11-08 Robert Collins - * 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 + + * include/winuser.h (IDC_STATIC): Add define. + Thanks to: Benoit Laniel. + +2001-11-05 Danny Smith + + * include/commdlg.h: Include rather than local + definition of LPUKNOWN. + * include/rpcproxy.h: Don't include if ndef CINTERFACE. + Emit warning. + +2001-11-05 Mattia Barbon + + * 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" + + * include/winnt.h (GetCurrentFiber): Add prototype. + (GetFiberData): Likewise. + 2001-11-04 Christopher Faylor * 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 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 + +#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 +#include + +#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 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 /* for HPROPSHEETPAGE */ +#include /* for LPUNKNOWN */ +#include /* 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< #include #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 #include #include +#include #ifndef __OBJC__ /* problems with BOOL */ #include 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 -- cgit v1.2.3