The Wine development release 1.1.19 is now available.

What's new in this release (see below for details):
  - Support for Visual C++ project files in winemaker.
  - Improvements to the Esound driver.
  - Many Direct3D code cleanups.
  - Fixes to OLE clipboard handling.
  - OpenBSD compilation fixed.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.19.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.1.19.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.19:

     61  winemaker: Add support for the Visual C++ project files
   3005  Bink video causes Alien vs Predator Gold to freeze untill killed
   3697  Evil Genius does not run
   3863  When i install the HPAD the everything is shown in HINDI not in ENGLISH
   4175  The incorrect list window in the p-cad 2001.
   5439  Menus don't collapse properly in Shareaza
   6966  CSpy/IP Address: Cannot overwrite field text
   7033  CSpy/Up-Down: Cursor in wrong position
   7536  Gravity has database troubles
   9187  BBC iPlayer installer claims IE6 is not installed
  11958  Magic Workstation (mws play) Stops Displaying Cards
  12292  Michelin Rally Masters: Application crashes when PAL_8 Texture and Mipmapping options are enabled
  12997  The Lord of the Rings: The Return of the King: no sound in movies and no background sound/voices ingame
  13738  F.E.A.R : Crashes when sound is enabled
  13988  Spore Creature Creator Trial:  Interface not rendered
  14242  Unreal Tournament crashes on startup
  14347  Toon Town Standalone Launcher error
  14373  Starcraft : select one overlord (and only it) makes the game very slow.
  14466  Immune Attack crashes on game start with an unhandled exception.
  14921  Spore Creature Creator Trial: Incorrect rendering of creatures
  14997  firmware upgrade utility for Linksys SPA3102 VoIP router
  15149  Spore: many rendering issues
  15170  Lotus Word Pro can not find screen extents in windowed mode
  15231  Pro Pinball fails to change resolutions
  15339  Black & White crashes, giving "fixme:d3d:state_zfunc"
  15351  Lexware: Message "Fehler beim Erzeugen der FairUse Komponente." during installation
  15358  In Civilization I for Win, if a city located in lower 1/3 of the screen, its name displayed in incorrect place
  15644  Morrowind: Waterplane/sprite flickering with ORM=fbo
  15778  Counter Strike Source: bullet holes and knife mark don't appear on walls
  16242  list apps installed with msi
  16597  Wrong detection of SelAttributes in RichEdit
  16660  build broken in dlls/inetcomm/internettransport.c on OpenBSD
  16661  build broken in dlls/iphlpapi/ipstats.c on OpenBSD 4.4
  16662  build broken in dlls/ntdll/cdrom.c on OpenBSD 4.4
  16663  build broken in dlls/ntdll/signal_i386.c on OpenBSD 4.4
  16833  Build fails in Cygwin at dlls/inetcomm/internettransport.c
  16891  .NET 3.0: Windows Workflow Foundation installer claims .NET 2.0 Framework needed, MsiNetAssemblySupport/msi fusion version retrieval bug
  17162  Installed IE8 RC1 crashes on rpcrt4 call
  17170  Text display error in Autocad - size mismatch
  17193  [PATCH] cope with missing wglGetExtensionsStringARB / wglGetPixelFormatAttribivARB
  17228  Gecko makes Google Talk shows an internal error
  17259  Entering IP in text box does not work
  17424  Feeding Frenzy unhandled exception when sound is enabled
  17644  urlmon/protocol tests fail massively on OpenSolaris
  17654  Edit control on toolbar behaves badly
  17695  Silkypix 3.0 toolbox menus too narrow
  17700  Microsoft Word 2007 Hangs when scrolling a file with to many pages
  17703  unimplemented function KERNEL32.dll.GetSystemTimes
  17736  Cluedo classic (or clue or just cluedo) - crashes
  17753  Cannot compile Wine 1.1.17 from source on Mac OS X
  17819  OpenInsight's OpenEngine does not function.
  17824  winemenubuilder.c: "Desktop" string not localized -> no icons
  17891  build broken in dlls/ntdll/ntdll_misc.h on OpenBSD 4.4
  17907  build broken in dlls/ws2_32/tests/sock.c on OpenBSD 4.5
  17917  New *.ini files contain spurious [] lines
  17930  Cygwin compilation breaks without --disable-16bit
  17977  Sacred hangs when selecting New Campaign

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

