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

	* d3dtypes.h, d3d8types.h, d3d9types.h (D3DCLEAR_TARGET): Remove
	the guard.
	(D3DCLEAR_ZBUFFER, D3DCLEAR_STENCIL): Likewise.

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

	* Sync with Wine release 1.2.0.
	* d3d10shader.h: Fix some defines (parts from wine git commit
	a9e792d6d342c8a68f8802b549fd50de11f77153)
	* xinput.h: Fix typo in comment.

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

	* d3dtypes.h (LPD3DVECTOR): Guard.
	* d3d8types.h (D3DVECTOR): Guard.

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

	* d3dtypes.h, d3d8types.h, d3d9types.h (D3DCLEAR_TARGET): Guard.
	(D3DCLEAR_ZBUFFER, D3DCLEAR_STENCIL): Likewise.

	* d3d8types.h, d3d9types.h (D3DMULTISAMPLE_FORCE_DWORD): Fix as
	0x7fffffff.

	* d3d.h (INTERFACE, IDirect3D): Undef INTERFACE before IDirect3D.

	* d3dhal.h (D3DDEVICEDESC_V1): Change BOOL to WINBOOL.
	(LPD3DHAL_GLOBALDRIVERDATA): Guard.
	(LPD3DHAL_CALLBACKS): Guard.
	(D3DHAL_DP2OPERATION): Remove the D3DDP2OP_RESERVED0 and D3DDP2OP_EXT
	enumerated values which are not documented anymore.

	* dinput.h: Add proper DIRECTINPUT_VERSION guards.

	* dinput.h: Add DIPROPCALPOV, from an old patch submitted to Wine:
	http://www.winehq.org/pipermail/wine-patches/2004-September/012790.html

	* dinput.h: Add DIPROPPOINTER, from an old patch submitted to Wine:
	http://www.winehq.org/pipermail/wine-patches/2004-September/012790.html
	also see MSDN:
	http://msdn.microsoft.com/en-us/library/ee416867(VS.85).aspx

	* dinput.h: Add DIPROPCPOINTS, see MSDN:
	http://msdn.microsoft.com/en-us/library/ee416867(VS.85).aspx

	* dinput.h: Add missing constants required for dxdiag from r/os
	svn@33119:
	(DIPROP_CALIBRATION): Restrict to DIRECTINPUT_VERSION >= 0x050a.
	(DIPROP_GUIDANDPATH): Likewise.
	(DIPROP_INSTANCENAME): New for DIRECTINPUT_VERSION >= 0x050a.
	(DIPROP_PRODUCTNAME): Likewise.
	(DIPROP_JOYSTICKID): New for DIRECTINPUT_VERSION >= 0x05B2.
	(DIPROP_GETPORTDISPLAYNAME): Likewise.
	(DIPROP_PHYSICALRANGE): New for DIRECTINPUT_VERSION >= 0x0700.
	(DIPROP_LOGICALRANGE): Likewise.
	(DIPROP_KEYNAME): Restrict to DIRECTINPUT_VERSION >= 0x0800.
	(DIPROP_CPOINTS): New for DIRECTINPUT_VERSION >= 0x0800.
	(DIPROP_APPDATA): Likewise.
	(DIPROP_SCANCODE): Likewise.
	(IPROP_VIDPID): Likewise.
	(DIPROP_USERNAME): Likewise.
	(DIPROP_TYPENAME): Likewise.

	* dsound.h (DSBNOTIFICATIONS_MAX): Define as 100000UL.
	(INTERFACE, IDirectSound): Undef INTERFACE before IDirectSound.

	* ddraw.h (DDARGB, DDRGBA): Add from MSDN,
	http://msdn.microsoft.com/en-us/library/aa921041.aspx

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

	* ddrawi.h (DDSCAPSEX): Move from here ...
	* ddraw.h (DDSCAPSEX):  ...  to here.
	(DDSCAPS2): Update the reserved dwCaps4 field acc. to MSDN :
	http://msdn.microsoft.com/en-us/library/ff550292(VS.85).aspx

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

	* ddrawi.h: VIDMEM_ISDISABLED is the wrong macro name, it should be
	VIDMEM_HEAPDISABLED according to MSDN:
	http://msdn.microsoft.com/en-us/library/ff570171(VS.85).aspx

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

	* _mingw_dxhelper.h: Sync with latest _mingw.h changes:
	(NONAMELESSUNION): If the compiler is MSVC and the MS extensions are
	disabled, define it.
	(DUMMYUNIONNAMEX): Remove, not used or needed.
	(DUMMYSTRUCTNAMEX): Likewise.
	(DUMMYUNIONNAME1): Add a note that only Wine uses this variant.
	(DUMMYSTRUCTNAME1): Likewise.
	(DUMMYUNIONNAME6): Define.
	(DUMMYUNIONNAME7): Define.
	(DUMMYUNIONNAME8): Define.
	(DUMMYUNIONNAME9): Define.

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

	* _mingw_dxhelper.h (NONAMELESSSTRUCT, NONAMELESSUNION): If one is
	defined make sure the other is defined, too. Fixes the mess caused
	by NONAMELESSSTRUCT which isn't used by any others, so just rely on
	NONAMELESSUNION.

	mingw.org compatibility macros for anonymous unions from _mingw.h:
	(_ANONYMOUS_UNION): New.
	(_ANONYMOUS_STRUCT): New.
	(_UNION_NAME): New.
	(_STRUCT_NAME): New.
	(__ANONYMOUS_DEFINED): New, guarding the above.

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

	* dmdls.h (_DMUS_REGION): WLOOP is typedef'ed as struct _rloop in
	dls1.h. Changed type of WLOOP[1] from WLOOP to struct _rloop for
	__cplusplus compatibility.

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

	* d3dx9.h: Update from wine svn.

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

	* _mingw_dxhelper.h: Update DUMMYSTRUCTNAME* macros from _mingw.h.
	* ddraw.h (MAKEFOURCC): Change ifdef guard from __MAKEFOURCC__DEFINED__
	to simply MAKEFOURCC.
	* d3d9types.h (MAKEFOURCC): Likewise.
	* d3d8types.h (MAKEFOURCC): Add ifdef guards.

