The Wine development release 1.1.10 is now available.

What's new in this release (see below for details):
  - Support for virtual memory write watches.
  - Workarounds for the WINAPI compiler bug on Mac OS.
  - Several fixes for the 64-bit build.
  - Some more GdiPlus functions.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.10.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.1.10.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/site/download

You will find documentation on http://www.winehq.org/site/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/site/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

----------------------------------------------------------------

Bugs fixed in 1.1.10:

    709  riched32.dll needs to be improved a lot (was:Richedit does not handle input with PTE)
   1114  Winrar2.90/3.00: Comboex doesn't trigger a event when you mouse-click in some value of it
   1700  Failed to detect Serial Port
   1990  modifier keys not released when switching desktop
   2872  Superpower2 fails to install
   2934  Microsoft Masked Controls 6 Problem
   3552  Unhandled dwRenderStateType playing DeusEx
   3769  photodex plug in or self contained exe's uses 100% CPU
   4090  eMule Plus text entry behavior is broken. cursor is lost in some conditions.
   4095  Warcraft III Polish installer crashes
   4678  DirectX sound doesn't work with OSS Sound driver
   4752  wine client error:1e: write: Bad file descriptor
   5462  Half-Life 2 runs in only part of screen instead of fullscreen (no window)
   5786  Crash while using MSRDO in a Visual Basic 5 Application
   5810  Squeak won't start, complains "failed to create pipe"
   5828  Command and Conquer Generals (Zero Hour) doesn't change the mouse cursor from the default X mouse
   6256  Ankh Demo crashes in DirectX mode
   6314  Emperor.exe crashes when -c is not given in commandline options
   6343  a-10 cuba fails to change resolution and to be topmost window
   6393  Ocad crash report
   6413  Floating point bug exposed in Director MX
   6453  MPLAB 7.43 crashes at startup
   6491  Chief Architech: resizing kde window creates several cloned wine buttons next to file in the bar
   6557  Classic99 v3.7 starts runs extremely slowly
   6587  Missing COM interface Release call in the IGraphBuilder implementation
   6588  Strange return value of the GraphBuilder_Connect function
   6693  wink 2.0 can't capture
   6760  warn:palette:GDISelectPalette invalid selected palette (nil)
   6801  gpstrack help windows are empty
   6807  Sunbird crashes on first run
   6821  Graphical artifacts in HL2:EP1
   6882  vb3 app hornresp won't run, complains "Invalid property value" on startup.
   6883  vb3 app hornresp crashes on startup
   7113  Hitman Contracts hangs when using Direct3D mode
   7145  Miranda crashes while opening a message window
   7205  Using ALT-F to bring up File menu crashes foobar2000
   7371  Steinberg License Manager lcc.exe does not run, causes many ole:err
   7440  Command and Conquer Generals (Zero Hour) non-buildable items show as black and white rather than greyscale
   7451  Unreal Editor bitblt fails and crashes
   7538  IvAe crashes with GLXBadDrawable error
   7709  err:d3d_shader:vshader_input_is_color Error
   7903  Crash in CircumReality (maybe related to MIDI)
   7986  Citavi trial fails to install correctly
   8064  DxO Optics Pro 4 installer doesn't display text properly
   8122  Command and Conqueror 3 renders incorrectly with >Low VFX detail
   8134  Finale Notepad 2007: Random crashes during playback.
   8228  Mediamonkey 2.5.5 hangs on startup
   8312  Startopia Demo: Freezes after starting application
   8515  Game Runaway: The dream of the Turtle does not start
   8525  Pokerstars cashier window freezes
   8584  IL-2 Sturmovik: fixme:dbghelp:addr_to_linear Failed to linearize address 4545:00005246 (mode 0)
   8603  Installer crashers during install of Life Balance
   8789  d3d:IWineD3DDeviceImpl_SetMaterial
   8830  IM fails when edit box is a child window in a separate process
   8949  Neocron 2.2 Client.exe crashes at character selection screen
   8998  Unhandled page fault with ME_MarkForPainting in WASTE 1.5
   9296  Info Select 2007 crashes on startup
   9335  Cannot switch tabs in MYOB
   9349  wine 0.9.43 crash on etherlords 2
   9353  CreateFile with OPEN_ALWAYS on an existing directory fails with ERROR_ACCESS_DENIED
   9367  Quicktime Player 7.1.0.210 aborts on startup
   9377  Ricochet Infinity cannot download Level Set Catalog
   9514  ABBYY FineReader 8.0 Professional Edition does not start
   9627  Graphical corruption in EVE ONLINE
   9648  Birthday selector in account creation screen positioning is off
   9683  BlipGen's ui disappears
   9773  FileMaker crashes
   9977  Google Earth geographical labels behave strangely
  10029  Tahoma entry in registry, but tahoma related errors re-occur followed by registry entry vanishing
  10104  Oblivion Construction Set main window disappears
  10123  sample .msi file from The Definitive Guide to Windows Installer Chapter 14 crashes wine
  10166  HTML Help (CHM) not working
  10208  testing the high color mode
  10241  Fonts are unreadable when using Turkish Locale
  10420  Nostradamus demo fails to start
  10475  Safari: no space between menu items in menubar
  10492  SDL-based game won't start unless you copy timidity.cfg into current directory
  10511  crash istool on run help/search help/context help/index
  10513  The I of the Dragon: Access violation
  10589  speedfan 4.32 crashes when opened
  10676  Sega rally 2 crashes on start
  10708  Wine lacks support for animated cursors
  10746  ADinstrument Chart crashes when opening a file
  10909  Soul Reaver 2: raziel moves up and down very fast when swimming
  10979  Descent FreeSpace Retail and Demo hang
  11053  Tropico 2: blank screen
  11200  hhctrl.ocx crash in stream_chr
  11517  Microsoft Virtual Earth 3D beta fails to install
  11541  NSIS calls not working on installer
  11813  Port royale: Sound very jittery
  11997  Crash error "Frichinline" on Miranda IM with History++ plugin
  12105  Safari does not have window decorations on KDE
  12125  Enable option No windows border, but use X window manager
  12224  particle effects disappear in everquest 2
  12256  MathCAD 2000 Pro embedded bit maps not drawn correctly in worksheet
  12646  Guild Wars hang on : GUild Wars hang on this :  err:d3d:IWineD3DDeviceImpl_SetLightEnable Too many concurrently active lights
  12756  GunboundWC does not run
  12767  Crash on close of hh when showing any real help file
  12820  Age of Mythology GOLD has strange bars near text
  12951  original lotro-launcher under wine
  13008  tntMPD program will install but not execute (throws error and quits)
  13153  SmartBarXP closes during startup
  13184  Settler 6 Demo SegFault
  13283  ArchiCAD 11 cannot install, overflow of free space?
  13519  Master of Orion 3 shows black screen
  13716  ISIS Draw atom symbol selector disappears
  14208  Star Wars Galactic Battlegrounds crashes
  14270  KeepTools hora.exe gives "OLE error 80004001" at startup
  14440  SWAT4: Severe graphics glitches
  14473  msn 8.5 final does not show the initial screen
  14919  Atomic Bomberman reports 2 gamepads, when 4 are present.
  14993  Microsoft Office 2003 installation not finishing correctly
  15064  MSN Messenger 7.0 hangs after configuring the webcam
  15070  HxD cant find Internetupdate
  15263  Cannot install games in Steam (requires opening new iexplore window)
  15559  winealsa sound regression: scratchiness/stutter in multiple games
  15571  Adobe Photoshop CS3 aborts with missing gdiplus functions
  15748  .NET 1.1's dotnetfx fails to install, aborts when it can't stop the msi service?
  15788  Battlefield 1942 fails to install
  16011  widl: Complex structs should have their pointer layout section after the structure's description
  16090  Fritz 11 Crashes on exit with builtin shdocvw
  16157  Rhino 4.0 fails to install, MSI version not found
  16180  Delphi 1 app won't start, dos support unavailable
  16207  After running for an indeterminate amount of time, the system tray icon disappears.
  16213  Excel 2003 hangs on formulas - Regression from 1.1.8
  16247  Safari crashes on launch
  16261  SmartBarXP crashes during launch
  16266  Avatar legends of the arena cannot access it's database
  16269  InternetCreateUrl does not encode URL_COMPONENTS.lpszExtraInfo
  16287  InternetCreateUrl does not encode URL_COMPONENTS.lpszExtraInfo
  16318  ‘GdipMultiplyMatrix’ discards qualifiers from pointer target type
  16319  winealsa: compiler errors
  16321  test_ImmSetCompositionString passing argument 1 of ‘winetest_ok’ makes integer from pointer without a cast