Changes since 1.1.18:

Alexandre Julliard (55):
      ntdll: Remove no longer used pthread_functions structure.
      loader: Don't bother checking for pthread.h existence, we require it anyway.
      loader: Add missing install dependency for extra binaries.
      inetcomm: Include ws2tcpip.h before anything else.
      ws2_32/tests: Don't use socklen_t.
      include: Try to avoid socklen_t redefinition in winsock.h.
      winedos: Release the 16-bit lock before calling ExitThread.
      winecrt0: Don't bother passing the environment to the _init function.
      ntdll: Add separate signal definitions for OpenBSD.
      ntdll: Define dvd_struct ourselves since it's not consistent across platforms.
      libwine: Export __wine_get_main_environment on Mac OS to make sure it's reevaluated when used.
      winecrt0: Disable the delay import destructor on Mac OS, it cannot be made to work.
      shell32: Add implementation of WOWShellExecute.
      shell32: Make shell.dll into a stand-alone 16-bit module.
      oleaut32: Don't use 16-bit headers.
      libwine: Don't export mmap functions for the Windows build.
      kernel32: Use __wine_main_environ by default, environ is broken on FreeBSD too.
      kernel32: Set argv[0] to the full path of the binary when starting from Unix.
      configure: Disable all 16-bit code on Cygwin.
      server: Use the thread entry point field to pass the PEB in the initial thread.
      server: Store the type of CPU that the client is running on.
      server: Verify that the client is using a supported CPU type.
      ntdll: Set the WOW64 flag according to the server supported CPUs.
      ntdll: Don't pretend that the whole address space is reserved on non-i386.
      shlwapi/tests: Don't test uninitialized parts of the variant.
      ntdll/tests: Add a missing \n.
      kernel32/tests: Use the appropriate processor architecture in generated manifests.
      msvcrt: Fix scanf to correctly parse pointers on 64-bit.
      gdi32/tests: Add some metafile tests. Fix typos.
      gdi32: Move freeing of the DC path and regions into free_dc_ptr.
      gdi32: Remove Get/SetDCState16 implementation, it should not be used by apps.
      gdi32: Move the whole DC saving functionality into get_dc_state, and rename it to save_dc_state.
      gdi32: Move the whole DC restoring functionality into set_dc_state, and rename it to restore_dc_state.
      gdi32: Completely implement SaveDC in the driver, having it call save_dc_state if necessary.
      gdi32: Allow the visible region to be zero since this is the case for metafiles.
      gdi32: Completely implement RestoreDC in the driver, having it call restore_dc_state if necessary.
      gdi32: Fix SetEnhMetaFileBits last error handling.
      fusion: Use the correct cache path on Win64.
      fusion/tests: Always use the 32-bit magic in the 32-bit optional header structure.
      fusion: Fix the 32/64 PE image format check on 64-bit platforms.
      ole32/tests: Avoid size_t in traces.
      server: Make all dump function take a prefix string to simplify the tracing code.
      server: Define a generic context structure instead of using the platform-specific version.
      ntdll: Set the proper context flags in the signal handlers for x86_64.
      winedbg: Add context dumping for x86_64.
      include: Update and document the TEB/PEB offsets on 64-bit.
      ntdll: Remove pthread_data from the ntdll_thread_data structure. Document the offsets for 64-bit.
      include: The magic HKEY_* handles should be sign-extended on 64-bit.
      winebuild: Hardcode the i386 register context offsets instead of using the data structure.
      winebuild: Hardcode the stack frame offsets instead of using the data structures.
      winebuild: Don't include any Windows header to avoid data types dependencies.
      ntdll: Update the context on send_debug_event for any successful status.
      ntdll: Add a raise_status function and avoid exporting __regs_RtlRaiseException.
      ntdll: Move the RtlRaiseException implementation into the respective platform-specific files.
      ntdll: Set the exception address to the program counter in RtlRaiseException.

