This is release 0.9.44 of Wine, a free implementation of Windows on Unix.

What's new in this release:
  - Better heuristics for making windows managed.
  - Automatic detection of timezone parameters.
  - Improvements to the builtin WordPad.
  - Better signatures support in crypt32.
  - Still more gdiplus functions.
  - Lots of bug fixes.

Because of lags created by using mirrors, this message may reach you
before the release is available at the public sites. The sources will
be available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.44.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.44.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 or CVS
repositories. Check respectively http://www.winehq.org/site/git or
http://www.winehq.org/site/cvs for details.

If you fix something, please submit a patch; instructions on how to do
this can be found at http://www.winehq.org/site/sending_patches

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

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

Changes since 0.9.43:

Alex Villacís Lasso (4):
      quartz: Add test for IReferenceClock.
      quartz: Fix IReferenceClock::GetTime() implementation for system clock.
      user32: Fix crash while dir-navigating in Win3.1-style file open dialog.
      user32: Fix change-drive in Win3.1-style file open dialog.

Alexander Nicolaysen Sørnes (17):
      comdlg32: printdlg: Set/Load paper orientation in PageSetupDlgW.
      comdlg32: PrintDlg: Set PD_SELECTION on return.
      wordpad: Add search functionality.
      wordpad: Display error box when richedit loading fails.
      wordpad: Fix formatbar for native comctl32/XP.
      wordpad: Fix error handling when saving empty files.
      wordpad: Add bullet points option.
      wordpad: Add bullet points button.
      wordpad: Fix save changes prompt for the open file dialogue.
      comdlg32: printdlg: Fix number display in PrintDlgW().
      wordpad: Add recent file list.
      wordpad: Handle different formats on open/save.
      wordpad: Prompt for format when selecting new file.
      wordpad: Clear formatting before opening a file.
      wordpad: Store window rect in the registry.
      wordpad: Don't show full path in caption.
      wordpad: Don't display full path in save changes dialog.

Alexandre Julliard (29):
      ntdll: Fixed the prototype of the open_nt_file wrapper.
      comctl32: Create a manifest file at dll registration time.
      make_makefiles: wined3d doesn't depend on OpenGL libs anymore.
      msvcrt: Use a valid parameter array when demangling a template name.
      winex11: Store wm hints in the window data instead of fetching them when needed.
      winex11: Don't try to activate the desktop window on take focus.
      mscms/tests: Allocate the profile buffer dynamically to make sure it's large enough.
      comctl32: Create the manifest directory if needed (spotted by Dan Kegel).
      winex11: Move setting of the initial wm hints to a separate function.
      winex11: Don't set the cursor on the desktop window since it's managed by another process.
      winex11: Don't select for StructureNotify events on unmanaged windows.
      ntdll: Return an error instead of dying in wine_server_call if the input buffer is invalid.
      user32/tests: Use flush_events more consistently in the message tests.
      user32/tests: Allow WM_MOUSEACTIVATE in the mouse hover test for compatibility with X11 focus policy.
      winex11: Switch windows to managed mode in SetWindowPos instead of at creation time.
      winex11: Force a window to managed mode when it is activated.
      dsound: Fix a compiler warning.
      gdi32: Add separate functions for releasing/freeing DCs to replace the standard GDI ones.
      winex11: Update the wm hints also when mapping a previously zero-size window.
      cabinet: Use the proper fcntl defines in the FDI_OPEN calls.
      cabinet: Use the correct create disposition in fdi_open.
      user32: Thread-local hooks need a module if they don't belong to the current process.
      ntdll: Flesh out the stub for IOCTL_STORAGE_GET_DEVICE_NUMBER.
      gdi32: Fix a few more places that use the wrong get/release function for DCs.
      winex11: Properly update the hdc in the GL context.
      winex11: Get rid of get_context_from_GLXContext.
      server: Validate the parents every time we paint a window instead of only on RDW_UPDATENOW.
      user32: IsChild must not consider the desktop window.
      msvcrt: Don't include mbstring.h to avoid conflicts with system headers.