----------------------------------------------------------------

Changes since 1.1.9:

Alexander Morozov (1):
      ntoskrnl.exe: Fix ObfDereferenceObject function calling convention.

Alexandre Julliard (96):
      configure: Print a few more hints about requiring 32-bit libraries.
      kernel32: Fix the base DOS memory address when the low 64K are not accessible.
      winetest: Optionally compress the distributed exe with upx.
      services: Properly initialize service status at creation time.
      ntdll: Check for valid memory view size directly in VIRTUAL_FindView.
      ntdll: Pass the error code to VIRTUAL_HandleFault, and allow it to ignore the exception.
      ntdll: Add support for virtual write watches.
      widl: Make sure format strings for structure and union types are only output once.
      kernel32/tests: Fix the unimplemented check for EnumSystemLanguageGroupsA.
      user32/tests: Fix a number of window tests on Win9x and Vista.
      advapi32: Reimplemented ChangeServiceConfig2W in services.exe.
      widl: Fix the handling of proxy delegation.
      rpcrt4: Convert the dll registration routines to Unicode.
      rpcrt4: Use RegDeleteTree to properly unregister interfaces.
      rpcrt4: Create the NumMethods key too when registering an interface.
      widl: Do not make the stub vtbl const for delegating interfaces since it needs to be patched up at run-time.
      cryptdlg: Include objbase.h for function prototypes.
      gdiplus: Export the GdipGetAllPropertyItems function.
      mswsock: Export the WSARecvEx function.
      include: Fix an enum definition that was actually defining a variable.
      dmband: Remove some unused functions.
      dmcompos: Remove some unused functions.
      dmime: Remove some unused functions.
      dmscript: Remove some unused functions.
      dmstyle: Remove some unused functions.
      dmsynth: Remove some unused functions.
      dmusic: Remove some unused functions.
      dplayx: Remove some unused functions.
      dswave: Remove some unused functions.
      widl: Make the generated global variables and functions hidden.
      widl: Don't define PROXY_DELEGATION unconditionally.
      widl: Output vtable information even for interfaces that don't define new functions.
      widl: Sort the proxy interfaces by iid and use a binary search in IID_Lookup.
      ole32: Use a dlldata.c file instead of maintaining the data manually.
      oleaut32: Use a dlldata.c file instead of maintaining the data manually.
      oleaut32: Make some functions static.
      quartz: Make some functions and variables static.
      sane.ds: Make some functions static.
      gphoto.ds: Make some functions and variables static.
      twain_32: Make some functions static.
      winemp3.acm: Make some variables static.
      winspool.drv: Make some functions static.
      localspl: Make some functions static.
      jscript: Make some functions and variables static.
      ddraw: Make some functions static.
      devenum: Make some functions static.
      dxdiagn: Make some functions static.
      crypt32: Make some functions and variables static.
      mshtml: Make some functions static.
      wined3d: Make some functions and variables static.
      ole32: Register interfaces through dlldata.c as far as possible.
      oleaut32: Register interfaces through dlldata.c as far as possible.
      wined3d: Fix some macros definitions to make them proper C statements.
      shell32: Remove some unused functions.
      shell32: Make some functions static.
      winex11: Remove some unused functions.
      winex11: Make some functions static.
      ole32: Remove some unused functions.
      dmloader: Remove an unused function.
      dmloader: Make some functions static.
      comdlg32: Make some functions static.
      dinput: Make some functions static.
      rpcss: Get rid of the useless rpcss.h header.
      rpcss: Build with -D__WINESRC__ since it's using Wine-specific features.
      winebuild: Don't add stdcall decorations on non-x86 platforms.
      gdiplus: Fix the GdipMultiplyMatrix prototype.
      Define _WIN32_WINNT before including any headers.
      comctl32/tests: Avoid handle casts in traces.
      gdiplus/tests: Don't cast pointers to integers.
      imm32/tests: Don't use a pointer in an ok test.
      ntdll/tests: Use the correct prototype for RtlAllocateHeap/RtlReAllocateHeap.
      quartz: Use FIELD_OFFSET instead of casting a pointer to int.
      ntdll: Implemented RtlCaptureContext.
      Avoid including time.h before winsock.h in tests.
      browseui: Make a function static.
      comctl32: Make a function static.
      d3d8: Make a function static.
      d3d9: Make some functions static.
      d3d9_36: Make a function static.
      d3dxof: Make some functions static.
      dbghelp: Make a function static.
      inetcomm: Make a function static.
      mciavi32: Make a function static.
      ole32: Make a function static.
      rpcrt4: Make a variable static.
      uxtheme: Make some functions static.
      wintab32: Make a function static.
      winedos: Make a function static.
      mountmgr.sys: Avoid a compiler warning on older gcc.
      wininet/tests: Avoid using size_t in a trace.
      winealsa.drv: Fix a printf format warning.
      wineoss.drv: Fix a couple of printf format warnings.
      server: Limit the number of allocated handles before running out of memory.
      configure: Disable some modules by default on non-x86.
      fnt2bdf: Get rid of useless string constants.
      libwine: Don't export the selector functions for the Windows build.

