2010-08-09  Jonathan Yong  <jon_y@sourceforge.net>

	* aclapi.h (TreeSetNamedSecurityInfoA): New.
	(TreeSetNamedSecurityInfoW): New.
	* authz.h (AUTHZ_SECURITY_ATTRIBUTE_OPERATION): New typedef.
	(PAUTHZ_SECURITY_ATTRIBUTE_OPERATION): Likewise.
	(AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE): Likewise.
	(PAUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE): Likewise.
	(AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE): Likewise.
	(PAUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE): Likewise.
	(AUTHZ_SECURITY_ATTRIBUTE_V1): Likewise.
	(PAUTHZ_SECURITY_ATTRIBUTE_V1): Likewise.
	(AUTHZ_SECURITY_ATTRIBUTES_INFORMATION): Likewise.
	(PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION): Likewise.
	(AuthzModifySecurityAttributes): New.
	* azroles.h (AZ_PROP_CONSTANTS): Add new enum entries.

2010-08-09  Jonathan Yong  <jon_y@sourceforge.net>

	* virtdisk.h: New.
	* windows.h: Add virtdisk.h include.

2010-08-09  Jonathan Yong  <jon_y@sourceforge.net>

	* winnt.h (TRANSACTION_OUTCOME): New typedef.
	(POWER_PLATFORM_ROLE): Likewise.
	(TOKEN_ELEVATION_TYPE): Likewise.
	(PTOKEN_ELEVATION_TYPE): Likewise.
	(ACTCTX_COMPATIBILITY_ELEMENT_TYPE): Likewise.
	(COMPATIBILITY_CONTEXT_ELEMENT): Likewise.
	(PCOMPATIBILITY_CONTEXT_ELEMENT): Likewise.
	(ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION): Likewise.
	(PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION): Likewise.
	(PROCESSOR_NUMBER): Likewise.
	(PPROCESSOR_NUMBER): Likewise.
	(PROCESSOR_GROUP_INFO): Likewise.
	(GROUP_RELATIONSHIP): Likewise.
	(PGROUP_RELATIONSHIP): Likewise.
	(GROUP_AFFINITY): Likewise.
	(PGROUP_AFFINITY): Likewise.
	(CACHE_RELATIONSHIP): Likewise.
	(PCACHE_RELATIONSHIP): Likewise.
	(NUMA_NODE_RELATIONSHIP): Likewise.
	(PNUMA_NODE_RELATIONSHIP): Likewise.
	(PNUMA_NODE_RELATIONSHIP): Likewise.
	(PROCESSOR_RELATIONSHIP): Likewise.
	(PPROCESSOR_RELATIONSHIP): Likewise.
	(SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): Likewise.
	(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): Likewise.
	(UMS_CREATE_THREAD_ATTRIBUTES): Likewise.
	(PUMS_CREATE_THREAD_ATTRIBUTES): Likewise.

2010-08-06  Ozkan Sezer  <sezeroz@gmail.com>

	* dpfilter.h: Add #pragma once.
	* ksdebug.h: Fix formatting.
	* lmon.h: Add #pragma once.
	* ntddndis.h: Break long enum lines into one value per line.
	* usb200.h: Remove __GNU_EXTENSION definition.
	* winioctl.h: Add endif comments. Add missing _NTDDDISK_H_ guard around
	stuff shared with ntdddisk.h.
	(STORAGE_MEDIA_TYPE): Add VXATape from ntddstor.h.
	(EXFAT_STATISTICS): Add from vista_7_headers branch.

2010-08-04  Ozkan Sezer  <sezeroz@gmail.com>

	* ddrawgdi.h (LPD3DHAL_CALLBACKS): Guard.
	(LPD3DHAL_GLOBALDRIVERDATA): Guard.

	* diskguid.h (PARTITION_MSFT_RECOVERY_GUID): Added from vds.h (from
	the vista_7_headers branch.)

2010-08-03  Ozkan Sezer  <sezeroz@gmail.com>

	* ntdef.h:  Add the BOOL variants and WINBOOL from windef.h, guarded
	by _DEF_WINBOOL_.
	* windef.h: Reformat whitespace. Guard the BOOL variants and WINBOOL
	by _DEF_WINBOOL_.

2010-08-02  Ozkan Sezer  <sezeroz@gmail.com>

	* objidl.h (uSTGMEDIUM): Unify using DUMMYUNIONNAME.
	* accctrl.h (ACTRL_OVERLAPPED): Add DUMMY* names to anonymous structs
	and/or unions.
	* mmsystem.h (MIXERCONTROLA): Likewise.
	(MIXERCONTROLW): Likewise.
	(MIXERLINECONTROLSA): Likewise.
	(MIXERLINECONTROLSW): Likewise.
	(MIXERCONTROLDETAILS): Likewise.
	* olectl.h (PICTDESC): Likewise.
	* propidl.h (PROPSPEC): Likewise.
	* winnt.h (NT_TIB): Likewise.
	(NT_TIB32): Likewise.
	(NT_TIB64): Likewise.
	(IMAGE_RELOCATION): Likewise.
	(IMAGE_IMPORT_DESCRIPTOR): Likewise.
	(IMAGE_RESOURCE_DIRECTORY_ENTRY): Likewise.
	(IMAGE_FUNCTION_ENTRY64): Likewise.
	* winbase.h (SYSTEM_INFO): Likewise.
	(PROCESS_HEAP_ENTRY): Likewise.
	* winioctl.h (SET_PARTITION_INFORMATION_EX): Likewise.
	(CREATE_DISK): Likewise.
	(PARTITION_INFORMATION_EX): Likewise.
	(DRIVE_LAYOUT_INFORMATION_EX): Likewise.
	(DISK_DETECTION_INFO): Likewise.
	(DISK_PARTITION_INFO): Likewise.
	(DISK_CACHE_INFORMATION): Likewise.
	(FILE_OBJECTID_BUFFER): Likewise.
	* wtypes.h (CY): Likewise.
	(DECIMAL): Likewise.
	* winuser.h (INPUT): Likewise.
	(RID_DEVICE_INFO): Likewise.

2010-08-02  Ozkan Sezer  <sezeroz@gmail.com>

	* winnt.h (LARGE_INTEGER): Add DUMMYSTRUCTNAME to anonymous struct.
	(ULARGE_INTEGER): Likewise.

	* oaidl.h (struct _wireVARIANT): Add DUMMYUNIONNAME to the anonymous
	union.
	(TYPEDESC): Likewise.
	(ELEMDESC): Likewise.
	(VARDESC): Likewise.
	* winnt.h (SLIST_HEADER) [!_WIN64]: Mark the anonymous struct as
	__MINGW_EXTENSION and add DUMMYSTRUCTNAME.

