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

What's new in this release:
  - Many improvements to the crypto dlls (should make iTunes work).
  - The usual assortment of Direct3D improvements.
  - A number of fixes to sound support.
  - Many more WordPad features.
  - 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.45.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.45.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.44:

Alex Villacís Lasso (1):
      ole32: Fix forgotten IPersistStorage vtable.

Alexander Nicolaysen Sørnes (31):
      comdlg32: PageSetupDlgA/W: Avoid crash when not passed a DEVMODE structure.
      comdlg32: Fix text length in Norwegian ChooseFont.
      comdlg32: FindText: Fix text length in Norwegian template.
      notepad: Add program icon.
      comdlg32: ChooseFont: Set font effects on init.
      wordpad: Store bar states in the registry.
      wordpad: Support drag-and-drop.
      wordpad: Set default font according to format.
      wordpad: Add paragraph format dialog.
      wordpad: Add tab stops dialog.
      wordpad: Add initial printing support.
      wordpad: Add page setup dialog.
      wordpad: Store page margins in the registry.
      wordpad: Add quick print support.
      wordpad: Re-order format clearing when selecting new file.
      wordpad: Add support for printing a page range.
      wordpad: Add context menu.
      wordpad: Add about window.
      wordpad: Add view options dialog.
      wordpad: Add initial print preview support.
      wordpad: Add font list.
      wordpad: Add font size list.
      wordpad: Add font dialog.
      wordpad: Set icon according to format.
      wordpad: Add replace dialog.
      wordpad: Allow changing font effects in the choose font dialog.
      wordpad: More error handling for printing/print preview.
      wordpad: Remove RB_SIZETORECT call.
      wordpad: Resize rebar control on window resize.
      wordpad: Clean up font effects toggling code.
      wordpad: Prevent white flickering on window resize.

Alexandre Julliard (20):
      winex11: Child windows don't get activated even when requested, so don't make them managed either.
      user32: SetWindowPos should erase the parent also for child moves.
      server: Moving a window should only expose the immediate parent.
      server: Store a separate flag for windows that need to be erased in WM_PAINT.
      secur32: Set the close on exec flag on the ntlm_auth pipes.
      kernel32: Store a few more locale values in the registry.
      ntdll: Fixed file system name comparison on *BSD.
      winex11: Tool windows should not have WM decorations.
      ntdll: On Mac OS, close the CDROM device before opening the parent.
      server: Message results should be stored as longs, not ints.
      server: Set the queue mask directly in get_message to avoid an extra server call.
      winex11: Set initial wm hints on the desktop window too.
      ntdll: Pin down all dlls imported by the main exe.
      server: Detaching from a process needs to continue all the pending events.
      programs: Remove other obsolete ChangeLog files.
      gdi32: New DC locking mechanism that doesn't require holding the global GDI lock.
      libwine: Initialize debug channels options on first use.
      kernel32: GetTempPath should try the USERPROFILE and the Windows directory too.
      gdi32: Don't store a DC pointer in the metafile devices.
      wininet/tests: Anonymous FTP can succeed without a password.

Americo Jose Melo (1):
      Update the Portuguese translation.

Andrew Talbot (11):
      secur32: Constify some variables.
      setupapi: Constify some variables.
      setupapi: Constify some variables.
      shdocvw: Constify some variables.
      shell32: Constify some variables.
      shell32: Constify a variable.
      shell32: Constify some variables.
      avifil32: Fix some memory leaks.
      shell32: Constify some variables.
      comctl32: Fix a memory leak.
      comdlg32: Fix some memory leaks.

Aric Stewart (11):
      imm32: If composition string is reduced to 0 characters hide composition window.
      imm32: Update position of default IME window.
      ole32: Properly update the SmallBlockDepotCount when adding more blocks.
      imm: Report GCS_DELTASTART to help behavior with advanced IME aware applications.
      gdi32: Allocate our glyph metrics in a 128 index chunk sparse array.
      comctl32: TCM_SETCURSEL also updates the focus item.
      imm32: Further tweeks to CFS_POINT and CFS_RECT placement of the default ime window.
      comctl32: Flesh out version info.
      comctl32: Ensure item metric are calculated when an item becomes visible.
      comctl32: treeview: Ensure our textWidth is correct when returning the size of the text box.
      propsheet: Do not change idea of size when new pages are added.