Alistair Leslie-Hughes (10):
      shdocvw: Silence invalid QueryInterface FIXME.
      version: Stop crash under vista and 2k8.
      mshtml: Implement IHTMLDocument2 get_applets.
      mshtml: Implement IHTMLDocument2 get_links.
      mshtml: Implement IHTMLDocument2 get_forms.
      mshtml: Implement IHTMLDocument2 get_anchors.
      mshtml: Add a test case.
      mshtml: Implement IDispatch for IHTMLCommentElement.
      msxml3: Implement IXMLDOMAttribute get/put value.
      mshtml: Implement IHTMLStyle get/put overflow.

Andrew Nguyen (9):
      jscript: Implement the String.toLowerCase() method.
      jscript: Implement the String.toUpperCase() method.
      jscript: Implement the String.big() method.
      jscript: Implement the String.blink() method.
      jscript: Implement the String.bold() method.
      jscript: Implement the String.fixed() method.
      jscript: Implement the String.italics() method.
      jscript: Implement the String.small() method.
      jscript: Implement the String.strike() method.

Andrew Riedi (5):
      user32: Make the hotspot ICON_HOTSPOT when loading icons.
      user32: Cursors can have more than one color.
      user32: The frames of .ani cursors are .ico's, not .cur's.
      imm32: No need for tests to return 0.
      imm32: Add some really basic tests for ImmSetCompositionString().