Andreas.Rosenberg (1):
      advapi32/tests: Added a test to verify result of LookupAccountSid.

André Hentschel (4):
      winemaker: winresrc.h is the right name.
      winemaker: Add project-parse function.
      winemaker: Add workspace-parse function.
      winemaker: Update man page.

Aric Stewart (7):
      msctf: Add a file version.
      advapi32: Alias some sids in LookupAccountName and make comparison case insensitive.
      advapi32: Modify check_well_known_name test to be more robust on more Windows platforms.
      advapi32: Handle fully qualified account names for well known sids in LookupAccountName.
      winmm: Properly cleanup in return from proc_PlaySound if system sound is not found.
      winmm: SND_ALIAS and SND_ALIAS_ID overlap so when checking for SND_ALIAS_ID make sure it is SND_ALIAS_ID and not SND_ALIAS.
      gdi32/tests: Demonstrate issues in wine with SaveDC and RestoreDC in metafiles and enhmetafiles.

Aurimas Fischer (6):
      credui: Add Lithuanian translation.
      appwiz.cpl: Add Lithuanian translation.
      browseui: Add Lithuanian translation.
      devenum: Add Lithuanian translation.
      gphoto2.ds: Add Lithuanian translation.
      msacm32: Add Lithuanian translation.

Austin English (2):
      cryptui: Fix a compiler warning on PC-BSD.
      configure: inet_ntop and inet_pton depend on -lsocket on Solaris.

Christian Costa (5):
      winemp3: Add missing sampling frequencies.
      mciqtz32: Implement driver messages.
      mciqtz32: Add basic play capability.
      mciqtz32: Implement MCI_SEEK.
      mciqtz32: Implement MCI_STATUS.

Damjan Jovanovic (2):
      winemenubuilder: Use the user-dirs desktop directory instead of hardcoding ~/Desktop.
      winemenubuilder: Make initial directories for fd.o MIME type handling.

Detlef Riekenberg (9):
      dsound/tests: Remove duplicate version dump.
      dinput/tests: Remove duplicate version dump.
      msi/tests: Verify path names case insensitively.
      msi/tests: Fix a copy & paste typo in a test message.
      wininet/tests: Fix a test with IE8.
      wintrust/tests: Fix some tests on win9x.
      wintrust/tests: Do not test GetLastError on success.
      winmm/tests: Fix a test on win98.
      urlmon/tests: Allow BINDSTATUS_COOKIE_SENT in a test.

Dmitry Timoshkov (3):
      gdi32: Add a couple of SetGraphicsMode/SetWorldTransform tests, make them pass under Wine.
      gdi32: Cache current font code page in the DC structure.
      gdi32: Use GdiGetCodePage() instead of duplicating its functionality.

Eric Pouech (2):
      winedbg: Fix the way array derefs are done.
      winmm: Added support for SND_ALIAS_ID in winmm.PlaySound[AW].

Francois Gouget (9):
      winealsa.drv: Remove a few unneeded initialisations and unused variables.
      wineesd.drv: Fix a trace and remove an unneeded cast.
      wineesd.drv: Remove some unused WINE_WAVExxx fields.
      wineesd.drv: Move the wodDsXxx() functions around to avoid forward declarations.
      wineesd.drv: Rename esd_fd to stream_fd.
      wineesd.drv: Build a unique name so we can identify our stream.
      wineesd.drv: Let the EsounD server adjust the volume.
      wineesd.drv: Simplify wodPlayer_WriteMaxFrags() and wodPlayer_FeedDSP().
      wineesd.drv: Improve the accuracy of wodUpdatePlayedTotal().