Chris Robinson (9):
      wined3d: Only use one fake context when building adapter info.
      wined3d: Don't assume the fake DC is the current DC.
      wined3d: Add X4R4G4B4 and A4R4G4B4 to formats allowed in getColorBits.
      winex11: Don't choose pixel formats with incorrect doublebuffer/stereo settings.
      winex11: Simplify ConvertPixelFormatWGLtoGLX.
      winex11: Don't assume just one on-screen pixel format.
      winex11: Free visual info stored with the context.
      winex11: Remove useless checks from wglCreateContext.
      winex11: Remove improper comment and dead code from SetPixelFormat.

Damjan Jovanovic (1):
      kernel32: Use sysconf instead of the obsolete CLK_TCK.

Dan Hipschman (10):
      widl: Handle LPSTR in typelibs.
      widl: Handle the size_is attribute on pointers.
      widl: Fix top-level and callback conformances.
      widl: Implement NDR for struct field alignment.
      widl: Allow size_is on strings.
      widl: Output UUID files compatible with older Visual C++ and MinGW.
      widl: Use the correct functions for interface pointers in stubs.
      widl: Add calls to NdrFooFree for more types in server stubs.
      widl: Fix an unused parameter warning on write_conf_or_var_desc.
      widl: Add padding to the end of complex structures.

Dan Kegel (1):
      shdocvw: iexplore needs to handle the -nohome option.

David Hedberg (3):
      wine.inf: Add oledlg.dll to the list of fake dlls.
      ddraw: Fix and test case for situation where DDSD_MIPMAPCOUNT is set and dwMipMapCount is 0.
      ddraw: Enumerate additional devices in IDirect3D7_EnumDevices.

Detlef Riekenberg (4):
      ntdll: Make RtlCompactHeap more silent.
      winspool: Powerpoint XP expect a valid pointer on Win9x.
      localspl: Implement OpenPort and ClosePort.
      localspl/tests: Tests for OpenPort and ClosePort.

Dmitry Timoshkov (16):
      ntdll: Do not leave not initialized cached timezone information if a timezone doesn't have daylight saving rules.
      widl: Constify some data.
      wrc: Constify some data.
      wmc: Constify some data.
      kernel32: Fix a compiler warning.
      notepad: We pass OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST to GetOpenFileName, so there is no point in testing file existence.
      notepad: Get rid of ChangeLog file.
      user32: Add more tests for GetUpdateRect.
      winebuild: Add IMAGE_FILE_32BIT_MACHINE flag for a 32-bit build.
      shlwapi: Duplicate shell32.ShellMessageBoxW implementation in shlwapi.ShellMessageBoxWrapW.
      kernel32: Fix some compiler warnings.
      server: Print a more informative message when file_set_error or sock_get_error can't map errno to a status code.
      server: Map ETXTBSY to STATUS_SHARING_VIOLATION.
      shell32: Remove class cache introduced in commit f686cfab2feb9010efe82a932dc9f5904566c8ab.
      gdi32: Use lower case font dir name to match unix directory layout.
      kernel32: Skip the comm test if the found com port doesn't respond.

