OSDN Git Service

Prepare and publish MinGW.org WSL-5.2.1 release.
[mingw/mingw-org-wsl.git] / w32api / ChangeLog
index 80c8761..a51ea0e 100644 (file)
+2019-01-22  Keith Marshall  <keith@users.osdn.me>
+
+       Prepare and publish MinGW.org WSL-5.2.1 release.
+
+       * All files (wsl-5.2.1-release): Tag assigned.
+
+2019-01-22  Keith Marshall  <keith@users.osdn.me>
+
+       Incorporate user-customized <features.h> configuration.
+
+       * tests/Makefile.in (install-mingwrt-headers): Create <features.h>
+       stub; this is an empty file, yielding the default configuration.
+
+2018-12-23  Keith Marshall  <keith@users.osdn.me>
+
+       Prepare and publish MinGW.org WSL-5.2 release.
+
+       * All files (wsl-5.2-release): Tag assigned.
+
+2018-12-18  Keith Marshall  <keith@users.osdn.me>
+
+       Make <winver.h> header effectively self-contained.
+
+       * include/winver.h: Include <windef.h>
+
+2018-11-23  Keith Marshall  <keith@users.osdn.me>
+
+       Fix MinGW-Bug #2248 (SF ticket).
+
+       * include/commctrl.h (NMPGSCROLL): Set packing to 1-byte alignment.
+       (NMPGSCROLL.fwKeys): Change type from BOOL to WORD.
+
+2018-11-23  Keith Marshall  <keith@users.osdn.me>
+
+       Apply some more cosmetic layout adjustments.
+
+       * include/commctrl.h: Keep 'typedef' and 'struct' on a single line,
+       for each untagged aggregate type definition.
+
+2018-11-18  Jelle Geerts  <heisenbug@users.osdn.me>
+
+       Fix MinGW-Bug #38736 (OSDN ticket).
+
+       * include/commctrl.h (DTM_SETFORMATW): Correct definition; was 0x1050,
+       but should be equivalent to 0x1000 + 50, which is actually 0x1032.
+
+2018-11-18  Keith Marshall  <keith@users.osdn.me>
+
+       Make <commctrl.h> header effectively self-contained.
+
+       * include/commctrl.h: Tidy layout; assert copyright.
+       Include <winbase.h> and <prsht.h>; both are required to resolve
+       inter-header dependencies, so achieving effective self-containment.
+       Correctly parenthesize argument references in macro definitions.
+       (pragma GCC system_header): Remove redundant GCC version guard.
+       (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+       (SNDMSG): Remove definition; it is inherited from <prsht.h> anyway.
+       (__AW_ALIAS__, __AW_SUFFIXED__, __AW_STRING_A__, __AW_STRING_W__):
+       Use them; they facilitate maintenance of robust definitions for...
+       [UNICODE vs. ! UNICODE]: ...generic symbols and strings.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2018-11-16  Keith Marshall  <keith@users.osdn.me>
+
+       Make <prsht.h> header effectively self-contained.
+
+       * include/prsht.h: Tidy layout; assert copyright.
+       Include <winuser.h> to resolve inter-header dependencies.
+       Correctly parenthesize argument references in macro definitions.
+       (pragma GCC system_header): Remove redundant GCC version guard.
+       (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+       (SNDMSG, POSTMSG) [ifndef]: Remove guard condition; it prevents GCC
+       from checking consistency of alternative definition sources.
+       (__AW_SUFFIXED__): Use it; it improves robustness of...
+       [UNICODE vs. ! UNICODE]: ...generic definitions.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2018-10-29  Keith Marshall  <keith@users.osdn.me>
+
+       Clean up <wincon.h>; consolidate its version dependencies.
+
+       * include/wincon.h: Tidy layout; assert copyright.
+       [_WIN32_WINNT]: Always compare it symbolically, with respect to...
+       [_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP, _WIN32_WINNT_VISTA]: ...each
+       of these; group and consolidate respective version dependencies.
+       (FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED)
+       (FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN)
+       (BACKGROUND_RED, BACKGROUND_INTENSITY, COMMON_LVB_LEADING_BYTE)
+       (COMMON_LVB_TRAILING_BYTE, COMMON_LVB_GRID_HORIZONTAL)
+       (COMMON_LVB_GRID_LVERTICAL, COMMON_LVB_GRID_RVERTICAL)
+       (COMMON_LVB_REVERSE_VIDEO, COMMON_LVB_UNDERSCORE, CTRL_C_EVENT)
+       (CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT)
+       (CTRL_SHUTDOWN_EVENT, ENABLE_LINE_INPUT, ENABLE_ECHO_INPUT)
+       (ENABLE_PROCESSED_INPUT, ENABLE_WINDOW_INPUT, ENABLE_MOUSE_INPUT)
+       (ENABLE_INSERT_MODE, ENABLE_QUICK_EDIT_MODE, ENABLE_EXTENDED_FLAGS)
+       (ENABLE_AUTO_POSITION, ENABLE_VIRTUAL_TERMINAL_INPUT)
+       (ENABLE_PROCESSED_OUTPUT, ENABLE_WRAP_AT_EOL_OUTPUT)
+       (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
+       (ENABLE_LVB_GRID_WORLDWIDE, KEY_EVENT, MOUSE_EVENT)
+       (WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT, CAPSLOCK_ON)
+       (ENHANCED_KEY, RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED)
+       (RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED, SHIFT_PRESSED, NUMLOCK_ON)
+       (SCROLLLOCK_ON, FROM_LEFT_1ST_BUTTON_PRESSED)
+       (FROM_LEFT_2ND_BUTTON_PRESSED, FROM_LEFT_3RD_BUTTON_PRESSED)
+       (FROM_LEFT_4TH_BUTTON_PRESSED, RIGHTMOST_BUTTON_PRESSED, MOUSE_MOVED)
+       (DOUBLE_CLICK, MOUSE_WHEELED, MOUSE_HWHEELED, CONSOLE_FULLSCREEN)
+       (CONSOLE_FULLSCREEN_HARDWARE, CONSOLE_FULLSCREEN_MODE)
+       (CONSOLE_WINDOWED_MODE, CONSOLE_NO_SELECTION)
+       (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_SELECTION_NOT_EMPTY)
+       (CONSOLE_MOUSE_SELECTION, CONSOLE_MOUSE_DOWN, HISTORY_NO_DUP_FLAG):
+       Redefine, expressing all values in hexadecimal rather than decimal;
+       this is consistent with Microsoft documentation, and it is also more
+       logical, since all represent bit-flags, bit-fields, or bit-masks.
+
+2018-10-24  Keith Marshall  <keith@users.osdn.me>
+
+       Make <wincon.h> header effectively self-contained.
+
+       * include/wincon.h [_WIN32_WINNT < 0x0600]: Include <windef.h>...
+       [_WIN32_WINNT >= 0x0600]: ...but, Vista and later need <wingdi.h>
+       [__GNUC__ >= 3]: Remove condition; used only in association with...
+       (#pragma GCC system_header): ...this, it is redundant in this context.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them as appropriate.
+
+2018-10-24  David Gressett  <texasgaidheal@users.osdn.me>
+
+       Improve WinXP/Vista console I/O support.
+
+       * include/wincon.h (AddConsoleAlias, GetConsoleAlias)
+       (GetConsoleAliases, GetConsoleAliasExes, GetConsoleAliasesLength)
+       (GetConsoleAliasExesLength, GetConsoleOriginalTitle): New function
+       name aliases; define them, mapping them conditionally to represent...
+       [UNICODE]: ...their corresponding UTF-16LE function names, else...
+       [!UNICODE]: ...their corresponding ASCII/DBCS function names.
+       (COMMON_LVB_LEADING_BYTE, COMMON_LVB_TRAILING_BYTE
+       (COMMON_LVB_GRID_HORIZONTAL, COMMON_LVB_GRID_LVERTICAL)
+       (COMMON_LVB_GRID_RVERTICAL, COMMON_LVB_REVERSE_VIDEO)
+       (COMMON_LVB_UNDERSCORE, ENABLE_VIRTUAL_TERMINAL_INPUT)
+       (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
+       (ENABLE_LVB_GRID_WORLDWIDE,(MOUSE_HWHEELED): Define them.
+       (GetConsoleAliasA, GetConsoleAliasW, HandlerRoutine): Declare.
+       (CONSOLE_FULLSCREEN, CONSOLE_FULLSCREEN_HARDWARE): Define when...
+       [_WIN32_WINNT >= 0x0500]: ...this prevails; additionally...
+       (GetConsoleFontSize): ...declare function.
+       (CONSOLE_NO_SELECTION, CONSOLE_SELECTION_NOT_EMPTY)
+       (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_MOUSE_SELECTION)
+       (CONSOLE_MOUSE_DOWN): Define them; make them visible only when...
+       [_WIN32_WINNT >= 0x0501]: ...this prevails.
+       (struct _CONSOLE_FONT_INFO): Make it visible, only when...
+       [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to...
+       (CONSOLE_FONT_INFO, PCONSOLE_FONT_INFO): ...these typedefs.
+       (struct _CONSOLE_SELECTION_INFO): Declare it; visible only when...
+       [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to...
+       (CONSOLE_SELECTION_INFO, PCONSOLE_SELECTION_INFO): ...these typedefs.
+       [_WIN32_WINNT >= 0x0501] (AddConsoleAliasA, AddConsoleAliasW)
+       (GetConsoleAliasesA, GetConsoleAliasesW, GetConsoleAliasExesA)
+       (GetConsoleAliasExesW, GetConsoleAliasesLengthA)
+       (GetConsoleAliasesLengthW, GetConsoleAliasExesLengthA)
+       (GetConsoleAliasExesLengthW, GetConsoleSelectionInfo)
+       (GetCurrentConsoleFont): Declare functions.
+       [_WIN32_WINNT >= 0x0600] (HISTORY_NO_DUP_FLAG): Define it.
+       (struct _CONSOLE_FONT_INFOEX): New structure; declare it only when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+       (CONSOLE_FONT_INFOEX, PCONSOLE_FONT_INFOEX): ...these typedefs.
+       (CONSOLE_HISTORY_INFO, PCONSOLE_HISTORY_INFO): New typedefs; they
+       map to an anonymous structure, and are visible only when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails.
+       (struct _CONSOLE_READCONSOLE_CONTROL): New structure; declare when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+       (CONSOLE_READCONSOLE_CONTROL, PCONSOLE_READCONSOLE_CONTROL): ...these.
+       (struct _CONSOLE_SCREEN_BUFFER_INFOEX): New structure; declare when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+       (CONSOLE_SCREEN_BUFFER_INFOEX, PCONSOLE_SCREEN_BUFFER_INFOEX):
+       ...these typedefs.
+       [_WIN32_WINNT >= 0x0600] (GetConsoleHistoryInfo)
+       (GetConsoleOriginalTitleA, GetConsoleOriginalTitleW)
+       (GetConsoleScreenBufferInfoEx, GetCurrentConsoleFontEx)
+       (SetConsoleHistoryInfo, SetConsoleScreenBufferInfoEx)
+       (SetCurrentConsoleFontEx): Declare functions.
+
+2018-09-03  Keith Marshall  <keith@users.osdn.me>
+
+       Prepare and publish MinGW.org WSL-5.1.1 release.
+
+       * All files (wsl-5.1.1-release): Tag assigned.
+
+2018-07-29  Keith Marshall  <keith@users.osdn.me>
+
+       Don't restrict <winerror.h> exposure when including <winsock.h>
+
+       * include/winerror.h [__WINSOCK_H_SOURCED__]: Remove filters.
+       (__WINSOCK_V1_ERRORS__, __WINSOCK_V2_ERRORS__): Do not define; delete
+       all dependent filter references.
+
+2018-07-11  Keith Marshall  <keith@users.osdn.me>
+
+       Make <wincrypt.h> header effectively self-contained.
+
+       * include/wincrypt.h: Include <winbase.h>
+
+2018-07-11  Keith Marshall  <keith@users.osdn.me>
+
+       Correct <wincrypt.h> typographic errors; fix issue [#38391]
+
+       * include/wincrypt.h (CALG_TLS1PRF): Delete symbolic reference to...
+       (ALG_CLASS_DHASH): ...this; there is no such symbol; replace it with...
+       (ALG_CLASS_HASH): ...this, which represents the correct reference.
+       (struct _CRYPTOAPI_BLOB): Delete extraneous "typedef" keyword; this
+       struct definition is not directly associated with any type name.
+       (struct _SSL_EXTRA_CERT_CHAIN_POLICY_PARA): Likewise.
+
+2018-02-26  Keith Marshall  <keith@users.osdn.me>
+
+       Prepare and publish MinGW.org WSL-5.1 release.
+
+       * All files (wsl-5.1-release): Tag assigned.
+
+2018-02-24  Keith Marshall  <keith@users.osdn.me>
+
+       Make <iptypes.h> header effectively self-contained.
+
+       * include/iptypes.h: Assert copyright; tidy layout.
+       Include <windef.h>; it is required for self-containment.
+       (__need_time_t): Define for selective inclusion of <sys/types.h>
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them as appropriate.
+       (_WIN32_WINNT): Always compare it symbolically.
+       (__dhcp_time_t): New temporary data type macro; define it...
+       [_WIN64]: ...as equivalent to __time64_t, otherwise...
+       [!_WIN64]: ...equivalent to __time32_t, and then...
+       (struct _IP_ADAPTER_INFO): ...use it as the data type for...
+       (LeaseObtained, LeaseExpires): ...these fields.
+
+2017-12-20  Keith Marshall  <keith@users.osdn.me>
+
+       Make <winreg.h> header effectively self-contained.
+
+       * include/winreg.h: Include <winbase.h>, thus achieving effective
+       self-containment; since this also indirectly includes <_mingw.h>,
+       there is no longer any need to include it directly.
+
+2017-12-20  Keith Marshall  <keith@users.osdn.me>
+
+       Clean up, following issue [#2262] patch application.
+
+       * include/winreg.h: Tidy layout; correct copyright assertion.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them, as appropriate.
+       [UNICODE] (__AW): Do not use deleted macro; replace it with...
+       [UNICODE] (__AW_ALIAS__): ...this, for conditional typedef mapping...
+       [UNICODE] (VALENT, PVALENT): ...of these; similarly replace with...
+       [UNICODE] (__AW_SUFFIXED__): ...this, to define function mappings...
+       [UNICODE] (AbortSystemShutdown, InitiateSystemShutdown)
+       (RegConnectRegistry, RegCreateKey, RegCreateKeyEx, RegDeleteKey)
+       (RegDeleteValue, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegLoadKey)
+       (RegOpenKey, RegOpenKeyEx, RegQueryInfoKey, RegQueryMultipleValues)
+       (RegQueryValue, RegQueryValueEx, RegReplaceKey, RegRestoreKey)
+       (RegSaveKey, RegSetValue, RegSetValueEx, RegUnLoadKey, RegSaveKeyEx)
+       (RegDeleteKeyTransacted, RegDeleteKeyValue, RegDeleteTree, RegGetValue)
+       (RegLoadMUIString, RegOpenKeyTransacted, RegSetKeyValue)
+       (RegDeleteKeyEx, RegCopyTree, RegCreateKeyTransacted): ...for these.
+       (RegDeleteKeyEx, RegDeleteKeyExA, RegDeleteKeyExW): Fix regression;
+       all "4.x" branches specified these incorrectly, dependent on...
+       [_WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...this condition, whereas the
+       "legacy" branch, whence the "5.x" branches are propagated, correctly
+       required an alternative condition which is the equivalent of...
+       [_WIN32_WINNT >= _WIN32_WINNT_WS03]: ...this; revert it.
+
+2017-12-20  Sebastián Puebla  <spuebla@users.sourceforge.net>
+
+       Update registry management API, per issue [#2262].
+
+       * include/winreg.h: Merge changes from 4.1-dev branch.
+       (REG_LATEST_FORMAT, REG_NO_COMPRESSION, REG_OPTION_BACKUP_RESTORE)
+       (REG_STANDARD_FORMAT, RRF_RT_ANY, RRF_RT_DWORD, RRF_RT_QWORD)
+       (RRF_RT_REG_BINARY, RRF_RT_REG_DWORD, RRF_RT_REG_EXPAND_SZ)
+       (RRF_RT_REG_MULTI_SZ, RRF_RT_REG_NONE, RRF_RT_REG_QWORD, RRF_RT_REG_SZ)
+       (RRF_NOEXPAND, RRF_SUBKEY_WOW6464KEY, RRF_SUBKEY_WOW6432KEY)
+       (RRF_ZEROONFAILURE): New manifest constants; define them.
+       (RegDisablePredefinedCache, RegOpenCurrentUser, RegOpenUserClassesRoot)
+       (RegOverridePredefKey): Add previously omitted function prototypes.
+       [_WIN32_WINNT >= _WIN32_WINNT_WINXP] (RegSaveKeyEx): Define...
+       [!defined UNICODE] (__AW): ...mapping it for SBCS/MBCS case, or...
+       [defined UNICODE] (__AW): ...for UTF-16LE case to either one of...
+       (RegSaveKeyExA, RegSaveKeyExW): ...these, respectively, and...
+       [_WIN32_WINNT >= _WIN32_WINNT_WINXP]: ...declare function prototypes.
+       [_WIN32_WINNT >= _WIN32_WINNT_WS03] (RegDisableReflectionKey)
+       (RegEnableReflectionKey, RegQueryReflectionKey): Declare prototypes.
+       [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (RegCopyTreeA, RegCopyTreeW)
+       (RegCreateKeyTransactedA, RegCreateKeyTransactedW)
+       (RegDeleteKeyTransactedA, RegDeleteKeyTransactedW)
+       (RegDeleteKeyValueA, RegDeleteKeyValueW)
+       (RegDeleteTreeA, RegDeleteTreeW, RegDisablePredefinedCacheEx)
+       (RegGetValueA, RegGetValueW, RegLoadMUIStringA, RegLoadMUIStringW)
+       (RegOpenKeyTransactedA, RegOpenKeyTransactedW)
+       (RegSetKeyValueA, RegSetKeyValueW): Declare prototypes.
+       [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (RegCopyTree)
+       (RegCreateKeyTransacted, RegDeleteKeyTransacted, RegDeleteKeyValue)
+       (RegDeleteTree, RegGetValue, RegLoadMUIString, RegOpenKeyTransacted)
+       (RegSetKeyValue): Define, mapping each to its respective function...
+       [!defined UNICODE] (__AW): ...for the SBCS/MBCS case, or...
+       [defined UNICODE] (__AW): ...for the UTF-16LE case.
+
+       * lib/kernel32.def (RegDeleteTreeA@8, RegDeleteTreeW@8)
+       (RegDisablePredefinedCacheEx@0, RegGetValueA@28, RegGetValueW@28)
+       (RegLoadMUIStringA@28, RegLoadMUIStringW@28, RegSaveKeyExA@16)
+       (RegSaveKeyExW@16): Remove them; relocate them to...
+       * lib/advapi32.def (RegDeleteTreeA@8, RegDeleteTreeW@8)
+       (RegDisablePredefinedCacheEx@0, RegGetValueA@28, RegGetValueW@28)
+       (RegLoadMUIStringA@28, RegLoadMUIStringW@28, RegSaveKeyExA@16)
+       (RegSaveKeyExW@16): ...their correct location, here.
+       (RegCopyTreeA@12, RegCopyTreeW@12, RegQueryReflectionKey@8)
+       (RegCreateKeyTransactedA@44, RegCreateKeyTransactedW@44)
+       (RegDeleteKeyTransactedA@24, RegDeleteKeyTransactedW@24)
+       (RegDeleteKeyValueA@12, RegDeleteKeyValueW@12)
+       (RegDisableReflectionKey@4, RegEnableReflectionKey@4)
+       (RegOpenKeyTransactedA@28, RegOpenKeyTransactedW@28)
+       (RegSetKeyValueA@24, RegSetKeyValueW@24): Add these.
+
+2017-12-16  Keith Marshall  <keith@users.osdn.me>
+
+       Provide default definition for _WIN32_IE feature test macro.
+
+       * include/sdkddkver.h [!defined _WIN32_IE]: Define it, with...
+       (_WIN32_IE_IE50): ...this default value.
+
+       * include/commctrl.h (_WIN32_IE): Delete definition hint; it offered
+       a conflicting proposal for the default value.
+
+2017-12-06  Keith Marshall  <keith@users.osdn.me>
+
+       Prepare and publish MinGW.org WSL-5.0.2 release.
+
+       * All files (wsl-5.0.2-release): Tag assigned.
+
+2017-11-28  Keith Marshall  <keith@users.osdn.me>
+
+       Make <wsnetbs.h> header effectively self-contained.
+
+       * include/wsnetbs.h: Assert copyright; tidy layout; include
+       "_winsock.h", so making this header effectively self-contained, and
+       thus relieving the user of a responsibility for ensuring that some
+       other appropriate WinSock header has been included first.
+
+2017-11-28  Keith Marshall  <keith@users.osdn.me>
+
+       Factor <winsock.h> duplicate content out of <winsock2.h>
+
+       * include/winsock2.h: Remove all declarations and definitions which
+       are identically specified in <winsock.h>, but keep them in scope by...
+       [! defined _WINSOCK_H]: ...including <winsock.h> itself; override any
+       declarations and definitions therefrom, which introduce conflicts.
+       [defined _WINSOCK_H]: Diagnose misuse; suppress all further
+       definitions and declarations.
+
+       * include/winsock.h (SOMAXCONN): Add comment; note disparity between
+       WinSock v1.1 and WinSock v2, the latter of which will override when
+       correctly included by <winsock2.h>
+
+2017-11-24  Keith Marshall  <keith@users.osdn.me>
+
+       Make <winsock.h> and <winsock2.h> duplicate code congruent.
+
+       * include/winsock.h (SOMAXCONN): Move definition into...
+       [!__INSIDE_MSYS__]: ...this guarded scope.
+
+       * include/winsock2.h: Rearrange as necessary.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Keep them balanced.
+       (_USE_SYS_TYPES_FD_SET): Define and use, as in <winsock.h>
+       [!_WINSOCK_ANOMALOUS_TYPEDEFS] (FD_SET): Declare function, not type.
+       [!_WINSOCK_ANOMALOUS_TYPEDEFS] (PFD_SET, LPFD_SET): Suppress typedefs.
+       (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Reimplement, as in <winsock.h>
+       (FD_READ_BIT, FD_WRITE_BIT, FD_OOB_BIT, FD_ACCEPT_BIT)
+       (FD_CONNECT_BIT, FD_CLOSE_BIT, FD_QOS_BIT, FD_GROUP_QOS_BIT)
+       (FD_ROUTING_INTERFACE_CHANGE_BIT, FD_ADDRESS_LIST_CHANGE_BIT)
+       (FD_MAX_EVENTS): Enumerate them, as in <winsock.h>
+       [!(defined __INSIDE_CYGWIN__ || defined __INSIDE_MSYS__)]: Recast...
+       [!defined __INSIDE_MSYS__]: ...as this, throughout.
+       (gethostname): Update function prototype, adding...
+       (WINSOCK_API_LINKAGE): ...this DLL import control attribute.
+
+       * include/ws2spi.h: Tidy layout; assert copyright.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+       (LPFD_SET): Delete all type references; use...
+       (fd_set *): ...this instead.
+
+2017-11-14  Keith Marshall  <keith@users.osdn.me>
+
+       Establish default selection for WinSock API declaration.
+
+       * include/windows.h include/nspapi.h: Include...
+       * include/_winsock.h: ...this new system private header; it selects...
+       [_WIN32_WINNT >= _WIN32_WINNT_NT4]: ...WinSock v2 API declarations, as
+       provided by conditional inclusion of <winsock2.h>, otherwise...
+       [_WIN32_WINNT < _WIN32_WINNT_NT4]: ...WinSock v1.1 API declarations,
+       as provided by inclusion of <winsock.h>
+
+       * tests/headers.at <_winsock.h>: Add reference.
+
+2017-11-14  Keith Marshall  <keith@users.osdn.me>
+
+       Update gethostname() declaration; drop Cygwin specificity.
+
+       * include/winsock.h (gethostname): Declare unconditionally; add...
+       (WINSOCK_API_LINKAGE): ...this DLL import control attribute.
+       [!(defined __INSIDE_CYGWIN__ || defined __INSIDE_MSYS__)]: Recast...
+       [!defined __INSIDE_MSYS__]: ...as this, throughout.
+
+2017-11-09  Keith Marshall  <keith@users.osdn.me>
+
+       Normalize fd_set event macros for <winsock2.h> compatibility.
+
+       * include/winsock.h (FD_READ, FD_WRITE, FD_OOB, FD_ACCEPT, FD_CONNECT)
+       (FD_CLOSE): Redefine them, deriving respective values as shifts by...
+       (FD_READ_BIT, FD_WRITE_BIT, FD_OOB_BIT, FD_ACCEPT_BIT, FD_CONNECT_BIT)
+       (FD_CLOSE_BIT): ...this new enumerated count sequence, applying each
+       count to a bit flag with value of 1, in each case respectively.
+       [_WINSOCK2_H]: Extend shift count enumeration, to include...
+       (FD_QOS_BIT, FD_GROUP_QOS_BIT, FD_ROUTING_INTERFACE_CHANGE_BIT)
+       (FD_ADDRESS_LIST_CHANGE_BIT): ...these additional counts; hence...
+       [_WINSOCK2_H] (FD_QOS, FD_GROUP_QOS, FD_ROUTING_INTERFACE_CHANGE)
+       [_WINSOCK2_H] (FD_ADDRESS_LIST_CHANGE): ...define each of these.
+       (FD_MAX_EVENTS): Define unconditionally; it represents a shift count
+       of 1 greater than the offset of the last defined flag; hence...
+       (FD_ALL_EVENTS): ...derive this mask for all event flags.
+
+2017-11-09  Keith Marshall  <keith@users.osdn.me>
+
+       Filter potential WinSock v2 conflicts out of <winsock.h>
+
+       * include/winsock.h [_WINSOCK2_H] <mswsock.h>: Do not include it.
+       [_WINSOCK2_H] (IP_MULTICAST_IF, IP_MULTICAST_TTL, IP_MULTICAST_LOOP)
+       (IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_DEFAULT_MULTICAST_TTL)
+       (IP_DEFAULT_MULTICAST_LOOP, IP_MAX_MEMBERSHIPS, struct ip_mreq): Do
+       not define any of these; they are not compatible with WinSock v2.
+       [_WINSOCK2_H] (SOMAXCONN): Do not define it; it will be defined
+       appropiately in <winsock2.h>
+
+2017-11-09  Keith Marshall  <keith@users.osdn.me>
+
+       Filter out <winsock.h> typedef anomalies.
+
+       * include/winsock.h (FD_SET, PFD_SET, LPFD_SET): If user defines...
+       [_WINSOCK_ANOMALOUS_TYPEDEFS]: ...this new feature test macro, expose
+       them as type definitions, but warn of potential conflict with...
+       [!_WINSOCK_ANOMALOUS_TYPEDEFS] (FD_SET): ...this POSIX.1 mandated
+       function; declare its prototype.
+
+2017-11-08  Keith Marshall  <keith@users.osdn.me>
+
+       Overhaul WinSock fd_set content management macros.
+
+       * include/winsock.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Replace the
+       original implementations of each of these macros, redirecting to...
+       (__FD_SET, __FD_ISSET, __FD_CLR, __FD_ZERO): ...these new, equivalent
+       inline functions, respectively; these are more robust, and correct a
+       defect in the original FD_SET macro implementation, whereby duplicate
+       descriptors could be added to an fd_set array, but would not then be
+       removed by the corresponding FD_CLR macro.
+
+       * tests/winsock.at (MINGW_AT_CHECK_WINSOCK): Ensure that all test
+       programs are linked with -lwsock32 or -lws2_32, as appropriate; the
+       __FD_SET and __FD_ISSET functions are dependent on the __WSAFDIsSet()
+       function, which is implemented in each of these libraries.
+
+2017-11-07  Keith Marshall  <keith@users.osdn.me>
+
+       Identify features which have been deprecated in WinSock v2.
+
+       * include/winsock.h (__WINSOCK2_DEPRECATED): Define as nothing.
+       * include/winsock2.h (__WINSOCK2_DEPRECATED): Define as equivalent...
+       (__MINGW_ATTRIB_DEPRECATED): ...to this.
+
+       * include/winsock.h include/winsock2.h: Qualify...
+       (WSAIsBlocking, WSAUnhookBlockingHook, WSASetBlockingHook)
+       (WSACancelBlockingCall): ...each of these function prototypes, with...
+       (__WINSOCK2_DEPRECATED): ...this attribute.
+
+2017-11-07  Keith Marshall  <keith@users.osdn.me>
+
+       Adopt system naming convention for USE_SYS_TYPES_FD_SET macro.
+
+       * include/winsock.h (USE_SYS_TYPES_FD_SET): Deprecate it; use...
+       (_USE_SYS_TYPES_FD_SET): ...this alternative; it is named to conform
+       with preferred convention for system feature test macros.
+
+2017-11-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Use WINSOCK_API_LINKAGE consistently in WinSock headers.
+
+       * include/winsock.h (WINSOCK_API_LINKAGE): Define, and prefix to...
+       (accept, bind, closesocket, connect, ioctlsocket, inet_addr, inet_ntoa)
+       (getpeername, getsockname, getsockopt, listen, recv, recvfrom, send)
+       (sendto, setsockopt, shutdown, socket, gethostbyaddr, gethostbyname)
+       (getservbyport, getservbyname, getprotobynumber, getprotobyname)
+       (WSAStartup, WSACleanup, WSASetLastError, WSAGetLastError)
+       (WSAIsBlocking, WSAUnhookBlockingHook, WSASetBlockingHook)
+       (WSACancelBlockingCall, WSAAsyncGetServByName, WSAAsyncGetServByPort)
+       (WSAAsyncGetProtoByName, WSAAsyncGetProtoByNumber, WSAAsyncSelect)
+       (WSAAsyncGetHostByName, WSAAsyncGetHostByAddr, WSACancelAsyncRequest)
+       (htonl, ntohl, htons, ntohs, select): ...these function prototypes.
+
+       * include/winsock2.h (WINSOCK_API_LINKAGE): Remove it from...
+       (LPFN_WSASTARTUP): ...this typedef; it is inappropriate.
+
+2017-10-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor <wtypes.h> vs. <nspapi.h> and WinSock headers.
+
+       * include/wtypes.h: Tidy layout; assert copyright.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+       [__NSPAPI_H_SOURCED__]: Restrict exposure of declared content to...
+       [!__BLOB_DATA_TYPE_DEFINED] (BLOB, PBLOB, LPBLOB): ...these; define...
+       (__BLOB_DATA_TYPE_DEFINED__): ...this internal guard; it renames...
+       (__BLOB_T_DEFINED): ...this; do not define...
+       (_WTYPES_H): ...this external guard.
+
+       * include/nspapi.h: Tidy layout; assert copyright.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+       (__CSADDR_T_DEFINED): Do not define; it is no longer required.
+       [__WINSOCK2_H_SOURCED__]: Restrict exposure of declared content to...
+       (struct _CSADDR_INFO): ...this, as an incomplete type, along with...
+       (CSADDR_INFO, PCSADDR_INFO, LPCSADDR_INFO): ...these typedefs; also...
+       (SOCKET_ADDRESS, PSOCKET_ADDRESS, LPSOCKET_ADDRESS): ...define fully.
+       [__WINSOCK2_H_SOURCED__] (_NSPAPI_H): Do not define external guard.
+       [!__WINSOCK2_H_SOURCED__] (struct _CSADDR_INFO): Define fully.
+       (__BLOB_T_DEFINED, BLOB, PBLOB, LPBLOB): Do not define; instead...
+       (__NSPAPI_H_SOURCED__): ...define this, temporarily; include wtypes.h
+       [!__WINSOCK2_H_SOURCED__ && _WIN32_WINNT >= WIN2K]: Include winsock2.h
+       [!__WINSOCK2_H_SOURCED__ && _WIN32_WINNT < WIN2K]: Include winsock.h
+       [UNICODE vs. !UNICODE]: Discriminate generic symbol names, using...
+       (__AW_SUFFIXED__): ...this, to facilitate definition of each of...
+       (SetService, GetAddressByName, _SERVICE_INFO): ...these, and...
+       (__AW_ALIAS__): ...this, for definition of each of...
+       (SERVICE_INFO, LPSERVICE_INFO): ...these.
+
+       * include/winsock2.h (__WINSOCK2_H_SOURCED__): Define it temporarily.
+       (__CSADDR_T_DEFINED, struct _CSADDR_INFO, CSADDR_INFO, PCSADDR_INFO)
+       (LPCSADDR_INFO, __BLOB_T_DEFINED, BLOB, PBLOB, LPBLOB): Do not define;
+       include nspapi.h selectively, to acquire them.
+
+2017-09-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor <winerror.h> duplicate content out of winsock headers.
+
+       * include/winsock.h include/winsock2.h [!defined WSABASEERR]: Delete
+       conditional block, and all of its content; selectively include...
+       * include/winerror.h [__WINSOCK_H_SOURCED__]: ...this instead.
+       [__WINSOCK_H_SOURCED__] (_WINERROR_H): Do not define it.
+       (__WINSOCK_V1_ERRORS__, __WINSOCK_V2_ERRORS__): New temporary macros;
+       define them, to segregate WSA error messages applicable to WinSock v2
+       only, from those applicable to both WinSock v1.1 and WinSock v2.
+       (__WSA_ERRNO): New macro; use it to redefine all WSA specific error
+       codes, except WSABASEERR, relative to WSABASEERR itself.
+
+2017-09-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor <sys/time.h> duplicate content out of winsock headers.
+
+       * include/winsock.h include/winsock2.h [_TIMEVAL_DEFINED]: Delete
+       conditional block, and all its content; include <sys/time.h> instead.
+       (__WINSOCK_H_SOURCED__): New macro; define it temporarily, only while
+       processing this header, such that only selected content from other
+       internally referenced headers is exposed.
+
+2017-09-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Source BSD non-standard type definitions from mingwrt header.
+
+       * include/winsock.h include/winsock2.h [_BSDTYPES_DEFINED]: Delete
+       conditional block, and its entire type definition content; include...
+       * include/sys/bsdtypes.h: ...this common file instead; it defines...
+       (u_char, u_int, u_long, u_short): ...these non-standard data types.
+
+2017-09-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct misuse of __INSIDE_MSYS__ feature test.
+
+       * include/winsock2.h [!__INSIDE_MSYS__]: One of several instances
+       omits "defined" operator; it should be expressed consistently as...
+       [! defined __INSIDE_MSYS__]: ...this; correct it.
+
+2017-09-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Prepare for <winsock.h> vs. <winsock2.h> refactoring.
+
+       * include/winsock.h: Tidy layout; assert copyright.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them to avoid C++ name mangling.
+
+       * include/winsock2.h: Assert copyright; tidy layout, ensuring that all
+       sections, which are common with <winsock.h>, are laid out congruently.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them to avoid C++ name mangling.
+       (SD_RECEIVE, SD_SEND, SD_BOTH): Delete duplicate constant definitions.
+       (SO_DONTLINGER, MSG_MAXIOVLEN): Likewise, delete duplicate definitions.
+       (__AW_ALIAS__, __AW_SUFFIXED__): Use them, to avoid reproduction of...
+       [UNICODE]: ...alternative typedefs, and function name aliases...
+       [!UNICODE]: ...versus this case.
+
+2017-08-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Resolve secondary issue arising from MinGW-Bug [#2350]
+
+       * include/winuser.h (GetTitleBarInfo)
+       [_WIN32_WINDOWS >= _WIN32_WINDOWS_98]: Remove exposure restriction;
+       it conflicted with current MSDN documentation, so now falls within...
+       [_WIN32_WINNT >= Win2K || _WIN32_WINDOWS >= Win98]: ...this.
+
+2017-08-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Resolve MinGW-Bug [#2350]
+
+       * include/winuser.h (GetTitleBarInfo): Move prototype after...
+       (PTITLEBARINFO): ...this type definition; it is used as a function
+       argument type, so must be defined beforehand.
+
+2017-08-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Extend testsuite to cover winsock fd_set macro operations.
+
+       * tests/winsock.at: New file; it implements appropriate tests, and
+       enables use of "-k winsock", "-k winsock2", and "-k fd_set" autotest
+       keywords to invoke them, (e.g. make check TESTSUITEFLAGS='-k fd_set').
+
+       * tests/testsuite.at.in (winsock.at): Integrate it.
+       (MINGW_AT_CHECK_RUN): Accept a variant list of libraries when linking.
+       (MINGW_AT_LINK_LIBS_DEFAULT): New macro; it establishes the initial
+       default list of libraries, or resets the list to this initial default.
+       (MINGW_AT_LINK_LIBS): New macro; it establishes an augmented list of
+       library specifications, to be used until subsequently reset.
+
+2017-07-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Prepare and tag for release of MinGW.org WSL-5.0.1
+
+       * All files (wsl-5.0.1-release): Tag assigned.
+
+2017-07-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Automate testsuite dependency generation.
+
+       * tests/Makefile.in (testsuite) [$srcdir/*.at]: Automatically
+       enumerate all such wildcard matches as prerequisites, instead of...
+       (headers.at): ...this sole explicit dependency.
+
+2017-06-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Make <winnt.h> header effectively self-contained.
+
+       * include/winnt.h (_WINNT_H): Defer definition unless included via...
+       (windef.h): ...this; include it, to enforce inclusion order, then...
+       [_WINNT_H]: ...re-evaluate it, to avoid recursive inclusion loop.
+
+2017-06-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Consolidate <winuser.h> version specific conditionals.
+
+       * include/winuser.h: Reorganize file content; group manifest constant
+       definitions into one nested collection of conditional blocks, with one
+       block per Windows version evolution; do likewise for type definitions
+       and function prototypes which are always exposed, and separately...
+       [! defined NOGDI]: ...for those which may be suppressed, when GDI
+       support is not required.
+
+2017-06-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Make <winuser.h> header effectively self-contained.
+
+       * include/winuser.h (stdarg.h): Include it, in addition to...
+       [NOGDI] (windef.h): ...this, directly or otherwise indirectly via...
+       [!NOGDI] (wingdi.h): ...this, for effective self-containment.
+
+2017-06-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Consolidate <wingdi.h> version specific conditionals.
+
+       * include/wingdi.h: Reorganize file content; group manifest constant
+       definitions into a single nested collection of conditional blocks, for
+       those definitions which are common to both Win9x and WinNT, with one
+       block per Windows version evolution, sorting alphabetically within
+       each block; do likewise for additional manifest constant definitions
+       which are specific to WinNT, and also for data type definitions and
+       function prototypes.
+
+2017-06-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Tidy, and make <wingdi.h> header effectively self-contained.
+
+       * include/wingdi.h: Tidy layout; assert copyright.
+       (windef.h): Include it; this achieves self-containment.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them.
+       [UNICODE vs. !UNICODE]: Discriminate generic symbol names, using...
+       (__AW_ALIAS__): ...this, when defining each of...
+       (DEVMODE, PDEVMODE, LPDEVMODE, DOCINFO, LPDOCINFO, LOGCOLORSPACE)
+       (LOGFONT, PLOGFONT, LPLOGFONT, EXTLOGFONT, PEXTLOGFONT, LPEXTLOGFONT)
+       (LPLOGCOLORSPACE, TEXTMETRIC, PTEXTMETRIC, LPTEXTMETRIC, GCP_RESULTS)
+       (PPOLYTEXT, LPPOLYTEXT, NEWTEXTMETRIC, PNEWTEXTMETRIC, LPNEWTEXTMETRIC)
+       (LPENUMLOGFONTEX, ENUMLOGFONTEXDV, PENUMLOGFONTEXDV, LPENUMLOGFONTEXDV)
+       (OUTLINETEXTMETRIC, POUTLINETEXTMETRIC, LPOUTLINETEXTMETRIC, POLYTEXT)
+       (LPGCP_RESULTS, DISPLAY_DEVICE, PDISPLAY_DEVICE, LPDISPLAY_DEVICE)
+       (NEWTEXTMETRICEX, ENUMLOGFONT, LPENUMLOGFONT, ENUMLOGFONTEX): ...these.
+       (__AW_SUFFIXED__): Similarly, use this when declaring each of...
+       (FONTENUMPROC, ICMENUMPROC, AddFontResource, AddFontResourceEx,
+       (CopyEnhMetaFile, CopyMetaFile, CreateColorSpace, CreateEnhMetaFile)
+       (CreateDC, CreateFont, CreateFontIndirect, CreateIC, CreateMetaFile)
+       (CreateScalableFontResource, DeviceCapabilities, EnumFontFamilies)
+       (EnumFontFamiliesEx, EnumFonts, EnumICMProfiles, ExtTextOut)
+       (GetCharABCWidths, GetCharABCWidthsFloat, GetCharacterPlacement)
+       (GetCharWidth32, GetCharWidth, GetCharWidthFloat, GetEnhMetaFile)
+       (GetEnhMetaFileDescription, GetGlyphOutline, GetICMProfile)
+       (GetKerningPairs, GetLogColorSpace, GetMetaFile, GetObject)
+       (GetOutlineTextMetrics, GetTextExtentExPoint, GetTextExtentPoint)
+       (GetTextExtentPoint32, GetTextFace, GetTextMetrics, PolyTextOut,
+       (RemoveFontResource, RemoveFontResourceEx, ResetDC, SetICMProfile)
+       (StartDoc, TextOut, UpdateICMRegKey, wglUseFontBitmaps)
+       (wglUseFontOutlines, GetGlyphIndices): ...these.
+
+2017-05-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Declare CONDITION_VARIABLE API, per feature request [#2314]
+
+       * include/winbase.h [_WIN32_WINNT >= _WIN32_WINNT_VISTA]
+       (CONDITION_VARIABLE, PCONDITION_VARIABLE): Define data types, and...
+       (InitializeConditionVariable, SleepConditionVariableCS)
+       (SleepConditionVariableSRW, WakeAllConditionVariable)
+       (WakeConditionVariable): ...declare prototypes.
+
+2017-05-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Declare SRWLOCK API, to support feature request [#2314]
+
+       * include/winbase.h [_WIN32_WINNT >= _WIN32_WINNT_VISTA]
+       (SRWLOCK, *PSRWLOCK): Define these data types, and declare...
+       (InitializeSRWLock, AcquireSRWLockExclusive, AcquireSRWLockShared)
+       (ReleaseSRWLockExclusive, ReleaseSRWLockShared): ...these prototypes.
+       [_WIN32_WINNT >= _WIN32_WINNT_WIN7] (TryAcquireSRWLockExclusive)
+       (TryAcquireSRWLockShared): Declare additional prototypes.
+
+2017-03-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Resolve potential <winbase.h> vs. <winerror.h> inconsistency.
+
+       * include/winerror.h: Tidy layout; assert copyright.
+
+       * include/winbase.h (WAIT_TIMEOUT): Redefine; make it identical to...
+       * include/winerror.h (WAIT_TIMEOUT): ...this equivalent; remove...
+       [!defined WAIT_TIMEOUT]: ...this conditional redefinition guard from
+       both locations; it permitted inconsistency between the two.
+
+2017-03-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Consolidate <winbase.h> version specific conditionals.
+
+       * include/winbase.h: Reorganize file content; group manifest constant
+       definitions into one nested collection of conditional blocks, with one
+       block per Windows version evolution, sorting alphabetically within each
+       block; do likewise for data type definitions and function prototypes.
+
+2017-03-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Tidy, and make <winbase.h> header effectively self-contained.
+
+       * include/w32api.h (__AW_ALIAS__): Rename original implementation...
+       (__AW_ALIAS_EX__): ...as this, retaining its encapsulation of...
+       (__AW_EXTENDED__): ...this; subsequently reimplement...
+       (__AW_ALIAS__): ...this, with original name, now encapsulating...
+       (__AW_SUFFIXED__): ...this.
+
+       * include/dbt.h (__AW_ALIAS__): Replace all references with...
+       (__AW_ALIAS_EX__): ...this renamed alternative, when defining...
+       (DEV_BROADCAST_DEVICEINTERFACE, PDEV_BROADCAST_DEVICEINTERFACE)
+       (DEV_BROADCAST_PORT, PDEV_BROADCAST_PORT): ...these.
+
+       * include/winbase.h: Tidy layout; assert copyright.
+       (stdarg.h, windef.h): Include them, to achieve self-containment.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+       [UNICODE vs. ! UNICODE]: Replace separated declarations; use...
+       [__AW_ALIAS__]: ...this, to correctly specify each of...
+       (STARTUPINFO, LPSTARTUPINFO, WIN32_FIND_DATA, PWIN32_FIND_DATA)
+       (LPWIN32_FIND_DATA, HW_PROFILE_INFO, LPHW_PROFILE_INFO, ACTCTX)
+       (PACTCTX, PCACTCTX): ...these generic typedefs, and...
+       [__AW_SUFFIXED__]: ...this, to correctly map each of...
+       (ENUMRESLANGPROC, ENUMRESNAMEPROC, ENUMRESTYPEPROC, AddAtom)
+       (AccessCheckAndAuditAlarm, BackupEventLog, BeginUpdateResource)
+       (BuildCommDCB, BuildCommDCBAndTimeouts, CheckNameLegalDOS8Dot3)
+       (CallNamedPipe, ClearEventLog, CommConfigDialog, CopyFile, CopyFileEx)
+       (CreateActCtx, CreateDirectory, CreateDirectoryEx, CreateEvent)
+       (CreateFile, CreateFileMapping, CreateHardLink, CreateJobObject)
+       (CreateMailslot, CreateMutex, CreateNamedPipe, CreateProcess)
+       (CreateProcessAsUser, CreateSemaphore, CreateSymbolicLink)
+       (CreateWaitableTimer, DefineDosDevice, DeleteFile, EncryptFile)
+       (DeleteVolumeMountPoint, DnsHostnameToComputerName, EndUpdateResource)
+       (EnumResourceLanguages, EnumResourceNames, EnumResourceTypes)
+       (ExpandEnvironmentStrings, FatalAppExit, FileEncryptionStatus)
+       (FindActCtxSectionString, FindAtom, FindFirstChangeNotification)
+       (FindFirstFile, FindFirstFileEx, FindFirstVolume, FindNextFile)
+       (FindFirstVolumeMountPoint, FindNextVolume, FindNextVolumeMountPoint)
+       (FindResource, FindResourceEx, FormatMessage, FreeEnvironmentStrings)
+       (GetAtomName, GetBinaryType, GetCommandLine, GetCompressedFileSize)
+       (GetComputerName, GetComputerNameEx, GetCurrentDirectory)
+       (GetDefaultCommConfig, GetDiskFreeSpace, GetDiskFreeSpaceEx)
+       (GetDllDirectory, GetDriveType, GetEnvironmentStrings)
+       (GetEnvironmentVariable, GetFileAttributes, GetFileAttributesEx)
+       (GetFileSecurity, GetFinalPathNameByHandle, GetFullPathName)
+       (GetLogicalDriveStrings, GetLongPathName, GetModuleFileName)
+       (GetModuleHandle, GetModuleHandleEx, GetNamedPipeHandleState)
+       (GetPrivateProfileInt, GetPrivateProfileSection)
+       (GetPrivateProfileSectionNames, GetPrivateProfileString)
+       (GetPrivateProfileStruct, GetProfileInt, GetProfileSection)
+       (GetProfileString, GetShortPathName, GetStartupInfo)
+       (GetSystemDirectory, GetSystemWindowsDirectory, GetTempFileName)
+       (GetSystemWow64Directory, GetTempPath, GetUserName, GetVersionEx)
+       (GetVolumeInformation, GetVolumeNameForVolumeMountPoint)
+       (GetVolumePathName, GetVolumePathNamesForVolumeName, GlobalAddAtom)
+       (GetWindowsDirectory, GlobalFindAtom, GlobalGetAtomName)
+       (IsBadStringPtr, LoadLibrary, LoadLibraryEx, LogonUser)
+       (LookupAccountName, LookupAccountSid, LookupPrivilegeDisplayName)
+       (LookupPrivilegeName, LookupPrivilegeValue, lstrcat, lstrcmp)
+       (lstrcmpi, lstrcpy, lstrcpyn, lstrlen, MoveFile, MoveFileEx)
+       (MoveFileWithProgress, ObjectCloseAuditAlarm, ObjectDeleteAuditAlarm)
+       (ObjectOpenAuditAlarm, ObjectPrivilegeAuditAlarm, OpenBackupEventLog)
+       (OpenEvent, OpenEventLog, OpenFileMapping, OpenMutex, OpenSemaphore)
+       (OutputDebugString, PrivilegedServiceAuditAlarm, QueryDosDevice)
+       (ReadEventLog, RegisterEventSource, RemoveDirectory, ReplaceFile)
+       (ReportEvent, SearchPath, SetComputerName, SetCurrentDirectory)
+       (SetDefaultCommConfig, SetDllDirectory, SetEnvironmentVariable)
+       (SetFileAttributes, SetFileSecurity, SetFileShortName, SetVolumeLabel)
+       (SetFirmwareEnvironmentVariable, SetVolumeMountPoint, UpdateResource)
+       (VerifyVersionInfo, WaitNamedPipe, WritePrivateProfileSection)
+       (WritePrivateProfileString, WritePrivateProfileStruct)
+       (WriteProfileSection, WriteProfileString): ...these, and add...
+       (GetCurrentHwProfile, OpenWaitableTimer, SetComputerNameEx)
+       (GetFirmwareEnvironmentVariable): ...these previously missing generic
+       function name aliases.
+
+2017-03-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor mingwrt and w32api common makefile content.
+
+       * Makefile.in (w32api-srcdist-config-files): Rename it...
+       (w32api-srcdist-common-files): ...as this phoney build rule.
+       (shared_include_file): New macro; define it, and include named file.
+       (configure, config.status, Makefile, config.status.missing, _mingw.h)
+       (w32api.h, PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): Factor
+       out; relocate them to new file in common parent directory...
+       * ../Makefile.comm: ...here.
+
+2017-03-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct a copyright notice update omission.
+
+       * configure.ac: Extend copyright date range to include 2017.  Also
+       clean up superfluous trailing whitespace.
+
+2017-03-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix generated header file dependencies.
+
+       * Makefile.in (_mingw.h, w32api): Make them depend on changes in...
+       [VERSION.m4]: ...this; package version changes are no longer made...
+       [configure.ac]: ...here; delete associated prerequisite reference.
+       (distclean-local): Delete them.
+
+2017-03-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Prepare and tag for release of w32api-5.0 package set.
+
+       * All files (wsl-5.0-release): Tag assigned.
+
+2017-02-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement basic test suite infrastructure.
+
+       * tests: New subdirectory; it hosts...
+       * tests/Makefile.in tests/testsuite.at.in tests/atlocal.in
+       * tests/headers.at: ...these new files; they implement the basic test
+       suite infrastructure, initially comprising header integrity checks.
+
+       * configure.ac (AC_PROG_CXX): Check it.
+       (AC_CONFIG_TESTDIR): Configure tests subdirectory.
+       (AC_CHECK_PROG): Check for autom4te; configure fall back if missing.
+       (AC_CONFIG_FILES): Generate tests/atlocal, tests/testsuite.at.tmp, and
+       tests/Makefile.
+
+       * Makefile.in (check test tests): New rules; all are synonymous.
+       (check-recursive): New rule; invoked by each of the preceding three.
+       (w32api-srcdist-testsuite-files): New rule; implement and use it...
+       (w32api-srcdist-files): ...here.
+
+2017-02-14  Alexander Krisak  <akrisak@users.sourceforge.net>
+
+       Add missing constant definition, per issue [#2249].
+
+       * include/winnt.h (JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE): Define it.
+
+2017-02-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid unnecessary duplication of configuration files.
+
+       * Makefile.in (vpath install-sh): Define it; it matches...
+       (vpath %.m4): ...this; add $top_srcdir/..; search it first; delete
+       rule for creating duplicate file reference links in $top_srcdir.
+       (configure): Add '-I ..' option, when running autoconf.
+       (w32api-srcdist-files): Rename it as...
+       (w32api-srcdist-package-files): ...this; remove dependencies on...
+       (aclocal.m4 VERSION.m4 install-sh): ...these; reinstate them in...
+       (w32api-srcdist-config-files): ...this new distributable files
+       enumeration goal; add it as one new prerequisite of...
+       (w32api-srcdist-files): ...this repurposed goal; also depends on...
+       (w32api-srcdist-package-files): ...this; populate it using...
+       (SRCDIST_ADD): ...this macro; redefine it accordingly.
+
+2016-12-08  Jerzy Tarasiuk  <jz_fuw@users.sourceforge.net>
+
+       Correct typo in <ddk/ntdddisk.h>; fix bug [#2323]
+
+       * include/ddk/ntdddisk.h (IOCTL_DISK_BASE): Correct definition;
+       it was previously transcribed incorrectly, as being equivalent to...
+       (FILE_TYPE_DISK): ...this, but it should have been equivalent to...
+       (FILE_DEVICE_DISK): ...this.
+
+2016-12-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Rationalize <winuser.h> ANSI vs. UNICODE definition strategy.
+
+       * include/winuser.h [UNICODE, !UNICODE]: Replace individual pairs of
+       alternative generic symbol mapping definitions, and typedefs, with...
+       (__AW_SUFFIXED__): ...one such macro expansion per pair; collate with
+       their respective ANSI and UNICODE specific references.
+
+2016-11-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Deprecate obsolete <winable.h> and <pbt.h> headers.
+
+       * Makefile.in (%.h.in): Generalize vpath definition.
+       (obsolete_headers, obsolete_header_script, w32api_dist_headers)
+       (w32api_generated_headers, replace_headers, macro_name): New macros.
+       (install-w32api-headers): Add dependency on w32api_dist_headers.
+       (%.h): New static pattern rule; it generates generic dependants of...
+       * include/obsolete.h.in: ...this new template for obsolete headers.
+
+       * include/winable.h include/pbt.h: Delete them; they are obsolete;
+       replace them by install-time generated generic stubs.
+
+2016-11-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Update <winuser.h> and <dbt.h>; fix issue [#2317].
+
+       * include/winuser.h: Tidy layout; add copyright notice.
+       [WINVER, _WIN32_WINDOWS, _WIN32_WINNT]: Compare them symbolically.
+       (__WINUSER_H_SOURCED__): New internal macro; define it, to facilitate
+       selective inclusion of content from other headers; delete when done.
+       (BSM_ALLCOMPONENTS, BSF_ALLOWSFW, BSM_APPLICATIONS, BSM_ALLDESKTOPS)
+       (BSM_INSTALLABLEDRIVERS, BSM_NETDRIVER, BSM_VXDS, BSF_FLUSHDISK)
+       (BSF_FORCEIFHUNG, BSF_IGNORECURRENTTASK, BSF_LUID, BSF_NOHANG)
+       (BSF_NOTIMEOUTIFNOTHUNG, BSF_POSTMESSAGE, BSF_QUERY, BSF_RETURNHDESK)
+       (BSF_SENDNOTIFYMESSAGE): Delete; do not define them locally; retrieve
+       them selectively from <dbt.h>, where they are properly defined.
+       [WINVER >= WIN2K/WIN98] (BlockInput): Add missing declaration.
+       (KillTimer, TIMERPROC): Declare timer event parameters as UINT_PTR;
+       formerly UINT, which doesn't match 64-bit size required for Win64.
+       (SetTimer): Likewise; also declare similar return type.
+       (WINEVENTPROC): Add missing CALLBACK attribute.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+       * include/w32api.h (__AW_ALIAS__): New macro; define it.
+       * include/sdkddkver.h (_WIN32_WINNT_NT4SP3): New macro; define it.
+
+       * include/dbt.h: Tidy layout; add copyright notice.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Also prefer them here.
+       [__WINUSER_H_SOURCED__] (_DBT_H): Do not define; expose only...
+       (BSM_ALLCOMPONENTS, BSF_ALLOWSFW, BSM_APPLICATIONS, BSM_ALLDESKTOPS)
+       (BSM_INSTALLABLEDRIVERS, BSM_NETDRIVER, BSM_VXDS, BSF_FLUSHDISK)
+       (BSF_FORCEIFHUNG, BSF_IGNORECURRENTTASK, BSF_LUID, BSF_NOHANG)
+       (BSF_NOTIMEOUTIFNOTHUNG, BSF_POSTMESSAGE, BSF_QUERY, BSF_RETURNHDESK)
+       (BSF_SENDNOTIFYMESSAGE): ...these, to be duplicated in <winuser.h>
+       (__AW_ALIAS__): Use it to define ANSI/UNICODE specific aliases for...
+       (DEV_BROADCAST_PORT, DEV_BROADCAST_DEVICEINTERFACE): ...these generic
+       structure typedef names, and their respectively corresponding...
+       (PDEV_BROADCAST_PORT, PDEV_BROADCAST_DEVICEINTERFACE): ...pointer
+       type names.
+
+2016-09-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix a minor ISO-C++11 conformity issue.
+
+       * include/winnt.h (GetCurrentFiber): Insert spaces, as required
+       by ISO-C++11, between concatenated string literal elements.
+       (GetFiberData, NtCurrentTeb): Likewise.
+
+2016-08-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Merge w32api-3.18.1 legacy updates to 5.0-active branch.
+
+       * include/ddk/winddk.h: Update per issue [#2307] resolution.
+       * include/ddk/ntdddisk.h include/ddk/ntddstor.h: Likewise.
+
+2016-07-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Prepare and tag all files for release of w32api-3.18.1
+
+       * configure.ac (AC_INIT): Increment patch level to 3.18.1
+
+2016-07-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Resolve improper macro expansion issue [#2307].
+
+       * include/ddk/winddk.h (__FILE_AM_BUFFERED, __FILE_RD_BUFFERED)
+       (__FILE_RW_BUFFERED): Redefine, encapsulating the expansion of each
+       dependent macro WITHIN the expansion of each of these; hence...
+
+       * include/ddk/ntdddisk.h (IOCTL_DISK_GET_DRIVE_GEOMETRY)
+       (IOCTL_DISK_FORMAT_TRACKS_EX, IOCTL_DISK_REASSIGN_BLOCKS)
+       (IOCTL_DISK_GET_MEDIA_TYPES, IOCTL_DISK_CONTROLLER_NUMBER)
+       (IOCTL_DISK_GET_DRIVE_LAYOUT, IOCTL_DISK_SET_DRIVE_LAYOUT)
+       (IOCTL_DISK_GET_PARTITION_INFO, IOCTL_DISK_SET_PARTITION_INFO)
+       (IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, IOCTL_DISK_UPDATE_DRIVE_SIZE)
+       (IOCTL_DISK_VERIFY, IOCTL_DISK_FORMAT_TRACKS, IOCTL_DISK_PERFORMANCE)
+       (IOCTL_DISK_CREATE_DISK, IOCTL_DISK_RESERVE, IOCTL_DISK_IS_WRITABLE)
+       (IOCTL_DISK_GET_PARTITION_INFO_EX, IOCTL_DISK_SET_PARTITION_INFO_EX)
+       (IOCTL_DISK_GET_CACHE_INFORMATION, IOCTL_DISK_SET_CACHE_INFORMATION)
+       (IOCTL_DISK_INTERNAL_SET_VERIFY, IOCTL_DISK_INTERNAL_CLEAR_VERIFY)
+       (IOCTL_DISK_GET_DRIVE_LAYOUT_EX, IOCTL_DISK_SET_DRIVE_LAYOUT_EX)
+       (IOCTL_DISK_GROW_PARTITION, IOCTL_DISK_DELETE_DRIVE_LAYOUT)
+       (IOCTL_DISK_GET_LENGTH_INFO, IOCTL_DISK_PERFORMANCE_OFF)
+       (IOCTL_DISK_CHECK_VERIFY, IOCTL_DISK_FIND_NEW_DEVICES)
+       (SMART_GET_VERSION, SMART_RCV_DRIVE_DATA, SMART_SEND_DRIVE_COMMAND):
+       ...adjust these dependent macro definitions accordingly.
+
+       * include/ddk/ntddstor.h (IOCTL_STORAGE_CHECK_VERIFY)
+       (IOCTL_STORAGE_CHECK_VERIFY2, IOCTL_STORAGE_MEDIA_REMOVAL)
+       (IOCTL_STORAGE_EJECTION_CONTROL, IOCTL_STORAGE_MCN_CONTROL)
+       (IOCTL_STORAGE_GET_DEVICE_NUMBER, IOCTL_STORAGE_PREDICT_FAILURE)
+       (IOCTL_STORAGE_GET_MEDIA_TYPES, IOCTL_STORAGE_GET_MEDIA_TYPES_EX)
+       (IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER, IOCTL_STORAGE_QUERY_PROPERTY)
+       (IOCTL_STORAGE_RELEASE, IOCTL_STORAGE_FIND_NEW_DEVICES)
+       (IOCTL_STORAGE_RESET_BUS, IOCTL_STORAGE_RESET_DEVICE)
+       (IOCTL_STORAGE_EJECT_MEDIA, IOCTL_STORAGE_LOAD_MEDIA)
+       (IOCTL_STORAGE_LOAD_MEDIA2, IOCTL_STORAGE_RESERVE): Likewise.
+
+2016-07-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Update install-sh to match mingw.org/build-aux package.
+
+       * install-sh: Delete it; use version in parent directory instead,
+       recreating local copy, (as symlink, if supported), on demand.
+
+2016-07-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Eliminate redundant configuration files.
+
+       * aclocal.m4 VERSION.m4: Delete them; restore them on demand, via...
+       * Makefile.in ($top_srcdir/../%): ...this symlink dependency rule.
+
+       * configure.ac (AC_PROG_LN_S): Add configuration check.
+
+2016-07-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Discard redundant config.guess and config.sub files.
+
+       * config.guess config.sub: Delete them; they are no longer required.
+       * Makefile.in (SRCDIST_ADD): Remove related references.
+
+2016-07-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Merge recent legacy branch updates to 5.0-active branch.
+
+       * Makefile.in include/ddk/ntifs.h include/ddk/winddk.h
+       * include/sdkddkver.h include/setupapi.h include/windows.h
+       * include/winnt.h include/winuser.h include/winver.h
+       * include/wtsapi32.h lib/wtsapi32.def: Updated.
+
+2016-07-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Prepare and tag all files for release of w32api-3.18.
+
+2016-07-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Do not pass MAKEFLAGS explicitly, when invoking recursive make.
+
+       * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
+       references from $(MAKE) command lines; make passes them implicitly.
+
+2016-06-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Backport MemoryBarrier() implementation from 4.0-dev branch.
+
+       * include/winnt.h (MemoryBarrier): Implement it; this is a rework of
+       Earnie's original inline implementation, but declared 'static' to fix
+       issue [#1661]; it is further modified, to avoid the broken pre-Vista
+       fallback identified by issue [#2131], and to remove references to...
+       (__faststorefence, __mf): ...these MSVC intrinsics, replaced by...
+       [defined __ATOMIC_SEQ_CST] (__atomic_thread_fence): ...this, or...
+       [GCC >= 4.4] (__sync_synchronize): ...this, as appropriate, falling
+       back to inline assembly code when necessary.
+
+       * include/ddk/winddk.h (KeMemoryBarrier): Delegate it to...
+       (MemoryBarrier): ...this, so avoiding the potential to emit invalid
+       code, for hosts which do not support the SSE2 'mfence' instruction.
+
+2016-06-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Merge further W32API updates from Cygwin CVS.
+       Incorporated selected changes from 2012-08-01 to 2012-08-04.
+
+       * include/setupapi.h include/winuser.h include/winver.h
+       * include/wtsapi32.h lib/wtsapi32.def: Merged and updated.
+
+2016-06-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Update mapping of GCC to MSVC host identification macros.
+
+       * include/windows.h: Assert copyright; tidy layout.
+       (_M_IX86, _ALPHA_, _PPC_, _MIPS_, _68K_): Delete duplicate defines.
+       [!_WINUSER_H, !_WINNLS_H, !_WINVER_H, !_WINNETWK_H, !_WINREG_H]
+       [!_WINSVC_H]: Do not explicitly test these here; they are properly
+       managed implicitly, by GCC, when including the associated headers.
+
+       * include/winnt.h: Assert copyright; tidy layout.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use these, as appropriate.
+       (__aligned__, __always_inline__, __selectany__): Prefer these...
+       (aligned, always_inline, selectany): ...to these attribute forms.
+       (CONTEXT) [_ALPHA_, _PPC_, MIPS, ARM]: Change selector macros to...
+       [_M_ALPHA, _M_PPC, _M_MRX000, _M_ARM]: ...these, respectively.
+       (GetCurrentFiber, GetFiberData, NtCurrentTeb): Redefine in terms of...
+       (__tib_fiber_data__, __tib_self_refptr__): ...these adaptive macros...
+       [!_WIN64]: ...to accommodate 32-bit, or otherwise 64-bit Windows.
+       (_ALPHA_, _PPC_, _MIPS_, _68K_): Delete these redundant macros...
+       (_M_IX86): ...also removing this, but relocate it to...
+       * include/sdkddkver.h (_M_IX86): ...here; augment it with...
+       (_M_IX86_FP, _M_X64, _M_AMD64, _M_IA64): ...these; define them as
+       appropriate.
+
+       * include/ddk/ntifs.h [!_ALPHA_]: Augment test; rather consider...
+       [!_ALPHA_ && !_M_ALPHA]: ...this, for structure alignment control.
+
+2016-05-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Merge W32API updates, from Cygwin CVS, into legacy branch.
+       Incorporate changes since release of w32api-3.17, until 2012-07-06.
+
+       * include/shobjidl.h lib/shobjidl-uuid.c: New files, added per LRN's
+       2012-04-28 commit to Cygwin CVS.
+
+       * include/gdiplus/gdiplustypes.h include/imagehlp.h
+       * include/routprot.h include/shlwapi.h include/userenv.h
+       * include/winbase.h include/wincon.h include/windef.h
+       * include/winerror.h include/wingdi.h include/winnt.h
+       * include/winsock.h include/winsock2.h include/winuser.h: Updated to
+       match Cygwin CVS state, as of 2012-07-06.
+
+       * include/wincrypt.h: Updated to remove duplicate manifest constant
+       definitions, as identified per Chris Sutcliffe's 2012-01-03 commit to
+       Cygwin CVS; merge with my 2015-09-29 commit; additionally, remove...
+       (szOID_RSA_emailAddr, szOID_RSA_unstructAddr, szOID_RSA_unstructName)
+       (CRYPT_ARCHIVABLE, CRYPT_NOHASHOID, CRYPT_VERIFYCONTEXT): ...extra
+       copies of these further duplicated definitions, identified during
+       the merging operation.
+
+2016-05-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Synchronize package version management with MinGW Runtime.
+
+       * VERSION.m4: New file; link it to keep in sync with identically named
+       file in top level composite package source directory; it defines...
+       (__VERSION__): ...this new composite package version macro.
+
+       * aclocal.m4: Link it, to keep in sync with identically named files in
+       top level composite source and sibling mingwrt sub-package directories.
+       (__VERSION__): New macro; include VERSION.m4 to define it.
+       (__BUG_REPORT_URL__): New macro; define it.
+
+       * configure.ac (AC_INIT): Assign package version and bug report URL...
+       (__VERSION__, __BUG_REPORT_URL__): ...from these, as defined through
+       automatic inclusion of aclocal.m4
+
+       * Makefile.in (configure): Add dependency on VERSION.m4
+
+2016-05-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Eliminate redundant <parts/winioctl.h> header.
+
+       * include/parts/winioctl.h: Delete it; distribute its content...
+       * include/ddk/winddk.h include/ddk/ntddstor.h include/ddk/ntdddisk.h:
+       ...among these, separating it into discrete sections based on...
+       [__need_ddk_winddk_includes, __need_ddk_ntddstor_includes]
+       [__need_ddk_ntdddisk_includes]: ...these selectors, respectively.
+       [__WINIOCTL_H_SOURCED__]: Expose only those sections; do not define...
+       (_DDK_WINDDK_H, _DDK_NTDDSTOR_H, _DDK_NTDDDISK_H): ...these.
+
+       * include/winioctl.h (__WINIOCTL_H_SOURCED__): Define it; include each
+       of <ddk/winddk.h>, <ddk/ntddstor.h>, and <ddk/ntdddisk.h>
+
+2016-05-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Enforce consistent specification of package version.
+
+       * include/w32api.h: Rename as...
+       * include/w32api.h.in: ...this build-time template file.
+       (__W32API_VERSION): Redefine it, in terms of...
+       (%PACKAGE_VERSION_LONG%): ...this substitution template.
+       (__W32API_MAJOR_VERSION, __W32API_MINOR_VERSION)
+       (__W32API_PATCHLEVEL): Likewise, redefine them in terms of...
+       (%PACKAGE_VERSION_MAJOR%, %PACKAGE_VERSION_MINOR%)
+       (%PACKAGE_VERSION_PATCH%): ...these.
+
+       * configure.ac (AC_CONFIG_SRCDIR): Adjust for renamed file.
+       (MINGW_AC_CONFIG_EXTRA_SRCDIR): Likewise, for similarly renamed
+       mingwrt/include/_mingw.h.in file.
+
+       * Makefile.in (all-w32api-libs): Add dependency on...
+       (w32api.h, _mingw.h): ...these; add rule to generate them, using...
+       (PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): ...these new macros;
+       they apply appropriate substitutions to the renamed template files.
+       (install-w32api-headers): Explicitly add w32api.h
+
+2015-11-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor for Windows DDK synchronization; fix MinGW-Bug [#1954].
+
+       * include/parts/winioctl.h: New file; it provides infrastructure for
+       sharing of common code between DDK headers and primary <winioctl.h>
+       (__IOCTL_STORAGE_, __IOCTL_DISK_, __FILE_RW_ACCESS, __FILE_AM_BUFFERED)
+       (__FILE_RD_BUFFERED, __FILE_RW_BUFFERED): New internal convenience
+       macros; they facilitate more consise expression of factored out IOCTL
+       and FSCTL macros; define them.
+
+       * include/ddk/ntddk.h: Assert copyright; tidy layout.
+       (__NTDDK_H): Multiple inclusion guard macro, renamed to...
+       (_DDK_NTDDK_H): ...this; it provides better indication of location.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+       * include/ddk/winddk.h: Assert copyright; tidy layout.
+       (__WINDDK_H): Multiple inclusion guard macro, renamed to...
+       (_DDK_WINDDK_H): ...this; it provides better indication of location.
+       [!defined _DDK_NTDDK_H]: Forbid direct inclusion; emit diagnostic.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+       (METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT)
+       (METHOD_NEITHER): Redefine as enumeration; factor it out.
+       (FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS)
+       (FILE_WRITE_ACCESS): Likewise.
+       (CTL_CODE, DEVICE_TYPE_FROM_CTL_CODE): Factor out.
+       [defined _DRIVE_LAYOUT_INFORMATION_MBR_DEFINED]: Delete guard.
+       (struct _DRIVE_LAYOUT_INFORMATION_MBR, DRIVE_LAYOUT_INFORMATION_MBR)
+       (PDRIVE_LAYOUT_INFORMATION_MBR): Factor out, without guard.
+       (struct _DRIVE_LAYOUT_INFORMATION_GPT, DRIVE_LAYOUT_INFORMATION_GPT)
+       (PDRIVE_LAYOUT_INFORMATION_GPT): Factor out.
+       (struct _PARTITION_INFORMATION_MBR, PARTITION_INFORMATION_MBR)
+       (PPARTITION_INFORMATION_MBR): Likewise.
+       (FILE_DEVICE_BEEP, FILE_DEVICE_CD_ROM, FILE_DEVICE_CD_ROM_FILE_SYSTEM)
+       (FILE_DEVICE_CONTROLLER, FILE_DEVICE_DATALINK, FILE_DEVICE_DFS)
+       (FILE_DEVICE_DISK, FILE_DEVICE_DISK_FILE_SYSTEM)
+       (FILE_DEVICE_FILE_SYSTEM, FILE_DEVICE_INPORT_PORT)
+       (FILE_DEVICE_KEYBOARD, FILE_DEVICE_MAILSLOT, FILE_DEVICE_MIDI_IN)
+       (FILE_DEVICE_MIDI_OUT, FILE_DEVICE_MOUSE)
+       (FILE_DEVICE_MULTI_UNC_PROVIDER, FILE_DEVICE_NAMED_PIPE)
+       (FILE_DEVICE_NETWORK, FILE_DEVICE_NETWORK_BROWSER)
+       (FILE_DEVICE_NETWORK_FILE_SYSTEM, FILE_DEVICE_NULL)
+       (FILE_DEVICE_PARALLEL_PORT, FILE_DEVICE_PHYSICAL_NETCARD)
+       (FILE_DEVICE_PRINTER, FILE_DEVICE_SCANNER)
+       (FILE_DEVICE_SERIAL_MOUSE_PORT, FILE_DEVICE_SERIAL_PORT)
+       (FILE_DEVICE_SCREEN, FILE_DEVICE_SOUND, FILE_DEVICE_STREAMS)
+       (FILE_DEVICE_TAPE, FILE_DEVICE_TAPE_FILE_SYSTEM, FILE_DEVICE_TRANSPORT)
+       (FILE_DEVICE_UNKNOWN, FILE_DEVICE_VIDEO, FILE_DEVICE_VIRTUAL_DISK)
+       (FILE_DEVICE_WAVE_IN, FILE_DEVICE_WAVE_OUT, FILE_DEVICE_8042_PORT)
+       (FILE_DEVICE_NETWORK_REDIRECTOR, FILE_DEVICE_BATTERY)
+       (FILE_DEVICE_BUS_EXTENDER, FILE_DEVICE_MODEM, FILE_DEVICE_VDM)
+       (FILE_DEVICE_MASS_STORAGE, FILE_DEVICE_SMB, FILE_DEVICE_KS)
+       (FILE_DEVICE_CHANGER, FILE_DEVICE_SMARTCARD, FILE_DEVICE_ACPI)
+       (FILE_DEVICE_DVD, FILE_DEVICE_FULLSCREEN_VIDEO)
+       (FILE_DEVICE_DFS_FILE_SYSTEM, FILE_DEVICE_DFS_VOLUME)
+       (FILE_DEVICE_SERENUM, FILE_DEVICE_TERMSRV, FILE_DEVICE_KSEC)
+       (FILE_DEVICE_FIPS): Redefine as enumeration; factor it out.
+       (enum _PARTITION_STYLE, PARTITION_STYLE): Factor out; add...
+       (PARTITION_STYLE_RAW): ...this new enumeration state; previously, it
+       was defined only when including this enumeration from winioctl.h
+       (struct _CREATE_DISK_MBR, CREATE_DISK_MBR, PCREATE_DISK_MBR)
+       (struct _CREATE_DISK_GPT, CREATE_DISK_GPT, PCREATE_DISK_GPT)
+       (struct _CREATE_DISK, CREATE_DISK, PCREATE_DISK): Factor out;
+       include parts/winioctl.h
+
+       * include/ddk/ntddstor.h: Assert copyright; tidy layout.
+       (__NTDDSTOR_H): Multiple inclusion guard macro, renamed to...
+       (_DDK_NTDDSTOR_H): ...this; to provide better indication of location.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+       (struct _STORAGE_BUS_TYPE, STORAGE_BUS_TYPE, PSTORAGE_BUS_TYPE)
+       (IOCTL_STORAGE_BASE, IOCTL_STORAGE_RESERVE, IOCTL_STORAGE_RELEASE)
+       (IOCTL_STORAGE_CHECK_VERIFY, IOCTL_STORAGE_CHECK_VERIFY2)
+       (IOCTL_STORAGE_MEDIA_REMOVAL, IOCTL_STORAGE_EJECT_MEDIA)
+       (IOCTL_STORAGE_LOAD_MEDIA, IOCTL_STORAGE_LOAD_MEDIA2)
+       (IOCTL_STORAGE_EJECTION_CONTROL, IOCTL_STORAGE_FIND_NEW_DEVICES)
+       (IOCTL_STORAGE_GET_MEDIA_TYPES, IOCTL_STORAGE_GET_MEDIA_TYPES_EX)
+       (IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER, IOCTL_STORAGE_PREDICT_FAILURE)
+       (IOCTL_STORAGE_QUERY_PROPERTY, IOCTL_STORAGE_GET_DEVICE_NUMBER)
+       (IOCTL_STORAGE_RESET_BUS, IOCTL_STORAGE_RESET_DEVICE)
+       (IOCTL_STORAGE_MCN_CONTROL): Factor out; include parts/winioctl.h
+
+       * include/ddk/ntdddisk.h: Assert copyright; tidy layout.
+       (__NTDDDISK_H): Multiple inclusion guard macro, renamed to...
+       (_DDK_NTDDDISK_H): ...this; to provide better indication of location.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+       (IOCTL_DISK_BASE, IOCTL_DISK_GET_LENGTH_INFO)
+       (IOCTL_DISK_IS_WRITABLE, IOCTL_DISK_REASSIGN_BLOCKS)
+       (IOCTL_DISK_FIND_NEW_DEVICES, IOCTL_DISK_GET_MEDIA_TYPES)
+       (IOCTL_DISK_GET_DRIVE_LAYOUT, IOCTL_DISK_SET_DRIVE_LAYOUT)
+       (IOCTL_DISK_GET_PARTITION_INFO, IOCTL_DISK_SET_PARTITION_INFO)
+       (IOCTL_DISK_GET_DRIVE_LAYOUT_EX, IOCTL_DISK_SET_DRIVE_LAYOUT_EX)
+       (IOCTL_DISK_GET_DRIVE_GEOMETRY, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX)
+       (IOCTL_DISK_CREATE_DISK, IOCTL_DISK_VERIFY, IOCTL_DISK_CHECK_VERIFY)
+       (IOCTL_DISK_GET_PARTITION_INFO_EX, IOCTL_DISK_SET_PARTITION_INFO_EX)
+       (IOCTL_DISK_GET_CACHE_INFORMATION, IOCTL_DISK_SET_CACHE_INFORMATION)
+       (IOCTL_DISK_DELETE_DRIVE_LAYOUT, IOCTL_DISK_GROW_PARTITION)
+       (IOCTL_DISK_FORMAT_TRACKS, IOCTL_DISK_FORMAT_TRACKS_EX)
+       (IOCTL_DISK_PERFORMANCE, IOCTL_DISK_PERFORMANCE_OFF)
+       (IOCTL_DISK_UPDATE_DRIVE_SIZE, IOCTL_DISK_RESERVE): Factor out; all of
+       these macros are now defined in parts/winioctl.h; include it.
+       (PARTITION_ENTRY_UNUSED, PARTITION_FAT_12, PARTITION_XENIX_1)
+       (PARTITION_XENIX_2, PARTITION_FAT_16, PARTITION_EXTENDED)
+       (PARTITION_HUGE, PARTITION_IFS, PARTITION_OS2BOOTMGR, PARTITION_FAT32)
+       (PARTITION_FAT32_XINT13, PARTITION_XINT13, PARTITION_XINT13_EXTENDED)
+       (PARTITION_PREP, PARTITION_LDM, PARTITION_UNIX, PARTITION_NTFT)
+       (VALID_NTFT): Redefine as enumeration; factor it out.
+       (IsRecognizedPartition, IsContainerPartition): Factor out.
+       (enum _MEDIA_TYPE, MEDIA_TYPE, PMEDIA_TYPE): Factor out, adding...
+       (F3_200Mb_512, F3_240M_512, F3_32M_512): ...these new state values.
+       (enum _DETECTION_TYPE, DETECTION_TYPE): Factor out.
+       (struct _DISK_INT13_INFO, DISK_INT13_INFO, PDISK_INT13_INFO)
+       (struct _DISK_EX_INT13_INFO, DISK_EX_INT13_INFO, PDISK_EX_INT13_INFO)
+       (struct _DISK_DETECTION_INFO, DISK_DETECTION_INFO, PDISK_DETECTION_INFO)
+       (struct _DISK_GEOMETRY_EX, DISK_GEOMETRY_EX, PDISK_GEOMETRY_EX)
+       (struct _DISK_GEOMETRY, DISK_GEOMETRY, PDISK_GEOMETRY)
+       (DiskGeometryGetPartition, DiskGeometryGetDetect): Factor out.
+       (struct _PARTITION_INFORMATION): Change field data types for...
+       (HiddenSectors, PartitionNumber): ...these, from DWORD to ULONG...
+       (PartitionType): ...and this from BYTE to UCHAR, to keep consistent
+       with Windows DDK convention, then factor out struct, together with...
+       (PARTITION_INFORMATION, PPARTITION_INFORMATION): ...these.
+       (struct _PARTITION_INFORMATION_GPT, struct _DISK_PARTITION_INFO)
+       (PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT)
+       (DISK_PARTITION_INFO, *PDISK_PARTITION_INFO): Factor out.
+       (struct _GET_LENGTH_INFORMATION)
+       (GET_LENGTH_INFORMATION, PGET_LENGTH_INFORMATION)
+       (struct _DISK_PERFORMANCE, DISK_PERFORMANCE, PDISK_PERFORMANCE)
+       (struct _DISK_PERFORMANCE_EX, DISK_PERFORMANCE_EX, PDISK_PERFORMANCE_EX)
+       (struct _FORMAT_PARAMETERS, struct _FORMAT_EX_PARAMETERS)
+       (FORMAT_PARAMETERS, PFORMAT_PARAMETERS, FORMAT_EX_PARAMETERS)
+       (PFORMAT_EX_PARAMETERS): Factor out.
+       (struct _REASSIGN_BLOCKS): Change field data types for...
+       (Reserved, Count): ...these fields, from WORD to USHORT, and...
+       (BlockNumber): ...this from DWORD to ULONG, per Windows DDK
+       convention, then factor out the struct definition, together with...
+       (REASSIGN_BLOCKS, PREASSIGN_BLOCKS): ...these associated typedefs.
+       (struct _SET_PARTITION_INFORMATION, SET_PARTITION_INFORMATION)
+       (PSET_PARTITION_INFORMATION): Factor out.
+       (struct _VERIFY_INFORMATION): Change field data type for...
+       (Length): ...this field, from DWORD to ULONG, per DDK convention, then
+       factor out the entire struct definition, together with...
+       (VERIFY_INFORMATION, PVERIFY_INFORMATION): ...these associated typedefs.
+       (DISK_CACHE_RETENTION_PRIORITY): Factor out enumerated typedef.
+       (struct _DISK_CACHE_INFORMATION, struct _DISK_GROW_PARTITION)
+       (DISK_CACHE_INFORMATION, PDISK_CACHE_INFORMATION, DISK_GROW_PARTITION)
+       (PDISK_GROW_PARTITION): Factor out.
+
+       * include/winioctl.h: Assert copyright; tidy layout; incorporate
+       definitions from Windows DDK headers, by including parts/winioctl.h;
+       delete duplicate definitions already identified as having been factored
+       out from ddk/winddk.h, ddk/ntddstor.h, and ddk/ntdddisk.h; accept type
+       compatible changes from DWORD to ULONG, WORD to USHORT, and BYTE to
+       UCHAR, resulting in no significant changes, except that...
+       (struct _DISK_PERFORMANCE): ...this is extended, by addition of...
+       (IdleTime, SplitCount, QueryTime, StorageDeviceNumber)
+       (StorageManagerName): ...these previously missing fields, originally
+       appropriately defined in ddk/ntdddisk.h, thus fixing bug [#1954].
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2015-10-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Windows application module version information API updates.
+
+       * include/winver.h: Assert copyright; tidy layout.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use these, as appropriate.
+       (__AW_SUFFIXED__): Use throughout, to identify generic functions
+       having both ANSI and UTF-16LE specific alternative implementations.
+       [NTDDI_VERSION >= NTDDI_VISTA] (GetFileVersionInfoEx): New function.
+       [NTDDI_VERSION >= NTDDI_VISTA] (GetFileVersionInfoSizeEx): Likewise;
+       note that both are generic, with ANSI and UTF-16LE implementations,
+       but the ANSI implementations are missing from MSVCRT.DLL when...
+       [NTDDI_VERSION < NTDDI_WIN8]: ...this.
+
+       * lib/version.def (GetFileVersionInfoExA, GetFileVersionInfoExW)
+       (GetFileVersionInfoSizeExA, GetFileVersionInfoSizeExW): Add symbols.
+
+2015-10-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Revert a failed experimental macro construct.
+
+       * include/w32api.h (__W32API_DEPRECATED_ALIAS): Delete this; it bloats
+       code, and doesn't work in the C preprocessor conditional context where
+       its associated constant definitions are most likely to be required.
+       (Windows95, Windows98, WindowsME, WindowsNT4, Windows2000, WindowsXP)
+       (Windows2003, WindowsVista, IE3, IE301, IE302, IE4, IE401, IE5, IE5a)
+       (IE5b, IE501, IE55, IE56, IE6, IE601, IE602, IE7): Redefine as macros,
+       now in terms of their preferred equivalents from <sdkddkver.h>
+
+2015-09-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Code clean-up; fix MinGW-Bug [#2263].
+
+       * include/w32api.h (__AW_SUFFIXED__): New macro; define it.
+       (__AW_EXTENDED__, __AW_STRING_A__, __AW_STRING_W__): Likewise.
+       (__AW__WCHAR_T__): Likewise; this is a helper for __AW_STRING_W__.
+
+       * include/wincrypt.h: Assert copyright; tidy layout; replace all C++
+       style comments, using ISO-C conforming style; remove all redundant
+       parameter names from function prototype declarations, throughout.
+       (pragma GCC system_header): Remove pointless conditional guard.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
+       [WINVER >= 0x500, WINVER >= 0x501]: Replace conditionals with...
+       [WINVER >= _WIN32_WINNT_WIN2K, WINVER >= _WIN32_WINNT_WINXP]: ...these
+       alternatives, respectively; they offer improved self-documentation.
+       (MS_DEF_PROV, MS_ENHANCED_PROV, MS_STRONG_PROV, MS_SCARD_PROV)
+       (MS_DEF_RSA_SIG_PROV, MS_DEF_RSA_SCHANNEL_PROV, MS_DEF_DSS_PROV)
+       (MS_DEF_DSS_DH_PROV, MS_ENH_DSS_DH_PROV, MS_DEF_DH_SCHANNEL_PROV)
+       (MS_ENH_RSA_AES_PROV): Redefine as __AW_EXTENDED__ derivatives.
+       (MS_DEF_PROV_W, MS_ENHANCED_PROV_W, MS_STRONG_PROV_W, MS_SCARD_PROV_W)
+       (MS_DEF_RSA_SIG_PROV_W, MS_DEF_RSA_SCHANNEL_PROV_W, MS_DEF_DSS_PROV_W)
+       (MS_DEF_DSS_DH_PROV_W, MS_ENH_DSS_DH_PROV_W, MS_DEF_DH_SCHANNEL_PROV_W)
+       (MS_ENH_RSA_AES_PROV_W): Redefine; use __AW_STRING_W__ to derive them
+       from their __AW_STRING_A__ equivalent string constant definitions.
+       (GET_ALG_CLASS): Redefine, expressing result in terms of...
+       (ALG_CLASS_ALL): ...this manifest bit mask; also redefined, preferring
+       a hexadecimal expression of the mask value over the former decimal.
+       (GET_ALG_TYPE, GET_ALG_SID): Similarly, use hexadecimal mask values.
+       (ALG_CLASS_SIGNATURE, ALG_CLASS_MSG_ENCRYPT, ALG_CLASS_DATA_ENCRYPT)
+       (ALG_CLASS_HASH, ALG_CLASS_KEY_EXCHANGE, ALG_TYPE_DSS, ALG_TYPE_RSA)
+       (ALG_TYPE_BLOCK, ALG_TYPE_STREAM, ALG_TYPE_DH, ALG_TYPE_SECURECHANNEL)
+       (CRYPT_UPDATE_KEY, CRYPT_NEWKEYSET, CRYPT_DELETEKEYSET, CRYPT_SILENT)
+       (CRYPT_MACHINE_KEYSET, CRYPT_USER_PROTECTED, CRYPT_CREATE_SALT)
+       (CRYPT_EXPORTABLE, CRYPT_ENCRYPT, CRYPT_DECRYPT, CRYPT_EXPORT)
+       (CRYPT_READ, CRYPT_WRITE, CRYPT_MAC, CERT_TRUST_IS_NOT_TIME_VALID)
+       (CERT_TRUST_IS_NOT_TIME_NESTED, CERT_TRUST_IS_REVOKED)
+       (CERT_TRUST_IS_NOT_SIGNATURE_VALID, CERT_TRUST_IS_NOT_VALID_FOR_USAGE)
+       (CERT_TRUST_IS_UNTRUSTED_ROOT, CERT_TRUST_REVOCATION_STATUS_UNKNOWN)
+       (CERT_TRUST_IS_CYCLIC, CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID)
+       (CERT_TRUST_IS_PARTIAL_CHAIN, CERT_TRUST_CTL_IS_NOT_TIME_VALID)
+       (CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE, CERT_TRUST_IS_SELF_SIGNED)
+       (CERT_TRUST_HAS_EXACT_MATCH_ISSUER, CERT_TRUST_HAS_KEY_MATCH_ISSUER)
+       (CERT_TRUST_HAS_NAME_MATCH_ISSUER, CERT_TRUST_IS_COMPLEX_CHAIN)
+       (CERT_CHAIN_POLICY_BASE, CERT_CHAIN_POLICY_AUTHENTICODE)
+       (CERT_CHAIN_POLICY_AUTHENTICODE_TS, CERT_CHAIN_POLICY_SSL)
+       (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS, CERT_CHAIN_POLICY_NT_AUTH)
+       (CERT_NAME_STR_REVERSE_FLAG, CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG)
+       (CERT_NAME_STR_CRLF_FLAG, CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG)
+       (CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG, CERT_NAME_STR_NO_PLUS_FLAG)
+       (CERT_NAME_STR_NO_QUOTING_FLAG, CERT_NAME_STR_SEMICOLON_FLAG)
+       (CERT_FIND_CERT_ID, CERT_FIND_CTL_USAGE, CERT_FIND_ENHKEY_USAGE)
+       (CERT_FIND_EXISTING, CERT_FIND_HASH, CERT_FIND_ISSUER_ATTR)
+       (CERT_FIND_ISSUER_NAME, CERT_FIND_ISSUER_OF, CERT_FIND_KEY_IDENTIFIER)
+       (CERT_FIND_KEY_SPEC, CERT_FIND_MD5_HASH, CERT_FIND_PROPERTY)
+       (CERT_FIND_PUBLIC_KEY, CERT_FIND_SHA1_HASH, CERT_FIND_SIGNATURE_HASH)
+       (CERT_FIND_SUBJECT_ATTR, CERT_FIND_SUBJECT_CERT, CERT_FIND_SUBJECT_NAME)
+       (CERT_FIND_SUBJECT_STR_A, CERT_FIND_SUBJECT_STR_W)
+       (CERT_FIND_ISSUER_STR_A, CERT_FIND_ISSUER_STR_W)
+       (CERT_FIND_OR_ENHKEY_USAGE_FLAG, CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG)
+       (CERT_FIND_NO_ENHKEY_USAGE_FLAG, CERT_FIND_VALID_ENHKEY_USAGE_FLAG)
+       (CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_UNICODE_IS_RDN_ATTRS_FLAG)
+       (CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG, CERT_CHAIN_FIND_BY_ISSUER)
+       (CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG)
+       (CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG)
+       (CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG)
+       (CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG)
+       (CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG)
+       (CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG)
+       (CERT_SYSTEM_STORE_LOCAL_MACHINE): All represent bit-mapped values;
+       express them in hexadecimal, in preference to original decimal form.
+       (CERT_FIND_SUBJECT_STR, CERT_FIND_ISSUER_STR): Redefine them as
+       __AW_EXTENDED__ macros, for UNICODE/non-UNICODE cases respectively.
+       (szOID_CRL_DIST_POINTS): Correct defective definition; value should be
+       a string literal, but was missing delimiting quotes; insert them.
+       (CertNameToStr, CertOpenSystemStore, CertGetNameString, CryptSignHash)
+       (CryptAcquireContext, CryptVerifySignature, CryptGetDefaultProvider)
+       (CryptEnumProviders, CryptSetProvider): Define as __AW_SUFFIXED__
+       aliases for each of the UNICODE/non-UNICODE cases respectively.
+       (CryptEnumProvidersA): Correct prototype declaration; 5th parameter
+       was declared as type LPTSTR, but should be type LPSTR.
+       (CryptEnumProvidersW): Likewise; 5th parameter should be type LPWSTR.
+       (CryptGetDefaultProviderW): Likewise; 4th parameter was declared as
+       type LPSTR, but should be type LPWSTR.
+       [defined MINGW_TENTATIVE_ASSUMPTIONS] (X509_ANY_STRING)
+       (X509_CRL_REASON_CODE, X509_DSS_PUBLICKEY, X509_UNICODE_ANY_STRING)
+       (struct _CERT_ALT_NAME_ENTRY): Add tentative definitions.
+
 2015-09-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Correct defect in build system compilation rule.
        * configure: Delete from SCM; maintainer must regenerate it, when
        required, as SCM will now ignore it.
 
+2012-08-04  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Cosmetic adjustment to match MSDN documentation.
+
+       * include/winver.h (VerQueryValueA, VerQueryValueW): Declare type
+       of parameter #1 to be LPCVOID, in preference to formerly specified,
+       and functionally equivalent, 'const LPVOID'.
+
+2012-08-01  Stephan Jorek  <sjorek@users.sourceforge.net>
+
+       Correct typos, as identified by issue [#1534].
+
+       * include/setupapi.h (SetupCancelTemporary): Should be...
+       (SetupCancelTemporarySourceList): ...this; complete truncated name.
+       (SetupFreeA, SetupFreeW): Likewise, complete these respectively to...
+       (SetupFreeSourceListA, SetupFreeSourceListW): ...these, and...
+       (SetupQueryA, SetupQueryW): ...these respectively to...
+       (SetupQuerySourceListA, SetupQuerySourceListW): ...these.
+       (SetupDiGetWizardage): Misspelled; correct it to...
+       (SetupDiGetWizardPage): ...this.
+
+2012-08-01  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Declare WTSVirtualChannel API functions per issue [#1342].
+
+       * include/wtsapi32.h [_WIN32_WINNT >= 0x500]
+       (WTSVirtualChannelOpen, WTSVirtualChannelQuery, WTSVirtualChannelRead)
+       (WTSVirtualChannelPurgeInput, WTSVirtualChannelPurgeOutput)
+       (WTSVirtualChannelWrite, WTSVirtualChannelClose): Declare them.
+       [_WIN32_WINNT >= 0x600] (WTSVirtualchannelOpenEx): Likewise.
+
+       * lib/wtsapi32.def (WTSVirtualChannelOpenEx@12): Add reference.
+
+2012-08-01  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Correct MENUITEMINFO structure definition per issue [#1659].
+
+       * include/winuser.h (tagMENUITEMINFOA, tagMENUITEMINFOW): dwItemData
+       field was defined as type DWORD; correct it to type ULONG_PTR.
+
+2012-07-06  Corinna Vinschen  <corinna@vinschen.de>
+
+       Extend visibility of winsock definitions when building Cygwin.
+
+       * include/winsock.h [__INSIDE_CYGWIN__]: Expose definitions of...
+       (IP_OPTIONS, SO_DEBUG, SO_ACCEPTCONN, SO_REUSEADDR, SO_KEEPALIVE)
+       (SO_DONTROUTE, SO_BROADCAST, SO_USELOOPBACK, SO_LINGER, SO_OOBINLINE)
+       (SO_DONTLINGER, SO_SNDBUF, SO_RCVBUF, SO_SNDLOWAT, SO_RCVLOWAT)
+       (SO_SNDTIMEO, SO_RCVTIMEO, SO_ERROR, SO_TYPE): ...these; however...
+       [__INSIDE_MSYS__]: ...keep them hidden.
+
+       * include/winsock2.h [__INSIDE_CYGWIN__]: Likewise, expose...
+       (AF_MAX, _SS_MAXSIZE, _SS_ALIGNSIZE, _SS_PAD1SIZE, _SS_PAD2SIZE)
+       (struct sockaddr, struct sockaddr_storage): ...these, whereas...
+       [__INSIDE_MSYS__]: ...also keep them hidden.
+
+2012-04-29  Jan Ringos  <tringi@users.sf.net>
+
+       Correct version guard for WinXP minimum requirement.
+
+       * include/winbase.h (GetModuleHandleEx): Function unsupported for...
+       [_WIN32_WINNT >= 0x500]: ...this; it isn't in Win2K, so should be...
+       [_WIN32_WINNT >= 0x501]: ...this; correct it accordingly.
+       (GetModuleHandleExA, GetModuleHandleExW): Likewise.
+
+2012-04-28  LRN  <l_r_nightmare@users.sf.net>
+
+       Add missing <shobjidl.h> and associated UUID implementation.
+
+       * include/shobjidl.h lib/shobjidl-uuid.c: New files.
+       * lib/Makefile.in (UUID_SOURCES, UUID_OBJS): Add references.
+
+2012-03-19  Ben Greear  <greear@users.sf.net>
+
+       Adjust header file definition order, to fix issue [#1570].
+
+       * include/routprot.h (IP_LOCAL_BINDING): Must be defined before...
+       (IP_ADAPTER_BINDING_INFO): ...this; adjust order of definition.
+
+2012-01-03  Chris Sutcliffe  <ir0nh34d@users.sf.net>
+
+       Add missing return value, flagged by 'make test'.
+
+       * include/gdiplus/gdiplustypes.h (Gdiplus::GdiplusAbort::Abort):
+       Return NO_ERROR in virtual definition.
+
+2012-01-03  Chris Sutcliffe  <ir0nh34d@users.sf.net>
+
+       Remove duplicate definitions, identified by 'make test'.
+
+       * include/wincrypt.h (CRYPT_NEWKEYSET, CRYPT_DELETEKEYSET)
+       (CRYPT_MACHINE_KEYSET, CRYPT_EXPORTABLE, CRYPT_USER_PROTECTED)
+       (CRYPT_SILENT, CRYPT_CREATE_SALT, CRYPT_UPDATE_KEY, CRYPT_NO_SALT)
+       (CRYPT_PREGEN, CRYPT_RECIPIENT, CRYPT_INITIATOR, CRYPT_ONLINE)
+       (CRYPT_SF, CRYPT_CREATE_IV, CRYPT_KEK, CRYPT_DATA_KEY)
+       (CRYPT_VOLATILE, CRYPT_SGCKEY): Delete second instance of each.
+
+       * include/winerror.h (CRYPT_E_REVOKED): Delete; it is already
+       correctly defined (per MSDN) in <wincrypt.h>
+
+2012-01-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct misuse of #ifdef, identified by 'make test'.
+
+       * include/shlwapi.h (enum ASSOCSTR, enum ASSOCDATA): Fix typos;
+       /#ifdef _WIN32_IE >= 0x0600/s/#ifdef/#if/
+
+2011-12-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Replace more incorrectly named manifest constants.
+
+       * include/winnt.h (JOB_OBJECT_LIMIT_BREAKAWAY_OK)
+       (JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK): Define; make aliases for...
+       (JOB_OBJECT_BREAKAWAY_OK, JOB_OBJECT_SILENT_BREAKAWAY): ...these old
+       definitions respectively; retain for backward compatibility only.
+
+2011-12-22  Corinna Vinschen  <corinna@vinschen.de>
+
+       Add missing PROCESS_QUERY_LIMITED_INFORMATION.
+
+       * include/winnt.h (PROCESS_QUERY_LIMITED_INFORMATION): Define it.
+
+2011-08-19  Corinna Vinschen  <corinna@vinschen.de>
+
+       Add missing MAPVK manifest constant definitions.
+
+       * include/winuser.h (MAPVK_VK_TO_VSC, MAPVK_VSC_TO_VK): Define them.
+       (MAPVK_VK_TO_CHAR, MAPVK_VSC_TO_VK_EX, MAPVK_VK_TO_VSC_EX): Likewise.
+
+2011-08-05  Corinna Vinschen  <corinna@vinschen.de>
+
+       Correct some misspelled manifest constant names.
+
+       * include/winnt.h (IMAGE_DLL_CHARACTERISTICS_NX_COMPAT): Should be...
+       (IMAGE_DLLCHARACTERISTICS_NX_COMPAT): ...this; define correctly; also
+       alias to original misspelling, to maintain backward compatibility.
+       (IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY): Likewise; should be...
+       (IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY): ...this; define and alias.
+       (IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE): Likewise; should be...
+       (IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE): ...this; define and alias.
+
+2011-07-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       Add a missing Win2K sockets IOCTL feature.
+
+       * include/winsock2.h (SIO_UDP_CONNRESET): Define.
+
+2011-05-22  Albrecht Schlosser  <vms-news@go4more.de>
+
+       Fix an incorrectly typed structure member.
+
+       * include/wingdi.h (GCP_RESULTSW): lpClass field defined as LPWSTR;
+       should be LPSTR; correct it.
+
+2011-05-15  Corinna Vinschen  <corinna@vinschen.de>
+
+       Add another missing manifest constant definition.
+
+       * include/winbase.h (STACK_SIZE_PARAM_IS_A_RESERVATION): Define.
+
+2011-04-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid pollution of user namespace; fix MinGW-Bug [#1531].
+
+       * include/windef.h (PACKED): Delete macro definition; its name is not
+       reserved, and may thus conflict with a user defined name; replace it...
+       * include/wincon.h (KEY_EVENT_RECORD): ...at this sole point of use;
+       use __attribute__((packed)) directly instead.
+
+2011-04-21  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
+
+       Fix bad typedef, per MinGW-Bug [#1529].
+
+       * include/imagehlp.h (PREAD_PROCESS_MEMORY_ROUTINE): Corrected, to
+       conform with MSDN reference, as identified by Safety0ff.
+
+2011-04-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       Add a missing manifest constant definition.
+
+       * include/winnt.h (DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS): Define.
+
+2011-03-29  Corinna Vinschen  <corinna@vinschen.de>
+
+       Win2K and Vista userenv updates.
+
+       * include/userenv.h [_WIN32_WINNT >= 0x0500] (DeleteProfile)
+       (GetAllUsersProfileDirectory, GetDefaultUserProfileDirectory)
+       (ExpandEnvironmentStringsForUser): Define function aliases.
+       [_WIN32_WINNT >= 0x0500] (DeleteProfileA, DeleteProfileW)
+       (GetAllUsersProfileDirectoryA, GetAllUsersProfileDirectoryW)
+       (GetDefaultUserProfileDirectoryA, GetDefaultUserProfileDirectoryW
+       (ExpandEnvironmentStringsForUserA, ExpandEnvironmentStringsForUserW)
+       (GetProfileType): Declare function prototypes.
+       [_WIN32_WINNT >= 0x0600] (CreateProfile): Declare function prototype.
+       [_WIN32_WINNT >= 0x0500] (PT_TEMPORARY, PT_ROAMING, PT_MANDATORY):
+       New manifest constants; define them.
+
 2011-03-25  Chris Sutcliffe  <ir0nh34d@users.sf.net>
 
        * Makefile.in: Increment CYGRELEASE to 2.
 2004-10-15  Robert Wruck  <wruck@tweerlei.de>
            Danny Smith  <dannysmith@users.sourceforge.net>
 
-       = include/winbase.h (InitializeSListHead, Interlocked*):
+       * include/winbase.h (InitializeSListHead, Interlocked*):
        Guard with !__USE_NTOSKRNL__.
 
        * include/ddk/ntddk.h (__USE_NTOSKRNL__): Define.
 
 2001-12-15  Andrew Begel  <abegel@eecs.berkeley.edu>
 
-       *include/winbase.h (CreateHardLink): Correct typo in UNICODE
+       * include/winbase.h (CreateHardLink): Correct typo in UNICODE
        mappings.
 
 2001-12-11  Phillip Susi  <psusi@cfl.rr.com>