Ge van Geldorp (7):
      urlmon/tests: Fix ftp protocol test on WinXP and higher.
      shdocvw/tests: Fix shdocvw:webbrowser test on some Windows boxes.
      mshtml/tests: Fix tests on Windows.
      secur32: Implement GetUserNameEx(NameSamCompatible).
      secur32/tests: Add simple tests for GetUserNameExA/W().
      msi/tests: Handle running the tests as a domain user.
      urlmon/tests: Handle certificate verification error.

Hans Leidekker (8):
      msi: Don't publish package name as part of product properties.
      msi: Build a proper source path in MsiConfigureProductExW.
      wininet: Keep track of the number of bytes written.
      wininet: Send notifications from InternetWriteFile.
      wininet: Don't start reading when POST data hasn't been completely written.
      wininet: Support asynchronous HttpEndRequest.
      wininet: Add tests for asynchronous HttpSendRequestEx/HttpEndRequest.
      wine.inf: Register msctf classes.

Henri Verbeet (50):
      wined3d: Store the format_desc itself in struct wined3d_stream_info_element.
      wined3d: Use the output slot when we have one.
      d3d10core: Add a DXBC parser.
      d3d10core: Create a vertex declaration from the input layout.
      bcrypt: Add a mostly empty bcrypt.dll.
      d3d10core: Implement ID3D10Device::IASetInputLayout().
      d3d10core: Implement ID3D10Device::IASetVertexBuffers().
      wined3d: Care for things like pitch and blocksize when copying DXT surfaces.
      d3d10core: Set the initial buffer data, when present.
      wined3d: Don't leak the swapchain in IWineD3DDeviceImpl_Reset() if the display mode is unsupported.
      ddraw: Filter invalid texture stage states passed by the application.
      wined3d: Don't use the opcode_token field in the GLSL backend.
      wined3d: Don't use the opcode_token field in the ARB backend.
      wined3d: Avoid a forward declaration.
      wined3d: Use a more reasonable name for "SHADER_OPCODE_ARG".
      wined3d: Remove some code that doesn't make a whole lot of sense.
      wined3d: Compare num_params against 1 in shader_glsl_map2gl().
      wined3d: Store the instruction handler index in struct wined3d_shader_instruction.
      wined3d: Avoid comparing against WINED3DSIO_* in the ARB shader backend.
      wined3d: Store the source and destination parameter count in struct wined3d_shader_instruction.
      wined3d: Use the source and destination parameter count in the ARB shader backend.
      wined3d: Remove the opcode field from struct wined3d_shader_instruction.
      wined3d: Add a struct wined3d_shader_dst_param for storing destination parameter information.
      wined3d: Store the register index in struct wined3d_shader_dst_param.
      wined3d: Use register_idx in the ARB shader backend.
      wined3d: Unset the current GLSL program when it's destroyed.
      wined3d: Use a more appropriate mask for masking out the write mask.
      wined3d: Pass a pointer to struct wined3d_shader_dst_param to shader_glsl_append_dst_ext().
      wined3d: Pass a pointer to struct wined3d_shader_dst_param to shader_glsl_add_dst_param().
      wined3d: Store the destination modifiers in struct wined3d_shader_dst_param.
      wined3d: Store the write mask in struct wined3d_shader_dst_param.
      wined3d: Explicitly pass register type and index to shader_is_scalar().
      wined3d: Store the register type in struct wined3d_shader_dst_param.
      wined3d: Simplify shader_glsl_color_correction().
      wined3d: Simplify shader_glsl_cmp() and shader_glsl_cnd().
      wined3d: Store a struct wined3d_shader_dst_param in struct wined3d_shader_semantic.
      wined3d: Fix some more 3 space indentation.
      wined3d: Properly check if input/output varyings are used.
      wined3d: Store usage and usage_idx in struct wined3d_shader_semantic.
      wined3d: Eliminate a useless local variable.
      wined3d: Only update the swizzle and use map for streams that are actually used in device_stream_info_from_strided().
      wined3d: Add a separate function for converting write masks to strings.
      wined3d: Pass a struct wined3d_shader_dst_param to shader_glsl_get_write_mask().
      wined3d: Explicitly pass parameter properties to shader_glsl_get_register_name().
      wined3d: Get rid of a redundant strcat in shader_glsl_get_register_name().
      wined3d: Store the destination shift in struct wined3d_shader_dst_param.
      wined3d: Store the relative addressing mode in struct wined3d_shader_dst_param.
      wined3d: Explicitly pass the register type and index to pshader_get_register_name().
      wined3d: Merge pshader_get_register_name() and part of vshader_program_add_param().
      wined3d: Split vshader_program_add_param() in shader_arb_add_src_param() and shader_arb_add_dst_param().