Francois Gouget (51):
      gdiplus: Add some missing or related prototypes and types.
      taskmgr & winefile: Refer users to the GNU Lesser General Public License, not to the GPL.
      Assorted non-ANSI function declaration fixes (missing void).
      setupapi: Add prototypes for the Setup*Log*() functions. Better stick to the PSDK types.
      kernel32/tests: If the registry happens to be set up right, check that winedbg does not mess up the crashed process exit code (unfortunately it does).
      kernel32/tests: Don't call ok() in child processes.
      Assorted spelling fixes.
      gdiplus: Update win32.api to fix the winapi_check warnings.
      gdiplus: Add some extra prototypes.
      msvcrt: Add a prototype for _atoldbl() & co and declare _LDOUBLE & co in stdlib.h.
      winmm: Make mmddk.h C++ compatible.
      winmm: Fix the mmTask*() prototypes.
      wintrust: Add a prototype for WTHelperGetProvCertFromChain().
      winapi_check: Assorted win32.api updates.
      winhttp: Update win32.api to fix the winapi_check warnings.
      winhttp: Add a skeleton winhttp.h and use it.
      winscard: Use quotes to include winscard.h. Fixes a winapi_check warning.
      mmsystem: Better stick the the PSDK types.
      winscard: Update win32.api to fix the winapi_check warnings.
      shlwapi: Move SHAddDataBlock() to the front and remove the forward declaration.
      shlwapi: Update win32.api to fix the winapi_check warnings.
      wininet: Fix many wininet prototypes: the context is a DWORD_PTR now.
      wininet: Remove the occasional parameter name in the prototypes.
      winedbg: Detach from the debuggee before exiting.
      bcrypt: Add a skeleton bcrypt.h header and use it.
      winedbg: 'winedbg --auto' and 'winedbg --minidump' should detach when done so as to not mess up the crashed process exit code.
      server: Fix the crashed process exit code when the debugger exits without detaching. Add a conformance test.
      kernel32/tests: Add tests for DebugActiveProcessStop() and DebugSetProcessKillOnExit().
      spoolss: Update win32.api to fix the winapi_check warnings.
      rpcrt4: Update win32.api to fix the winapi_check warnings.
      schannel: Update win32.api to fix the winapi_check warnings.
      vdmdbg: Update win32.api to fix the winapi_check warnings.
      shobjidl.h: Add missing #include directives, and some commented-out ones as reminders.
      quartz: Make errors.h more complete and better match the PSDK types.
      secur32: Update win32.api to fix the winapi_check warnings.
      version: Fix some Ver*() prototypes (especially wrt constness).
      winapi_check: Assorted win16.api and win32.api updates.
      winex11.drv: Update win32.api to fix the winapi_check warnings.
      crypt32: Better match the PSDK types and fix the winapi_check warnings.
      secur32: Add some missing prototypes to ntsecapi.h.
      url: Fix the InetIsOffline() prototype.
      query: Make ntquery.h C++ compatible.
      query: Update win32.api to fix the winapi_check warnings.
      quartz: Better match the PSDK types and fix the winapi_check warnings.
      winapi_check: 'char*' is a string, not a pointer.
      wldap32: Fix a typo in the French resources.
      url: Update win32.api to fix the winapi_check warnings.
      wintrust: Fix compilation on systems that don't support nameless unions.
      crypt32: Fix the I_Crypt*Asn1*() prototypes. Add the i_cryptasn1tls.h header and use it.
      faultrep: Update win32.api to fix the winapi_check warnings.
      crypt32: We don't consider sys/types.h to be a conditional include.

Huw Davies (2):
      wineps.drv: Only fail printer dc creation if the printer has no builtin fonts and there are no TrueType fonts to download.
      wineps.drv: Ignore an empty output string.

Hwang YunSong(황윤성) (3):
      wordpad: Updated Korean resource.
      gphoto2.ds: Updated Korean resource.
      mshtml: Updated Korean resource.

Jacek Caban (22):
      shdocvw: Added UpdateUI implementation.
      mshtml: Call Exec in show_context_menu only if user selected menu item.
      mshtml: Added IOleUndoManager stub implementation.
      mshtml: Added IHTMLTxtRange::parentElement implementation.
      mshtml: Added IHTMLTxtRange::inRange implementation.
      mshtml: Added IHTMLTxtRange::isEqual implementation.
      winex11: Fixed GetClipboardFormatName spec entry.
      urlmon: Added FIXME about unsupported pmkToLeft to BindToStorage.
      shdocvw: Don't use BSTR in navigate_url prototype.
      shdocvw: Added better GoHome stub implementation.
      shdocvw: Better iexplore.exe command line handling.
      mshtml: Reimplement IHTMLTxtRange::get_text.
      mshtml: Added IHTMLTxtRange tests.
      mshtml: Added IHTMLTxtRange::expand implementation.
      mshtml: Fixed ref count in parentElement.
      mshtml: Added IHTMLTxtRange::move("character") implementation.
      mshtml: Added IHTMLTxtRange::moveEnd implementation.
      mshtml: Added IHTMLTxtRange::move("word") implementation.
      mshtml: Added IHTMLTxtRange::put_text tests.
      mshtml.idl: Added IHTMLAnchorElement.
      mshtml: Added IHTMLAnchorElement stub implementation.
      mshtml: Store HTMLDOMNode struct instead of pointer in HTMLElement object.

