2012-12-12  Corinna Vinschen  <vinschen@redhat.com>

	* winnt.h: Drop inclusion of mmintrin.h, emmintrin.h, and
	pmmintrin.h on Cygwin.

2012-12-07  Jason Hood  <adoxa@users.sourceforge.net>

	* winbase.h (LOAD_LIBRARY_AS_IMAGE_RESOURCE): Fix typo.

2012-11-14  Corinna Vinschen  <vinschen@redhat.com>

	* winternl.h (struct _FILE_FULL_DIR_INFORMATION): Rename from
	_FILE_FULL_DIRECTORY_INFORMATION per WDK documentation.
	(struct _FILE_ID_FULL_DIR_INFORMATION): Rename from
	_FILE_ID_FULL_DIRECTORY_INFORMATION.
	(struct _FILE_BOTH_DIR_INFORMATION): Rename from
	_FILE_BOTH_DIRECTORY_INFORMATION.
	(struct _FILE_ID_BOTH_DIR_INFORMATION): Rename from
	_FILE_ID_BOTH_DIRECTORY_INFORMATION.
	(FILE_FULL_DIRECTORY_INFORMATION, PFILE_FULL_DIRECTORY_INFORMATION,
	FILE_ID_FULL_DIRECTORY_INFORMATION, PFILE_ID_FULL_DIRECTORY_INFORMATION,
	FILE_BOTH_DIRECTORY_INFORMATION, PFILE_BOTH_DIRECTORY_INFORMATION,
	FILE_ID_BOTH_DIRECTORY_INFORMATION,
	PFILE_ID_BOTH_DIRECTORY_INFORMATION): Explicitely typedef in a new
	block.  Add comment to describe as being outdated.

2012-11-13  Corinna Vinschen  <vinschen@redhat.com>

	* winternl.h (SYSTEM_BASIC_INFORMATION): Change type of address
	members to match 64 bit systems.
	(SYSTEM_PAGEFILE_INFORMATION): New type.
	(SYSTEM_INFORMATION_CLASS): Reformat for readability.  Add
	SystemPagefileInformation.

2012-10-11  Corinna Vinschen  <vinschen@redhat.com>

	* winioctl.h (DEVICE_TYPE): Define only if not already defined.
	* winternl.h (DEVICE_TYPE): Define as ULONG if not already defined.