2010-08-01  Ozkan Sezer  <sezeroz@gmail.com>

	* mingw_inc/_varenum.h: New helper header for enum VARENUM.
	* wtypes.h (VARENUM): Moved from here to mingw_inc/_varenum.h.
	Include <mingw_inc/_varenum.h>
	* ks.h: Include <mingw_inc/_varenum.h> for DDK.
	(PFNQUERYMEDIUMSLIST): New.
	(BUS_INTERFACE_MEDIUMS, PBUS_INTERFACE_MEDIUMS): New.
	(GUID_BUS_INTERFACE_MEDIUMS): New.
	(KsGateTurnInputOn): New.
	(KsGateTurnInputOff): New.
	(KsGateGetStateUnsafe): New.
	(KsGateCaptureThreshold): New.
	(KsGateInitialize): New.
	(KsGateInitializeAnd): New.
	(KsGateInitializeOr): New.
	(KsGateAddOnInputToAnd): New.
	(KsGateAddOffInputToAnd): New.
	(KsGateRemoveOnInputFromAnd): New.
	(KsGateRemoveOffInputFromAnd): New.
	(KsGateAddOnInputToOr): New.
	(KsGateAddOffInputToOr): New.
	(KsGateRemoveOnInputFromOr): New.
	(KsGateRemoveOffInputFromOr): New.
	(KsGateTerminateAnd): New.
	(KsGateTerminateOr): New.

2010-07-29  Ozkan Sezer  <sezeroz@gmail.com>

	* ntddstor.h (STORAGE_MEDIA_SERIAL_NUMBER_DATA): Enable for GCC
	alongside _MSC_EXTENSIONS.

	* ntdef.h (FORCEINLINE): Arguably better _MSC_VER ifdefs.
	* winnt.h (FORCEINLINE): Likewise.

2010-07-29  Ozkan Sezer  <sezeroz@gmail.com>

	* specstrings.h (DECLSPEC_ADDRSAFE): Update the macro from ntdef.h.
	* winnt.h: Some whitespace reformatting in macro definitions.
	(DECLSPEC_ALIGN): Update the macro from ntdef.h.
	(DECLSPEC_NOINLINE): Likewise.
	(FORCEINLINE): Likewise.
	(FASTCALL): New, from ntdef.h.

	Sync with experimental/ddk_test @ 3012:
	* compstui.h: Add missing __MINGW_EXTENSION to anonymous unions.
	* usb.h: Remove __GNU_EXTENSION definition, already gets it from
	usb200.h.  Add missing __MINGW_EXTENSION to anonymous unions.
	Replace a few __GNU_EXTENSION by __MINGW_EXTENSION.
	* usb200.h: Replace a few __GNU_EXTENSION by __MINGW_EXTENSION.
	* usbcamdi.h: Minor formatting.
	* usbdi.h: Remove __GNU_EXTENSION definition, already gets it from
	usb.h.
	* usbioctl.h: Add #endif comments for easier reading. Add missing
	__MINGW_EXTENSION to anonymous unions and structs.
	* usbiodef.h: Add #endif comments for easier reading.
	* usbuser.h: Add missing #endif for _WIN32_WINNT >= 0x0501 guard.
	* ntdef.h: Remove __GNU_EXTENSION definition, already gets it from
	_mingw.h.  Minor reformatting.  Add #endif comments for easier
	reading.  Replace a few __GNU_EXTENSION by __MINGW_EXTENSION.
	Update DBG_UNREFERENCED_PARAMETER & DBG_UNREFERENCED_LOCAL_VARIABLE
	macros from winnt.h.  Update VER_SUITE_* macros as hex values from
	winnt.h.  Remove __ANONYMOUS_DEFINED, _UNION_NAME, _STRUCT_NAME,
	_ANONYMOUS_UNION, _ANONYMOUS_STRUCT, DUMMYUNIONNAME* and
	DUMMYSTRUCTNAME* macros. They are now provided by _mingw.h since
	rev. 3010 (trunk) or 3011 (v1.0 branch).

2010-07-28  Ozkan Sezer  <sezeroz@gmail.com>

	Sync with experimental/ddk_test rev. 3000:
	* ntddmou.h, ntddstor.h: Replace _ANONYMOUS_UNION and _ANONYMOUS_STRUCT
	by __MINGW_EXTENSION.

2010-07-28  Ozkan Sezer  <sezeroz@gmail.com>

	* ksmedia.h: Remove the #warning and include ks.h with <> not "".

	Sync with experimental/ddk_test rev. 2997:
	* kcom.h: Remove the #error and do include ks.h.
	* bdamedia.h (BdaChangeSync): Remove braces so that it does not
	confuse DEFINE_GUID.

2010-07-28  Ozkan Sezer  <sezeroz@gmail.com>

	* atsmedia.h, bdatypes.h, bdamedia.h: Sync with experimental/ddk_test
	as of rev. 2992.

2010-07-28  Ozkan Sezer  <sezeroz@gmail.com>

	* atsmedia.h, bdamedia.h, bdatypes.h, bugcodes.h, compstui.h,
	devioctl.h, devpropdef.h, dpfilter.h, kcom.h, ksdebug.h, lmon.h,
	netevent.h, nettypes.h, newdev.h, ntddchgr.h, ntddkbd.h, ntddmou.h,
	ntddstor.h, ntdef.h, ntiologc.h, usb100.h, usb200.h, usbcamdi.h,
	usbdi.h, usb.h, usbioctl.h, usbiodef.h, usbrpmif.h, usbuser.h,
	winddi.h, winddiui.h, winsplp.h:  Copy over the DDK dependency
	headers from experimental/ddk_test as of rev. 2989.

2010-07-27  Ozkan Sezer  <sezeroz@gmail.com>

	* evntrace.h (TraceMessageVa): The function is actually WMIAPI,
	ie. __stdcall. Thanks to Amine Khaldi.

2010-07-27  Ozkan Sezer  <sezeroz@gmail.com>

	* winnt.h: Include _mingw.h to ensure _M_* macros are defined.
	(UNALIGNED): Define properly against __unaligned for better
	compatibility with r/os.
	(UNALIGNED64): Likewise.
	(ALIGNMENT_MACHINE): New.

2010-07-23  Ozkan Sezer  <sezeroz@gmail.com>

	* evntprov.h: Remove unnecessary FORCEINLINE definition.
	* ks.h: Make sure __forceinline comes as first in declarations.

2010-07-23  Ozkan Sezer  <sezeroz@gmail.com>

	* winnt.h: Add extern to FORCEINLINE definition.

2010-07-20  Jonathan Yong  <jon_y@sourceforge.net>

	* rpcndr.h (NdrUnMarshConfStringHdr): Fix macro brackets.
	(NdrMarshSCtxtHdl): Likewise.
	(NdrUnMarshCCtxtHdl): Fix macro typo.

2010-07-17  Ozkan Sezer  <sezeroz@gmail.com>

	* accctrl.h: Replace several typedef __MINGW_NAME_UAW(XXX) XXX;
	by either __MINGW_TYPEDEF_UAW(XXX) or by __MINGW_TYPEDEF_AW(XXX_)
	* cfgmgr32.h: Replace several typedef __MINGW_NAME_UAW(XXX) XXX;
	by __MINGW_TYPEDEF_UAW(XXX)
	* dbt.h: Likewise.
	* setupapi.h: Likewise.

2010-07-17  Ozkan Sezer  <sezeroz@gmail.com>

	* ksuuids.h: Merges from the experimental/ddk_test:
	Added version guards around several existing ids.
	(AM_KSPROPSETID_MPEG4_MediaType_Attributes): New.
	(MEDIASUBTYPE_MPEG2_WMDRM_TRANSPORT): New.
	(MEDIASUBTYPE_MPEG2_VERSIONED_TABLES): New.
	(MEDIASUBTYPE_ISDB_SI): New.
	(MEDIASUBTYPE_TIF_SI): New.
	(MEDIASUBTYPE_MPEG2_UDCR_TRANSPORT): New.
	(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_RAW): New.
	(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_PROCESSED): New.