Andrew Talbot (9):
      riched20: Constify some variables.
      riched20: Constify some variables.
      riched20: Constify some variables.
      riched20: Constify some variables.
      riched20: Constify some variables.
      rpcrt4: Constify some variables.
      rpcrt4: Constify some variables.
      rsaenh: Constify some variables.
      rsaenh: Constify some variables.

Aric Stewart (1):
      shell32: In SHNameTranslate use the right part of the string for sizing.

Bryan DeGrendel (1):
      mscoree: Return S_OK if mono runtime is found.

Chris Robinson (2):
      winex11: Set proper pixel format flags.
      wgl: GDI support is not advertised with double buffering.

Damjan Jovanovic (2):
      winex11.drv: Correctly handle overlapping source and destination regions on the same DIB when copying DIBs client-side.
      setupapi: Use NtDeleteKey instead of an invalid RegDeleteKeyW.

Detlef Riekenberg (8):
      user32: Call a 16-Bit winproc again.
      winspool/tests: Fix 2 failing tests for restricted users.
      winspool: Implement AddPrinterDriverExW.
      winspool: Implement AddPrinterDriverExA.
      winspool: Add always the Win9x and the NT printerdriver.
      wineprefixcreate: Create spool/drivers directory for printer drivers.
      winspool: Strings can be NULL in AddPrinterDriverExA.
      winspool: Forward AddPrinterDriver to AddPrinterDriverEx.

Dmitry Timoshkov (7):
      ntdll: Detect current time zone settings.
      kernel32: Fix test case failures for time zones with absolute transition dates.
      msvcrt: Route mktime and localtime to glibc.
      msvcrt: Restore error handling code in localtime.
      kernel32: Restore check for StandardDate.wMonth being 0.
      include/wine/test.h: Use appropriate type.
      ntdll: Reimplement TIME_GetBias using new time zone code.

Evan Stade (36):
      gdiplus: Fix test to pass in Windows.
      gdiplus: Added GdipSetCompositingMode/GdipGetCompositingMode.
      gdiplus: Better handle UnitPixel pen width.
      gdiplus: Added GdipRotateWorldTransform.
      gdiplus: Added GdipScaleWorldTransform.
      gdiplus: Added GdipDrawRectangles.
      gdiplus: Added font constructor.
      gdiplus: Added GdipCreateFontFromLogfontA.
      gdiplus: Added GdipDrawString.
      gdiplus: Added GdipGetLogFontW.
      gdiplus: Added font tests.
      gdiplus: Fixed conformance of font constructor.
      gdiplus: Added GdipDeleteFont.
      gdiplus: Added more font tests.
      gdiplus: Save elements of font's style.
      gdiplus: Added string format constructor.
      gdiplus: Added GdipAddPathBezierI.
      gdiplus: Added GdipSetTextRenderingHint/GdipGetTextRenderingHint.
      gdiplus: Added GdipAddPathLineI.
      gdiplus: Added GdipGetStringFormatAlign/GdipSetStringFormatAlign.
      gdiplus: Added GdipGetStringFormatTrimming/GdipSetStringFormatTrimming.
      gdiplus: Added GdipSetStringFormatHotkeyPrefix/GdipGetStringFormatHotkeyPrefix.
      gdiplus: Added GdipSetLineBlend stub.
      gdiplus: Allow null-terminated strings in GdipDrawString.
      gdiplus: Added GdipSetStringFormatLineAlign/GdipGetStringFormatLineAlign.
      gdiplus: Added GdipDeleteStringFormat.
      gdiplus: Added GdipMeasureString.
      gdiplus: Fixed 2 GdipDrawString bugs.
      gdiplus: Handle StringFormatFlagsNoWrap in GdipDrawString.
      gdiplus: Handle StringFormatFlagsNoWrap in GdipMeasureString.
      gdiplus: Handle empty layout rectangle in GdipMeasureString.
      gdiplus: Handle empty layout rectangle in GdipDrawString.
      gdiplus: Use DrawText instead of TabbedTextOut.
      gdiplus/tests: Added GdipAddPathLineI test.
      gdiplus/tests: Added GpStringFormat tests.
      gdiplus: Fix default value of StringTrimmingCharacter.

