This is release 0.9.38 of Wine, a free implementation of Windows on Unix. What's new in this release: - Beginnings of support for copy protection kernel drivers. - More MSI automation support. - Many 64-bit compilation fixes. - A number of OLE fixes. - 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.38.tar.bz2 http://prdownloads.sourceforge.net/wine/wine-0.9.38.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.37: Alexander Nicolaysen Sørnes (8): wordpad: Add program icon. shell32: Update Norwegian Bokmål resources. msi: Update Norwegian Bokmål resources. regedit: Update Norwegian Bokmål resources. credui: Add Norwegian Bokmål resources. localui: Add Norwegian Bokmål resources. shdoclc: Update Norwegian Bokmål resources. cmd: Update Norwegian Bokmål resources. Alexandre Julliard (41): ntoskrnl.exe: Initial stub version with forwards to existing functions. hal: Added an initial stub. include: Add a few definitions in wdm.h. ntoskrnl.exe: Implemented IoCreateDevice and IoDeleteDevice. ntoskrnl.exe: Implemented IoCreateSymbolicLink. ntoskrnl.exe: Export KeServiceDescriptorTable and KeTickCount. ntoskrnl.exe: Added IofCompleteRequest. ntdll: Reimplement LdrGetDllHandle to use the same search algorithm as LdrLoadDll. ntdll: Implemented LdrAddRefDll. kernel32: Support incrementing the module refcount in GetModuleHandleEx. kernel32: Check for already loaded module also for LOAD_LIBRARY_AS_DATAFILE. ntoskrnl.exe: Implemented a number of memory allocation functions. ntoskrnl.exe: Export a Wine-internal function to run the device request handling loop. ntoskrnl.exe: Implemented PsGetVersion and added stubs for a couple of other Ps functions. winedevice: Add a service process that loads and runs a kernel driver. advapi32: Launch winedevice.exe when asked to start a kernel driver service. ntoskrnl.exe: Reuse the kernel32 instruction emulation support for kernel-mode drivers. ntoskrnl.exe: Implemented a couple of time-related APIs. ntdll: Setup the shared user data structure at 0x7ffe0000. ntdll: Avoid overflows in heap allocations. Based on a patch by Rob Shearman. Fix a couple of overflowing heap allocations revealed by the previous change. server: Don't allow a waitable timer to be set to expire in the past. winebuild: Set the IMAGE_FILE_EXECUTABLE_IMAGE flag for all modules. msxml3: Fixed compilation without libxml. schannel: Use FIELD_OFFSET instead of offsetof. wininet: Fixed compilation without SSL. libwine: Add support for glyph chars mapping in OEM codepage tables. kernel32: Remove the fixme about MB_USEGLYPHCHARS. dmusic: Fix license headers that mistakenly use GPL instead of LGPL. winedos: Merge a number of tiny source files into interrupts.c. kernel32: Store global arena base as a pointer. ws2_32: Avoid memory allocations for sockaddr conversion. ws2_32: Reimplement WSARecvFrom along the lines of NtReadFile. ws2_32: Store the local iosb in the ws2_async structure to avoid a memory allocation. include: Fix the definition of MSG_MAXIOVLEN. ws2_32: Allocate iovec buffers statically using MSG_MAXIOVLEN. ntdll: Report end of file instead of broken pipe on char devices. ws2_32: Re-enable FD_READ also when returning EWOULDBLOCK from WSARecvFrom(). ws2_32: Don't modify last error in async I/O callback. ntdll: Preserve errno across system calls done in the suspend handler. user32: Fix a printf format warning. Anatoly Lyutin (1): user32: mdi: Fix switch with wParam in WM_SYSCOMMAND processing. Andrew Riedi (1): wined3d: Add hardware cursor support. Andrew Talbot (45): advapi32: Fix a typo. msvcrt20: Exclude unused header. msvfw32: Exclude unused header. msvcrt: Exclude unused headers. msxml3: Exclude unused headers. ntdll: Exclude unused headers. netapi32: Exclude unused headers. ole32: Exclude unused headers. oledlg: Exclude unused header. oleaut32: Exclude unused headers. opengl32: Exclude unused header. quartz: Exclude unused headers. quartz: Exclude unused headers. qcap: Exclude unused headers. rpcrt4: Exclude unused headers. rsaenh: Exclude unused header. riched20: Exclude unused headers. secur32: Exclude unused headers. setupapi: Exclude unused headers. shell32: Exclude unused headers. shell32: Exclude unused headers. shell32: Exclude unused headers. user32: Exclude unused headers. user32: Exclude unused headers. user32: Exclude unused headers. user32: Exclude unused headers. vmm.vxd: Exclude unused headers. version: Exclude unused headers. uxtheme: Exclude unused headers. winealsa.drv: Exclude unused headers. ws2_32: Exclude unused headers. winmm: Exclude unused headers. mciwave: Constify a variable. mpr: Constify some variables. msdmo: Constify some variables. mscms: Constify some variables. msg711.acm: Constify some variables. wineps.drv: Exclude unused headers. wininet: Exclude unused headers. winex11.drv: Exclude unused headers. msacm32: Constify some variables. msacm32.drv: Constify some variables. msadp32.acm: Constify some variables. mshtml: Constify some variables. msi: Constify some variables. Aric Stewart (1): comctl32: Trying to blend an image without a mask causes problem, especially if the background is white. Damjan Jovanovic (2): ws2_32: Simplify some socket tests by adding a function that generates a pair of connected sockets. ws2_32: gethostbyname("") should work. Dan Hipschman (11): widl: Remove an unnecessary assignment in write_pointers. widl: Handle pointers fields that point to structures. widl: Improve handling of offsets in the type format string. widl: Write some structures to the type format string on the fly. widl: Replace erroneously removed current_func assignment. widl: Lay framework for unions with simple unions working. rpcrt4: Fix test typo. widl: Handle pointers in unions. widl: Shrink type_t structure. widl: Allow types that reference themselves. rpcrt4: Fix build of test on Solaris by renaming a variable. David Adam (6): d3drm: Implement D3DRMColorGetRed. d3drm: Implement D3DRMColorGetGreen. d3drm: Implement D3DRMColorGetBlue. d3drm: Implement D3DRMColorGetAlpha. d3drm: Implement D3DRMCreateColorRGBA. d3drm: Implement D3DRMCreateColorRGB. Detlef Riekenberg (5): localui/tests: Add tests for ConfigurePortUI. serialui/tests: Remove unused string. localui/tests: Add tests for AddPortUI. localui/tests: Handle different results from XP. ddraw: Do not crash when Clipper is NULL. Dmitry Timoshkov (38): user32: Add a test for CheckMenuRadioItem and make it pass under Wine. user32: Add a test for the menu resource loader, make it pass under Wine. kernel32: Add a test for LoadLibraryEx(LOAD_LIBRARY_AS_DATAFILE). user32: Remove duplicated code. kernel32: Print last error value as unsigned, printing error in hex is useless. kernel32: Add an overflow test for MultiByteToWideChar. widl: Fix compilation warnings in 64-bit mode. winebuild: Fix compilation warnings in 64-bit mode. winedump: Fix compilation warnings in 64-bit mode. include/wine/debug.h: Fix compilation warning in 64-bit mode. winex11.drv: Synchronize debug output between X11DRV_KeyEvent and X11DRV_ToUnicodeEx. basetsd.h: Add a bunch of PSDK compatible macros/inline functions for 64-bit safe type conversions. kernel32: Fix the size of ThreadAffinityMask to match PSDK. basetsd.h: Fix a typo in the parameter name. winternl.h: Make the fields of the PROCESS_BASIC_INFORMATION structure use same type width as a PSDK one. widl: Fix compilation warnings in 64-bit mode. ntdll: Fix compilation warnings in 64-bit mode. kernel32: Fix compilation warnings in 64-bit mode. comctl32/tests: Fix some problems revealed by compilation in 64-bit mode. kernel32/tests: Fix a problem revealed by compilation in 64-bit mode. user32/tests: Fix a problem revealed by compilation in 64-bit mode. winedbg: Fix a problem revealed by compilation in 64-bit mode. wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility. gdi32: Perform consistency checks when loading an EMF, add a test case. oleaut32: Add support for loading and drawing metafiles. winebuild: Mark builtin DLLs as IMAGE_FILE_LARGE_ADDRESS_AWARE on a 64-bit platform. gdi32: Make SetDCHook 64-bit safe. gdi32: Fix compilation warnings in 64-bit mode. winex11.drv: Fix compilation warnings in 64-bit mode. kernel32: Fix some compilation warnings in 64-bit mode. user32: Fix some compilation warnings in 64-bit mode. atl: Fix compilation warnings in 64-bit mode. mcicda: Fix compilation warnings in 64-bit mode. mciseq: Fix compilation warnings in 64-bit mode. mciwave: Fix compilation warnings in 64-bit mode. midimap: Fix compilation warnings in 64-bit mode. mciavi32: Fix compilation warnings in 64-bit mode. comctl32: Fix a compilation warning in 64-bit mode. Emmanuel Maillard (7): winecoreaudio: Initial mixer support on Mac OS X. winecoreaudio: Implement MIX_Open and MIX_GetNumDevs. winecoreaudio: Implement MIX_GetDevCaps. winecoreaudio: Initial implementation of MIX_GetLineInfo. winecoreaudio: Initial implementation of MIX_GetLineControls. winecoreaudio: Initial implementation of MIX_GetControlDetails. winecoreaudio: Initial implementation of MIX_SetControlDetails. Erez Volk (1): ntdll: Added IDT Timezone (Israel daylight savings time). Evan Stade (1): gdiplus: Added stub implementation of gdiplus.dll. Francois Gouget (49): ddraw/tests: Fix compilation on systems that don't support nameless unions. winscard: Adding the missing SCARD_E_XXX and SCARD_W_XXX error codes. winscard: Add headers for the upcoming implementation of the winscard dll. mshtml: Fix '\n' typo. Assorted spelling fixes. ntdll: Fix compilation on systems that don't support nameless unions. direct3d: Remove misspelled constants as they exist correctly spelled. user32/tests: Fix compilation with gcc 2.95. msvcrt/tests: When compiling with Visual C++ 2005, one must define _CRT_NON_CONFORMING_SWPRINTFS otherwise swprintf() takes an extra parameter. msvcrt: Remove the S_ISXXX() macros as they are not present in the Visual C++ headers. msvcrt: When operating on a closed pipe, read() should return 0, not -1. port.h: Issue an error if port.h is included after the regular Wine headers. usp10/tests: Fix a signed/unsigned int mismatch. kernel32/tests: Fix a signed/unsigned int mismatch. msi/tests: Fix a signed/unsigned int mismatch. msvcrt/tests: Fix a signed/unsigned int mismatch. user32/tests: SWP_STATECHANGED is an undocumented flag so define it ourselves. Fixes compilation with the PSDK. shell32/tests: We need NTDDI_VERSION >= NTDDI_WINXPSP1 to get SEE_MASK_NOZONECHECKS with the PSDK. d3d9/tests: Fix compilation with Visual C++ 2005. kernel32/tests: src[i] is a char so there is no point trying to stuff 0xcafedead into it. comctl32/tests: The PSDK does not define ListView_InsertItemA() so don't use it. ddraw: Fix the name of DDSPD_IUNKNOWNPOINTER. In the PSDK HRESULT_FROM_WIN32() is now an inline function, and it is __HRESULT_FROM_WIN32() which is a macro. shell32/tests: With recent PSDKs, CSIDL_MYDOCUMENTS is a synonym for CSIDL_PERSONAL. So define our own constant. shlwapi/tests: The PSDK does not define IID_IDelayedRelease anymore. include: The PSDK does not define the DEFINE_SHLGUID() macro anymore. schannel: The PSDK defines no SECPKG_FUNCTION_TABLE_SIZE_* macro. schannel: Fix the name of the SetContextAttributes field of SECPKG_FUNCTION_TABLE. ddraw/tests: Fix compilation with Visual C++ 2005. rpcrt4/tests: Fix signed/unsigned and 32/64bit issues with the wiredatalen parameter. rpcrt4/tests: Fix a Visual C++ double to float conversion warning. setupapi/tests: There is no strncasecmp() on Windows. So use CompareString() instead. ntdll/tests: Remove an inappropriate const qualifier. gdi32/tests: Fix a signed/unsigned int mismatch. psapi/tests: Fix a signed/unsigned int mismatch. d3d8/tests: Fix the Visual C++ double to float conversion warnings. d3d9/tests: Fix the Visual C++ double to float conversion warnings. ddraw/tests: Fix the Visual C++ double to float conversion warnings. dsound/tests: Fix the Visual C++ double to float conversion warnings. oleaut32/tests: Fix the Visual C++ double to float conversion warnings. Assorted spelling fixes. oleaut32/tests: Remove redundant semi-colons. oleaut32/tests: Remove unneeded parentheses. oleaut32/tests: Fix the EQ_DOUBLE() and EQ_FLOAT() macros so they work no matter how large the values to compare are. oleaut32/tests: Convert some macros to functions. version: Fix the VerQueryValueA/W() prototypes. d3drm/tests: Fix the Visual C++ double to float conversion warnings. shell32/tests: Remove unneeded cast. oleaut32/tests: Improve vtstr() and variantstr(). Frank Richter (5): shdoclc: Update German translation. credui: Add German translation. shell32: Update German resources. cmd: Updated German translation. wordpad: Update German translation. Hans Leidekker (4): setupapi: Implement pSetup{Get, Set}QueueFlags. setupapi: Correctly handle an empty filename in SetupGetSourceFileLocationA. setupapi: Add a partial implementation for SetupScanFileQueue{A, W}. setupapi: Don't require a valid version section for INF_STYLE_OLDNT files. Huw Davies (14): oleaut32: Type references are global to the typelib. oleaut32: Typelib inheritance tests. oleaut32: Fix return value in the element not found case. oleaut32: GetRefTypeOfImplType(0) on TKIND_DISPATCH typeinfos should always return an href to IDispatch. oleaut32: Tests for more 'syntax 2' dispinterfaces. oleaut32: Test for interface that derives from IUnknown. oleaut32: Move the proxy thunk creation code to a separate function. oleaut32: non-dual dispinterfaces should be marshaled via IDispatch. oleaut32: Fix CreateDispTypeInfo to store the correct number of functions. oleaut32: Recurse through the impltype list so that dispinterfaces get the correct parents. oleaut32: SLTG references are only unique at the typeinfo level, so convert them to be unique to the typelib. winex11.drv: Merge some common code. winex11.drv: Use XRenderCompositeText instead of XRenderCompositeString. gdi32: Pass an lpDx array to the driver if the escapement is non-zero, so that the driver has access to the unrotated advance widths. Hwang YunSong(황윤성) (1): xcopy: New Korean resource. Jacek Caban (6): mshtml: Wrap nsIExternalProtocolHandler. mshtml: Don't call start_binding if we use necko to load the page. mshtml: Improve some exec command stubs. mshtml: Fixed AsyncOpen implementation for channels without associated document. mshtml: Added missing WINAPI in window proc. urlmon: There is no need to make slash conversion in BindToStorage as URL is already canonized in the constructor. James Hawkins (15): msi: Remove a misleading ERR, as this fails if a file doesn't exist, which is common. msi: Add the ability to deformat the component's source. msxml3: Add initial implementation of IXMLElement and IXMLElementCollection. msxml3: Add initial implementation of IXMLDocument. msxml3: Add tests for IXMLElement and IXMLElementCollection. msxml3: Add tests for IXMLDocument. msi: Create the destination directory if it doesn't exist when duplicating files. msi: Fall back to checking if the cab exists if the volume name doesn't match. msi: Set the MsiNTProductType property. msi: Perform a forced reboot if a custom action returns ERROR_INSTALL_SUSPEND. msi: Implement the WriteEnvironmentStrings standard action. wintrust: Add stub implementations for CryptCATAdminAddCatalog and CryptCATAdminReleaseCatalogContext. msi: Add handling for MsiBreak. msi: Implement Installer::OpenDatabase. msi: Implement SummaryInfo::Property get. Jeff Latimer (2): hnetcfg: Define icftypes.idl. hnetcfg: Add netfw.idl - Network Firewall interface. Jeremy White (1): wininet: Mark Proxy Authorization header as a request header, so it actually gets sent. José Manuel Ferrer Ortiz (2): winecfg: Updated Spanish translation. Some Spanish translations updated. Juan Lang (9): crypt32: Don't set ret to TRUE when it already is. crypt32: Implement CertGetStoreProperty and CertSetStoreProperty. crypt32: Use public functions to get store access state. crypt32: Remove last error checks on success. wintrust: Implement WintrustGetRegPolicyFlags and WintrustSetRegPolicyFlags. oleaut32: Don't mix allocation routines. crypt32: Statically initialize static lists and critical sections. crypt32: Remove wrong test and parameter check. wincrypt: Fix typo. Julien Muchembled (1): msvfw32: Fix enumeration of VFW video codecs that are registered in the registry. Kai Blin (2): secur32: Downgrade WARN to TRACE, fix another TRACE. ws2_32: Make WS2_send trace more readble. Kolbjoern Fredheim (1): wined3d: Implemented converting X1R5G5B5 format to R5G5B5A1 to emulate color-keying. Louis Lenders (2): shell32: Update Dutch resource. comctl32: Add stub for DrawShadowText. Maarten Lankhorst (6): winealsa: Remove dead code. dsound: Primary buffer isn't an IDirectSoundBuffer8. dsound: IDirectSound_Compact should return DS_OK on priolevel >= DSSCL_PRIORITY. mpr: Small fixes to WNetGetConnection. dsound: Block align SetCurrentPosition and add test for it. dsound: Fix stupid mistake. Marcus Meissner (7): wined3d: Fixed swapchain context NULL ptr checks. ddraw/tests: Check for failing to create surfaces. shell32: Avoid potential 1 byte overflow. kernel32: Skip modem status tests if GetModemStatus failed. oleau32: Fix one entry overflow (Coverity). ntdll: Initialize pointers to NULL (Coverity). quartz: ppinsplitter might be used uninitialized (Coverity). Markus Amsler (4): dbghelp: Speed up vector_add by avoiding pool_realloc calls. Remove no longer needed pool_realloc. dbghelp: Speed up pool_alloc. Patch by Eric Pouech. dbghelp: Speed up vector iteration by directly using for(). dbghelp: Late init hash_table. Michael Karcher (1): user32: Reduce the PeekMessage timeout to zero for USER16_AlertableWait. Michael Stefaniuc (3): winhelp: Fix some comparisons between signed and unsigned. winedump: '$' isn't a valid character in an identifier regardless that gcc accepts it without warning. msi: A signed 1-bit bitfield doesn't make much sense; use unsigned. Mikołaj Zalewski (10): localui: Add Polish translation. msxml3: Implement IXMLDOMDocument2::setProperty("SelectionLanguage", ...). comctl32: status: Send a NMMOUSE in mouse notifications, not a NMHDR. comctl32: toolbar: TB_SETIMAGELIST should try to preserve button width. msxml3: Improve the XPath queries handling. msxml3: For queries the get_item should change the current position. msxml3: Add tests for XPath queries with namespaces. msxml3: Implement IXMLDOMElement::getElementsByTagName. xcopy: Add Polish translation. kernel32: Clear the extra memory in LocalReAlloc16(h, bigger_size, LMEM_ZEROINIT). Misha Koshelev (44): msi/tests: automation: Add tests for Session::EvaluateCondition. msi: automation: Implement Session::EvaluateCondition. msi/tests: automation: Test for Installer::CreateRecord error. msi: automation: Implement Installer::CreateRecord. msi/tests: automation: Test invoking methods as properties & vice versa. msi: automation: Return DISP_E_MEMBERNOTFOUND if flags are incorrect. msi: automation: Implement Record::FieldCount. msi/tests: automation: Correct expected Record::StringData PROPERTYPUT return variant type. msi/tests: automation: Add tests for Record::IntegerData. msi/tests: automation: Add test for View::Modify. msi: automation: Implement View::Modify. msi: automation: Implement Record::IntegerData. msi/tests: automation: Add test for Installer::InstallProduct. msi: automation: Implement Installer::InstallProduct. msi/tests: automation: Add tests for Installer::RelatedProducts. msi: automation: Implement Installer::RelatedProducts. msi: Make MsiEnumRelatedProducts enumerate registry value names, not subkeys. msi: automation: Installer::Products, verify HeapAlloc return value. msi: automation: Simplify counting products/related products. msi: automation: Condense a few loops. msi/tests: automation: Remove unnecessary if (SUCCEEDED(hr)) statements. msi/tests: automation: Add tests for Installer::ProductInfo. msi/tests: Add test for empty MsiGetProductInfo parameters not referencing default registry values. msi: Return appropriate values for empty MsiProductInfo parameters. msi: automation: Implement Installer::ProductInfo. msi/tests: automation: Change non-const LPCWSTR parameters to LPWSTR. msi/tests: automation: Check for NULL source string before calling lstrcpyW. msi: automation: Change all tabs to spaces to conform to msi formatting. msi: script: Change all tabs to spaces to conform to msi formatting. msi/tests: automation: Change SUCCEEDED(hr) to more specific hr == S_OK. msi/tests: automation: Fix Installer_ProductInfo ok message to correctly state function. msi/tests: automation: Add tests for StringList::_NewEnum. msi: automation: Generalize list implementation. msi: automation: Implement StringList::_NewEnum. msi/tests: automation: Installer::InstallProduct, remove a registry key set by Wine but not native. msi/tests: automation: Test Installer::Products before and after InstallProduct, check product is not/is installed. msi: Make MsiEnumProducts enumerate products, not features. msi: automation: Append copyright notice. shell32/tests: Add tests for ShellExecute DDE behavior. shell32: Fix execute_from_key to conform to native behavior. shell32/tests: Add tests for default DDE application name. shell32: Handle default DDE application names. shell32/tests: Remove duplicate code. comctl32: imagelist: Fix simultaneous selection of one bitmap into two device contexts. Mounir IDRASSI (6): crypt32: Fix crash in CertGetCertificateContextProperty when querying length of a hash property. crypt32: Stub implementation of CryptFindLocalizedName. crypt32: Stub implementation of CertGetCertificateChain. rsaenh: Fix crash in RSAENH_CPVerifySignature if pbSignature is set to NULL or if dwSigLen is lesser than the expected value. crypt32: Fix CertAddCertificateContextToStore when called with CERT_STORE_ADD_USE_EXISTING. winscard: Small initial stub implementation. Nigel Liang (1): shlwapi: Stub implementation for SHSetTimerQueueTimer. Paul Vriens (2): ole32/tests: Check for correct return value. advpack/tests: Don't hardcode the system directory. Peter Oberndorfer (4): dbghelp: Minor cleanup. ntdll: Fix up instruction pointer in context inside raise_exception. winedbg: Show some info for msvcrt C++ exceptions. winedbg: Only check for break/watch points on first chance exceptions. Ralf Beck (2): winealsa.drv: Add midi realtime and midi common messages on midi input. winealsa.drv: Add missing offset of pitch bender in midi input. Rob Shearman (43): ole32: Fix CoUninitialize to only free libraries that return S_OK from DllCanUnloadNow. ole32: Don't lookup the address for the DllGetClassObject function for ole32.dll in the apartment loaded dll list. server: Add the logon SID to the default admin token's groups. ole32: Create host apartments to enable isolation of objects of incompatible threading models. ole32: Fix reading from an HGLOBALStreamImpl with an invalid HGLOBAL. ole32: Fix hosting in main apartments. wininet: Add support for SSPI authentication for HTTP. wininet: Implement basic non-proxy authentication. ole32: Handle MSHLFLAGS_TABLEWEAK and MSHLFLAGS_TABLESTRONG when marshaling a proxy. ole32: Make proxy_manager_get_remunknown AddRef the return IRemUnknown object. ole32: The identity functions can be used from apartments other than the one the proxy was unmarshaled into. ole32: Remove a useless trace. ole32: Add spec entry for CoRegisterSurrogateEx. ole32: Fix some races in the global interface table implementation. ole32: Add more tests for global interface table functions. ole32: Allow the getting of different interfaces from the global interface table than that with what the object was registered with. ole32: Remove spurious AddRef of returned object on retrieval of an interface from the global interface table. hlink: Fix HlinkCreateFromString to create a URL moniker if the input target is a URL. urlmon: Fix a typo in URLMonikerImpl_Save. urlmon: The persisted version of URL monikers should be size of URL shlwapi: Add a slash to the URL if there is no path component. hlink: Improve the saving of hlinks by documenting the unknown header values and saving out more data. hlink: Improve the loading of hlinks. mlang: Implement ConvertINetString. secur32: Fix the dwVersion field in the security function tables returned by InitSecurityInterfaceA/W. secur32: Fix the wrapper InitializeSecurityContextA/W functions to handle phContext and phNewContext parameters being optional for some SSPs. secur32: Make the NTLM SSP cope with a NULL phCredential parameter when InitializeSecurityContext is called more than once. secur32: Don't set the output buffer type in NTLM's IntializeSecurityContextA/W. secur32: Fix NTLM's InitializeSecurityContextA/W to be flexible with the index of the token buffer in both the input and output buffer descriptions. setupapi: Add a FIXME in SetupCopyOEMInfW for when we should be copying a catalog file. wininet: Pass context to InitializeSecurityContext in second parameter. wininet: Fix basic authentication by putting Basic directing into the scheme field, as the pszAuthValue can have an optional realm string appended. wininet: Cope with non-nul-terminated header strings being passed to HttpSendRequestW. wininet: Don't close the connection if the caller passes in zero for the number of bytes to be read. wininet: Add a new NETCON_query_data_available function. server: Move most of the duplicate_token request to a new function, token_duplicate, to enable the code to be used inside wineserver. server: When starting a new process, use the token from the calling process, if one exists. oleaut32: For automatic-value-getting in ITypeInfo::Invoke, it doesn't matter what flag(s) the function was executed with, just what type of function is being invoked. include: Fix a typo in wincred.h. oleaut32: Fix the references in function descriptions returned for dual IDispatch interfaces. widl: A structure with variance, but without conformance should be a complex struct instead of a conformant, varying struct. widl: RPC_FC_BIND_PRIMITIVE is a base type so reverse an if statement widl: Set current_structure when writing out structure members to Robert Reif (1): dsound: Add missing interface ID. Rolf Kalbermatter (4): advapi32: Add service state request definitions. advapi32: Add access flags to service handle data. advapi32: Fix return value to indicate error when NULL string is passed in. advapi32: Return error on NULL service name to GetServiceDisplayNameA/W. Stefan Dösinger (8): ddraw: Make the ddraw list lock a global dll lock. ddraw: Hold the lock in creation functions. ddraw: Hold the dll lock in IDirectDraw methods. ddraw: Hold the lock in IDirectDrawSurface methods. ddraw: Check the validy of IDirectDrawSurface::BltFast parameters. ddraw: Hold the lock in IDirect3DX methods. wined3d: Don't mess with nv texture shaders if its not supported. wined3d: Keep GL_TEXTURE_2D enabled when using dummy textures. Stefan Leichter (1): advapi32: Added implementation of RegDeleteTreeA/W. Thomas Spear (1): wine.inf: Add uninstall key. Tim Schwartz (1): net.exe: Add NET START command. Vitaliy Margolen (4): dinput: Prevent race between destroying the hook window and unloading the dll. ntdll: Implement RtlWriteRegistryValue and forward ntoskrnl to it. wine.inf: Create fake dll for iexplore.exe. user32/test: Add few tests for messages sent from SetForegroundWindow(). -- Alexandre Julliard julliard@xxxxxxxxxx