2010-06-22  Jacek Caban  <jacek@codeweavers.com>
	* d3d10.h, d3d10.idl, d3deffect.h, d3d10misc.h, d3d10shader.h: Initial
	import from Wine.
	* dxgi.h, dxgi.idl, dxgitype.h, dxgitype.idl, xinput.h: Likewise.

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

	* downloadmgr.idl, downloadmgr.h: Move to IDL SDK.

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

	Silence some warnings
	* d3d9types.h (MAKEFOURCC): Guard with __MAKEFOURCC__DEFINED__
	ifdefs.
	* ddraw.h (MAKEFOURCC): Likewise.
	(INTERFACE, IDirectDrawPalette): Undef INTERFACE before
	IDirectDrawPalette
	* d3d9.h (INTERFACE, IDirect3D9): Undef INTERFACE before IDirect3D9.
	* dvdmedia.h (MPEG2VIDEOINFO): Add new structure.

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

	* ddraw.h: Define __DDRAW_INCLUDED__ for compatibility.
	* dinput.h: Define __DINPUT_INCLUDED__ for compatibility.
	* dsconf.h: Define __DSCONF_INCLUDED__ for compatibility.
	* dsound.h: Define __DSOUND_INCLUDED__ for compatibility.

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

	* _mingw_dxhelper.h: Update DUMMYSTRUCTNAME* macros from _mingw.h.
	* amvideo.h, d3dx9core.h, d3dx9tex.h, dvdmedia.h, errors.h: Include
	_mingw_dxhelper.h for wine macros.

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

	* qedit.idl: Add from wine sources for PR/3001189.
	* qedit.h: Generate.
	* docobj.h: Delete, already present in the main headers.
	* docobj.idl: Delete.

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

	* Sync with wine-1.1.44 release version.

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

	* d3dx9shape.h: added from the wine-1.1.43 sources.
	* Sync with wine-1.1.43 release version.

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

	* Sync with wine-1.1.42 release version.

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

	* d3dx9effect.h: Sync'ed with wine git repo.

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

	* Sync with wine-1.1.41 release version.
	* d3dx9effect.h: added from the wine sources.

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

	* d3dx9shader.h (ID3DXConstantTable_SetMatrixTranspose): Fix typo.
	From wine git commit 8991b214b6a60ccd52c4cf493c0486a8e3728d8f .

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

	* dvdevcod.h: Add from sourceware w32api.
	* edevdefs.h: Ditto.

	* dvdevcod.h: Add copyright notice and remove pragma system_header.
	* edevdefs.h: Ditto.

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

	* d3dx9shader.h: Merge d3dx9_36 fix of Christian Costa from wine
	git-3138ba0d5cfcd37d3b457916240a7e20a08f047c / 2010-02-21: Fix
	AddRef and Release macros and add IID for ID3DXConstantTable.

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

	* dvdmedia.h: add from the wine sources.
	* Sync with wine-1.1.39 release version.

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

	* amaudio.h: quartz: Fix IAMDirectSound interface definition. (from
	wine git 28acc8398c58f0326d2e3bb21dd9406b9f480529 / 7 Feb 2010.)

	* d3dx9shader.h: Add definition for ID3DXConstantTable. (from wine
	git 6b890be5512e748412a0e21ed3f0329f1aef3057 / 11 Feb 2010)

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

	* dmoreg.h: Make it C++ compatible by adding extern "C" { ... }
	when __cplusplus ies defined.

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

	* add dmodshow, medparam and qnetwork *.idl and *.h files from the
	KDE project.
	* add amstream and vmr9 *.idl and *.h files from wine sources.

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

	Merge with the dx headers from wine-1.1.38 including the missing
	d3drmobj.h, mediaerr.h and mediaobj.h, as well as the new d3dx9
	additions.

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

	* dshow.h: Update from wine-1.1.38.
	* amaudio.h, amvideo.idl, amvideo.h, audevcod.h, errors.h, evcode.h,
	vfwmsgs.h: Add missing dshow dependency headers from wine-1.1.38.

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

	* ddstream.h, docobj.h, downloadmgr.h: Regenerate using widl-1.1.38
	from the latest wine-1.1.38 *.idl files.
	* ddstream.idl, docobj.idl, downloadmgr.idl: Add as idl versions.

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

	* dinput.h: Add DISEQUENCE_COMPARE macro. (wine git, 23 Aug 2009,
	a0449a5f64934f6cadd274f6c9442dd72a87b1e8)
	* dinput.h: Fix _DIACTIONA and _DIACTIONW definitions to match PSDK
	(dwSemantic). (wine git e1d6e3b258278b0aa456e9ea7a34dcf56598298d)
	* dsound.h: Fix a dsound define (IDirectSound3DBuffer_SetConeAngles).
	(wine git, 19 Nov 2009, cd143fb5bf1c4f68b805c06ca33272132f20d653).
	Also fixed its !__cplusplus || CINTERFACE case which is missed in the
	wine repo.