Huw Davies (16):
      ole32: Use a helper function to access the enum format implementation.
      ole32: Rename a variable.
      ole32: Don't hold a reference on the parent IDataObject.
      ole32: Change the enum formatetc constructor to return HRESULT.
      ole32: AddRef does not return an HRESULT. Have the constructor create the object with one reference.
      ole32: Reimplement the formatetc enumerator using 'Ole Private Data'.
      ole32/tests: Fix DVTARGETDEVICE offsets.
      ole32/tests: Tests for EnumFormatEtc.
      ole32: Simplify some of the error handling.
      ole32/tests: On win9x GetClipboardData returns a new handle.
      ole32/tests: Add broken return value for win98.
      ole32/tests: Add some tests for stream data.
      ole32/tests: Set tymed in GetData and AddRef the interfaces (ReleaseStgMedium releases them even if pUnkForRelease is non-NULL).
      ole32: Move the embed source hack to a separate function.
      ole32: Rename a few variables and remove a couple of meaningless comments.
      ole32: Change the global memory duplicator to return HRESULT.

Igor Tarasov (2):
      comctl32: CCS_VERT flips toolbar separators orientation.
      comctl32: Correct handling of toolbar separators size.

Jacek Caban (12):
      urlmon: Added IWinInetHttpInfo stub implementation to HttpProtocol object.
      urlmon: Added IInternetPriority handling tests.
      urlmon: Added IWinInetHttpInfo stub implementation to FtpProtocol object.
      urlmon: Added IWinInetHttpInfo support to Binding object.
      urlmon: Get rid of ICOM_THIS_MULTI macro.
      urlmon.idl: Added PROTOCOLFILTERDATA declaration.
      basetsd.h: Added HANDLE_PTR and SHANDLE_PTR typedefs.
      urlmon.idl: Use HANDLE_PTR in IInternetProtocolRoot::Start declaration.
      urlmon: Register CLSID_DeCompMimeFilter.
      urlmon: Added DeCompMimeFilter stub implementation.
      urlmon: Added IInternetProtocolSink interface stub implementation to MimeFilter object.
      urlmon: Remove unneeded includes.

Joerg-Cyril.Hoehle@t-systems.com (1):
      amstream: Log GUID instead of pointer.

Jörg Höhle (1):
      Perform case-insensitive FOURCC comparison of built-in video codecs.

Ken Thomases (1):
      dbghelp/stabs: For Mach-O, line offset is relative to original function address.

Marcus Meissner (5):
      mciqtz32: Fixed boolean condition for null string check (Coverity 913).
      comctl32: Avoid potential overflow in Search Param (Coverity 903).
      wininet: Fixed memory corruption in urlcache.
      quartz: Make sure cookie* are not uninitialized (Coverity 760).
      oleaut32: IPropertyBag_Read_Proxy return on unknown type (Coverity 892).