James Hawkins (2):
      cabinet: Don't extract a file if DoExtract is FALSE.
      cabinet: Add initial tests for FDI.

Jason Edmeades (8):
      comctl32: toolbar: Implemented SetRows.
      cmd.exe: Enhance FOR support.
      cmd.exe: Expand for variables at last with tilda modifications.
      cmd.exe: Allow = and , to be delimiters.
      cmd.exe: Add suport for if 1==1 echo yes.
      cmd.exe: Add basic for /F string support.
      cmd.exe: Add basic support for FOR /F parsing launched programs output.
      cmd.exe: Fix redirect ordering on a command line.

Jeff Latimer (1):
      cabinet: Remove unnecessary function.

Juan Lang (77):
      crypt32: Partially implement CMSG_CTRL_VERIFY_SIGNATURE_EX.
      wintrust: Test and correct alloc and free functions in WintrustLoadFunctionPointers.
      wintrust: Make crypt provider functions calling convention explicit.
      wintrust: Add trust step error definitions.
      wintrust: Test and implement SoftpubInitialize.
      imagehlp: Move WIN_CERTIFICATE types to wintrust.h, and rename a type, to match PSDK.
      wintrust: Test and implement SoftpubLoadMessage.
      wintrust: Implement SoftpubLoadSignature.
      wintrust: Move mem alloc functions to wintrust_main.c.
      wintrust: Use common memory functions.
      crypt32: Set trust status on root element in chain.
      wintrust: Add missing definitions.
      wintrust: Test and implement pfnAddStore2Chain.
      wintrust: Test and implement pfnAddSgnr2Chain.
      wintrust: Test and implement pfnAddCert2Chain.
      wintrust: Use pfnAddStore2Chain internally.
      wintrust: Use a helper function to get a signer's cert info from a message.
      wintrust: Save signers of a message in SoftpubLoadSignature.
      wintrust: Implement pfnCertificateTrust.
      winerror.h: Add more error definitions.
      crypt32: Greatly expand certificate chain tests.
      crypt32: The preferred issuer flag appears to be a bug in XP, so don't set it.
      crypt32: Add a default cycle detection modulus.
      crypt32: Properly reference count certificate contexts referenced by a chain.
      crypt32: Check chain root's trusted status regardless of whether its signature is valid.
      crypt32: Free lower quality chain contexts.
      crypt32: Remove unneeded WINAPI from internal function.
      crypt32: Implement CertDuplicateCertificateChain.
      crypt32: Halt chain creation when a cycle is detected.
      crypt32: Don't fail chain creation if root isn't self-signed.
      crypt32: Don't fail chain creation if signature doesn't match.
      crypt32: Correct combining trust status of a chain's elements into the chain's trust status.
      crypt32: Time validity nesting doesn't appear to be checked, so don't check it.
      crypt32: Check time of each element in chain against requested time.
      crypt32: Check whether each signing certificate can be a CA.
      crypt32: Set error status on issued certificate, not on issuer.
      crypt32: Check path length constraint on a chain.
      crypt32: Add more tests for getting issuer cert from store.
      crypt32: Test that the end cert in a chain's store isn't implicitly searched for issuers.
      crypt32: Make a helper function to create initial candidate chain.
      crypt32: Open world store when creating chain, not when building a simple chain.
      crypt32: Don't add end cert's store to world.
      crypt32: Not finding an issuer shouldn't cause chain creation to fail.
      crypt32: Store world store in chain.
      crypt32: Separate allocating a simple chain and checking it from building it.
      crypt32: Test whether chain creation should fail when a root signature is invalid.
      crypt32: Set *ppChainContext even on error.
      crypt32: Remove a misplaced todo_wine.
      crypt32: Add special case for certificates with no signature algorithm.
      crypt32: Don't abort chain creation if the root signature isn't valid.
      crypt32: Don't ask CertGetIssuerCertificateFromStore to verify revocation status, it almost certainly doesn't do what we want.
      crypt32: Defer checking signatures until chain is complete.
      crypt32: Flags weren't set, so don't bother passing them.
      crypt32: Consider alternate issuers when building chains.
      crypt32: Add a function to create a certificate chain engine potentially before the root store is created.
      crypt32: Add a root store implementation that reads trusted certificates from well-known locations on the local system.
      rsaenh: Reorder padding code to avoid unnecessary comparison.
      rsaenh: Call setup_key whenever the IV is reset.
      rsaenh: Support setting the effective key length of RC2 keys.
      crypt32: Support CRYPT_DECODE_TO_BE_SIGNED_FLAG.
      crypt32: Add policy flags definitions.
      crypt32: Add a stub for CertVerifyCertificateChainPolicy.
      crypt32: Add initial tests for CertVerifyCertificateChainPolicy.
      crypt32: Implement CertVerifyCertificateChainPolicy for the base policy.
      crypt32: Implement CertVerifyCertificateChainPolicy for the authenticode policy.
      crypt32: Implement CertVerifyCertificateChainPolicy for the basic constraints policy.
      rsaenh: Validate pad byte when decrypting a block cipher.
      crypt32: (Re)introduce helper function to get issuer certificate.
      crypt32: Only decode authority key ID in subject cert once when looking for issuer.
      crypt32: Pass subject's info status when adding an issuer to a chain.
      crypt32: Set subject's info status from method used to find issuer.
      crypt32: Make chain tests more strict.
      wintrust: Implement SoftpubCleanup.
      wintrust: Save signer cert so chain can be created.
      wintrust: Partially implement SoftpubAuthenticode.
      wintrust: Implement WinVerifyTrust.
      wintrust: Don't prefer native version.