Andrew Talbot (10):
      gdiplus: Void function should not return a value.
      wined3d: Sign-compare warnings fix.
      wined3d: Sign-compare warnings fix.
      wineps.drv: Declare some variables static const.
      wined3d: Sign-compare warnings fix.
      winedos: Sign-compare warning fix.
      winemp3.acm: Sign-compare warnings fix.
      dxgi: Memory allocation size fix.
      wineoss.drv: Sign-compare warnings fix.
      winex11.drv: Sign-compare warnings fix.

Aric Stewart (2):
      comctl32/tab: Return default tab width in TCM_SETMINTABWIDTH if lParam is a negative value.
      gdi32: Use the substitute name, if it exists, when looking for font system links.

Austin English (1):
      dnsapi: Remove a useless check.

Chris Robinson (1):
      wined3d: Make sure a context is set for query object generation.

Christian Costa (12):
      d3dxof: Support multi-dimentional array in templates.
      d3dxof: Small clean-up.
      d3dxof: Finish support for multi-dimensional array.
      wined3d: Implement CONVERT_CK_RGB24 in d3dfmt_convert_surface.
      d3dxof: Keywords are case insensitive.
      dmime: Make stub returns a error to avoid crashing.
      d3dxof: Make parsing more permissive about semicolon and comma in objects.
      d3dxof:  Increase some buffer and array sizes.
      d3dxof: Handle comments when going to next template or object.
      quartz: Avoid leaking penummt and mt on error.
      quartz: Return properly when input is flushing or reaching end of stream.
      ddraw: Fix some comments.

David Adam (1):
      d3dx8: Add a few tests for MatrixStack.

Dmitry Timoshkov (1):
      gdi32: Make PATH_AddEntry static.