Massimo Del Fedele (4):
      gdi32/tests: Add test for GetGlyphOutlineW() requesting buffer size for space char.
      gdi32: Correctly handle space char on Path_ExtTextOut().
      gdi32: PATH_ExtTextOut remove incorrect shift to DC origin.
      gdi32: Fix PATH_add_outline when mapping mode != MM_TEXT.

Michael Stefaniuc (5):
      credui: Add the Romanian translation.
      comctl32/tests: Use LONG instead of long.
      winecfg: Use ULONG for a bitmask variable.
      winhlp32: Remove superfluous casts.
      wordpad: Replace long with LONG.

Mikołaj Zalewski (2):
      kernel32: Implement QueryFullProcessImageFileNameW.
      psapi: Implement GetProcessImageNameW.

Nicolas Le Cam (13):
      shell32/tests: Fix tests on localized platforms.
      shell32: Define PT_FOLDERW.
      shell32/tests: Fix GetAttributesOf tests on Win2k and below.
      shell32/tests: Fix crash when launched from drive root dir.
      shell32/tests: Fix a test on WinNT and some Win95.
      shell32/tests: Fix wrong comment and update test accordingly.
      shell32/tests: Completly fix GetAttributesOf test when launched from drive root dir.
      shell32/tests: Skip interactive part of SetNameOf test on Win2k.
      shell32/tests: Fix PropertyBag test on Win2k.
      shell32/tests: Skip FolderShortcut test on Win2k.
      shell32/tests: Fix ITEMIDLIST format test on Win2k and below.
      msi/tests: Fix format test when run on root drive directory.
      msi/tests: Fix test when content indexing is disabled.

Nikolay Sivov (17):
      comctl32/tab: Remove direct access to items array.
      comctl32/tab: Implemented TCM_DESELECTALL.
      comctl32/tab: Implemented TCS_MULTISELECT for mouse selection.
      comctl32/tab: Fix highlighted tabs painting.
      rpcrt4: Implemented RpcEpRegisterW wrapping RpcEpRegisterA.
      comctl32: listview: Some tests showed delayed header creation in ListView control.
      user32: Implemented GetWindowRgnBox with some tests.
      comctl32: Enable selection overwriting in IP Address control.
      comctl32: Additional tests for ListView header creation.
      comctl32/updown: Don't pass VK_[UP|DOWN] to original Up/Don control buddy's winproc.
      comctl32/tab: Draw hottracked tab button properly.
      comctl32/tab: Fix hottracked button size.
      comctl32/tab: Fix filled rectangle calculation for selected button on TCS_BUTTONS.
      comctl32/listview: Implement delayed header creation for ListView control.
      comctl32/tab: Simplify hottracked button painting.
      comctl32/listview: State mask should be ignored on LVM_INSERTITEM.
      comctl32/updown: Allow ranges with max < min for Up/Down control.

Patrick Gauthier (1):
      user32: Handle magic font size 0x7fff in dialog templates correctly.

Paul Chitescu (1):
      ntdll: Print desired version of missing dependent assemblies.

Paul Vriens (10):
      kernel32/tests: Fix some test failures on Win9x and WinME.
      kernel32: Fix creation of empty sections in ini files.
      shell32/tests: Fix a test failure on Vista and higher.
      advapi32/tests: Fix test failures on W2K.
      riched20/tests: Remove the todo_wine logic where appropriate.
      urlmon/tests: Fix a test by using a better default registry key.
      secur32/tests: Document some crashes on Windows.
      usp10: Remove an unneeded check.
      usp10/tests: Fix some test failures on Vista and W2K8 (ScriptShape).
      usp10/tests: Fix some test failures on Vista and W2K8 (ScriptPlace).

Piotr Caban (6):
      jscript: Added Math_LN2 implementation.
      jscript: Added Math_LN2 tests.
      jscript: Added Math_cos implementation.
      jscript: Added Math_cos tests.
      jscript: Added html comments handling.
      jscript: Added html comments tests.