Francois Gouget (7):
      mshtml: Update win32.api to fix the winapi_check warnings.
      kernel32/tests: Remove a redundant RegSetValueExA() call.
      nddeapi: Update win32.api to fix the winapi_check warnings.
      ntdll: Better match the PSDK types and fix the winapi_check warnings.
      ntoskrnel.exe: Better match the PSDK types and fix the winapi_check warnings.
      ntprint: Update win32.api to fix the winapi_check warnings.
      printui: Update win32.api to fix the winapi_check warnings.

H. Verbeet (3):
      wined3d: UBYTE4 data shouldn't be normalized.
      wined3d: Restore a line that got lost.
      wined3d: Attach the correct surface the the fbo.

Hernan Rajchert (1):
      wined3d: Fixed error message when glDrawElement fails.

Huw Davies (2):
      riched20: Add some test for EM_GETTEXTLENGTHEX and fix the single line edit cases.
      gdi32: Quote the printer name prior to passing it to the shell.

Jacek Caban (20):
      urlmon: Wrap IBindCtx in CreateAsyncBindCtxEx.
      mshtml: Don't mess with gecko specific protocols.
      mshtml: Added IDM_SELECTALL implementation.
      mshtml: Use GetIsCollapsed in IHTMLSelectionObject::get_type.
      mshtml: Make get_typeinfo thread safe.
      mshtml: Added IHTMLTxtRange::duplicate implementation.
      mshtml: Added IHTMLTxtRange::collapse implementation.
      mshtml: Added ICustomDoc stub implementation.
      mshtml: Reduce debug traces.
      mshtml: Check use_wine_url in nsIURI::GetAsciiSpec.
      mshtml: Return wine: URI for protocols handled by MSHTML.
      mshtml: Make window.external visible for JavaScript code.
      mshtml: Call setup_nswindow on load event.
      mshtml: Store HTMLDocument reference in HTMLSelectionObject.
      mshtml: Store HTMLDocument reference in HTMLTxtRange object.
      mshtml: Added IHTMLTxtRange::put_text implementation.
      mshtml: Don't create element object for document node.
      mshtml: Added get_scrollWidth and get_scrollHeight implementation.
      mshtml: Added IHTMLTxtRange::select implementation.
      mshtml: Added IHTMLTxtRange::compareEndPoints implementation.

James Hawkins (7):
      msi: Add tests for the RemoveFiles standard action.
      cabinet: Formalize the SESSION struct and add more tests of its members.
      cabinet: Formalize the SESSION struct.
      advpack: Formalize the SESSION struct.
      cabinet: Pass the session Error to FDICopy.
      cabinet: Append new file nodes to the front of the file list.
      cabinet: Return the value of GetLastError if FDICopy fails.

Jason Edmeades (9):
      user32: Allow alt+space to highlight system menu.
      user32: Fix regression in alt, then right processing with eg wines notepad.
      cmd.exe: Redirection for external programs was broken by the conversion to unicode.
      advpack: Strip single quotes (with tests) on reg keys.
      regedit: Fix importing of .reg hex.
      setupapi: Remove duplicate backslashes on dirids.
      comctl32: Fix missing tooltips.
      comctl32: Fix tooltips uninitialized variables plus wrong positioning.
      comctl32: Listview fails to add a column if mask=0.

