This is release 0.9.53 of Wine, a free implementation of Windows on Unix. What's new in this release: - RunOnce and Run entries now executed on startup. - Beginnings of support for emulated disk devices. - Many Richedit improvements. - Nicer looking color dialog. - 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.53.tar.bz2 http://prdownloads.sourceforge.net/wine/wine-0.9.53.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.52: Alexander Dorofeyev (6): wined3d: Free palette handle when destroying IWineD3DPaletteImpl. ddraw: Release palette interfaces. ddraw: Remove redundant iface<->impl casts in IDirect3DTextureImpl_Load. wined3d: Fix regression of colorfill and texture to swapchain codepaths in BltOverride. include/d3d.h: Fix method calling macros for IDirect3DTexture. ddraw/tests: Add test for rendering vertices with zero rhw. Alexander Nicolaysen Sørnes (5): comdlg32: PageSetupDlgW: Set orientation in printer dialog. comdlg32: PageSetupDlgW: Set paper size in printer dialog. wordpad: Draw margin lines in print preview. crypt32: Implement CryptFindLocalizedName. cmd: Seed the random number generator. Alexandre Julliard (33): winedos: Don't emulate in 32-bit mode interrupts that don't have a specific handler. shell32: Fix messed up indentation. crypt32: Avoid casting away const from the context pointer. server: Use exponential backoff when waiting for wineserver -k to complete. server: Redesign the server shutdown processing. ntdll: Print an error for unsupported shared writable mappings. advapi32: Don't wait for 20 seconds if a service fails to start. kernel32: Launch wineboot on first startup of a wine process. mountmgr.sys: Added initial stub for the mount point manager device. mountmgr.sys: Create a hard disk device for PhysicalDrive0. mountmgr.sys: Create disk devices for all configured drives. mountmgr.sys: Add devices to the MountedDevices registry key. mountmgr.sys: Implemented the IOCTL_MOUNTMGR_QUERY_POINTS request. kernel32: Implemented FindFirstVolume/FindNextVolume using the mount point manager. kernel32/tests: Added tests for FindFirstVolume/FindNextVolume. ntdll: Return a proper Information field also when opening a server file object. advapi32: Fix the length written to the pipe for the start message. wineboot: Don't print errors for non-fatal problems. configure: Add --without options for all optional dependencies. configure: Added a check for the soname of libodbc. wined3d: Use unsigned int instead of size_t for element counts. wined3d: Use unsigned int instead of size_t for the glsl mask size. advapi32/tests: Print the correct size in an error message. gdi32/tests: Avoid using size_t in traces. kernel32/tests: Avoid using size_t in traces. server: Wait for the expiration of all the process SIGKILL timers before exiting the server. regedit: Fixed parsing of hex sequences. server: Accept utf-8 data as input in registry files. server: Make the registry parser more tolerant about malformed hex values. server: Output incorrectly-terminated strings in hex format. kernel32: Fail more gracefully in GetVolumeInformation for fake drive devices. mountmgr.sys: Implemented IOCTL_DISK_GET_DRIVE_GEOMETRY and IOCTL_STORAGE_GET_DEVICE_NUMBER. Spelling fixes in French man pages. Alistair Leslie-Hughes (17): msxml3: Return E_INVALIDARG when value is NULL. msxml3: Implement setNamedItem. msxml3: Implement createComment. msxml3: Implement createAttribute. msxml3: Add missing values for get_nodeName. msxml3: Cannot add an attribute with appendChild. msxml3: Implement get_xml. msxml3: Tests for get_xml, createAttribute, CreateComment, setNamedItem. msxml3: nextSibling not supported for Attribute, Document and Document Fragment Nodes. msxml3: lastChild not supported for CDATASection, Comment, PI and Text Nodes. msxml3: createProcessingInstruction: Check arguments are valid. msxml3: previousSibling not supported for Attribute, Document and Document Fragment Nodes. msxml3: get_attributes not supported for Attribute, CData, Comment, Doc, Doc Frag, Entity and Text Nodes. msxml3: Suppress IID_IRunnableObject FIXME since its not supported. mscoree: Add stubs for DllCanUnloadNow and DllGetClassObject. user32: Add SetProcessDPIAware stub. msxml3: Fix memory leak in test. Andre Wisplinghoff (1): regedit: Refresh tree view on import. Andrew Talbot (26): msvfw32: Remove unneeded casts. ntdll: Remove unneeded casts. advapi32: Remove unneeded casts. comctl32: Remove unneeded casts. cabinet: Remove unneeded cast. avifil32: Remove unneeded casts. user32: Fix a spelling typo. cryptnet: Remove unneeded cast. crypt32: Remove unneeded casts. dbghelp: Remove unneeded casts. ddraw: Remove unneeded casts. dplayx: Remove unneeded casts. dsound: Remove unneeded casts. comctl32: Remove unneeded casts. d3d8: Remove unneeded casts. comdlg32: Remove unneeded cast. imm32: Remove unneeded cast. iccvid: Remove unneeded casts. gphoto2.ds: Remove unneeded casts. gdi32: Remove unneeded casts. dxdiagn: Remove unneeded casts. gdiplus: Remove unneeded casts. itss: Remove unneeded casts. kernel32: Remove unneeded casts. mapi32: Remove unneeded cast. mscms: Remove unneeded casts. Andrey Esin (2): wordpad: Russian translation. shell32: Fixed typo. Andrey Turkin (2): wineboot: Fix installation of SFP protected files. dbghelp: Implement ImageDirectoryEntryToDataEx. Aric Stewart (3): imm32: When updating a NULL HIMCC with NULL just return NULL. Handle the NULL HIMCC for the compstr when doing a ImmNotifyIME for a reset. imm32: ImmNotifyIMM with CPS_CANCEL fully clears the composition string. Also enable respective tests. fonts: Add Japanese small font. Austin English (7): dplayx: Fix a typo. msi: Fix several typos. Spelling fixes. More spelling fixes. Spelling fixes. Spelling fixes. loader: Add disabling dlls to wine man page. Chris Wulff (1): shdocvw: Hide and show the frame window instead of the inner one. Dan Kegel (1): winemenubuilder: Expand short paths, else menu items aren't created for CSLU Toolkit. Detlef Riekenberg (1): spoolss: Add stubs for SpoolerHasInitialized and SpoolerInit. Divan Burger (6): comdlg32: Fix bug where the colour graph's cross is not painted. comdlg32: Clamp hue and saturation when clicking in colour graph in colour dialog. comdlg32: Modernize the look of the luminance bar in the colour dialog. comdlg32: Modernize the look of the colour graph's cross in the colour dialog. comdlg32: Modernize the look of the selected colour box in the colour dialog. comdlg32: Modernize the look of the colour boxes in the colour dialog. Dmitry Timoshkov (9): winecfg: Don't mix the strings in unix and windows locales. gdi32: Remove redundant indentation levels in CreateFontIndirectA and CreateFontIndirectW. msvcrt: Rename _environ to avoid a conflict on Solaris. gdi32: Add more tests for bitmap font metrics scaling. comdlg32: If lpstrFile points to a valid string use it as a default value for edit control. gdi32: Add support for scaling font metrics. gdi32: Fix the regression caused by the scaling font metrics patch. gdi32: Fix a GdiFont leak. gdi32: Simplify GetEnumStructs. Eric Pouech (29): richedit: Added support for some message (key, mouse) filtering events. richedit: Fixed a couple of charformatXXm structure conversions because of alignment issues. richedit: Correctly set the CFM_WEIGHT in charformat2. richedit: Fully initialize the first style. richedit: Correctly copy the pitch and family field. richedit: Don't allow recursive EN_REQUESTRESIZE notifications. richedit: Extend the usage of underlinetype from charformat2 in richedit. richedit: Now painting the newly supported underline types. richedit: Simplified handling of background brush while painting. richedit: Correctly initialize the paraformat structure. richedit: Now dumping all fields from the paraformat2 structure. richedit: Properly copying the paraformat2 structure for paragraphs. richedit: Enforce usage of paraformat2 fields instead of homegrown ones for paragraphs. richedit: Fix the para computation when zoom is used. richedit: Now drawing the paragraph borders (if any) from paraformat2. richedit: Added support for spaces above & below paragraphs. richedit: Added support for intra-paragraph line space. richedit: Rewrote FindPixelPos so that it always return something. richedit: Small optimisation in ME_GetSelectionInsertStyle. richedit: Move init code after some sanity checks to avoid unneeded computations. richedit: Don't recreate the DC all the time, but use uniformely a ME_Context structure where needed. richedit: Optimizations for the style selection. richedit: Don't force repaint while the redraw flag is off. richedit: Simplify first para style handling by creating a context. richedit: Only copy the charset when it's defined. richedit: Initialize all the cursors at editor creation. richedit: Check return of GetScrollInfo before accessing the returned structure. richedit: Uniformly handle the bPitchAndFamily field out of CHARFORMAT. gdi32: Break loop in MF_PlayMetaFile when META_EOF is found. Francois Gouget (9): msxml3/tests: Add the trailing '\n' to an ok() call. wintab32: Add a trailing '\n' to a Wine trace. advapi32: RegGetValue() should not return an error when expanding a string and given a NULL buffer and a zero size. advapi32: RegGetValueW() must return the required buffer size in bytes, not WCHARs. kernel32/tests: Add more ExpandEnvironmentStringsA() tests. kernel32/tests: Despite the MSDN claims, GetComputerName() does not return the required buffer size... except on Vista. So update the tests accordingly. msi/tests: Tweaked so it does not look like things are misspelled. shell32: A lot of lnk files have extra data blocks at the end, although they don't seem to matter much. So drop the corresponding ERR() to a WARN(). winemenubuilder: EnumResourceNamesW() returns false when we find the icon. So fix the corresponding misfiring trace. Gerald Pfeifer (24): msi: Add missing initializer for delete_ops. wined3d: Remove noop check in IWineD3DBaseTextureImpl_Appl(). user32: Fix type of loop variable. winhelp: Remove a dead condition. taskmgr: Remove redundant out-of-domain checking which is already handled by PerfDataGetProcessorUsage() and PerfDataGetProcessorSystemUsage(). kernel32/tests: Remove extraneous check. winex11.drv: Simplify condition in create_xcursor_cursor() based on the unsignedness of types. msi: Simplify condition in TABLE_fetch_stream(). d3d9/tests: Simplify condition in test_vshader_input(). wined3d: Remove four noop checks. winspool: Adjust the typo of a loop variable in test_EnumForms(). ole32: Remove one noop check in CoWaitForMultipleHandles(). wined3d: Simplify three checks based on the unsignedness of variables. qcap: Complete initializers for g_cTemplates[]. msi: Remove an extraneous safety check and simplify deformat_string(). wined3d: Removed dead FIXME checks. ws2_32: Remove two noop checks. msi: Remove an extraneous safety check and simplify generate_error_string(). d3d8: Fix type of loop variable. d3d9: Fix type of loop variable. msi: Adjust the types of loop variables. user32: Factor in EDIT_WM_EraseBkGnd(). gdi32: Tighten range checking in PlayEnhMetaFileRecord() and remove four useless checks. msi: Complete initializers. H. Verbeet (6): wined3d: Call ActivateContext regardless of WINED3DCREATE_MULTITHREADED. wined3d: Call SetGlTextureDesc() from BindTexture() rather than from PreLoad(). wined3d: Move binding the texture and dirtifying the sampler to its own function from surface_download_data(). wined3d: Bind the surface texture in LoadLocation(). wined3d: SFLAG_INTEXTURE is the same as SFLAG_INDRAWABLE for offscreen render targets when ORM_FBO is used. wined3d: Properly handle the surface location in stretch_rect_fbo(). Hans Leidekker (15): gdi32: Add a stub implementation for RemoveFontMemResourceEx. msvcrt: Fix spec file entries for the execv functions. wininet: Fix handling of host and referrer headers in HttpOpenRequest. kernel32: Fix two test failures on Win98 due to missing GetTempPathW. kernel32: Add Surinam Dutch and Belgian Dutch translations of language group names. tools/wine.desktop: Add Dutch translation. msvcrt: Implement _wsystem and forward system to it. Respect COMSPEC environment variable. msvcrt: Implement _wpopen and forward _popen to it. msvcrt: Rewrite _execl/_spawnl functions as wrappers around wide character implementations. msvcrt: Implement _execl{e, pe}. msvcrt: Rewrite _spawnve as a wrapper. msvcrt: Implement _wexecl{, e, p, pe}. msvcrt: Implement _wspawnl{, e, p, pe}. msvcrt: Implement _wexecv{, e, p, pe}. msvcrt: Correct search strategy for the exec/spawn functions. Jacek Caban (42): urlmon: Move setting protocol_sink to separated function. urlmon: More ReportProgress implementation. urlmon: Release protocol sink in Terminate. urlmon: Added more binding tests. urlmon: Use BindProtocol in Binding object. urlmon.idl: Added missing MONIKERPROPERTY variables. urlmon: Added ibind argument handling in CreateAsyncBindCtx. urlmon: Make start_binding more generic. urlmon: Better implementation of bind stopping. urlmon: Better error handling. urlmon: Binding_Create clean up. urlmon: Added "CBinding Context" bind option support. urlmon: Call AddRef in EnumFORMATETC::QueryInterface. urlmon: Added BindToObject implementation. urlmon: Added more tests. ole32: Fixed parameter checking and improved debug traces in IBindCtx::QueryInterface. mshtml: Added PutProperty implementation. shdocvw: Added missing OnObjectAvailable function. shdocvw: Store DocHost in BindStatusCallback. shdocvw: Return S_OK in OnStartBinding. shdocvw: Return correct variables in GetBindInfo. shdocvw: Always create BindStatusCallback object. shdocvw: Added OnObjectAvailable implementation. shdocvw: Use OnObjectAvailable in http_load_hack. shdocvw: Added OnProgress implementation. shdocvw: Added OnStopBinding implementation and use it in http_load_hack. shdocvw.5: Move on_before_navigate2 call to navigate_mon. shdocvw: Use BindToObject to load document (except for http, https and ftp protocols). shdocvw: Call try_application_url after BindToObject failure. mshtml: Added Invoke(DISPID_READYSTATE) implementation. mshtml: Fixed Read implementations. mshtml: Don't assume that end_pos.node is text node in range_to_string. shdocvw: Fixed ref count leak. shdocvw: Set IE's IVer and Build registries. mshtml: Don't crash in before_async_open if there is no client site. mshtml: Handle fClearDirty flag in IPersistStreamInit::Save. mshtml: Move nsChannel's content type initialization to async_open_doc_uri. mshtml: Update focus information in WM_RESETFOCUS_HACK. mshtml: Fixed hr element handling in range object. mshtml: Added more range tests. mshtml: Use QueryService to get IHttpNegotiate in get_post_data_stream. mshtml: Disable some default Gecko warnings. James Hawkins (16): msi: Only read an internal package if the file to install is compressed. msi: WriteEnvironmentStrings should also write to REG_EXPAND_SZ strings. msi: If the package is a URL, the OriginalDatabase property should be the URL and the DATABASE property should be the path to the local temporary package. msi: Factor out msi_set_sourcedir_props. msi: OriginalDatabase is the fully-expanded path to the original package if the package is local and installed from the command line. msi: SourceDir is formed from the path of OriginalDatabase. msi: OriginalDatabase can be a URL so check for a forward slash too. msi: Directly download mi->source now that SourceDir points to the URL. msi: Check the local package for existence when resolving the package source. msi: Copy the temporary package when storing the installer. msi: Remove an erroneous table. msi: Pad the month and day to two digits. msi: Create parent directories when duplicating files if they don't exist, with tests. msi: Handle markers in the WHERE section of an UPDATE query, with tests. msi: Test committing a table with a removed row. msi: Actually delete the row data instead of blanking it out. Jeremy White (4): wintab32: Add modest trace information for tablets. wintab32: Remove the unused and clearly broken FindOpenContext function. wintab32: Add logic to detect specific tablet cursor types, use it to discard non tablet X devices. wintab32: If we could not find a stylus sort of device, we haven't found a tablet. Jonathan Ernst (4): server: New French man page for wineserver. crypt32: Updated French translation. server: Updated French man page. loader: New French man page for wine. Kirill K. Smirnov (2): kernel32: Convert newborn wineserver handle to kernel32 console handle. winhelp: Fix index to handle offset value = 0 correclty. Lance Jackson (1): cmd: Fix some unclosed file and registry handles. Lei Zhang (10): gdiplus: Initialize a variable in a test. gdiplus: Add GdipCreatePen2 and test cases. msxml: Fix compilation on machines without libxml2. ntoskrnl.exe: Additional stub implementations. mapi32: Initialize several string buffers. shlwapi: Additional UrlEscapeA tests. shlwapi: Check an argument to UrlEscapeA. shlwapi: Check more arguments to UrlEscapeA. shlwapi: Fix a return value in UrlEscapeA. mapi32: Fix UrlEscapeA usage in MAPISendMail. Lionel Debroux (2): msi: Correctly handle return value of msi_realloc. dinput: Improve TRACEs and WARNs. Louis Lenders (2): user32: Add stub for GetLayeredWindowAttributes. shdocvw: Change return value for PersistMemory_Load. Marcus Meissner (5): wininet: Check return value of InternetCrackUrl when checking referrer host. winex11: Set last error on enumerating display settings. msvcrt: Remove strange condition which might lead to crash. server: Remove superflous check (value->data is dereferenced before check). msxml3: Move potential NULL ptr derefs into their if () case. Michael Jung (1): imm32: Added some unit test cases. Michael Stefaniuc (5): wininet: Fix typo in comparison with NULL. Found by Smatch. user32: Remove unneeded casts. janitorial: Remove superfluous backslashes at end of lines. netapi32: Remove two unused global variables. kernel32: Add missing HeapFree(). Found by Smatch. Paul Chitescu (1): advapi32: Accept a NULL lpServiceStatus in ControlService. Paul Romanyszyn (1): comdlg32: Filter change should not update filename. Paul Vriens (4): advapi32/tests: Don't crash on win98. kernel32/tests: Skip not implemented functions. kernel32/tests: Skip not implemented functions. kernel32/tests: Skip not implemented functions. Peter Dons Tychsen (4): oleaut32: Add missing types to serialize/deserialize. ddraw: Add missing pitch in callback from EnumDisplayModes(). dinput: Silence incorrect warning and move it to a valid place. devenum: Fix the implementation of IEnumMoniker::Skip(), to match the MSDN specs. Peter Oberndorfer (2): user32: Remove unused lpGrayMask array. dwmapi: Add stub implementation for DwmSetWindowAttribute and DwmUnregisterThumbnail. Reece H. Dunn (1): gdiplus: Added the ProfileNotFound status code. Rico Schüller (3): cabinet: Fix memory leak (found by Smatch). mshtml: Fix memory leak (found by Smatch). msi: Fix memory leaks (found by Smatch). Rob Shearman (70): rpcss: Initialise some out-only parameters that aren't initialised by the generated RPC code. rpcrt4: Implement non-conformant string functions. rpcrt4: Add some tests for non-conformant strings. rpcrt4: Implement NdrConformantStringMemorySize. widl: Check that the buffer has enough space before unmarshalling base types in generated code. include: Add defines for more message flags in rpcdcep.h. rpcrt4: Keep a track of server context handles allocated during processing of a request. rpcrt4: Fix a case of destroying a context handle without first releasing the lock. rpcrt4: Fix the MIDL_STUB_MESSAGE fields set by NdrServerInitializeNew. rpcrt4: Add tests for NdrServerInitializeNew. rpcrt4: Make some variables in the tests static. rpcrt4: Fix NdrGetBuffer to set the correct fields in the MIDL_STUB_MESSAGE structure. ntdll: Add some tests for NtQueryValueKey. ntdll: Set the DataLength field of the information field in NtQueryValueKey to how much data should be returned, not what was actually returned. user32: Add a stub implementation of RegisterServicesProcess. ntdll: Implement RtlRegisterWait, RtlDeregisterWait and RtlDeregisterWaitEx. kernel32: Implement RegisterWaitForSingleObject and UnregisterWait. kernel32: Add tests for RegisterWaitForSingleObject and UnregisterWait. include: ws2tcpip.h should include winsock2.h. rpcrt4: Update todos. widl: Make the offset of conformant string types point to the start of the conformant string format chars, not the pointer type. ole32: Determine the destination for the COM call and initialise the necessary parameters in ClientRpcChannelBuffer_GetBuffer instead of ClientRpcChannelBuffer_SendReceive. svchost: Add a FIXME for an undocumented function (SvchostPushServiceGlobals) that some native services expect to be called by native svchost. kernel32: Implement RegisterWaitForSingleObjectEx. ole32: Clear the RPC_MESSAGE structure before using it. rpcrt4: Add some tests for NdrGetBuffer and NdrFreeBuffer. rpcrt4: Don't set Buffer to NULL in I_RpcFreeBuffer. ole32: get_moniker_for_progid_display_name should fallback to using IClassFactory to get IParseDisplayName if getting it directly fails. ole32: Fix a typo in the class moniker tests. include: Add defines for context handle flags to rpcfc.h. widl: Output calls for the new versions of the marshalling and unmarshalling routines for server context handles. rpcrt4: Pass the interface identifier to the lower-level context handle routines for context handles with the strict flag set. widl: Add support for strict context handles. rpcrt4: Print fixme's if the serialize or no-serialize flags are set on a context handle being marshalled or unmarshalled. include: Add the strict_context_handle flag to the Irot interface. widl: Fix the conditions under which array freeing code is output. include: I_RpcBindingInqTransportType and I_RpcMapWin32Status should be always defined. rpcrt4: Implement I_RpcMapWin32Status. ntdll: Add tests for the data and name returned by NtQueryValueKey. ntdll: Fix the Data and Name returned by NtQueryValueKey for KeyValueFullInformation. ntdll: Fix NtQueryValueKey for KeyValueBasicInformation. widl: Fix context handle "cannot be null" detection. widl: Use symbolic names for some of the context handle attributes. ole32: Clear the RPC_FLAGS_VALID_BIT flag from the RPC_MESSAGE ProcNum when shortcutting the RPC runtime. ole32: Shortcut the RPC runtime for allocation of the message when processing the COM call by just sending a message to a window in the process. ole32: Fix a memory leak. ole32: Fix memory leaks caused by not calling the channel hook function when extension_size is zero. rpcrt4: Add tests for the RPC_MESSAGE members set by NdrClientInitializeNew. rpcrt4: Set the ProcNum of RPC_MESSAGE in NdrClientInitializeNew to include RPC_VALID_FLAGS_BIT. rpcrt4: ndr_stubless.h should include ndrtypes.h as it depends on types it defines. rpcrt4: Add stubs for NdrCorrelationInitialize, NdrCorrelationPass and NdrCorrelationFree. rpcrt4: Call NdrCorrelationInitialize and NdrCorrelationFree from NdrClientCall2 if new correlation descriptors have been specified. rpcrt4: Add stubs for I_RpcAsyncSetHandle and I_RpcAsyncAbortCall. rpcrt4: Add stubs for asynchronous functions. rpcrt4: Add tests for some async RPC functions. rpcrt4: Implement RpcAsyncInitializeHandle. rpcrt4: Set ReservedForRuntime to NULL in NdrClientInitializeNew. include: Add prototype for I_RpcNegotiateTransferSyntax. rpcrt4: Set the fBufferValid flag in NdrProxyGetBuffer. rpcrt4: Remove some unused includes. rpcrt4: Bind to the server interface in I_RpcGetBuffer, not I_RpcSendReceive. rpcrt4: Improve error handling in RPCRT4_io_thread and remove commented-out code. rpcrt4: Use send on a socket instead of write as it's more portable. rpcrt4: Implement NdrMapCommAndFaultStatus. rpcrt4: Fix a leak of msg in RPCRT4_io_thread on the error paths. ole32: Fix some uses of SEEK_SET when STREAM_SEEK_SET should have been used instead. rpcrt4: Fix memory leak in NdrFullPointerXlatFree. rpcrt4: Fix memory leaks in the ndr_marshall tests. rpcrt4: Fix a memory leak in the cstub tests. rpcrt4: Split RPCRT4_process_packet out into separate functions. Roderick Colenbrander (2): wined3d: Use software palette conversion for non-texturing operations. wined3d: Unify color conversion code. Stefan Dösinger (2): wined3d: Detect geforce 7300 cards. wined3d: Fix a pixelshader recompilation check. Tony Wasserka (1): include: Add d3dx9core.h. Zach Goldberg (1): Fix some typos. -- Alexandre Julliard julliard@xxxxxxxxxx