Francois Gouget (46):
      regedit: Fix handling of zero-byte binary values for 'regedit /E'.
      atl: Remove WINAPI on static functions where not needed.
      comdlg32: Remove WINAPI on static functions where not needed.
      crypt32: Remove WINAPI on static functions where not needed.
      d3d8: Remove WINAPI on static functions where not needed.
      ddraw: Remove WINAPI on static functions where not needed.
      Assorted spelling fixes.
      d3d9: Remove IDirect3DDevice9Impl_GetFrontBuffer() as it is unused.
      d3d9: Remove WINAPI on static functions where not needed.
      shlwapi: Remove WINAPI on static functions where not needed.
      wined3d: Remove WINAPI on static functions where not needed.
      user32: Remove WINAPI/CALLBACK on static functions where not needed.
      msxml3: Remove WINAPI on static functions where not needed.
      wintrust: Remove WINAPI on static functions where not needed.
      wininet: Remove WINAPI on static functions where not needed.
      wineoss: Remove WINAPI on static functions where not needed.
      version: Remove WINAPI on static functions where not needed.
      wrc: parser_error() does not need a trailing '\n'.
      ole32: Remove __RPC_USER on static functions where not needed.
      oleaut32: Remove WINAPI on static functions where not needed.
      opengl32: Remove WINAPI on static functions where not needed.
      shdocvw: Remove WINAPI on static functions where not needed.
      quartz: Remove WINAPI on static functions where not needed.
      quartz: Remove CALLBACK on static functions where not needed.
      rpcrt4: Remove WINAPI on static functions where not needed.
      ole32: Remove WINAPI on static functions where not needed.
      shell32: Remove WINAPI/CALLBACK on static functions where not needed.
      Straighten out some ellipses.
      dxdiagn: Remove WINAPI on static functions where not needed.
      objsel: Remove WINAPI on static functions where not needed.
      ntdll: Remove WINAPI on static functions where not needed.
      msvcrt: Remove WINAPI on static functions where not needed.
      msi: Remove WINAPI on static functions where not needed.
      mapi32: Remove WINAPI on static functions where not needed.
      mlang: Remove WINAPI on static functions where not needed.
      localspl: Remove WINAPI on static functions where not needed.
      dmloader: Remove WINAPI on static functions where not needed.
      dplay: Remove WINAPI on static functions where not needed.
      dplayx: Remove WINAPI on static functions where not needed.
      dsound: Remove WINAPI on static functions where not needed.
      ws2_32: Fix the checks for AQ_WIN16.
      ntdll: Remove an unneeded cast.
      regedit: Deal with races in 'regedit /E' by resizing the buffers and retrying.
      server: Remove an unneeded cast.
      cmdlgtst: Fix an ellipsis in the copyright message.
      Make sure we have a space before the ellipses in Slovenian resources.

Hans Leidekker (16):
      gdiplus: Add a stub implementation of GdiplusNotificationHook and GdiplusNotificationUnhook.
      gdiplus: Implement GdipGetLineSpacing.
      gdiplus: Implement GdipNewPrivateFontCollection and GdipDeletePrivateFontCollection.
      gdiplus: Add a stub implementation of GdipPrivateAddMemoryFont.
      gdiplus: Implement GdipGetFontCollectionFamilyCount and GdipGetFontCollectionFamilyList.
      gdiplus: Improve GdipMeasureString.
      gdiplus: Return success from the GdipSaveGraphics and GdipRestoreGraphics stubs.
      gdiplus: Add stub implementations of GdipBeginContainer2 and GdipEndContainer.
      gdiplus: Add stub implementations of GdipCreateHalftonePalette and GdipImageForceValidation.
      gdiplus: Improve GdipGetImageRawFormat stub.
      setupapi: Implement SetupInstallFile{A, W}.
      gdiplus: Better implementation of GdipGetFontHeightGivenDPI.
      wininet: Don't increase index in HttpQueryInfo if requested level is HTTP_QUERY_STATUS_CODE.
      wininet: Append the extra info part in InternetCreateUrl{A, W}.
      wininet: Support setting username and password options on request handles.
      wininet: Stop leaking username and password.

Henri Verbeet (40):
      wined3d: Move caps related constants and structures to wined3d_caps.h.
      wined3d: Use IDL to generate wined3d.h.
      wined3d: Const correctness fixes.
      wined3d: Don't call IWineD3DSurfaceImpl_GetData() from surface_gdi.c.
      wined3d: Slightly reduce the scope of fragment_palette_conversion.
      wined3d: Make some functions static.
      wined3d: Const correctness fixes for utils.c.
      wined3d: Make the SHADER_OPCODE_ARG parameter to shader handlers const.
      wined3d: Const correctness fixes for arb_program_shader.c.
      wined3d: Const correctness fixes for glsl_shader.c.
      wined3d: Const correctness fixes for surface.c.
      wined3d: Const correctness fixes for ati_fragment_shader.c.
      wined3d: Remove some unnecessary casts in process_vertices_strided().
      wined3d: Const correctness fixes for device.c.
      wined3d: Make minMipLookup_noFilter and magLookup_noFilter const.
      wined3d: Const correctness fixes for surface_base.c.
      wined3d: Remove some superfluous casts.
      wined3d: Const correctness fixes for directx.c.
      wined3d: Fix the glWeightPointerARB prototype.
      wined3d: Make the lpData member of WineDirect3DStridedData const.
      wined3d: Const correctness fixes for drawprim.c.
      wined3d: Handle a few "silent" FIXMEs more consistent with the rest of the code.
      wined3d: Const correctness fixes for state.c.
      wined3d: Const correctness fixes.
      wined3d: IWineD3DBaseTexture and IWineD3DResource don't need Vtbl's.
      wined3d: Remove some unused code.
      wined3d: Rename basetexture functions to reflect that they're not COM functions.
      wined3d: Rename resource functions to reflect that they're not COM functions.
      wined3d: Make functions static where possible.
      wined3d: Use a bitmask to store which bool and int constants are set.
      wined3d: Disable checkGLcall when WINE_NO_DEBUG_MSGS is specified.
      wined3d: Move GlPixelFormatDesc to wined3d_private.h where it belongs.
      wined3d: Remove sampled_format from IWineD3DBaseShaderClass, it isn't used anywhere.
      wined3d: Make shader texture format fixups more generic.
      wined3d: Get rid of vcheckGLcall.
      wined3d: Slightly improve drawStridedSlow() performance.
      wined3d: Remove a redundant condition in shader_get_opcode().
      wined3d: Explicitly pass the version and instruction table to shader_get_opcode().
      wined3d: Explicitly pass the shader version to shader_dump_decl_usage().
      wined3d: Explicitly pass the shader version to shader_dump_param() and shader_dump_arr_entry().