Juan Lang (80):
      crypt32: Ex encode/decode functions should call non-Ex versions if no Ex version is available.
      crypt32: Use helper functions to simplify CryptDecodeObject and CryptDecodeObjectEx.
      crypt32: Validate parameters better in CryptDecodeObject.
      crypt32: Use helper functions to simplify CryptEncodeObject and CryptEncodeObjectEx.
      crypt32: Improve tracing when builtin function isn't available.
      wintrust: Implement CryptSIPGetSignedDataMsg.
      wintrust: Add stubs for SPC_LINK and SPC_PE_IMAGE encoding/decoding.
      wintrust: Add missing definitions.
      wintrust: Add tests for encoding/decoding SPC links.
      wintrust: Implement decoding SPC links.
      wintrust: Implement encoding SPC links.
      wintrust: Add tests for encoding and decoding SPC PE image data.
      crypt32: Test authority key identifier with a multi-byte id to show that its byte-order is swapped and fix encoding and decoding it.
      crypt32: Add missing break.
      crypt32: Avoid a memory allocation when decoding the subject key identifier extension.
      crypt32: Test finding the issuer of a certificate.
      wintrust: Implement SPC PE image decoding.
      wintrust: Implement SPC PE image encoding.
      wintrust: Implement SPC indirect data encoding.
      wintrust: Implement SPC indirect data decoding.
      wintrust: Implement WTHelperGetProvSignerFromChain.
      wintrust: Implement WTHelperGetProvCertFromChain.
      wintrust: Implement WTHelperProvDataFromStateData.
      wintrust: Forward WinVerifyTrustEx to WinVerifyTrust.
      crypt32: Fix typo.
      crypt32: Fix typo.
      crypt32: Move CertGetCertificateChain to chain.c.
      crypt32: Add stub for CertFreeCertificateChain.
      crypt32: Set output chain to NULL.
      crypt32: Add initial tests for certificate chains.
      crypt32: Add a chain test with real certificates.
      crypt32: Initial implementation of CertGetCertificateChain and CertFreeCertificateChain.
      crypt32: Set return value on exception.
      crypt32: Free default chain engine.
      wintrust: Remove redundant check of pbSignedDataMsg (Coverity).
      crypt32: Rename a confusing type.
      crypt32: Remove some unnecessary casts.
      crypt32: Use public type and APIs for memory stores wherever possible.
      crypt32: Use public APIs to empty a store.
      crypt32: Use externed vars for context variables.
      crypt32: Where possible, pass a pointer rather than an offset, it's less confusing.
      crypt32: Move cert store definitions to header.
      crypt32: Move collection stores to a separate file.
      crypt32: Move provider stores to a separate file.
      crypt32: Move registry stores to a separate file.
      crypt32: Move file store to a separate file.
      crypt32: Pass crypto provider and appropriate flags when opening PKCS messages, and don't store a redundant copy of the crypto provider in message stores.
      crypt32: Don't store redundant copy of crypto provider in reg store.
      crypt32: Don't store redundant copy of crypto provider in file store.
      crypt32: Don't store the crypto provider when it isn't needed.
      crypt32: Test an encoded signed message with a cert with a public key.
      crypt32: Add tests for CryptMsgControl.
      crypt32: Add a default message control function pointer.
      crypt32: Add a mostly stub control function for decode messages.
      crypt32: Add a couple tests that show you can't get the hash from an encoded hash message, and fix encoded hash messages to match.
      crypt32: Implement verifying the hash of a decoded hash message.
      crypt32: Make a signed message data type.
      crypt32: Use signed message data type for decoded signed messages.
      crypt32: Make a helper function to a free a signed message's handles.
      crypt32: Make updating a hash a member of signed message data, not signed message.
      crypt32: Make more functions members of signed message data, rather than message.
      crypt32: Add helper function to update signed message data.
      crypt32: Add a helper function to construct a signer handles structure.
      crypt32: Separate construction of signer handles from signer info.
      crypt32: Don't keep an unneeded copy of the crypto provider for each signer.
      crypt32: Use a helper function to allocate signer handles.
      crypt32: Make constructing handles a member of signed msg data.
      crypt32: Move signed message data functions together.
      crypt32: Update a hash message's hash handles when decoding it.
      crypt32: Test and implement getting the computed hash from a decoded signed message.
      crypt32: Implement verifying a decoded signed message's signature.
      crypt32: Trace encoding and decoding public keys on crypt channel.
      crypt32: Implement CryptGetMessageCertificates.
      crypt32: Test and implement CryptGetMessageSignerCount.
      crypt32: Only free allocated handles.
      crypt32: Explicitly terminate loop when a matching signer cert is found.
      crypt32: Test encoding a signed message with a valid public key.
      advapi32: Add more tests for CryptVerifySignatureW, and correct its parameter checking.
      crypt32: Test and correct verifying the signature of a valid signed message.
      crypt32: Implement CryptVerifyMessageSignature.

Kirill K. Smirnov (3):
      programs/cmd: Do not use hardcoded constants when corresponding macro is already defined.
      wineconsole: Move window handle to inner_data structure.
      wineconsole: Implement GetConsoleWindow.