2012-10-11  Corinna Vinschen  <vinschen@redhat.com>

	* winternl.h: Throughout, use NTAPI instead of WINAPI.
	(enum _FSINFOCLASS): Define.
	(struct _FILE_FS_VOLUME_INFORMATION): Define.
	(struct _FILE_FS_LABEL_INFORMATION): Define.
	(struct _FILE_FS_SIZE_INFORMATION): Define.
	(struct _FILE_FS_DEVICE_INFORMATION): Define.
	(struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
	(struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
	(struct _FILE_FS_OBJECTID_INFORMATION): Define.
	(NtFsControlFile): Declare.
	(NtQueryVolumeInformationFile): Declare.
	(NtSetInformationFile): Declare.
	(NtSetVolumeInformationFile): Declare.
	(RtlDosPathNameToNtPathName_U): Declare.


2012-09-20  Kai Tietz  <ktietz@redhat.com>

	PR 3561209
	* wincrypt.h (szOID_NIST_AES128_CBC): New.
	(szOID_NIST_AES192_CBC): Likewise.
	(szOID_NIST_AES256_CBC): Likewise.

2012-08-29  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* ntdef.h (_OBJECT_ATTRIBUTES): Guard against duplicate declaration.
	* winnt.h (DECLSPEC_IMPORT): Do not redefine.
	(FILE_SUPERSEDE...FILE_MAXIMUM_DISPOSITION): Copy from ntdef.h.
	(FILE_DIRECTORY_FILE...FILE_OPEN_FOR_FREE_SPACE_QUERY): Ditto.
	(FILE_SHARE_VALID_FLAGS): Ditto.
	* winternl.h (_UNICODE_STRING): Guard against duplicate declaration.
	(_STRING): Ditto.
	(_OBJECT_ATTRIBUTES): Ditto.
	(_FILE_LINK_INFORMATION): Copy from ddk/ntifs.h.

2012-08-29  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* winternl.h (_FILE_RENAME_INFORMATION): Fix member names per MSDN.
	(NtQueryInformationFile): Change type of len to ULONG per MSDN.

2012-08-29  Ozkan Sezer  <sezeroz@gmail.com>

	PR/3561800, patch by drangon zhou:
	* mshtml.h (styleNormal): Add missing closing brace.
	(ELEMENTNAMESPACE_FLAGS): Ditto.

2012-08-14  Kai Tietz  <ktietz@redhat.com>

	* windef.h: Add include of _mingw.h for __LOMG32.

2012-08-07  Kai Tietz  <ktietz@redhat.com>

	* winnt.h (InterlockedIncrement): Add prototype before inline
	declaration.
	(InterlockedDecrement): Likewise.
	(InterlockedExchange): Likewise.

2012-08-06  Corinna Vinschen  <vinschen@redhat.com>

	* strsafe.h: Change long to __LONG32 where appropriate.

2012-08-06  Corinna Vinschen  <vinschen@redhat.com>

	* wbemdisp.h: Change long to __LONG32 where appropriate.
	* windef.h: Ditto.
	* winerror.h: Ditto.
	* wingdi.h: Ditto.
	* wininet.h: Ditto.
	* winnt.h: Ditto.
	* winsmcrd.h: Ditto.
	* winsnmp.h: Ditto.
	* winsock.h: Ditto.
	* winsock2.h: Ditto.
	* winuser.h: Ditto.
	* wmiatlprov.h: Ditto.
	* wmiutils.h: Ditto.
	* ws2spi.h: Ditto.
	* xa.h: Ditto.
	* xcmc.h: Ditto.
	* xmltrnsf.h: Ditto.

2012-08-06  Corinna Vinschen  <vinschen@redhat.com>

	* mlang.h: Change long to __LONG32 where appropriate.
	* mtsadmin.h: Ditto.
	* mtxadmin.h: Ditto.
	* shldisp.h: Ditto.
	* shlobj.h: Ditto.
	* simpdc.h: Ditto.
	* sqltypes.h: Ditto.
	* srv.h: Ditto.
	* sspi.h: Ditto.
	* svrapi.h: Ditto.
	* tapi.h: Ditto.
	* tapi3.h: Ditto.
	* tapi3cc.h: Ditto.
	* tapi3if.h: Ditto.
	* termmgr.h: Ditto.
	* tom.h: Ditto.
	* tspi.h: Ditto.
	* tuner.h: Ditto.
	* txdtc.h: Ditto.
	* usp10.h: Ditto.
	* vfw.h: Ditto.
	* wabcode.h: Ditto.
	* wabdefs.h: Ditto.
	* wbemcli.h: Ditto.
	* wbemprov.h: Ditto.
	* wbemtran.h: Ditto.

2012-08-06  Corinna Vinschen  <vinschen@redhat.com>

	* rtccore.h: Change long to __LONG32 where appropriate.
	* scardssp.h: Ditto.
	* sdoias.h: Ditto.

2012-08-06  Corinna Vinschen  <vinschen@redhat.com>

	* mdhcp.h: Change long to __LONG32 where appropriate.
	* mergemod.h: Ditto.
	* mmc.h: Ditto.
	* mmcobj.h: Ditto.
	* msclus.h: Ditto.
	* mshtml.h: Ditto.
	* mshtmlc.h: Ditto.
	* msdatsrc.h: Ditto.
	* msi.h: Ditto.
	* msimcntl.h: Ditto.
	* msimcsdk.h: Ditto.
	* msp.h: Ditto.
	* mspaddr.h: Ditto.
	* mspcall.h: Ditto.
	* mspcoll.h: Ditto.
	* mspstrm.h: Ditto.
	* mspterm.h: Ditto.
	* msptrmac.h: Ditto.
	* msptrmar.h: Ditto.
	* msxml.h: Ditto.
	* msxml2.h: Ditto.
	* ndattrib.h: Ditto.
	* ndhelper.h: Ditto.
	* ndrtypes.h: Ditto.
	* netcon.h: Ditto.
	* netmon.h: Ditto.
	* nspapi.h: Ditto.
	* ntdef.h: Ditto.
	* odbcss.h: Ditto.
	* oleauto.h: Ditto.
	* olectl.h: Ditto.
	* oledbguid.h: Ditto.
	* rdpencomapi.h: Ditto.
	* rend.h: Ditto.
	* richedit.h: Ditto.
	* rpc.h: Ditto.
	* rpcasync.h: Ditto.
	* rpcdce.h: Ditto.
	* rpcdcep.h: Ditto.
	* rpcndr.h: Ditto.
	* rpcnsi.h: Ditto.
	* rpcproxy.h: Ditto.

2012-08-03  Corinna Vinschen  <vinschen@redhat.com>

	* iads.h: Change long to __LONG32 where appropriate.

2012-08-03  Corinna Vinschen  <vinschen@redhat.com>

	* eventsys.h: Change long to __LONG32 where appropriate.
	* exdisp.h: Ditto.
	* gpmgmt.h: Ditto.
	* iiis.h: Ditto.
	* ipmsp.h: Ditto.

2012-08-03  Corinna Vinschen  <vinschen@redhat.com>

	* comsvcs.h: Change long to __LONG32 where appropriate.
	* control.h: Ditto.
	* dhtmled.h: Ditto.
	* emostore.h: Ditto.

2012-08-03  Corinna Vinschen  <vinschen@redhat.com>

	* cdoex.h: Change long to __LONG32 where appropriate.
	* cdoexm.h: Ditto.
	* cdonts.h: Ditto.
	* cdosys.h: Ditto.
	* cluscfgwizard.h: Ditto.
	* comadmin.h: Ditto.

2012-08-03  Corinna Vinschen  <vinschen@redhat.com>

	* agtsvr.h: Change long to __LONG32 where appropriate.
	* asptlb.h: Ditto.
	* azroles.h: Ditto.

2012-08-02  Corinna Vinschen  <vinschen@redhat.com>

	* activscp.h: Change long to __LONG32 where appropriate.
	* adoctint.h: Ditto.
	* adoint.h: Ditto.
	* adojet.h: Ditto.
	* adomd.h: Ditto.
	* agtctl.h: Ditto.

2012-08-02  Corinna Vinschen  <vinschen@redhat.com>

	* fsrm.h: Change long to __LONG32 where appropriate.
	* fsrmquota.h: Ditto.
	* fsrmreports.h: Ditto.
	* fsrmscreen.h: Ditto.
	* guiddef.h: Ditto.
	* httpfilt.h: Ditto.
	* iimgctx.h: Ditto.
	* iiisext.h: Ditto.
	* ksmedia.h: Ditto.
	* ksproxy.h: Ditto.
	* lmsvc.h: Ditto.
	* mapi.h: Ditto.
	* mapicode.h: Ditto.
	* mapidbg.h: Ditto.
	* lmaccess.h: Ditto.
	* lmstats.h: Ditto.
	* mapidefs.h: Ditto.
	* mapinls.h: Ditto.
	* mfidl.h: Ditto.
	* midles.h: Ditto.
	* mq.h: Ditto.
	* mqoai.h: Ditto.
	* msasn1.h: Ditto.

2012-08-02  Corinna Vinschen  <vinschen@redhat.com>

	* basetsd.h: Change long to __LONG32 where appropriate.
	* basetyps.h: Ditto.
	* certbase.h: Ditto.
	* correg.h: Ditto.
	* dbdaoint.h: Ditto.
	* esent.h: Ditto.
	* fci.h: Ditto.
	* fdi.h: Ditto.
	* filehc.h: Ditto.
	* winbase.h: Ditto.
	* comutil.h: Ditto.
	(_bstr_t::Data_t::AddRef): Call InterlockedIncrement with argument
	casted to LONG *.
	(_bstr_t::Data_t::Release): Call InterlockedDecrement with argument
	casted to LONG *.

2012-08-02  Corinna Vinschen  <vinschen@redhat.com>

	* Throughout, change prototypes of XXX_UserSize, XXX_UserMarshal,
	XXX_UserUnmarshal, and XXX_UserFree functions to use ULONG rather
	than unsigned long.
	* rpcndr.h (NDR_CHAR_REP_MASK): Use __MSABI_LONG rather than
	explicit cast to unsigned long.
	(NDR_INT_REP_MASK): Ditto.
	(NDR_FLOAT_REP_MASK): Ditto.
	(NDR_LITTLE_ENDIAN): Ditto.
	(NDR_BIG_ENDIAN): Ditto.
	(NDR_IEEE_FLOAT): Ditto.
	(NDR_VAX_FLOAT): Ditto.
	(NDR_IBM_FLOAT): Ditto.
	(NDR_ASCII_CHAR): Ditto.
	(NDR_EBCDIC_CHAR): Ditto.
	(NDR_LOCAL_DATA_REPRESENTATION): Ditto.
	(USER_MARSHAL_SIZING_ROUTINE): Use ULONG rather than unsigned long.
	(USER_MARSHAL_MARSHALLING_ROUTINE): Ditto.
	(USER_MARSHAL_UNMARSHALLING_ROUTINE): Ditto.
	(USER_MARSHAL_FREEING_ROUTINE): Ditto.

2012-08-01  Corinna Vinschen  <vinschen@redhat.com>

	* msxml.idl: Throughout, replace long and unsigned long with LONG and
	ULONG.
	* objidl.idl: Ditto.
	* ocidl.idl: Ditto.
	* oleidl.idl: Ditto.
	* propidl.idl: Ditto.
	* shobjidl.idl: Ditto.
	* strmif.idl: Ditto.
	* urlmon.idl: Ditto.
	* wtypes.idl: Ditto.
	* msxml.idl: Ditto.
	* objidl.h: Regenerate.
	* ocidl.h: Regenerate.
	* oleidl.h: Regenerate.
	* propidl.h: Regenerate.
	* shobjidl.h: Regenerate.
	* strmif.h: Regenerate.
	* urlmon.h: Regenerate.
	* wtypes.h: Regenerate.

2012-08-01  Corinna Vinschen  <vinschen@redhat.com>

	* oleacc.idl: Throughout, replace long and unsigned long with LONG and
	ULONG.
	* oleacc.h: Regenerate.

2012-07-31  Corinna Vinschen  <vinschen@redhat.com>

	* windows.h: Don't include stralign.h when build for Cygwin.

2012-07-30  Corinna Vinschen  <vinschen@redhat.com>

	* psdk_inc/_ip_types.h (struct __ms_timeval): Define on LP64 systems.
	(TIMEVAL): Define based on struct __ms_timeval on LP64, based on
	struct timeval otherwise.
	(PTIMEVAL): Ditto.
	(LPTIMEVAL): Ditto.
	* winsock.h: Replace all `struct timeval *' usages with PTIMEVAL.
	* winsock2.h: Ditto.
	* ws2spi.h: Ditto.
	* ws2tcpip.h: Ditto.

2012-07-30  Corinna Vinschen  <vinschen@redhat.com>

	* af_irda.h: Temporarily redefine u_long as __ms_u_long on LP64 systems.
	* in6addr.h: Ditto.
	* inaddr.h: Ditto.
	* winsock.h: Ditto.
	* winsock2.h: Ditto.
	* psdk_inc/_ip_types.h: Ditto.

2012-07-30  Corinna Vinschen  <vinschen@redhat.com>

	* Throughout, use __MSABI_LONG macro rather than 'L' qualifier
	for unsigned numerical constants as well.

2012-07-30  Corinna Vinschen  <vinschen@redhat.com>

	* winnt.h: In case of Cygwin, include gcc-provided intrinsic
	files directly, instead of including intrin.h.

2012-07-30  Corinna Vinschen  <vinschen@redhat.com>

	* ndrtypes.h (NDR_VERSION_1_1): Drop UL qualifier from or'ed
	minor version value.
	(NDR_VERSION_2_0): Ditto.
	(NDR_VERSION_5_0): Ditto.
	(NDR_VERSION_5_2): Ditto.
	(NDR_VERSION_5_3): Ditto.
	(NDR_VERSION_5_4): Ditto.
	* d2d1.h (DXGI_FORMAT_FORCE_UINT): Drop UL qualifier.
	* gdiplus/gdipluscolor.h: Ditto for all ARGB symbolic color
	values.

2012-07-27  Corinna Vinschen  <vinschen@redhat.com>

	* Throughout, use __MSABI_LONG macro rather than 'L' qualifier
	for numerical constants.

2012-07-27  Corinna Vinschen  <vinschen@redhat.com>

	* cdoex.h: Throughout, drop 'L' qualifier from numerical constants
	defining const value.
	* cdosys.h: Ditto.
	* lmaccess.h: Drop 'L' qualifier from numerical constants casted to
	unsigned long.
	* lmstats.h: Ditto.
	* richole.h: Drop 'L' qualifier from numerical constants casted to
	ULONG.
	* dbgeng.h: Drop 'L' qualifier from numerical constants casted to
	HRESULT (via HRESULT_FROM_NT).
	* adserr.h: Throughout, drop 'L' qualifier from numerical
	constants casted to HRESULT (via _HRESULT_TYPEDEF_).
	* advpub.h: Ditto.
	* naperror.h: Ditto.
	* pstore.h: Ditto.
	* subsmgr.h: Ditto.
	* urlmon.h: Ditto.
	* winerror.h: Ditto.
	Define all WSA error codes based on WSABASEERR.
	* netmon.h (MAKE_LONG): Drop unnecessary 'L' qualifier from shift
	value.
	* pdh.h (IsSuccessSeverity): Drop 'L' qualifier from mask value.
	Cast result value to DWORD.
	(IsInformationalSeverity): Ditto.
	(IsWarningSeverity): Ditto.
	(IsErrorSeverity): Ditto.
	* penwin.h (dwDiffAT): Drop unnecessary 'L' qualifier from multiplier.
	* windowsx.h (HANDLE_WM_CREATE): Drop 'L' qualifer from
	constant casted to LRESULT and only cast the endresult once.
	* wingdi.h (HGDI_ERROR): Drop 'L' qualifer.
	* docobj.h (PAGESET_TOLASTPAGE): Ditto.

2012-07-25  Corinna Vinschen  <vinschen@redhat.com>

	* wmiatlprov.h (CInstanceProviderHelper::CheckInstancePath):
	Cast first parameter in call to GetInfo to ULONG.
	* winioctl.h (IsDsmActionNonDestructive): Replace test for == 0L
	with logical negation operator.
	* wininet.h (INTERNET_INVALID_STATUS_CALLBACK): Drop 'L' modifier.
	* lmaccess.h (DEF_MIN_PWAGE): Ditto.
	* mmsystem.h (MEVT_EVENTPARM): Ditto.
	* svrapi.h (FRK_INIT):  Ditto.
	* vfw.h: Throughout, cast all constants in calls to SendMessage and
	ICSendMessage to the expected type.
	* prsht.h: Ditto, in calls to SendMessage and PostMessage.
	* winuser.h: Ditto, in calls to CreateWindowEx, CreateDialogParam,
	CreateDialogIndirectParam, DialogBoxParam, and DialogBoxIndirectParam.
	* commctrl.h: Ditto, in calls to SendMessage.
	(LPSTR_TEXTCALLBACKA): Drop 'L' modifier.
	(LPSTR_TEXTCALLBACKW): Ditto.
	* windowsx.h: Throughout, cast all constants in calls to SendMessage
	and as return value from HANDLE_xxx macro.
	(IsRestored): Replace test for == 0L with logical negation operator.

2012-07-23  Corinna Vinschen  <vinschen@redhat.com>

	* Throughout, drop 'L' modifier from enumeration values.

2012-07-21  Corinna Vinschen  <vinschen@redhat.com>

	* ws2tcpip.h (EAI_NODATA): Define as int value.

2012-07-20  Corinna Vinschen  <vinschen@redhat.com>

	* kcom.h (STATIC_KoCreateObject): Drop  'L' modifier from Data1
	member in GUID definition.

2012-07-20  Corinna Vinschen  <vinschen@redhat.com>

	* directx/dxerr8.h (DXTRACE_MSG): Drop long qualifier from
	empty non-debug definition.
	* directx/dxerr9.h: Ditto.

2012-07-20  Corinna Vinschen  <vinschen@redhat.com>

	* winuser.h: Convert all HELP_xxx command macros to int macros.

2012-07-19  Corinna Vinschen  <vinschen@redhat.com>

	* ksmedia.h: Throughout, drop 'L' modifier from Data1 member in
	GUID definitions.
	* ksproxy.h: Ditto.
	* ksuuids.h: Ditto.
	* uuids.h: Ditto.

2012-07-19  Corinna Vinschen  <vinschen@redhat.com>

	* msdasql.h: Throughout, drop 'L' modifier from Data1 member in
	GUID definitions.
	* ioevent.h: Ditto.
	* msdaguid.h: Ditto.
	* iiis.h: Ditto.
	* usbiodef.h: Ditto.
	* tcguid.h: Ditto.
	* oledb.h: Ditto.
	* recguids.h: Ditto.
	* diskguid.h: Ditto.
	* shlguid.h: Ditto.
	* msdadc.h: Ditto.
	* isguids.h: Ditto.
	* batclass.h: Ditto.
	* shobjidl.h: Ditto.
	* devguid.h: Ditto.
	* ntddscsi.h: Ditto.
	* identitystore.h: Ditto.
	* sti.h: Ditto.
	* sqloledb.h: Ditto.
	* mstask.h: Ditto.
	* fwpmu.h: Ditto.
	* oledbguid.h: Ditto.
	* winioctl.h: Ditto.

2012-07-19  Corinna Vinschen  <vinschen@redhat.com>

	* Throughout, drop long qualifier in all casted numerical constant
	expressions.

2012-07-19  Corinna Vinschen  <vinschen@redhat.com>

	* ks.h: Throughout, drop 'L' modifier from Data1 member in GUID
	definitions.
	* ntddstor.h: Ditto.
	* ntddser.h: Ditto.

2012-07-19  Corinna Vinschen  <vinschen@redhat.com>

	* usb.h: Check for _WIN64 instead of WIN64.

2012-07-16  Corinna Vinschen  <vinschen@redhat.com>

	* winbase.h: Use system types in calls to Interlocked functions.

2012-07-12  Corinna Vinschen  <vinschen@redhat.com>

	* winternl.h (NT_SUCCESS): Define.
	(enum _PROCESSINFOCLASS): Copy from ddk/ntddk.h.
	(NtSetInformationProcess): Declare.

2012-07-11  Ozkan Sezer  <sezeroz@gmail.com>

	* tapi.h: Move the unicode A/W macros after the function prototypes.
	(lineAddProvider,lineBlindTransfer,lineConfigDialog,
	lineConfigDialogEdit,lineDial,lineGatherDigits,lineGenerateDigits,
	lineGetAddressID,lineGetAppPriority,lineGetDevConfig,lineGetIcon,
	lineGetID,lineHandoff,lineMakeCall,linePark,linePickup,lineRedirect,
	lineSetAppPriority,lineSetDevConfig,lineSetTollList,
	lineTranslateAddress,lineTranslateDialog,lineUnpark,phoneConfigDialog,
	phoneGetIcon,phoneGetID,tapiGetLocationInfo,tapiRequestMakeCall,
	tapiRequestMediaCall): Define as *A variant only for TAPI2 or newer,
	but always define as *W variant when UNICODE is defined.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* stralign.h (ua_wcscpy): Define as macro when building on Cygwin.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* in6addr.h (s6_addr16): Define when building Cygwin.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* winbase.h (ZAWPROXYAPI): Define as empty if _ZAWPROXY_ is defined.
	* objbase.h (WINOLEAPI): Define as empty if _OLE32_ is defined.
	WINOLEAPI_: Ditto.
	* winnt.h (NTSYSAPI): Define as empty if _NTSYSTEM_ is defined.
	(NTSYSCALLAPI): Ditto.
	* winuser.h (WINUSERAPI): Define as empty if _USER32_ is defined.
	* wingdi.h (WINSPOOLAPI): Define as empty if _SPOOL32_ is defined.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* windows.h: Don't include winsock.h on Cygwin, unless __USE_W32_SOCKETS
	is defined.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* psdk_inc/_ip_types.h (struct sockaddr): Define always.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* ntdef.h (struct _PROCESSOR_NUMBER): Guard definition with
	___PROCESSOR_NUMBER_DEFINED.
	(struct _GROUP_AFFINITY): Guard definition with
	___GROUP_AFFINITY_DEFINED.
	* winnt.h: Ditto.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* in6addr.h (struct in6addr): Add u.__s6_addr32 member when
	building Cygwin.
	(s6_addr32): Define when building Cygwin.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* winsock2.h (gethostname): Drop __INSIDE_CYGWIN__ guard.

2012-07-06  Corinna Vinschen  <vinschen@redhat.com>

	* winnt.h (NtCurrentTeb): Always define inline implementation.
	(GetCurrentFiber): Ditto.
	(GetFiberData): Ditto.
	(MemoryBarrier): Ditto.

2012-07-05  Kai Tietz  <ktietz@redhat.com>

	* ws2tcpip.h: Enable inline-functions always.

2012-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* wincrypt.h (WINBASEAPI): Define as non-import iff
	_KERNEL32_ was defined.

2012-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* psdk_inc/_ip_types.h (sockaddr_in): Define unconditionally.

2012-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* ntdef.h (FILE_ATTRIBUTE_VALID_FLAGS): Define.
	(FILE_SHARE_VALID_FLAGS): Define.
	(FILE_SUPERSEDE, ...): Define native file creation dispositions.
	(FILE_DIRECTORY_FILE, ...): Define native file open options.
	(struct _REPARSE_DATA_BUFFER): Define.

2012-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* winsock2.h (__WSAFDIsSet): Move declaration to psdk_inv/_fd_type.h.
	(FD_CLR): Move definition to psdk_inv/_fd_type.h.
	(FD_ZERO): Ditto.
	(FD_ISSET): Ditto.
	(FD_SET): Ditto.
	(htonl): Don't declare when building Cygwin.
	(htons): Ditto.
	(ntohl): Ditto.
	(ntohs): Ditto.
	(gethostname): Ditto.
	(select): Ditto.
	* winsock.h: Ditto.
	* psdk_inc/_fd_types.h: Add Cygwin build environment magic to avoid
	multiple definition of the select function related datatypes and macros.
	(__WSAFDIsSet): Declare here.
	(FD_CLR): Define here.
	(FD_ZERO): Ditto.
	(FD_ISSET): Ditto.
	(FD_SET): Ditto.  Make sure to undef FD_SET first, if it has been
	defined from winsock.h before.
	* psdk_inc/_ip_types.h: Rearrange slightly and don't define POSIX
	compatible datatypes when building Cygwin.
	* psdk_inc/_ws1_undef.h (FD_CLR): Drop #undef.
	(FD_ZERO): Ditto.
	(FD_ISSET): Ditto.
	(FD_SET): Ditto.

2012-06-28  Rafael Carre  <funman@videolan.org>

	* dxva2api.h: Remove DXVA_* GUIDs and structs ...
	* dxva.h: ... And put them here.

2012-06-28  Corinna Vinschen  <vinschen@redhat.com>

	* ntdef.h (PHYSICAL_ADDRESS): Define unconditionally.

2012-06-27  Corinna Vinschen  <vinschen@redhat.com>

	* stralign.h: Fix and add #endif comments.

2012-06-27  Kai Tietz  <ktietz@redhat.com>

	* wincrypt.h (WINADVAPI): Define as non-import iff
	_ADVAPI32_ was defined.
	* wincred.h: Likewise.
	* winsvc.h: Likewise.
	* perflib.h: Likewise.
	* winbase.h: Likewise.

2012-05-10  Kai Tietz  <ktietz@redhat.com>

	PR 3523077
	* tmschema.h: Add warning about obsoleted tmschema.h for
	_WIN32_NT > 0x600.

2012-05-10  Piotr Caban  <piotr@codeweavers.com>

	* vsstyle.h: Wine-version relicensed.
	* vssym32.h: Likewise.

2012-05-09  Ozkan Sezer  <sezeroz@gmail.com>

	* winuser.h (MAPVK_VK_TO_*): Moved map types for MapVirtualKeyEx
	out of win7 ifdefs. Protected MAPVK_VK_TO_VSC_EX for vista-only.

2012-05-08  Ozkan Sezer  <sezeroz@gmail.com>

	* uxtheme.h (MAX_INTLIST_COUNT): Define as 402 instead of 10 for
	vista and newer. (bug #3524667).

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

	* dwmapi.h: Fixed all function prototypes to be WINAPI.

2012-05-02  Kai Tietz  <ktietz@redhat.com>

	PR 3523072
	* commctrl.h:  Add missing button-styles, and messages.

2012-04-28  Jonathan Liu  <net147@users.sourceforge.net>

	* wlanapi.h: Fixed incorrectly nested if blocks.

2012-04-23  Stefan Sundin  <recover89@gmail.com>

	* Fix incorrect references for pVtbl to lpVtbl in these files:
	audioengineendpoint.h, bdaiface.h, dvbsiparser.h, dwrite.h, dxvahd.h,
	evr.h, fsrm.h, fsrmquota.h, fsrmreports.h, fsrmscreen.h,
	functiondiscoveryapi.h, functiondiscoverynotification.h,
	identitystore.h, locationapi.h, mfapi.h, mfidl.h, mfobjects.h,
	mfplay.h, mfreadwrite.h, mftransform.h, mpeg2data.h, mpeg2psiparser.h,
	msrdc.h, ndhelper.h, opmapi.h, portabledeviceconnectapi.h,
	rdpencomapi.h, strmif.h, strmif.idl, tuner.h, vsadmin.h, vsbackup.h,
	vsmgmt.h, vsprov.h, vss.h, vswriter.h, winsync.h, wmcontainer.h,
	wsdattachment.h, wsdbase.h, wsdclient.h, wsddisco.h, wsdhost.h,
	wsdxml.h.
	* adhoc.h (IDot11AdHocInterfaceNotificationSink): Fix
	OnConnectionStatusChange.

2012-04-23  Kai Tietz  <ktietz@redhat.com>

	PR/3520095
	* endpointvolume.h (IAudioEndpointVolume): Fix.

2012-03-07  Corinna Vinschen <corinna@vinschen.de>

	* winternl.h (struct _LDR_DATA_TABLE_ENTRY): Changed type of Reserved1
	from BYTE to LPVOID.
	(InitializeObjectAttributes): New macro.
	(OBJ_INHERIT, OBJ_PERMANENT, OBJ_EXCLUSIVE, OBJ_CASE_INSENSITIVE,
	OBJ_OPENIF, OBJ_OPENLINK, OBJ_KERNEL_HANDLE, OBJ_FORCE_ACCESS_CHECK,
	OBJ_VALID_ATTRIBUTES): New macro-constants.
	* iptypes.h (PIP_ADAPTER_ADDRESSES_LH): Add type as pointer to
	IP_ADAPTER_ADDRESSES_LH.

2012-02-07  Rafaël Carré  <funman@videolan.org>

	* dxva2api.h : Add UUIDS and missing error codes

2012-02-04  Rafaël Carré  <funman@videolan.org>

	* d2d1.h (ID2D1HwndRenderTarget): Fix interface

2012-02-03  Rafaël Carré  <funman@videolan.org>

	* shobjidl.h (ApplicationAssociationRegistrationUI): Add missing interface

2012-02-02  Rafaël Carré  <funman@videolan.org>

	* uuids.h (MEDIASUBTYPE_I420): Add GUID.

2012-02-01  Rafaël Carré <funman@videolan.org>

	* dxva2api.h (Direct3DDeviceManager9): Fix COBJMACROS to use lpVtbl.
	(DirectXVideoDecoder): Likewise.
	(DirectXVideoAccelerationService): Likewise.
	(DirectXVideoDecoderService): Likewise.

2012-02-01  Kai Tietz  <ktietz@redhat.com>

	* rpcndr.h (small): Define only if RC_INVOKED is defined.

	* shobjidl.h (THBN_CLICKED): Define constant.

2012-01-29  Jonathan Yong  <jon_y@users.sourceforge.net>

	* strsafe.h (MPRAPI_OBJECT_HEADER): Fix double extern qualifier in
	_STRSAFE_EXTERN_C. __CRT_INLINE macro already has extern.

2012-01-26  Kai Tietz  <ktietz@redhat.com>

	* nldef.h (NL_INTERFACE_OFFLOAD_ROD): Remove
	TlStreamFastPathCompatible and TlDatagramFastPathCompatible
	members, which are merged into FastPathCompatible.
	(note msdn is wrong here).

2012-01-26  Jonathan Yong  <jon_y@users.sourceforge.net>

	* mprapi.h (MPRAPI_OBJECT_HEADER): Fix declaration.
	(MPR_SERVER_EX): New typedef.
	(MPRAPI_ADMIN_DLL_CALLBACKS): Likewise.
	(MprConfigServerGetInfoEx): Declare.
	(MprAdminConnectionEnumEx): Likewise.
	(MprAdminConnectionGetInfoEx): Likewise.
	(MprAdminInitializeDllEx): Likewise.
	(MprAdminIsServiceInitialized): Likewise.
	(MprAdminServerGetInfoEx): Likewise.
	(MprAdminServerSetInfoEx): Likewise.
	* endpointvolume.h (CLSID_MMDeviceEnumerator): Declare.
	(IID_IMMDeviceEnumerator): Likewise.
	(IID_IAudioEndpointVolume): Likewise.
	(IID_IAudioEndpointVolumeCallback): Likewise.
	(IID_IAudioEndpointVolumeEx): Likewise.
	* manipulations.h: New.
	* elscore.h: New.
	* mfapi.h(MT_ARBITRARY_HEADER): New typedef.
	* locationapi.h(LOCATION_DESIRED_ACCURACY): New typedef.
	* lmaccess.h(MSA_INFO_STATE): New typedef.
	(MSA_INFO_0): Likewise.

2012-01-26  Ozkan Sezer  <sezeroz@gmail.com>

	* mprapi.h (MprAdminConnectionRemoveQuarantine): Revert
	to old definition which is correct by marking the function
	as WINAPI.

2012-01-25  Kai Tietz  <ktietz@redhat.com>

	* iprtrmib.h (MIB_TCP_STATE): New typedef.
	* mprapi.h (MprAdminConnectionRemoveQuarantine): Remove
	double definition.

2012-01-19  Kai Tietz  <ktietz@redhat.com>

	PR 3474190
	* windef.h (STRICT): Regard definition of NO_STRICT.

2012-01-18  Kai TIetz  <ktietz@redhat.com>

	* unknwn.h: Remove sepecial-case for Obj-C.
	* windows.h: and move it here.