Huw Davies (12):
      ole32: Factor out the code to release the delegate interfaces.
      ole32: Defer releasing the delegate interfaces until after we return from an OnClose notification.
      version: Fixed comments.
      oleaut32: Add support for loading typelibs from NE files.
      comdlg32: GetPrinterW and GetPrinterDriverW return the size in bytes so don't multiply by sizeof(WCHAR).
      ole32: Forward the ASYNC_STGMEDIUM user marshallers to the STGMEDIUM quadruple.
      d3d8/tests: Skip tests if we can't create the D3D8 object.
      d3d9/tests: Skip tests if we can't create the D3D9 object.
      d3d10core/tests: Skip the tests if we can't create a DXGI factory.
      dxgi: Don't crash and just skip the tests if glX in not available.
      ddraw/tests: Skip tests if we can't create a primary surface.
      opengl/tests: Skip tests if we can't find a pixel format.

Hwang YunSong(황윤성) (3):
      crypt32: Updated Korean resource.
      wordpad: Updated Korean resource.
      appwiz.cpl: Updated Korean resource.

Jacek Caban (6):
      mshtml: Call necko's SetUploadStream from wrapper's SetUploadStream.
      mshtml: Skip tests on old IE as soon as possible.
      mshtml: Skip tests on old IE as soon as possible.
      jscript: Set script object instead of ctx lcid in SetScriptSite.
      activdbg.idl: Added IDebugApplication64 and IActiveScriptSiteDebug64 declarations.
      ntoskrnl.exe: Forward ZwMakeTemporaryObject to ntdll.

Jan de Mooij (2):
      shell32/autocomplete: Fix handling of WM_KILLFOCUS messages.
      shell32/autocomplete: Add unit tests for autocomplete.

Jeff Zaroyko (3):
      ntdll: Avoid NULL deref in RtlDeleteTimer.
      kernel32: Add a test for CreateFile when using OPEN_ALWAYS on directories.
      wineserver: Don't use O_CREAT and O_EXCL when attempting to open directories.

Jerome Gardou (1):
      d3dx8: Implement D3DXMatrixStack_MultMatrix.

Juan Lang (4):
      crypt32: Implement CryptFormatObject for the Netscape string OIDs.
      rsaenh: Fix some test failures on older versions of Windows.
      crypt32: Accept any string format as the display text of a user notice policy qualifier.
      cryptdlg: Implement FormatVerisignExtension.

Jérôme Gardou (9):
      d3dx8: Implement D3DXMatrixStack_MultMatrixLocal.
      d3dx8: Implement D3DXMatrixStack_RotateAxis.
      d3dx8: Implement D3DXMatrixStack_RotateAxisLocal.
      d3dx8: Implement D3DXMatrixStack_RotateYawPitchRoll.
      d3dx8: Implement D3DXMatrixStack_RotateYawPitchRollLocal.
      d3dx8: Implement D3DXMatrixStack_Scale.
      d3dx8: Implement D3DXMatrixStack_ScaleLocal.
      d3dx8: Implement D3DXMatrixStack_Translate.
      d3dx8: Implement D3DXMatrixStack_TranslateLocal.

Kai Blin (2):
      dbghelp: Upgrade FIXME to ERR.
      kernel32/tests: logfile can be NULL, avoid dereferencing it (Coverity).

Kirill K. Smirnov (3):
      winecfg/audio: Fix uninitialized variable.
      winecfg/audio: Simplify removeDriver() function.
      winecfg/audio: Properly terminate an empty list of drivers.

Konstantin Kondratyuk (1):
      include: Add new interfaces to mshtml.idl.