Rein Klazes (5):
      user32/tests: In sysparams fix another case where a test changes a users desktop setting.
      user32: In COMBO_WindowPosChanging() do not change the height of the the dropped rectangle, if the new height is too small.
      user32: Fix for the ending of menu tracking in the default handler of WM_CANCELMODE message with test.
      user32/tests: Avoid a few unneeded test failures in sysparams.c.
      win87em: Always return that a 8087 coprocessor is present.

Rico Schüller (1):
      Implement d3dx9_41 and forward the functions to d3dx9_36.

Rob Shearman (15):
      include: Add definition for CreateProcessWithLogonW and associated flags.
      include: Add declarations for RpcMgmtInqStats and RpcMgmtStatsVectorFree.
      rpcrt4: RpcServerUseProtseqEp(..., NULL, ...) should return RPC_S_OK.
      rpcrt4: Free the memory allocated for the protseq and endpoint strings allocated in RpcServerUseProtseq* functions.
      include: Move some declarations in ws2tcpip.h to where they belong in new ws2ipdef.h header.
      include: Add TCP and IPv6 option defines to ws2ipdef.h.
      include: Add a stub implementation of gai_strerror{A,W}.
      include: Add defines for NI_MAXHOST and NI_MAXSERV to ws2tcpip.h.
      rpcrt4: Fix context handle test on Vista upwards.
      rpcrt4: Compile in RPC over HTTP support even if HAVE_SOCKETPAIR is not defined.
      oleaut32: Fix the SAFEARRAY marshalling on 64-bit platforms.
      include: Add declaration of sockaddr_storage to ws2def.h.
      include: Remove mismatched closing bracket from ws2ipdef.h when compiling as C++.
      rpcrt4: Factor out non-Win32 compatible parts of the ncacn_ip_tcp client code to allow it to be compiled in.
      rpcrt4: Add a Win32 implementation of ncacn_ip_tcp transport.

Roderick Colenbrander (3):
      wined3d: Check for the presence of wglGetExtensionsStringARB.
      opengl32: Update with the latest OpenGL extensions.
      wined3d: Update NVidia pci ids.

Stefan Dösinger (17):
      wined3d: Remove a TODO.
      wined3d: Fix some whitespace.
      wined3d: Update a comment.
      wined3d: Advertise post pixelshader blending for a few more formats.
      d3d8, d3d9: Don't rely on the wined3d buffer type.
      d3d: Unify WINED3DVERTEXBUFFER_DESC and WINED3DINDEXBUFFER_DESC.
      wined3d: Use Map and Unmap for index buffers.
      wined3d: Merge indexbuffer and buffer implementations.
      wined3d: Merge IWineD3DIndexBuffer and IWineD3DBuffer.
      ddraw: Store the fvf in the ddraw buffer.
      d3d8: Store the fvf in the d3d8 vertex buffer.
      d3d9: Store the FVF in the d3d9 vertex buffer.
      wined3d: Remove the buffer fvf.
      d3d: Remove the format from index buffers.
      wined3d: Save some memory in vertex buffers.
      wined3d: Fix the drawRectPatch vertex count.
      wined3d: Deal with reserved shader constants in the backend.

Stefano Guidoni (1):
      winemp3: Rounding block count up in mpeg3_streamsize.

Tobias Jakobi (6):
      wined3d: Add pow2Matrix_identity flag to BaseTextureClass struct.
      wined3d: Add texrect_fixup bitfield to ps_compile_args struct.
      wined3d: GLSL: Implement texrect coord fixup.
      wined3d: Simplify sampler_texmatrix using pow2Matrix_identity.
      wined3d: Add load_np2fixup_constants function to shader backend.
      wined3d: glsl: Enable load_np2fixup_constants.

Vincent Povirk (2):
      gdiplus: GdipDrawString: Handle either a width or height of 0 sanely.
      ole32: When renaming a storage element, delete from the current iface.

Warren Dumortier (1):
      winecfg: Update French translation.

--
Alexandre Julliard
julliard@winehq.org