Lei Zhang (6):
      riched20: Properly calculate control display height.
      riched20: Add missing scroll bar update.
      wine.inf: Add twain_32.dll to the list of fake dlls.
      gphoto2.ds: Add preview button and ability to disable import GUI.
      gphoto2: Import photos in the right order.
      gphoto2: Add missing brackets.

Louis Lenders (1):
      kernel32: Set USERNAME environment variable.

Maarten Lankhorst (11):
      dsound: Handle failing of obtaining IDsDriverNotify.
      winealsa: Add initial dscapturedriver stub.
      winealsa: Implement IDsCaptureDriverImpl_Open.
      winealsa: Add IDsCaptureDriverBuffer stub.
      winealsa: Add support for opening/closing dsound capture buffer.
      winealsa: Add support for playing dsound capture buffer.
      dxguid: Remove dsdriver.h from imports.
      winealsa: Report card name in volume control fixme.
      dsound: Handle failing of IDsDriver_CreateSoundBuffer better.
      dsound: Move assignment of DSBCAPS_LOC to primary buffer creation time.
      dsound: Transparantly fall back to software mode if hardware mode is unavailable.

Marcus Meissner (5):
      user32: Initialize MONITORINFO.cbSize.
      cmd.exe: WCMD_for is only for files.
      msi: Allocate 1 byte more buffer.
      kernel32: Initialize variable to a known bad value.
      comdlg32/tests: Handle case where no printer is configured.

Mikolaj Zalewski (16):
      msvcrt: __mb_cur_max is not updated in _setmbcp (with testcase) and should not be used in _ismbblead.
      iexplore: Add VERSIONINFO resource.
      setupapi: If needed create directories for fake dlls.
      msvcrt: Fill _mbctype table in _setmbcp.
      msvcrt: Implement _ismbblead/_ismbbtrail using _mbctype (with tests).
      msvcrt: Test and fix _mbsnextc.
      msvcrt: Test and fix _mbclen/_mbslen.
      msvcrt: Test that some functions depends on locale codepage, not the one set by _setmbcp.
      msvcrt: Test and fix _mbccpy, _mbsncpy and _mbsnbcpy.
      msvcrt: Don't test codepage 20932.
      msvcrt: Test and fix _mbsinc/_mbsninc.
      include: Add some definitions to winioctl.h.
      advapi32: Return an error if we try to start an already running service.
      advapi32: Obtain the process id locally.
      msvcrt: Test and fix _ismbslead and _ismbstrail.
      msvcrt: Implement and test _mbsbtype.

Mikołaj Zalewski (6):
      kernel: Allocate global memory with execute permission.
      winedos: Make UMB executable.
      kernel32: Return error code if WOWCallback16Ex of a real-mode function failed.
      wininet: Support HTTP_QUERY_RAW_HEADER_CRLF|HTTP_QUERY_FLAG_REQUEST_HEADERS.
      wininet: Make HttpQueryInfo[AW] work for lpBuffer == NULL and len > 0.
      wininet: A small test for HttpQueryInfoA.

Misha Koshelev (13):
      wininet: Don't peek data in InternetQueryDataAvailable if there is no more to be expected.
      wininet: InternetQueryDataAvailable does not return ERROR_NO_MORE_FILES when no more HTTP data is available.
      wininet/tests: Test that for an open HTTP connection InternetQueryDataAvailable succeeds or returns ERROR_IO_PENDING.
      winebrowser: Add support for XTYP_REQUEST in DDE callback.
      urlmon: Fix timing issue with FLAG_REQUEST_COMPLETE and InternetQueryDataAvailable in HttpProtocol_Continue.
      urlmon: Call IInternetProtocolSink_AddRef in HttpProtocol where native does (but just once).
      urlmon: Call IInternetProtocolSink_Release and ReleaseStgMedium in HttpProtocol where native does.
      shlwapi: Take sizeof(WCHAR) into account when allocating Unicode string.
      wininet: Don't send INTERNET_STATUS_HANDLE_CLOSING when closing handle opened with InternetOpen for HTTP connection.
      wininet: Fix reference count on internet handle for asynchronous InternetReadFileEx call.
      wininet: Rename WININET_object_destructor to a more general WININET_object_function.
      wininet: Separate connection closing from object destruction.
      wininet: Send INTERNET_STATUS_HANDLE_CLOSING when object is being destroyed as native does.