2009-04-07  Ozkan Sezer <sezeroz@gmail.com>

	* _mingw_dxhelper.h: New. Holds the DUMMYUNIONNAME and some Wine
	  compatibility macros.
	* d3d8types.h, d3d9types.h, d3dhal.h, d3dtypes.h, ddraw.h, ddrawi.h:
	  #include _mingw_dxhelper.h instead of defining DUMMYUNIONNAME stuff
	  in each file.
	* dinput.h, dplay.h, dplobby.h, dsdriver.h: Likewise.
	* ddraw.h, dinput.h, dplobby.h, dsound.h, dxerr8.h, dxerr9.h: bite the
	  bullet and use the WINELIB_* macros we just added to _mingw_dxhelper.h
	  instead of using UNICODE ifdefs. smaller diffs between the Wine source
	  tree and ours and this will help us with easier merging with the Wine
	  changes in the future..

2009-04-05  Ozkan Sezer <sezeroz@gmail.com>

	* d3d8types.h, d3d9types.h: Remove misspelled constants as they exist
	  correctly spelled (wine git d476313a49c1b46eeef390c79cadd72cd3eb217d).
	* ddraw.h: Better match the PSDK types, re order a few things (wine git
	  5b375aec71419a5a5bb57a42293ef348d6dc96a8).
	* dinput.h: Add missing IID_IDirectInput8 definitions (wine git
	  59c18ef56d3d33b98e319e8c0cd30c24fc363e4e).
	* dinput.h: Other bits and pieces from wine git: Add the DIPROP_KEYNAME
	  property for keyboard device (d939367ac8fc1e7c7461008c86557fd870c4fbe4),
	  add DISCL_NOWINKEY define (eb3028acc080922996b04f4e0cb36440680fe876),
	  add some defines for EnumDevicesBySemantics
	  (80c2cabab451b749efb768403d68ccddfede71d9).
	  TODO: we _must_ revisit to double check the version ifdefs again.
	* dls1.h, dls2.h, dmdls.h, dmerror.h, dmplugin.h, dmusbuff.h: Fix license
	  headers that mistakenly use GPL instead of LGPL.
	* dmusicc.h, dmusicf.h, dmusici.h, dmusics.h: Likewise.
	* dmdls.h, dmerror.h, dmplugin.h, dmusicc.h, dmusicf.h, dmusici.h, dmusics.h:
	  more long to LONG changes from wine git repository.
	* dmoreg.h: Likewise.
	* dmoreg.h: Fix the DMOGetName() prototype (wine git: 
	  d223716b7bcde8839c741d83865b95c990a8abcc).
	* dpaddr.h: Fix some typos (wine 9f3c91e41f82ba302afad386aa1be58d6dec2b23).
	* dplay.h: Add missing defs (4ab75e121426d8840b6bfb196cef45506091fd25.)
	* dplay.h: Fix the definition of DirectPlayCreate 
	  (wine git 5dc0d4d1ed2de76f21ba4f5298ba9ab251c6fd83).
	* dpnathlp.h: update prototype of DirectPlayNATHelpCreate() 
	  (wine git ab62cd360f611ea2cc806acee044a7ea25773fd8).
	* dsound.h: added missing A/W function / type definitions 
	  (wine git 375f8ba23761d75230805e86bc057ef7755cb57c).
	* dmusici.h: less diff with the wine tree, sigh....
	* dxfile.h: Fix IDirectXFileDataReference macros (wine git 
	  b939b8d3452e6ccabde236a2087046c1649343d2,
	  8597d42cf5f3fe194bd88ccb7ff922e547c44e6d).