Kai Blin (7):
      secur32: Give a hint where to find ntlm_auth.
      secur32: Implement LsaLookupAuthenticationPackage stub.
      secur32: Implement LsaEnumerateLogonSessions stub.
      secur32: Implement LsaFreeReturnBuffer stub.
      secur32: Implement LsaGetLogonSessionData stub.
      secur32: Implement LsaLogonUser stub.
      secur32: Implement LsaRegisterLogonProcess stub.

Kirill K. Smirnov (1):
      winhelp: Add WS_EX_TOOLWINDOW style to popup windows.

Lei Zhang (2):
      riched20: Do not pass NULL lParam to ME_ToUnicode for EM_REPLACESEL.
      user32: Edit control should respond to ctrl + z.

Lionel Debroux (9):
      kernel32: Fix memory leak in CopyFileW.
      winex11.drv: Fix memory leak in create_cursor (found by Smatch).
      ole32: Fix memory leak in compositemoniker.c (found by Smatch).
      winedump: Fix memory leak in msmangle.c (found by Smatch).
      dplayx: Fixed memory leak in dplay.c (found by Smatch).
      regedit: Fixed a memory leak in listview.c (found by Smatch).
      setupapi: Fix HeapFree of wrong pointer (found by Smatch).
      advapi32: Replace SERV_free by HeapFree.
      setupapi: Fix memory leak (found by Smatch).

Louis Lenders (1):
      wined3d: Add WINED3DPRESENT_INTERVAL_ONE flag.

Maarten Lankhorst (21):
      winealsa: Update sound caps.
      wineoss: Update sound caps.
      winhttp: Add stub for WinHttpCheckPlatform.
      dsound: Make sure waveOutClose is only called when using mmsystem.
      dsound: Handle secondary hardware buffers more correctly.
      dsound: Add a function to (re)open sound device to avoid code duplication.
      dsound: Update DSOUND_PrimarySetFormat to follow flags and return values more precisely.
      winealsa: Make SetFormat work better with new behavior of dsound.
      dsound: Increase dll refcount and disable thread calls.
      winealsa: Use correct capture position in getposition.
      winealsa: Remove forceformat and 2 orphan LeaveCriticalSection.
      dsound: Fix null pointer dereference for waveout in creating buffer.
      dsound: Fix detection of different sample rates in setformat.
      dsound: Runtime link to advapi32.RegDeleteTree.
      dsound: Change default bpp and sample frequency to be better for the ears.
      dsound: Fix overshot calculations.
      dsound: Support arbitrarily sized buffers for waveout.
      winealsa: Use nBLockAlign instead of snd_pcm_bytes_to_frames to get buffer size.
      winealsa: Add stubs for IDsCaptureDriverNotify.
      winealsa: Add support for capture notification positions.
      winealsa: Add a timer check to capture to see if play notifications have been triggered.