2010-07-16  Ozkan Sezer  <sezeroz@gmail.com>

	* _dbdao.h, afxres.h, azroles.h, dbghelp.h, http.h, iprtrmib.h,
	mprapi.h, mscat.h, mspab.h, mspcall.h, mspcoll.h, mspenum.h, msplog.h,
	mspst.h, mspstrm.h, mspterm.h, mspthrd.h, msptrmac.h, msptrmar.h,
	msptrmvc.h, msputils.h, w32api.h, winbase.h, wincred.h, wincrypt.h,
	winhttp.h, winioctl.h, winnt.h, winsvc.h, winuser.h, wmiatlprov.h:
	Merged trivial whitespace changes and add missing public domain
	headers from experimental/vista_7_headers.

2010-07-09  Ozkan Sezer  <sezeroz@gmail.com>

	Incorrect version guards around the TCP_TABLE_CLASS enumeration:
	http://msdn.microsoft.com/en-us/library/aa366386(VS.85).aspx
	* iprtrmib.h (TCP_TABLE_CLASS): Remove version guards.
	* iphlpapi.h (TCP_TABLE_CLASS): Remove. iphlpapi.h already relies on
	and includes iprtrmib.h.

2010-07-08  Ozkan Sezer  <sezeroz@gmail.com>

	* evntcons.h: New. Merge from experimental/vista_7_headers.
	* evntprov.h: New. Merge from experimental/vista_7_headers.
	* evntrace.h: Merge from experimental/vista_7_headers.

2010-07-08  Ozkan Sezer  <sezeroz@gmail.com>

	Merge some obvious parts from experimental/vista_7_headers:
	* winbase.h: Remove commented out AdjustCalendarDate, CALDATETIME & co.
	(GetProcessDEPPolicy): Remove incorrect version guard.
	(SetProcessDEPPolicy): Likewise.
	(GetSystemDEPPolicy): Likewise.
	(DEP_SYSTEM_POLICY_TYPE): Likewise.
	(LOGON_WITH_PROFILE): Use the same style as LOGON_ZERO_PASSWORD_BUFFER.
	(LOGON_NETCREDENTIALS_ONLY): Likewise.

2010-07-06  Ozkan Sezer  <sezeroz@gmail.com>

	* ntddndis.h: Added a few endif comments.
	(NDIS_PHYSICAL_MEDIUM): Add NdisPhysicalMediumInfiniband,
	NdisPhysicalMediumWiMax,NdisPhysicalMediumUWB, NdisPhysicalMedium802_3,
	NdisPhysicalMedium802_5,NdisPhysicalMediumIrda,NdisPhysicalMediumWiredWAN,
	NdisPhysicalMediumWiredCoWan and NdisPhysicalMediumOther among the
	enumerated values, from ddk_test version.
	(NDIS_802_11_NETWORK_TYPE): Add Ndis802_11Automode among the enumerated
	values, from ddk_test version.
	(NDIS_OBJECT_HEADER): Added from experimental vista_7_headers.
	* ntddscsi.h: Added a few endif comments.
	(DD_SCSI_DEVICE_NAME_U): Added from ddk_test version.

2010-07-05  Ozkan Sezer  <sezeroz@gmail.com>

	* winnt.h: remove duplicated ULONG type definition. not supposed to be
	defined here

2010-06-28  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h: Add many data types, prototypes, etc. for DDK based on MSDN
	information. Restricted parts of the header starting from KSOBJECT_BAG
	typedef down to the IID_IKsDeviceFunctions GUID definition only to the
	DDK.

2010-06-28  Ozkan Sezer  <sezeroz@gmail.com>

	* strsafe.h: Apply the same C_ASSERT macro fix in winnt.h.

2010-06-27  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h (KSATTRIBUTE_LIST): Added for DDK.

2010-06-27  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h (KSEVENTDATA): Added EventObject, SemaphoreObject, Dpc, WorkItem
	and KsWorkItem to the union. Added flag macros KSEVENTF_EVENT_OBJECT,
	KSEVENTF_SEMAPHORE_OBJECT, KSEVENTF_DPC, KSEVENTF_WORKITEM and
	KSEVENTF_KSWORKITEM for DDK. See the KSEVENTDATA Structure msdn page at
	http://msdn.microsoft.com/en-us/library/ff561750(VS.85).aspx, also see
	the r/os version of ks.h for reference.

2010-06-27  Jacek Caban  <jacek@codeweavers.com>

	* winnt.h: Fixed C_ASSERT macro.

2010-06-27  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h: Add forward declarations of KSDEVICE, KSDEVICE_DESCRIPTOR,
	KSDEVICE_DISPATCH, KSFILTER, KSFILTERFACTORY, KSFILTER_DESCRIPTOR,
	KSFILTER_DISPATCH, KSPIN, KSPIN_DESCRIPTOR_EX, KSPIN_DISPATCH,
	KSCLOCK_DISPATCH, KSALLOCATOR_DISPATCH, KSNODE_DESCRIPTOR,
	KSSTREAM_POINTER, KSSTREAM_POINTER_OFFSET, KSMAPPING, KSPROCESSPIN,
	KSPROCESSPIN_INDEXENTRY structtures and their *P... variants for the
	DDK.