Lei Zhang (5):
      advapi32: Allow opening HKEY_CLASSES_ROOT subkeys with backslash prefix on NT.
      comctl32: Process WM_CHAR instead of WM_KEYDOWN for numbers in datetime.
      comctl32: Do ascii to integer conversion only once.
      comctl32: Better day of the month input checking in datetime.
      msi: Set DllVersion registry key for CLSID_IMsiServerMessage.

Maarten Lankhorst (20):
      includes: Add win64 calling convention.
      winebuild: Use ms-abi for delayed load stubs.
      ntdll: Make 64-bits wine only able to load amd64 binaries.
      msvcrt: Add CDECL to all cdecl functions.
      wldap32: Fix winldap_private header compatibility with 64-bit.
      tools: Add calling conventions for win64 to winegcc.
      qmgrprxy: Fix building on wine64.
      kernel32: Fix 64-bits error in profile.
      ole32: Add Co*InitializeSpy functions.
      winmm: Some 64-bit pointer fixes.
      msacm: Fix pointer truncation.
      dsound: 64-bit pointer fixes.
      ole32: Fix releasing spy.
      loader: Implement setting %gs for amd64.
      include: Add NtCurrentTeb assembly for win64.
      wineoss.drv: Get rid of sizeof in traces.
      wineoss.drv: Fix 64-bits incompatibilities.
      winealsa.drv: Get rid of sizeof in traces.
      winealsa.drv: Fix 64-bits incompatibilities.
      user32: Fix dialogs for 64-bits wine.

Marcus Meissner (1):
      wined3d: Output the rectangles in the debug message.

Michael Karcher (8):
      msvcrt: Out strings should be ptr instead of wstr in .spec file.
      msxml3: Avoid duplicate encoding.
      msxml3/tests: Fix BSTR leak.
      msxml3: Quiet noisy fixmes.
      msxml3: Move attach_xmlnode.c to domdoc.c.
      msxml3: Specialize attach_xmlnode to XML documents.
      msxml3: Remove attach_xmldoc(This, NULL) calls.
      msxml3: attach_xmldoc may fail.

Michael Stefaniuc (27):
      msi: Remove casts of void pointers.
      regedit: Remove NULL check before HeapFree (Smatch).
      gdi32: Remove some superfluous casts.
      kernel32: Remove some superfluous casts of void pointers.
      iphlpapi: Remove a comment that dared to ponder to use malloc.
      winex11.drv: Remove some superfluous casts.
      wininet: Remove some superfluous casts.
      iphlpapi/tests: Replace malloc with HeapAlloc.
      oledlg: Remove some superfluous casts.
      imm32: Remove some superfluous casts.
      itss: Remove unneeded casts of zero.
      winecfg: Remove some superfluous casts.
      cmd: Remove some superfluous casts.
      regedit: Remove some superfluous casts.
      ws2_32/tests: Remove some superfluous casts.
      hal: Don't cast zero.
      mshtml: Remove two superfluous casts.
      msrle32: Remove some superfluous casts.
      msvcrt: Use NULL instead of casting zero.
      msxml3: Do not cast void pointers to other pointer types.
      quartz: Don't cast zero.
      wnaspi32: Replace malloc with HeapAlloc.
      wnaspi32: Remove some superfluous casts.
      atl: Remove two superfluous casts.
      ddraw: Remove two superfluous casts.
      gdiplus: Reduce the number of casts by using the proper type for variables.
      gdiplus: Remove some superfluous casts.

Nikolay Sivov (6):
      gdiplus: Stub for GdipGetImagePaletteSize.
      gdiplus: Added GdipTranslateTextureTransform.
      gdiplus: Added GdipRotateTextureTransform.
      gdiplus: Added GdipMultiplyTextureTransform.
      gdiplus: Added GdipGetPenFillType.
      gdiplus: Added GdipScaleTextureTransform.