Mikolaj Zalewski (9):
      winex11.drv: Test for out-of-bound src coordinates in GdiAlphaBlend.
      user32: Static controls should have a clipping region set while sending the WM_CTLCOLORSTATIC.
      winex11.drv: Support GdiAlphaBlend with blendfn.AlphaFormat == 0.
      user32: combo: CB_SETITEMHEIGHT should make the edit area 2px higher than the item (with testcase).
      winex11.drv: wintab: Copy also the button #0 state.
      mshtml: Hide the progress bar while asking the user if Gecko should be installed.
      mshtml: Make the Install button the default on the Gecko installation dialog.
      include: Add errorrep.h header.
      faultrep: Implement AddERExcludedApplication[AW].

Paul Vriens (2):
      setupapi/tests: Use skip instead of trace.
      advapi32/tests: Don't use locale dependent string for testing.

Rob Shearman (16):
      shell32: Don't use the working directory passed into ShellExecute* functions if it isn't valid.
      shlwapi: Fix IUnknown_OnFocusOCS to call OnFocus instead of GetExtendedControl.
      ntdll: Remove the overly-cautious check which prevented NtSetSystemTime from changing the time by more than two minutes.
      kernel32: Remove an unused #define in time.c.
      ole32: Add cross-process running-object table support.
      rpcrt4: Correctly handle the failure of RPCRT4_SecurePacket in RPCRT4_Receive.
      crypt32: Fix a compile failure on *BSD systems.
      rpcrt4: Fix a trace in RPCRT4_SecurePacket.
      ole32: Implement CoFreeUnusedLibrariesEx.
      ole32: Fix the default unload delay to depend on the threading model of the component loaded.
      mshtml: Store the nsIEditor interface in the NSContainer object for use in implementing editor commands.
      mshtml: Implement PersistStreamInit_IsDirty when in edit mode.
      mshtml: Implement IDM_HYPERLINK.
      advapi32: Fix ImpersonateNamedPipeClient to pass in a pointer to an IO_STATUS_BLOCK to NtFsControl.
      ntdll: Add a stub implementation of FSCTL_PIPE_IMPERSONATE that just impersonates the token of the current process.
      server: Add get_token_statistics server call and use it to implement the TokenStatistics and TokenType levels for NtQueryInformationToken.

Roderick Colenbrander (12):
      wined3d: Add Geforce8 device ids.
      wined3d: Override backbufferformat in window mode.
      wined3d: Improve pixelformat selection code.
      wined3d: CreateAdditionalSwapChain bugfix.
      wined3d: Ask for enough RGB bits for pbuffers.
      wgl: Degrade an ERR to a WARN.
      gdi32: Print the function name in wglGetProcAddress.
      wined3d: Fix a hdc check in InitAdapters.
      wined3d: Fix ddraw-opengl surface free bug.
      wined3d: Move the memory code of LockRect to the end of the function.
      wined3d: Add PBO support for dynamically locked surfaces.
      wgl: Fix a major ATI regression.