2010-06-27  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h (KSPROPERTY_CLOCK_FUNCTIONTABLE): Add to KSPROPERTY_CLOCK for DDK.
	(see http://msdn.microsoft.com/en-us/library/ff564466(v=VS.85).aspx)

2010-06-27  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h (KSALLOCATOR_FRAMING): Use POOL_TYPE as the type for
	PoolType member if _NTDDK_ is defined, because the POOL_TYPE
	enum is provided by the ddk.

2010-06-27  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h (_KS_ANON_STRUCT): New helper macro for adding names to
	structs accroding to _KS_NO_ANONYMOUS_STRUCTURES_ being defined.
	(KSIDENTIFIER): Use _KS_ANON_STRUCT().
	(KSPROPERTY_BOUNDS_LONG): Likewise.
	(KSPROPERTY_BOUNDS_LONGLONG): Likewise.

2010-06-25  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h, ksmedia.h, ksproxy.h, ksuuids.h: Re-format.

2010-06-23  Doug Semler  <dougsemler@gmail.com>

	* GL/gl.h: Use APIENTRY instead of WINAPI.
	* GL/glaux.h: Likewise.
	* GL/glu.h: Likewise.

2010-06-23  Ozkan Sezer  <sezeroz@gmail.com>

	* mmsystem.h (MAKEFOURCC): Changed ifdef guard from __MAKEFOURCC__DEFINED__
	to simply MAKEFOURCC.

2010-06-22  Jacek Caban  <jacek@codeweavers.com>
	* coerror.h, fusion.h, mscat.h, mscoree.h, optary.h: Initial import from Wine.
	* wincodec.h, winhttp.h, xmllite.h: Likewise.

2010-06-22  Jacek Caban  <jacek@codeweavers.com>
	* downloadmgr.h: Moved to IDL SDK.

2010-06-22  Jonathan Yong  <jon_y@sourceforge.net>
	* clusapi.h (PCLUSAPI_OPEN_CLUSTER): Declare.
	(FS_CASE_SENSITIVE): Define.
	(FS_CASE_IS_PRESERVED): Likewise.
	(FS_UNICODE_STORED_ON_DISK): Likewise.
	(FS_PERSISTENT_ACLS): Likewise.
	(MAINTENANCE_MODE_TYPE_ENUM): Declare.
	(CLUSCTL_CLUSTER_CODES): Likewise.
	(CLUSCTL_GROUP_CODES): Likewise.
	(CLUSCTL_NETINTERFACE_CODES): Likewise.
	(CLUSCTL_NETWORK_CODES): Likewise.
	(CLUSCTL_NODE_CODES): Likewise.
	(CLUSTER_REG_COMMAND): Likewise.
	(CLUSTER_GROUP_STATE): Likewise.
	(CLUSTER_QUORUM_TYPE): Likewise.
	(CLUSTER_RESOURCE_CLASS): Likewise.
	(CLUSTER_RESOURCE_CREATE_FLAGS): Likewise.
	(CLUSTER_SETUP_PHASE): Likewise.
	(CLUSTER_SETUP_PHASE_TYPE): Likewise.
	(CLUSTER_SETUP_PHASE_SEVERITY): Likewise.
	(CLUSPROP_FILETIME): Likewise.
	(CLUS_MAINTENANCE_MODE_INFOEX): Likewise.
	(CLUS_NETNAME_PWD_INFO): Likewise.
	(CLUS_NETNAME_VS_TOKEN_INFO): Likewise.
	(CLUS_PARTITION_INFO_EX): Likewise.
	(CLUS_PROVIDER_STATE_CHANGE_INFO): Likewise.
	(CLUS_STORAGE_GET_AVAILABLE_DRIVELETTERS): Likewise.
	(CLUS_STORAGE_REMAP_DRIVELETTER): Likewise.
	(CLUS_STORAGE_SET_DRIVELETTER): Likewise.
	(CLUSPROP_PARTITION_INFO_EX): Likewise.
	(CLUSTER_BATCH_COMMAND): Likewise.
	(CLUSTER_IP_ENTRY): Likewise.
	(CREATE_CLUSTER_CONFIG): Likewise.
	(CLUSTER_VALIDATE_DIRECTORY): Likewise.
	(CLUSTER_VALIDATE_NETNAME): Likewise.
	(CLUSTER_VALIDATE_PATH): Likewise.
	(HREGBATCH): Likewise.
	(HREGBATCHPORT): Likewise.
	(HREGBATCHNOTIFICATION): Likewise.
	(ClusterRegBatchAddCommand): Likewise.
	(ClusterRegBatchCloseNotification): Likewise.
	(ClusterRegBatchReadCommand): Likewise.
	(ClusterRegCloseBatch): Likewise.
	(ClusterRegCloseBatchNotifyPort): Likewise.
	(PCLUSTER_REG_CREATE_BATCH): Likewise.
	(ClusterRegCreateBatch): Likewise.
	(PCLUSTER_REG_CREATE_BATCH_NOTIFY_PORT): Likewise.
	(ClusterRegCreateBatchNotifyPort): Likewise.
	(PCLUSTER_REG_GET_BATCH_NOTIFICATION): Likewise.
	(ClusterRegGetBatchNotification): Likewise.
	(PCLUSTER_SETUP_PROGRESS_CALLBACK): Likewise.
	(AddClusterNode): Likewise.
	(DestroyCluster): Likewise.
	(CreateCluster): Likewise.
	(DestroyClusterGroup): Likewise.

2010-06-18  Doug Semler  <dougsemler@gmail.com>

	* accctrl.h: Include new _mingw_unicode.h for Unicode macros.
	* aclapi.h: Likewise.
	* cfgmgr32.h: Likewise.
	* commctrl.h: Likewise.
	* commdlg.h: Likewise.
	* cpl.h: Likewise.
	* cryptuiapi.h: Likewise.
	* custcntl.h: Likewise.
	* dbt.h: Likewise.
	* ddeml.h: Likewise.
	* digitalv.h: Likewise.
	* dsclient.h: Likewise.
	* dsgetdc.h: Likewise.
	* dtchelp.h: Likewise.
	* errorrep.h: Likewise.
	* htmlhelp.h: Likewise.
	* icm.h: Likewise.
	* imagehlp.h: Likewise.
	* ime.h: Likewise.
	* imm.h: Likewise.
	* intshcut.h: Likewise.
	* isguids.h: Likewise.
	* loadperf.h: Likewise.
	* lzexpand.h: Likewise.
	* mlang.h: Likewise.
	* mmsystem.h: Likewise.
	* mobsync.h: Likewise.
	* msi.h: Likewise.
	* msiquery.h: Likewise.
	* multimon.h: Likewise.
	* newapis.h: Likewise.
	* npapi.h: Likewise.
	* nspapi.h: Likewise.
	* ntdsapi.h: Likewise.
	* ntdsbcli.h: Likewise.
	* ntmsapi.h: Likewise.
	* ntquery.h: Likewise.
	* odbcss.h: Likewise.
	* oleacc.h: Likewise.
	* oledlg.h: Likewise.
	* patchapi.h: Likewise.
	* patchwiz.h: Likewise.
	* pdh.h: Likewise.
	* pgobootrun.h: Likewise.
	* profinfo.h: Likewise.
	* prsht.h: Likewise.
	* psapi.h: Likewise.
	* ras.h: Likewise.
	* rasdlg.h: Likewise.
	* richedit.h: Likewise.
	* rpcasync.h: Likewise.
	* rpcdce.h: Likewise.
	* rpcdcep.h: Likewise.
	* rpcnsi.h: Likewise.
	* rpcssl.h: Likewise.
	* rtutils.h: Likewise.
	* schannel.h: Likewise.
	* sddl.h: Likewise.
	* secext.h: Likewise.
	* security.h: Likewise.
	* sensapi.h: Likewise.
	* setupapi.h: Likewise.
	* shellapi.h: Likewise.
	* shfolder.h: Likewise.
	* shlguid.h: Likewise.
	* shlobj.h: Likewise.
	* shlwapi.h: Likewise.
	* shobjidl.h: Likewise.
	* smx.h: Likewise.
	* srrestoreptapi.h: Likewise.
	* sspi.h: Likewise.
	* strsafe.h: Likewise.
	* tapi.h: Likewise.
	* traffic.h: Likewise.
	* uastrfnc.h: Likewise.
	* umx.h: Likewise.
	* urlmon.h: Likewise.
	* userenv.h: Likewise.
	* vfw.h: Likewise.
	* wfext.h: Likewise.
	* winbase.h: Likewise.
	* wincon.h: Likewise.
	* wincred.h: Likewise.
	* wincrypt.h: Likewise.
	* windns.h: Likewise.
	* wingdi.h: Likewise.
	* wininet.h: Likewise.
	* winnetwk.h: Likewise.
	* winnls.h: Likewise.
	* winnls32.h: Likewise.
	* winnt.h: Likewise.
	* winreg.h: Likewise.
	* winscard.h: Likewise.
	* winsmcrd.h: Likewise.
	* winsock2.h: Likewise.
	* winspool.h: Likewise.
	* winsvc.h: Likewise.
	* winuser.h: Likewise.
	* winver.h: Likewise.
	* wpapi.h: Likewise.
	* wptypes.h: Likewise.
	* ws2tcpip.h: Likewise.
	* wtsapi32.h: Likewise.
	* xolehlp.h: Likewise.
	* zmouse.h: Likewise.

2010-06-16  Doug Semler  <dougsemler@gmail.com>

	* profile.h: Rename _mcount to _mcount_private to make it obvious.
	  Declare public _mcount here.

2010-06-15  Ozkan Sezer  <sezeroz@gmail.com>

	* mingw_inc/_bsd_types.h: Moved to crt/_bsd_types.h. Changed its
	include guard to _BSDTYPES_DEFINED.
	* af_irda.h: Adjusted for _bsdtypes.h.
	* inaddr.h: Likewise.
	* in6addr.h: Likewise.
	* mingw_inc/_ip_types.h: Likewise.
	* winsock.h: Likewise.
	* winsock2.h: Likewise.

2010-06-14  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h, ksmedia.h, ksproxy.h: Added #endif comments.
	* ks.h (DEFINE_KSPIN_INTERFACE_ITEM): Renamed macro argument
	INTERFACE to _interFace.

2010-06-12  Kai Tietz  <kai.tietz@onevision.com>

	Change unicode-dependent defines to use __MINGW_NAME_AW.
	* winuser.h: Use __MINGW_TYPEDEF_AW for UNICODE specific
	type-definitions.
	* zmouse.h: Use for string constant definitions
	__MINGW_STRING_AW macro.

2010-06-12  Ozkan Sezer  <sezeroz@gmail.com>

	Kill definitions of I_X86_ macro and adjust places it was used:
	* windows.h: Remove I_X86_ definition. Adjust and tweak _AMD64_
	and _IA64_ macro definitions to use _X86_ and/or __i386__.
	* winnt.h: Likewise as in windows.h. Replace checks against I_X86_
	by checks against _X86_. Replace checks against _X86_ which were
	already under I_X86_ ifdefs by checks against __i386__.
	* mapidbg.h: Replace checks against I_X86_ by checks against _X86_.
	* mapiutil.h: Likewise.
	* mapival.h: Likewise.
	* netmon.h: Likewise.
	* stralign.h: Likewise.
	* tapi3if.h: Likewise.
	* uastrfnc.h: Likewise.
	* vdmdbg.h: Likewise.
	* wabutil.h: Likewise.
	* winbase.h: Likewise.

2010-06-09  Ozkan Sezer  <sezeroz@gmail.com>

	* sdkddkver.h: Sync'ed with ReactOS version to add new macros
	_WIN32_WINNT_WIN7, _WIN32_IE_IE80, _WIN32_IE_WIN7 and NTDDI_WIN7.

2010-06-08  Jonathan Yong  <jon_y@sourceforge.net>
	* winnt.h (ACTCTX_REQUESTED_RUN_LEVEL): New.
	(ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION): Likewise.
	* winbase.h (CreateBoundaryDescriptorA): New.
	(CreateBoundaryDescriptorW): Likewise.
	(OpenPrivateNamespaceA): Likewise.
	(OpenPrivateNamespaceW): Likewise.
	(CreatePrivateNamespaceA): Likewise.
	(CreatePrivateNamespaceW): Likewise.
	(AddMandatoryAce): Likewise.
	(AddSIDToBoundaryDescriptor): Likewise.
	(ClosePrivateNamespace): Likewise.
	(DeleteBoundaryDescriptor): Likewise.
	(PSECURE_MEMORY_CACHE_CALLBACK): Likewise.
	(AddSecureMemoryCacheCallback): Likewise.
	(RemoveSecureMemoryCacheCallback): Likewise.
	(AdvanceLogBase): Likewise.
	(AllocateUserPhysicalPagesNuma): Likewise.
	(APPLICATION_RECOVERY_CALLBACK): Likewise.
	(RegisterApplicationRecoveryCallback): Likewise.
	(ApplicationRecoveryFinished): Likewise.
	(ApplicationRecoveryInProgress): Likewise.
	* winspool.h (AddPrinterConnection2A): New.
	(AddPrinterConnection2W): Likewise.
	(PRINTER_CONNECTION_MISMATCH): Define.
	(PRINTER_CONNECTION_NO_UI): Likewise.
	(PRINTER_CONNECTION_INFO_1): New.
	(PPRINTER_CONNECTION_INFO_1): Likewise.
	* winsock2.h (IPPROTO_RM): Define.
	(AF_BTH): Likewise.
	(AF_MAX): Bump to 33.
	* ws2tcpip.h (AI_ADDRCONFIG): Define.
	(AI_NON_AUTHORITATIVE): Likewise.
	(AI_SECURE): Likewise.
	(AI_RETURN_PREFERRED_NAMES): Likewise.
	(addrinfoExA): New.
	(addrinfoExW): New.
	(PADDRINFOEXA): New.
	(PADDRINFOEXW): New.
	(GetAddrInfoExA): New.
	(GetAddrInfoExW): New.
	(FreeAddrInfoExA): New.
	(FreeAddrInfoExW): New.

2010-06-04  Jonathan Yong  <jon_y@sourceforge.net>

	* winbase.h (CreateSymbolicLinkA): Move into Vista version guard.
	(CreateSymbolicLinkW): Likewise.

2010-06-01  Jacek Caban  <jacek@codeweavers.com>

	* include/mscft.idl: New.
	* include/msctf.h: New.
	* include/textstor.idl: New.
	* include/textstor.h: New.

2010-05-28  Ozkan Sezer  <sezeroz@gmail.com>

	* mstcpip.h: Added missing include guard.
	* af_irda.h: Remove the _WINSOCKAPI_ guarded typedefs and include
	mingw_inc/_bsd_types.h, instead.

2010-05-25  Ozkan Sezer  <sezeroz@gmail.com>

	* afxres.h: Changed header guard check from _WINDOWS_H, which was
	a left-over from mingw32, to _INC_WINDOWS which is what we define.

2010-05-23  Ozkan Sezer  <sezeroz@gmail.com>

	* mingw_inc/_socket_types.h: Provide SOCKET type as UINT_PTR in
	#if 0'ed out form, just so we know that we do it as INT_PTR on
	purpose.

2010-05-23  Ozkan Sezer  <sezeroz@gmail.com>

	* Renamed _ws_helpers to mingw_inc, adjusted all its users.

2010-05-22  Ozkan Sezer  <sezeroz@gmail.com>

	In case winsock2.h is included after winsock.h, probably by way of
	windows.h, perform a "winsock2 upgrade" on top of winsock1 by splitting
	the headers into some helpers holding shared data types and undefining
	macros when necessary:

	* _ws_helpers/_bsd_types.h: New.
	* _ws_helpers/_fd_types.h: New.
	* _ws_helpers/_ip_mreq1.h: New.
	* _ws_helpers/_ip_types.h: New.
	* _ws_helpers/_socket_types.h: New.
	* _ws_helpers/_ws1_undef.h: New.
	* _ws_helpers/_wsa_errnos.h: New.
	* _ws_helpers/_wsadata.h: New.
	* _ws_helpers/_xmitfile.h: New.
	* inaddr.h: New.
	* in6addr.h: New.
	* ipexport.h: Include inaddr.h and in6addr.h. Move struct in6_addr
	and its related macros to in6addr.h. Move struct in_addr and its
	related macros to inaddr.h.
	* mswsock.h: Include _ws_helpers/_xmitfile.h.
	Move struct _TRANSMIT_FILE_BUFFERS to _ws_helpers/_xmitfile.h.
	Guard WSARecvEx, TransmitFile, AcceptEx and GetAcceptExSockaddrs
	prototypes by __MSWSOCK_WS1_SHARED ifdefs.
	* winsock.h: Include _timeval.h, inaddr.h, _ws_helpers/_bsd_types.h,
	_ws_helpers/_socket_types.h, _ws_helpers/_fd_types.h,
	_ws_helpers/_ip_types.h, _ws_helpers/_ip_mreq1.h, _ws_helpers/_wsadata.h
	and _ws_helpers/_xmitfile.h.
	Define WINSOCK_API_LINKAGE and WSAAPI at the top and undefine them at
	the end of the file.
	Move struct timeval, timerisset,timercmp and timerclear to _timeval.h.
	Move struct in_addr and its related macros to inaddr.h.
	Move u_char, u_short, u_int, u_long and u_int64 to _ws_helpers/_bsd_types.h.
	Move SOCKET, INVALID_SOCKET and SOCKET_ERROR to _ws_helpers/_socket_types.h.
	Move struct fd_set and FD_SETSIZE to _ws_helpers/_fd_types.h.
	Move struct ip_mreq to _ws_helpers/_ip_mreq1.h.
	Move structs hostent, netent, servent, protoent, sockaddr_in, sockaddr,
	sockproto and linger to _ws_helpers/_ip_types.h. Moved struct WSAData
	to _ws_helpers/_wsadata.h.
	Move WSA error macros to _ws_helpers/_wsa_errnos.h.
	Move struct _TRANSMIT_FILE_BUFFERS to _ws_helpers/_xmitfile.h.
	Define __WINSOCK_WS1_SHARED and __MSWSOCK_WS1_SHARED.
	* winsock2.h: Do not re-define _WINSOCKAPI_. If it is already defined,
	do a #warning that winsock2.h must be included before windows.h.
	Include _ws_helpers/_ws1_undef.h to make sure that macros from winsock.h
	are undefined. Include _timeval.h, inaddr.h, _ws_helpers/_bsd_types.h,
	_ws_helpers/_socket_types.h, _ws_helpers/_fd_types.h,
	_ws_helpers/_ip_types.h and _ws_helpers/_wsadata.h.
	Move struct timeval, timerisset,timercmp and timerclear to _timeval.h.
	Move struct in_addr and its related macros to inaddr.h.
	Move u_char, u_short, u_int, u_long and u_int64 to _ws_helpers/_bsd_types.h.
	Move SOCKET, INVALID_SOCKET and SOCKET_ERROR to _ws_helpers/_socket_types.h.
	Move struct fd_set and FD_SETSIZE to _ws_helpers/_fd_types.h.
	Move structs hostent, netent, servent, protoent, sockaddr_in, sockaddr,
	sockproto and linger to _ws_helpers/_ip_types.h. Moved struct WSAData
	to _ws_helpers/_wsadata.h.
	Move WSA error macros to _ws_helpers/_wsa_errnos.h.
	Guard the 46 functions shared by 1.1 api using __WINSOCK_WS1_SHARED ifdefs.
	* ws2tcpip.h: Include _ws_helpers/_ip_mreq1.h.
	Move struct ip_mreq to _ws_helpers/_ip_mreq1.h.
	Move struct in6_addr, IN6_ADDR, PIN6_ADDR, LPIN6_ADDR to in6addr.h.

2010-05-18  Ozkan Sezer  <sezeroz@gmail.com>

	* GL/gl.h: Don't bother about WIN32_LEAN_AND_MEAN when including
	windows.h. May cause more problems than it would solve.

2010-05-02  Ozkan Sezer  <sezeroz@gmail.com>

	* GL/gl.h: Include windows.h, if necessary.

2010-05-02  Doug Semler <dougsemler@gmail.com>

	* ws2tcpip.h: Include winsock2.h.

2010-05-01  Ozkan Sezer  <sezeroz@gmail.com>

	Fix for BR/2994499 :
	* winbase.h (UnlockResource): Make the no-op macro more gcc-friendly
	and avoid compiler warnings.

2010-04-19  Patrick von Reth  <patrick.vonreth@gmail.com>

	* dbghelp.h (PSYM_ENUMMODULES_CALLBACK64,
	PSYM_ENUMSYMBOLS_CALLBACK64, PSYM_ENUMSYMBOLS_CALLBACK64W,
	PENUMLOADED_MODULES_CALLBACK64,
	PSYM_ENUMMODULES_CALLBACK64): Make string
	argument const.

2010-04-16  Jonathan Yong  <jon_y@sourceforge.net>

	* vfw.h: Add comment about unguarded duplication in avifmt.h
	(VIDCF_QUALITYTIME): Define.
	(VIDCF_FASTTEMPORAL): Ditto.
	(streamtypeANY): Ditto.
	(AVIF_TRUSTCKTYPE): Ditto.
	(streamtypeANY): Ditto.
	(AVIFILEINFO_TRUSTCKTYPE): Ditto.
	(AVStreamNextKeyFrame): Ditto.
	(AVStreamPrevKeyFrame): Ditto.

	* avifmt.h: Add comment about unguarded duplication in vfw.h

2010-04-15  Timo Kreuzer  <timo.kreuzer@reactos.org>

	* commctrl.h: Add missing const modifier to InitCommonControlsEx parameter,
	DrawStatusTextA/W, GetEffectiveClientRect.
	Guard CDN_FIRST and CDN_LAST from redefinition. Update LVCOLUMNW (add Vista+ members)
	Add HDS_CHECKBOXES, HDS_NOSIZING, HDS_OVERFLOW, HDF_CHECKBOX, HDF_CHECKED,
	HDF_FIXEDWIDTH, HDF_SPLITBUTTON, TB_SETHOTITEM2, TB_SETLISTGAP,
	TB_GETIMAGELISTCOUNT, TB_GETIDEALSIZE, TB_TRANSLATEACCELERATOR,
	TBN_WRAPHOTITEM, TBN_DUPACCELERATOR, TBN_WRAPACCELERATOR, TBN_DRAGOVER,
	TBN_MAPACCELERATOR, REBARBANDINFOA_V6_SIZE, REBARBANDINFOW_V6_SIZE,
	PBS_SMOOTHREVERSE, PBM_GETSTEP, PBM_GETBKCOLOR, PBM_GETBARCOLOR,
	PBM_SETSTATE, PBM_GETSTATE, PBST_NORMAL, PBST_ERROR, PBST_PAUSED, LVCF_MINWIDTH,
	LVCF_DEFAULTWIDTH, LVCF_IDEALWIDTH, LVCFMT_FIXED_WIDTH, LVCFMT_NO_DPI_SCALE,
	LVCFMT_FIXED_RATIO, LVCFMT_LINE_BREAK, LVCFMT_FILL, LVCFMT_WRAP,
	LVCFMT_NO_TITLE, LVCFMT_TILE_PLACEMENTMASK,
	LVCFMT_SPLITBUTTON, LVS_EX_JUSTIFYCOLUMNS, LVS_EX_TRANSPARENTBKGND,
	LVS_EX_TRANSPARENTSHADOWTEXT, LVS_EX_AUTOAUTOARRANGE, LVS_EX_HEADERINALLVIEWS,
	LVS_EX_AUTOCHECKSELECT, LVS_EX_AUTOSIZECOLUMNS, LVS_EX_COLUMNSNAPPOINTS,
	LVS_EX_COLUMNOVERFLOW, LVM_ISITEMVISIBLE, ListView_IsItemVisible, TV_DISPINFOEXA,
	NMIVDISPINFOEXW, LPNMTVDISPINFOEXW, NMTVDISPINFOEX, LPNMTVDISPINFOEX, DPASTREAMINFO,
	struct IStream, PFNDPASTREAM, DPA_LoadStream, DPA_SaveStream, DPA_Grow,
	DPA_InsertPtr, DPA_SetPtr, DPA_GetPtr, DPA_GetPtrIndex, DPA_GetPtrCount,
	DPA_SetPtrCount, DPA_FastDeleteLastPtr, DPA_GetPtrPtr, DPA_FastGetPtr,
	DPA_AppendPtr, PFNDPAMERGE, PFNDPAMERGECONST, DPAM_SORTED, DPAM_NORMAL,
	DPAM_UNION, DPAM_INTERSECT, DPAMM_MERGE, DPAMM_DELETE, DPAMM_INSERT: New.

2010-04-14  Doug Semler <dougsemler@gmail.com>

	* winnt.h (inline InterlockedDecrement16, InterlockedIncrement64):
	Remove parentheses from destination regsiter

2010-04-13  Ozkan Sezer  <sezeroz@gmail.com>

	* winnt.h: Fix several SUBLANG ID errors introduced by r2177 and 2178
	(ref: http://msdn.microsoft.com/en-us/library/dd318693(VS.85).aspx).
	(SUBLANG_UI_CUSTOM_DEFAULT): 0x05, not 0x03.
	(SUBLANG_HAUSA_NIGERIA): Bad ID name, correct one is ...
	(SUBLANG_HAUSA_NIGERIA_LATIN): ... this.
	(SUBLANG_INUKTITUT_CANADA_LATIN): 0x02, not 0x01.
	(SUBLANG_IRISH_IRELAND): 0x02, not 0x01.
	(SUBLANG_LAO_LAO_PDR): Bad ID name, correct one is ...
	(SUBLANG_LAO_LAO): ... this.
	(SUBLANG_LOWER_SORBIAN_GERMANY): 0x02, not 0x01.
	(SUBLANG_SAMI_SKOLT_FINLAND): 0x08, not 0x03.
	(SUBLANG_SAMI_INARI_FINLAND): 0x09, not 0x03.
	(SUBLANG_SYRIAC_SYRIA): define as SUBLANG_SYRIAC (what MSDN mentions).
	(SUBLANG_TIGRIGNA_ERITREA): 0x02, not 0x01.

2010-04-12  Jonathan Yong  <jon_y@sourceforge.net>

	* winbase.h: (InitializeConditionVariable): New.
	(SleepConditionVariableCS): Ditto.
	(SleepConditionVariableSRW): Ditto.
	(WakeAllConditionVariable): Ditto.
	(WakeConditionVariable): Ditto.
	(AcquireSRWLockExclusive): Ditto.
	(AcquireSRWLockShared): Ditto.
	(InitializeSRWLock): Ditto.
	(ReleaseSRWLockExclusive): Ditto.
	(ReleaseSRWLockShared): Ditto.
	(TryAcquireSRWLockExclusive): Ditto.
	(TryAcquireSRWLockShared): Ditto.
	(INIT_ONCE_ASYNC): Define.
	(INIT_ONCE_INIT_FAILED): Ditto.
	(PINIT_ONCE): Ditto.
	(LPINIT_ONCE): Ditto.
	(PINIT_ONCE_FN): Ditto.
	(InitOnceBeginInitialize): New.
	(InitOnceComplete): Ditto.
	(InitOnceExecuteOnce): Ditto.

	* winnt.h: (RTL_CONDITION_VARIABLE): Define.
	(RTL_SRWLOCK): Ditto.
	(RTL_RUN_ONCE): Ditto.
	(PRTL_RUN_ONCE): Ditto.
	(PRTL_RUN_ONCE_INIT_FN): Ditto.
	(RTL_RUN_ONCE_INIT): Ditto.
	(RTL_RUN_ONCE_CHECK_ONLY): Ditto.
	(RTL_RUN_ONCE_ASYNC): Ditto.
	(RTL_RUN_ONCE_INIT_FAILED): Ditto.
	(RTL_RUN_ONCE_CTX_RESERVED_BITS): Ditto.
	(RTL_SRWLOCK_INIT): Ditto.
	(RTL_CONDITION_VARIABLE_INIT): Ditto.
	(RTL_CONDITION_VARIABLE_LOCKMODE_SHARED): Ditto.
	(CONDITION_VARIABLE_INIT): Ditto.
	(CONDITION_VARIABLE_LOCKMODE_SHARED): Ditto.
	(SRWLOCK_INIT): Ditto.

2010-04-07  Kai Tietz  <kai.tietz@onevision.com>

	PR/2983397
	* wctype.h (iswblank): Correct declaration.

2010-04-06  Ozkan Sezer  <sezeroz@gmail.com>

	* omp.h: Deleted (moved under /experimental/include_old .)

2010-03-30  Ozkan Sezer  <sezeroz@gmail.com>
	    Kai Tietz  <kai.tietz@onevision.com>

	* windef.h: Preserve possible BOOL definitions, or lack thereof,
	from the users by a pairr of push_macro and pop_macro pragmas.
	Do not define BOOL as a macro, typedef it as WINBOOL and only in
	non-__OBJC__ cases.

2010-03-25  Ozkan Sezer  <sezeroz@gmail.com>

	* ddrawgdi.h: Fixed MINGW_DDRAW_VERSION check.

2010-03-18  Kai Tietz  <kai.tietz@onevision.com>

	* iprtrmib.h (TCP_TABLE_CLASS): New.

2010-03-18  Ozkan Sezer  <sezeroz@gmail.com>

	Do not silently include winsock2.h instead of winsock.h:
	* winsock.h: Removed the if 0 comment out and the winsock2.h
	include. Restored the recently removed definitions.
	* ws2ipdef.h: Deleted.
	* winsock2.h: Define _WINSOCKAPI_ to avoid winsock.h inclusions.
	Removed the _WINSOCK_SOCKET_DEFINED ifdef guards around SOCKET
	definitions. Removed mswsock.h inclusion.
	* mswsock.h: Removed the SOCKET definitions.
	* ws2tcpip.h: Added back ip_mreq and ip_mreq_source structures.
	Do not try to preserve possible socklen_t macros from the user.

2010-03-18  Ozkan Sezer  <sezeroz@gmail.com>

	* winsock.h (INVALID_SOCKET): Fix obvious typo.

2010-03-03  Roland Schwingel  <roland.schwingel@onevision.com>

	* include/winnt.h: Add a lot of missing definitions from MSDN.
	(VER_SUITE_WH_SERVER): Define
	(PRODUCT_*): Likewise.
	(DBG_PRINTEXCEPTION_C): Likewise.
	(DBG_RIPEXCEPTION): Likewise.
	(STATUS_LONGJUMP): Likewise.
	(STATUS_UNWIND_CONSOLIDATE): Likewise.
	(STATUS_INVALID_PARAMETER): Likewise.
	(STATUS_DLL_NOT_FOUND): Likewise.
	(STATUS_ORDINAL_NOT_FOUND): Likewise.
	(STATUS_ENTRYPOINT_NOT_FOUND): Likewise.
	(STATUS_DLL_INIT_FAILED): Likewise.
	(STATUS_STACK_BUFFER_OVERRUN): Likewise.
	(STATUS_INVALID_CRUNTIME_PARAMETER): Likewise.
	(STATUS_ASSERTION_FAILURE): Likewise.
	(STATUS_INVALID_CRUNTIME_PARAMETER): Likewise.
	(STATUS_INVALID_CRUNTIME_PARAMETER): Likewise.
	(STATUS_INVALID_CRUNTIME_PARAMETER): Likewise.
	(SYSTEM_MANDATORY_LABEL_ACE): Typedef struct.
	(SYSTEM_MANDATORY_LABEL_NO_WRITE_UP): Define.
	(SYSTEM_MANDATORY_LABEL_NO_READ_UP): Likewise.
	(SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP): Likewise.
	(SYSTEM_MANDATORY_LABEL_VALID_MASK): Likewise.
	(SE_PRIVILEGE_VALID_ATTRIBUTES): Likewise.
	(SE_TRUSTED_CREDMAN_ACCESS_NAME): Likewise.
	(SE_RELABEL_NAME): Likewise.
	(SE_INC_WORKING_SET_NAME): Likewise.
	(SE_TIME_ZONE_NAME): Likewise.
	(SE_CREATE_SYMBOLIC_LINK_NAME): Likewise.
	(TOKEN_INFORMATION_CLASS): Add missing enum values.
	(LUA_TOKEN): Define.
	(WRITE_RESTRICTED): Likewise.
	(LABEL_SECURITY_INFORMATION): Likewise.
	(PROCESS_QUERY_LIMITED_INFORMATION): Likewise.
	(THREAD_SET_LIMITED_INFORMATION): Likewise.
	(THREAD_QUERY_LIMITED_INFORMATION): Likewise.
	(QUOTA_LIMITS_USE_DEFAULT_LIMITS): Likewise.
	(RATE_QUOTA_LIMIT): Typedef struct.
	(QUOTA_LIMITS_EX): Update definition.
	(MAX_HW_COUNTERS): Define.
	(THREAD_PROFILING_FLAG_DISPATCH): Likewise.
	(HARDWARE_COUNTER_TYPE): Typedef struct.
	(JOB_OBJECT_LIMIT_RESERVED2): Remove.
	(JOB_OBJECT_LIMIT_SUBSET_AFFINITY): Define.
	(JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS): Correct.
	(JOBOBJECTINFOCLASS): Add missing enum value.
	(PF_SSE3_INSTRUCTIONS_AVAILABLE): Define.
	(PF_COMPARE_EXCHANGE128): Likewise.
	(PF_COMPARE64_EXCHANGE128): Likewise.
	(PF_CHANNELS_ENABLED): Likewise.
	(PF_XSAVE_ENABLED): Likewise.
	(SESSION_QUERY_ACCESS): Likewise.
	(SESSION_MODIFY_ACCESS): Likewise.
	(SESSION_ALL_ACCESS): Likewise.
	(MEM_ROTATE): Likewise.
	(SEC_PROTECTED_IMAGE): Likewise.
	(SEC_WRITECOMBINE): Likewise.
	(FILE_ATTRIBUTE_VIRTUAL): Likewise.
	(FILE_SEQUENTIAL_WRITE_ONCE): Likewise.
	(FILE_SUPPORTS_TRANSACTIONS): Likewise.
	(FILE_SUPPORTS_HARD_LINKS): Likewise.
	(FILE_SUPPORTS_EXTENDED_ATTRIBUTES): Likewise.
	(FILE_SUPPORTS_OPEN_BY_FILE_ID): Likewise.
	(FILE_SUPPORTS_USN_JOURNAL): Likewise.
	(IO_REPARSE_TAG_HSM2): Likewise.
	(IO_REPARSE_TAG_WIM): Likewise.
	(IO_REPARSE_TAG_CSV): Likewise.
	(IO_REPARSE_TAG_DFSR): Likewise.
	(IO_REPARSE_TAG_SYMLINK): Likewise.
	(MONITOR_DISPLAY_STATE): Typedef struct.
	(ES_AWAYMODE_REQUIRED): Define.
	(POWER_ACTION_PSEUDO_TRANSITION): Likewise.
	(POWER_USER_NOTIFY_FORCED_SHUTDOWN): Likewise.
	(SYSTEM_POWER_CAPABILITIES): Update.
	(IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION): Define.
	(IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE): Likewise.
	(IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY): Likewise.
	(IMAGE_DLLCHARACTERISTICS_NX_COMPAT): Likewise.
	(IMAGE_SYM_SECTION_MAX_EX): Likewise.
	(IMAGE_REL_EBC_ABSOLUTE): Likewise.
	(IMAGE_REL_EBC_ADDR32NB): Likewise.
	(IMAGE_REL_EBC_REL32): Likewise.
	(IMAGE_REL_EBC_SECTION): Likewise.
	(IMAGE_REL_EBC_SECREL): Likewise.
	(RTL_CRITICAL_SECTION_DEBUG): Update.
	(RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO): Define.
	(RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN): Likewise.
	(RTL_CRITICAL_SECTION_FLAG_STATIC_INIT): Likewise.
	(RTL_CRITICAL_SECTION_ALL_FLAG_BITS): Likewise.
	(RTL_CRITICAL_SECTION_FLAG_RESERVED): Likewise.
	(RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT): Likewise.

2010-02-19  Jonathan Yong  <jon_y@sourceforge.net>

	* include/shlguid.h (IID_IFolderView): Define.

2010-02-15  Kai Tietz  <kai.tietz@onevision.com>

	* winnt.h (UNREFERENCED_PARAMETER): Silence warning.
	(UNREFERENCED_LOCAL_VARIABLE): Likewise.

2010-01-20  Ozkan Sezer  <sezeroz@gmail.com>

	* wincrypt.h (CERT_ALT_NAME_ENTRY): Commented out pEdiPartyName
	member from the union (not implemented, see:
	http://msdn.microsoft.com/en-us/library/aa924681.aspx or
	http://msdn.microsoft.com/en-us/library/aa377173.aspx .)

2010-02-01  Kai Tietz  <kai.tietz@onevision.com>

	Donated by S. Koehler
	* winusbio.h: New API.
	* winusb.h: New API.

2010-01-20  Ozkan Sezer  <sezeroz@gmail.com>

	* commctrl.h: Relaxed _WIN32_IE version requirement to 0x0500
	for now. Added a big FIXME note that it should really be 0x0501.

2010-01-01  Jonathan Yong  <jon_y@sourceforge.net>

	* include/profile.h (_MCOUNT_DECL): Add gnu_inline attribute
	and remove static qualifier.