Paul Vriens (26):
      advapi32/tests: Fix a test failure on NT4.
      rsaenh/tests: Fix a test failure on W2K and below.
      rsaenh/tests: Use a 40-bit session key instead of 56-bit.
      rsaenh/tests: Fix a test failure on W2K and below.
      rsaenh/tests: Use a 40-bit session key instead of 56-bit.
      rsaenh/tests: Fix a test failure on W2K and below.
      aclocal.m4: Add i686-pc-mingw32 to the cross-compiler prefixes.
      rsaenh/tests: Fix a test failure on NT4 and below.
      rsaenh/tests: Fix a test failure on NT4 and below.
      rsaenh/tests: Fix a test failure on Win98.
      shell32/tests: Fix a few test failures on Win9x and NT4.
      shell32/tests: Skip some tests on Win9x and WinMe.
      lz32/tests: Fix a test failure on Win9x.
      advapi32/tests: Fix some crashes on NT4.
      shell32/tests: Fix a test failure on Win9x.
      ntdll/tests: Fix a test failure on W2K.
      shell32/tests: Cast-qual warning fixes.
      shell32/tests: Fix some errors on Win9x and Vista and prevent a crash on NT4.
      shell32/tests: Fix a test failure on Win9x, NT4, Vista and W2K8.
      gdi32/tests: Fix a few test failures on Win9x and WinMe.
      shlwapi/tests: Use a codepage that is supported on all platforms.
      gdi32/tests: Fix a few test failures on Win9x and WinMe.
      hlink/tests: Fix some failures on Win9x and WinMe.
      oleacc/tests: Fix the test failures on Win9x/WinMe and Vista/W2K8.
      shell32/tests: Fix some new test failures on W2K.
      user32/tests: Fix some typos.

Peter Dons Tychsen (2):
      winedos: Fixed memory resize function which returned paragraphs in some cases instead of bytes.
      winedos: Fixed a problem with timer values that are below 50ms.

Reece Dunn (2):
      winealsa: Calculate the delay correctly as snd_pcm_delay is not reliable in this context.
      winealsa.drv: Correct the period_time value for pulseaudio.

Ricardo Filipe (7):
      advapi32: Removed dead assignments (llvm/clang).
      quartz: Removed dead code and variables (llvm/clang).
      comctl32: Removed dead assignments (llvm/clang).
      comdlg32: Removed dead assignments (llvm/clang).
      crypt32: Remove dead code (llvm/clang).
      iccvid: Remove dead stores (llvm/clang).
      setupapi: Add stubs for SetupPromptForDiskA/W.

Rob Shearman (3):
      widl: Output the correct buffer size required for parameters whose sizes are known at type-generation time.
      widl: Fix optimisation for writing out ref pointers to simple structs and base types.
      winspool.drv: Use CP_UNIXCP instead of CP_ACP for data that is going to or coming from system library functions.

Roderick Colenbrander (2):
      wined3d: Add registry key for overriding pci device id.
      wined3d: Add registry key for overriding the pci vendor id.

Stefan Dösinger (8):
      wined3d: Make the shader backend call CompileShader.
      wined3d: Pass some stateblock values around directly.
      wined3d: Store shader IDs in the vs and ps impl structures.
      wined3d: Add the ability to duplicate GL pixel shaders.
      wined3d: Enable blue = 1.0 fixup for D3DFMT_V8U8.
      wined3d: Put the ps compile parameters into the glsl program hashmap.
      d3d9: Document a Microsoft header bug.
      wined3d: Fix D3DFMT_R32F, R16F, G16R16F, ... in the pixel shader.

Vincent Pelletier (1):
      wined3d: Add detection for NVIDIA's GTX 280.

Vincent Povirk (18):
      gdiplus: Implement CachedBitmap based on Image.
      setupapi: Implement FLG_PROFITEM_GROUP.
      gdiplus: Add parameter checking to GdipGetRegionHRgn.
      gdiplus: Implement GdipGetRegionHRgn for infinite regions.
      gdiplus: Implement GdipGetRegionHRgn for empty regions.
      gdiplus: Implement GdipRegionGetHRgn for paths.
      gdiplus: Implement GdipGetRegionHRgn for rects.
      gdiplus: Implement GdipGetRegionHRgn for combined regions.
      gdiplus: Add stub for GdipSetPenCompoundArray.
      shell32: Add test for localized filenames in desktop.ini.
      winex11.drv: Fix string format warning.
      advpack/tests: Fix string format warning.
      dinput/tests: Fix string format warning.
      msxml3/tests: Fix string format warnings.
      setupapi/tests: Fix string format warnings.
      winedbg: Fix string format warnings.
      widl: Fix string format warning.
      server: Fix string format warning.

Vitaliy Margolen (2):
      dinput: Use correct GetObjectInfo for joystick.
      ntdll: Stub NtMakeTemporaryObject.

Vitaly Lipatov (2):
      kernel32: gethostname returns string in CP_UNIXCP encoding.
      winex11: Add check for XmbTextPropertyToTextList result.

Vitaly Perov (2):
      mlang: Add implementation of fnIMLangFontLink_GetCharCodePages.
      mlang/tests: Add tests for fnIMLangFontLink_GetCharCodePages.

Vladimir Pankratov (1):
      shdocvw: Implement go_home function.

--
Alexandre Julliard
julliard@winehq.org