Nigel Liang (1):
      winecfg: Suport color schemes from .theme format themes.

Paul Vriens (41):
      advapi32/tests: Make tests run again on win95.
      d3d8/tests: Make tests run again on win95.
      crypt32/tests: Make tests run again on win95.
      ntdll/tests: Make tests run again on win95.
      shell32/tests: Make tests run again on win95.
      advapi32/tests: Use GetModuleHandleA and skip.
      cabinet/tests: Use GetModuleHandleA instead of LoadLibraryA.
      crypt32/tests: Use GetModuleHandle and skip.
      msvcrt/tests: Remove wrong FreeLibrary and fix typo's.
      secur32/tests: Run tests on win95 again.
      user32/tests: Run tests on win95 again.
      shell32/tests: Use GetModuleHandle instead of LoadLibrary.
      shell32/tests: Use GetModuleHandle instead of LoadLibrary.
      wininet/tests: Fix test failures for wininet.dll that comes with IE7.
      advapi32/tests: Skip a test when not properly logged in on win9x.
      avifil32/regsvr: Replace recursive delete functions by RegDeleteTree.
      oleaut32/tests: Use GetModuleHandle and check only once for availability of some functions.
      oleaut32/tests: Use GetModuleHandle and add a few skip's.
      oleaut32/tests: Add a few skip's to the vartype tests.
      oleaut32/tests: Fix a few typos.
      oleaut32/tests: Skip VarCat tests if there is no I8 and/or UI8 support.
      oleaut32/tests: Skip VarAnd tests if there is no I8 and/or UI8 support.
      oleaut32/tests: Skip VarDiv tests if there is no I8 and/or UI8 support.
      opengl32/tests: Be a bit more verbose when doing wglGetProcAddress.
      mshtml/htmltextcont: Initialize value (Coverity).
      oleaut32/tests: Skip VarIdiv tests if there is no I8 and/or UI8 support.
      oleaut32/tests: Skip VarImp tests if there is no I8 and/or UI8 support.
      oleaut32/tests: Skip VarCat and VarAnd tests a bit better if there is no I8 and/or UI8 support.
      msvcrt/tests: Wait for spawned processes to finish.
      ntdll/tests: Do GetModuleHandle only once and add a few skip's.
      ntdll/tests: Use skip instead of trace.
      msi/tests: Be verbose when GetProcAddress fails.
      kernel32/tests: Skip some not implemented functions and add a few skip's.
      dnsapi/tests: No need to dynamically load dnsapi anymore.
      wined3d/vertexdeclaration: Return when out of memory (Coverity).
      gdi32: Fix possible NULL pointer dereference (Coverity).
      gdi32: Fix possible NULL pointer dereference (Coverity).
      ntdll/tests: Fix typos.
      atl: Replace SHDeleteKeyW with RegDeleteTreeW and get rid of the import of shlwapi.
      winetest: Change the way we report missing dlls.
      winetest: Put dll version information in the report.

Peter Verthez (1):
      user32: LB_SETITEMDATA should return 1 on success, not 0.

Rob Shearman (6):
      include: Define some shell service IDs.
      include: Add a define for SID_SHlinkFrame.
      include: Add a define for SID_SOleUndoManager.
      include: Add some defines for mshtml service IDs.
      winex11.drv: Don't activate the systray window when repositioning it.
      shlwapi: Fix UrlCombineW for absolute URLs without slashes.