Stefan Dösinger (43):
      wined3d: Disable specular color when blitting.
      d3d9: Return the correct return value in GetDepthStencilSurface.
      wined3d: BaseVertexIndex can be negative.
      wined3d: Add the copied light to the right stateblock.
      wined3d: Non-primary stateblocks also hold an internal reference to buffers.
      wined3d: Non-primary stateblocks hold an internal reference on indexbuffers.
      wined3d: Add some missing vertex state render states.
      wined3d: Texture transforms are disabled when drawing rhw vertices.
      wined3d: Some texture transform fixes.
      wined3d: Texture transform flag test.
      wined3d: Fix the half pixel correction.
      wined3d: Remove the D3DTTFF_PROJECTED handling from drawStridedSlow.
      wined3d: Read the old streamsource from the correct stateblock.
      wined3d: Hold an internal reference on pixel and vertex shaders.
      wined3d: Fix the spot light falloff == 0.0 case.
      wined3d: Use 0/0/0 as normal if no normal is supplied.
      wined3d: Clear unused channels on R32F and R16F textures on readback.
      wined3d: Reject opengl accelerated blits with system memory surfaces.
      wined3d: Accept rendering to sublevels with backbuffer orm.
      wined3d: Tidy up the vbo removal from the strided data.
      d3d: Add a test for double surface locking.
      wined3d: Take the format into account when finding the clear value.
      wined3d: The temp vars are tmp0 and tmp1.
      wined3d: Raise the 1x pixelshader max value to the d3d minimum.
      wined3d: Supply texture coords even if no texture is bound and pshaders are used.
      wined3d: Fix the z range.
      wined3d: Fix texdepth instruction.
      wined3d: Implement texldb.
      wined3d: texkill ignores the .w only in ps 1.x.
      wined3d: Fix WINED3DFMT_X8L8V8U8.
      wined3d: Disable W11V11U10 and A2W10V10U10.
      wined3d: Emulate D3DFMT_L6V5U5.
      wined3d: Implement texbeml.
      wined3d: Implement mipmap auto generation.
      wined3d: Convert the colors to the surface format for colorfill.
      wined3d: Disable some volume texture formats.
      wined3d: texm3x3(v)spec normalizes the normal vector.
      wined3d: Implement UpdateTexture for volumes.
      wined3d: Pixel shader 1.x constants are clamped to [-1;1].
      wined3d: Add support for showing a logo.
      wined3d: Add a test for the cnd instruction.
      wined3d: Fix texdp3tex in glsl.
      wined3d: The D3DSI_COISSUE flag changes the behavior of cnd.

Stefan Leichter (19):
      msxml3: Remove 'recursive registry key delete' function.
      msi: Remove 'recursive registry key delete' function.
      mlang: Remove 'recursive registry key delete' function.
      inseng: Remove 'recursive registry key delete' function.
      hhctrl.ocx: Remove 'recursive registry key delete' function.
      dxdiagn: Remove 'recursive registry key delete' function.
      dswave: Remove 'recursive registry key delete' function.
      dsound: Remove 'recursive registry key delete' function.
      dpnet: Remove 'recursive registry key delete' function.
      dmusic: Remove 'recursive registry key delete' function.
      dmsynth: Remove 'recursive registry key delete' function.
      dmstyle: Remove 'recursive registry key delete' function.
      dmscript: Remove 'recursive registry key delete' function.
      dplayx: Remove 'recursive registry key delete' function.
      olethk32: Added stub implementation.
      dmloader: Remove 'recursive registry key delete' function.
      dmime: Remove 'recursive registry key delete' function.
      dmcompos: Remove 'recursive registry key delete' function.
      dmband: Remove 'recursive registry key delete' function.

Steven Edwards (3):
      x11drv: Remove some no longer needed wine 16bit headers.
      user32: Remove some no longer needed wine 16bit headers.
      Remove more unneeded wine 16bit header usage.

Tijl Coosemans (2):
      loader: Introduce FreeBSD loader.
      libwine: Use GDT entry for %fs segment on FreeBSD.

Trent Waddington (1):
      server: Handle existing timer replacement when no window handle specified.

Vincent Povirk (3):
      shell32: Add SHPathPrepareForWrite and related constants.
      shell32: Add tests for SHPathPrepareForWrite.
      shell32: Implement SHPathPrepareForWrite.

Vitaliy Margolen (5):
      dinput: Count should not be 0-based.
      winex11drv: Don't ignore mouse move events even when position did not change.
      user32: Don't exit when double-clicking with right button held.
      dinput: Add helper function to dump mouse state.
      dinput: When setting hooks ignore devices without even handler.

--
Alexandre Julliard
julliard@winehq.org