2009-04-04  Ozkan Sezer <sezeroz@gmail.com>

	* d3d.h, d3d8.h, d3d9.h, dmplugin.h, dmusicc.h, dmusicf.h, dmusici.h:
	  Add the missing COM_NO_WINDOWS_H definition (wine git
	  6688acce7dbb00ceea4e755fe0f4a771a5520c24).
	* d3d8.h, d3d9.h: Add missing include directives (wine git
	  56f7209a949a1805d80ae0a59e093bbe2857677e).
	* d3d9types.h: Fix the value of D3DFVF_POSITION_MASK (wine git
	  d359a7813fe3d7acd8d3791fe63a4e44bb22ebb2).
	* d3d8types.h, d3d9types.h: Fix the D3DFMT_XXX constant declarations
	  (wine git d4ca34dd9bf98ea71226460092c7095847b97509).
	* d3d.h: Fix method calling macros for IDirect3DTexture (wine git
	  e169bb0a7f204ebe0f3053d824a1177bc1dedc65) and for 
	  IDirect3DViewport3_GetViewport (wine git 
	  7c8fa9c24f5d6d4e22dec148ffecefc9a4262a27).
	* d3dtypes.h: Change long to LONG for Win64 compatibility (wine git
	  3d94f5efc29b43c72e9574ca6c7ee88a69e28b73).
	* d3dx8core.h: Make C++ compatible (wine git 
	  91d3a794e8b756dbcb7047c77acf1a7f862627dd), remove some extraneous
	  #include directives (wine git 
	  7e34c708c1b3bdbb7d4921c1153403a8d8840b29) and fix 
	  D3DXAssembleShaderFromFileA/W prototypes (wine git
	  3d962e27ed69829645f3c8f99c17087f92d89e01).
	* d3d8types.h, d3d9types.h, d3dhal.h, d3dtypes.h, ddrawi.h, dinput.h:
	  Add the missing DUMMYUNIONNAME1 macro.
	* dplay.h, dplobby.h: Likewise.

2009-02-20  Kai Tietz  <kai.tietz@onevision.com>

	* dinput.h (DIK_...): Add additional keyboard scan codes provided
	by http://www.alrj.org/docs/hardware/keycode.txt

	PA/2619828
	a bunch of directx header fixes from the wine git repository:
	* ddraw.h, dinput.h: Add the missing COM_NO_WINDOWS_H definition
	  (wine git 6688acce7dbb00ceea4e755fe0f4a771a5520c24)
	* ddraw.h: Fix the name of DDSPD_IUNKNOWNPOINTER
	  (wine git 47b6392b44dca86b8c61daa902bd35e73cca5e2f)
	* ddraw.h: Define DD_OK to S_OK instead of 0. Add define for DD_FALSE.
	  (wine git fd4a8941032458a9b2870d0068e6fb020a9c9e0c)
	* ddraw.h: Fix a IDirectDrawSurface4 method (EnumAttachedSurfaces) prototype.
	  (wine git 6bdaaa74f3310da48790c3122786aa764f4e221a)
	* ddraw.h: Fix the EnumOverlayZOrders prototype.
	  (wine git 9a080691c6904c0da762690312cc86ee96326dbc)
	* ddraw.h: Fix the IDirectDraw4_RestoreAllSurfaces macro.
	  (wine git c2e5752ac62e646bcb46c0741cd0083179e3c9ed)
	* dinput.h: Fix IDirectInputEffect_GetEffectStatus macro definitions.
	  (wine git 2a0e659335ecf1d8967c75c9efe164c2d9d0214c)
	* dsound.h: Update prototypes for IDirectSoundBuffer::Lock/Unlock.
	  (wine git 9b4f99782ef27239927a0c5d0ae8e788df17cb76)
	* dinput.h: Revert Wine's version ifdef removal
	  (wine git bf08b35c0730636ab3dbc4dee0a9f6fa28113b7a). also add
	  a dinput8 ifdef to DIDEVICEOBJECTDATA for the uAppData member.