Roderick Colenbrander (21):
      wined3d: Fix WINED3DFMT D16/L16 bugs in the pixelformat table.
      wined3d: Use the proper depth stencil format.
      wined3d: Add more pixelformats to getColorBits.
      wined3d: Check the results of SetPixelFormat.
      wined3d: Proper CheckDeviceType / CheckDepthStencilMatch support.
      wgl: Re-enable GLX_ATI_render_texture support.
      wined3d: Pass the proper DeviceName to ChangeDisplaySettings.
      wgl: Recognize Vista's PFD_SUPPORT_COMPOSITION flag.
      wined3d: Don't use ENTER_GL/LEAVE_GL on systems without winex11.drv.
      wgl: Proper stereo / double buffering support for ChoosePixelFormat.
      wined3d: Dynamically load OpenGL.
      wined3d: Use WINE_GLAPI for setting the calling convention needed for OpenGL.
      wined3d: Load wglGetProcAddress from opengl32.dll instead of gdi32.dll when USE_WIN32_OPENGL is defined.
      wined3d: Dynamically load WGL functions.
      wgl: Fix a render_texture regression. Only enable GLX_ATI_render_texture when the ati extension is around.
      opengl32: Fix some gl type bugs.
      wgl: Fix a typo in the trace code.
      wgl: Cleanup pixelformat initialization code.
      opengl32: Don't use 64bit gl types.
      wined3d: Fix a null pointer dereference.
      wgl: Fix wglGetCurrentReadDCARB bugs.

Stefan Dösinger (38):
      wined3d: Remove outdated TODO in D3DDevice::SetTextureStageState.
      wined3d: Remove ugly code from stateblock init.
      wined3d: Remove stateblock::set.*.
      wined3d: Remove primary stateblock fixme.
      wined3d: Optimize render states in the stateblock.
      wined3d: Optimize transform state in stateblocks.
      wined3d: Do not copy the saved states structure into the primary stateblock.
      wined3d: Optimize bool and int vs constants.
      wined3d: Optimize bool and int pixel shader constants.
      wined3d: Optimize texture stage state applying.
      wined3d: Fix a field in the wined3d header.
      wined3d: Optimize sampler states in stateblocks.
      wined3d: Optimize float constants in stateblocks.
      wined3d: Add a wined3d private WINED3DSBT_RECORDED.
      wined3d: Restructure Stateblock::apply a bit.
      wined3d: Reorganize stateblock::capture a bit.
      wined3d: Fix WINED3DFMT_R3G3B2.
      wined3d: Do not advertize A8R3R3B2 support.
      wined3d: Release the stateblock before destroying the swapchain.
      wined3d: Reinstall the internal reference on the current index buffer.
      wined3d: Fix WINED3DFMT_A4L4.
      wined3d: Enable WINED3DSAMP_BORDERCOLOR.
      wined3d: Simplify IWineD3DBaseTextureImpl_ApplyStateChanges.
      wined3d: Fix R32F and R16F.
      wined3d: Catch transformed position data that appears at offset 0.
      wined3d: GL_SRC_ALPHA_SATURATE is supported as src blend param only.
      wined3d: Remove a debug hack.
      wined3d: FIX D3DBLEND_BOTHSRCALPHA and BLEND_BOTHINVSRCALPHA.
      wined3d: Fix some alpha channels in formats.
      wined3d: Reinstall the internal reference on vertex buffers.
      d3d9: Some caps fixes.
      wined3d: fogstart == fogend means full fog.
      wined3d: Implement range based fog and advertize it correctly.
      wined3d: Fall back to drawStridedSlow if fog coords are used.
      wined3d: Refuse to lock locked surfaces.
      wined3d: Refuse to ReleaseDC the wrong DC.
      wined3d: Deal with multithreading in event queries.
      wined3d: Fake occlusion queries if the wrong context is active.

Stefan Leichter (7):
      urlmon: Remove  'recursive registry key delete' function.
      shell32: Remove 'recursive registry key delete' function.
      shdocvw: Remove 'recursive registry key delete' function.
      quartz: Remove 'recursive registry key delete' function.
      oleaut32: Remove 'recursive registry key delete' function.
      ole32: Remove 'recursive registry key delete' function.
      objsel: Remove 'recursive registry key delete' function.

Tijl Coosemans (1):
      server: Use thr_kill2 syscall to signal threads on FreeBSD.

Vitaliy Margolen (9):
      wined3d: Activate context before applying fbo state.
      dinput: Fix dead zone calculation.
      dinput: Properly increment sequence number for X only movement.
      dinput: Don't try to create non existing device.
      dinput: Remove redundant declaration.
      dinput: Use correct data structure for EVIOCGABS instead of an array.
      dinput: Check acquired flag instead of fd.
      dinput: Don't try to create non existing device (/dev/js*).
      dinput: Fix compile with old input.h that missing input_absinfo.

--
Alexandre Julliard
julliard@winehq.org
