From 7131c760fd2dfa88107441f458f2b2d4c260681b Mon Sep 17 00:00:00 2001 From: Jan Zerebecki Date: Sat, 29 Dec 2007 15:52:33 +0100 Subject: [PATCH] push fbf0d43ce86cc6cd164eb784b21795bd4cd92f3d --- ANNOUNCE | 942 ++++++++++++---------------- ChangeLog | 1315 ++++++++++++++++++++++++++++++++++++++++ VERSION | 2 +- configure | 18 +- dlls/mshtml/protocol.c | 69 ++- dlls/mshtml/tests/protocol.c | 106 ++++ dlls/urlmon/bindprot.c | 35 +- dlls/urlmon/internet.c | 44 ++ dlls/urlmon/session.c | 57 +- dlls/urlmon/tests/misc.c | 91 ++- dlls/urlmon/umon.c | 22 +- dlls/user32/message.c | 11 +- dlls/wined3d/surface.c | 4 +- dlls/wined3d/vertexshader.c | 13 +- include/wine/server_protocol.h | 18 +- programs/regedit/Fr.rc | 2 +- server/protocol.def | 8 + server/queue.c | 16 + server/request.h | 2 + server/trace.c | 13 + 20 files changed, 2166 insertions(+), 622 deletions(-) rewrite ANNOUNCE (95%) diff --git a/ANNOUNCE b/ANNOUNCE dissimilarity index 95% index 998fe0fbb7b..c98aec24dbb 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,542 +1,400 @@ -This is release 0.9.51 of Wine, a free implementation of Windows on Unix. - -What's new in this release: - - A bunch of WinHelp improvements. - - Better Japanese font support. - - A ton of rpcrt4 fixes. - - Several Alsa capture fixes. - - Improved support for screen resolution changes. - - 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.51.tar.bz2 - http://prdownloads.sourceforge.net/wine/wine-0.9.51.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.50: - -Alex Villacís Lasso (6): - riched20: EM_GETTEXTEX with GT_USECRLF should not leave a single CR when running out of space. - riched20: WM_GETTEXT should return 0 on overflow but fill buffer anyway. - riched20: EM_GETTEXTLENGTHEX must not count last paragraph break if GTL_USECRLF. - riched20: WM_GETTEXTLENGTH should include CRLF conversions in returned count. - riched20: Invalidate all the text on bogus last selection. - riched32: Fix regression in WM_GETTEXTLENGTH on richedit 1.0 emulation. - -Alexander Dorofeyev (2): - ddraw: Fix wrong initialization order in IDirect3DDevice vtable. - wined3d: Improve thread safety in IWineD3DSurfaceImpl_BltOverride. - -Alexander Nicolaysen Sørnes (14): - shell32: Localize file context menu. - winecfg: Update Norwegian resource. - wineboot: Add Norwegian resources. - write: Add Norwegian resources. - browseui: Add Norwegian resources. - mshtml: Update Norwegian resources. - credui: Update Norwegian resources. - shell32: Localize 'new folder' string. - shell32: Handle backspace key in shellview. - user32: A few more colour changes to match modern Windows. - comdlg32: PageSetupDlgA: Read margins from correct edit boxes. - comdlg32: PageSetupDlgA: Swap margins when changing orientation. - comdlg32: PageSetupDlgW: Swap margins when changing orientation. - wordpad: Move registry functions to a separate file. - -Alexandre Julliard (36): - ntdll: Added a sleep in NtGet/SetContextThread, a yield is not enough on some kernels. - shell32: Get rid of the internal _InsertMenuItem function. - kernel32: Remove the no-exec fault workaround, it shouldn't be needed anymore. - winmm/tests: Don't mess with the mixer controls in non-interactive mode. - server: Implemented EnumWindowStations and EnumDesktops. - server: Partial implementation of NtQueryDirectoryObject. - server: Return correct object types in the get_directory_entry request. - clock: Use system colors instead of hardcoded RGB values. - winhelp: Use system colors instead of hardcoded colors. - shell32: Fix some wrc warnings. - Removed some unneeded imports. - winebuild: Print a warning when failing to import a data export. - winebuild: Improved checks for missing forward entry point targets. - ntdll: Support delayed loading of modules referenced by forwarded entry points. - winebuild: Also optimize out imports that are only used for forwards. - msvfw32: Fix invalid check that caused the rest of VideoCapDriverDescAndVer16 to be optimized out. - server: Fix incorrect use of size_t instead of data_size_t. - comctl32: Fix a compiler warning. - Avoid size_t types in traces. - opengl32: ntdll import is still needed when building without optimizations. - kernel32: Revert change that slipped in commit db24d3af9a6e56c3036ba0a3e5d62dae4f2676d3 by mistake. - kernel32: Read label and serial from the filesystem when the device is accessible but unknown. - user32: Keep waiting for posted messages in peek_message after we get an ignored message. - Make.rules: Added rules for building the dlldata.c file. - makedep: Added support for dlldata.c dependencies. - wordpad: Fix a compiler warning. - Makedll.rules: Add a generic EXTRADLLFLAGS variable instead of defining a specific variable for every possible parameter. - winebuild: Don't set the IMAGE_FILE_DLL flag on native modules. - winecrt0: DriverEntry is a WINAPI function. - Make.rules: Process man pages in the C locale. - wordpad: Fix invalid pointer usage. - hhctrl.ocx: Store a copy of the string pointers to enable freeing them without casting away const. - user32: Print the RegisterHotKey fixme only once. - gdi32/tests: Fix a compiler warning. - riched20/tests: Avoid using size_t in traces. - riched32/tests: Avoid using size_t in traces. - -Alexandru Balut (2): - oleaut32: Implement VarWeekdayName + tests. - wine.inf: Fix the type of some values in HKLM, System\CurrentControlSet\Control\Session Manager\Environment. - -Alistair Leslie-Hughes (10): - msxml3: Implement cloneNode. - msxml3: Fix memory leaks. - msxml3: Fix memory leak. - shdocvw: Fix memory leak. - urlmon: Fix memory leaks. - msxml3: Implement IPersistStream. - msxml: Register missing components. - shlwapi: Fix memory leak in test. - msxml3: Fix memory leak in test. - msxml3: Fix memory leak in tests. - -Anatoly Lyutin (1): - start: Convert to Unicode. - -Andrew Riedi (10): - winealsa.drv: Fix a comment. - user32: Add a FIXME for animated cursors. - comdlg32: DPRINTF -> TRACE. - ddraw: DPRINTF -> TRACE. - user32: Uncomment and explain a test in test_DestroyCursor(). - user32: Improve test_DestroyCursor(). - user32: Test the initial state of the cursor. - ole32: DPRINTF -> TRACE. - dinput: DPRINTF -> TRACE. - dsound: DPRINTF -> TRACE. - -Andrew Talbot (19): - cabinet: Remove unneeded casts. - advapi32: Remove unneeded casts. - comctl32: Remove unneeded casts. - comdlg32: Remove unnecessary casts. - crypt32: Remove unnecessary casts. - d3d8: Remove unneeded casts. - d3d9: Remove unneeded casts. - dbghelp: Remove unneeded casts. - cabinet: Remove unneeded casts. - ddraw: Remove unneeded casts. - cabinet: Remove unneeded casts. - dinput: Remove unneeded casts. - devenum: Remove unneeded cast. - dmime: Remove unneeded casts. - dmloader: Remove unneeded casts. - dmusic: Remove unneeded casts. - dnsapi: Remove unneeded casts. - dplayx: Remove unneeded casts. - kernel32: Remove unneeded casts. - -Aric Stewart (12): - uninstaller: Iterate keys in HKEY_CURRENT_USER also as some programs install their uninstall information there. - commdlg: File name and extension offsets are not guaranteed to be the same in W->A conversions. - fonts: Add 18 pixel strike with japanese fonts to system.sdf. - system.sfd: Modify a few 18 pixel glyphs to generate metrics correctly. - sfnt2fnt: Use code from gdi32/freetype to do a better job finding the TTAG_EBLC to deal with older version of freetype without having to fall back on unreliable hacks. - fonts: Build the jvgasys.fon from the 18 pixel strike. - gdi32: Font tests with Japanese font data. Thanks to Dmitry Timoshkov for the data and tests. - wintrust: Implementations for WTHelperGetFileName and WTHelperGetFileHandle. - imagehlp: Improve last error handling in ImageGetCertificateData. - netapi32: Improve stub for NetLocalGroupGetMembers a bit to return current user. - gdi32: Cache font enum info. - cryptnet: InternetCrackUrlW requires component buffers when used with ICU_DECODE. - -Detlef Riekenberg (4): - wine.inf: Add more fake dlls. - rsabase: Add version resource. - schannel: Add version resource. - Assorted spelling fixes. - -Dmitry Timoshkov (8): - server: Make fd_poll_event static. - user32: Make sure the desktop window is created before mode enumeration. - explorer: Store current display mode in the registry on startup. - explorer: Make initialize_display_settings work with a Win9x version of rpcrt4. - winex11.drv: Don't forget to initialize dmFields. - winex11.drv: Use registry settings as a default display mode. - include: Add an initial version of oleacc.idl. - ntdll: Initialize the APC call union to suppress valgrind warnings. Take 2. - -Francois Gouget (14): - ddraw: Rename DDRAW_dump_flags_() to DDRAW_dump_flags_nolf() to clarify its difference from DDRAW_dump_flags(). - ddraw: Modify DDRAW_dump_(DWORD|PTR|DDCOLORKEY|DDSCAPS2|pixelformat)() to print a trailing '\n'. - inetcomm: Fix compilation on systems that don't support nameless unions. - inetcomm/tests: Fix compilation on systems that don't support nameless unions. - wininet/tests: Remove trailing spaces in ok() calls. - Assorted spelling fixes. - winealsa.drv: Remove trailing spaces in Wine traces. - kernel32/tests: dll_capable() makes no sense since it's only used on APIs we link with. So remove it. - kernel32/tests: Get the test to run on Windows 95. - hlink: Fix the HlinkUpdateStackItem() prototype. - ddraw/tests: Fix compilation on systems that don't support nameless unions. - comtcl32/tests: Dynamically load ImageList_SetImageCount() because it is missing on Windows 95. - comctl32/tests: InitCommonControlsEx() is missing on Windows 95 so call InitCommonControls() instead. - comctl32/tests: Avoid SHDeleteKeyA() because it does not exist on Windows 95. - -Gerald Pfeifer (7): - comctl32: Remove extraneous check (unsigned < 0). - wined3d: Fix handling of a special case in IWineD3DImpl_FillGLCaps() and adjust type of loop variable. - msvcrt: Fix error handling in _aligned_offset_realloc(). - wined3d: Fix error handling in transform_texture(). - comctl32: Simplify condition based on WPARAM always being >= 0. - wined3d: Fix error handling in fixed_get_input(). - icmp: Correctly handle underflow in IcmpSendEcho(). - -Gregor Brunmar (3): - comctl32: Disable propsheet apply button at start up. - comctl32: Added context menu to treeview. - comctl32: Monthcal lost focus fix. - -Guido Barzini (1): - iphlpapi: Restore lost initialisation of ptr->AddressLength in GetAdaptersInfo. - -Hans Leidekker (10): - gdi32: Implement GetTextExtentExPointI. - kernel32: Implement and test {G, S}etConsoleInputExeName{A, W}. - usp10: Use GetCharABCWidthsI to implement ScriptGetGlyphABCWidth. - usp10: Store original font in the script cache and reselect it on successive calls. - usp10: Don't trace char to glyph mappings. - kernel32: GetConsoleInputExeNameW returns TRUE even when it fails. - wininet: Make FtpGetCurrentDirectoryA pass all todo_wine tests. - gdi32: GetCharABCWidthsI does not require a scalable font. - usp10: Add some tests for ScriptShape/Place and make them pass. - usp10: Do glyph translation for truetype fonts only. - -Jacek Caban (23): - mshtml: Added IHTMLElement2::get_dir implementation. - mshtml: Make IConnectionPointContainer more flexible. - mshtml: Initialize HTMLElement in the beginning of constructors. - mshtml: Added IConnectionPointContainer iface to all HTMLElement objects. - mshtml: Move HTMLTextContainerEvents connection point to HTMLTextContainer object. - mshtml: Added DIID_HTMLTableEvents connection point. - mshtml: Return NULL instead of empty string in IHTMLBodyElement::get_background. - mshtml: Improve debug traces. - shlwapi: Uncomment IUnknown_EnableModeless code. - mshtml: Added more DOM tests. - mshtml: Added IHTMLStyleSheet::get_rules implementation. - mshtml: Added IHTMLStyleSheetRulesCollection::get_length implementation. - mshtml: Fixed ref counting. - mshtml: Added HTMLTxtRange::Exec(IDM_INDENT) implementation. - mshtml: Added HTMLTxtRange::Exec(IDM_INDENT) test. - hlink: Added IHttpNegotiate interface to ExtensionService. - shdocvw: Added client site's IOleCommandTarget tests. - mshtml: Added more IHTMLStyle implementation. - mshtml: Fix CSS px unit handling differences between Gecko and IE. - shdocvw: Return S_OK in IOleObject::SetHostNames. - urlmon: Fixed handling MIME type in Binding object. - urlmon: Includes clean up. - shdocvw: Register IE settings by iexplore.exe. - -James Hawkins (16): - msi: Use a hash table for reordering rows in a WHERE query to conserve space. - msi: Test the CCPSearch action. - msi: Implement the Version property of the Installer object. - msi: Add a stub implementation of MsiEnumComponentCostsW. - msi: Test the CompLocator subset of the AppSearch action. - msi: Add tests for MsiGetComponentPath. - msi: Reimplement MsiGetComponentPath. - msi: Add tests for MsiGetProductCode. - msi: Remove two tests that depend on the sort order of RegEnumValue. - msi: Reimplement MsiGetProductCode. - msi: Handle the CompLocator table in the AppSearch action. - msi: Free the deformatted string. - msi: Free the user sid string. - msi: Properly release the record. - msi: Free the cabinet string on error. - msi: Close the file handle returned by FindFirstFile. - -Jonathan Ernst (9): - shell32: Updated French translation. - browseui: Updated French translation. - wineboot: New French translation. - write: New French translation. - wordpad: Updated French translation. - mshtml: Updated French translation. - Updated French translation. - winecfg: Updated French translation. - winecfg: Add missing audio tab controls to other languages. - -Kirill K. Smirnov (16): - winhelp: Correctly deal with various TopicBlockSize/Compression combinations. Simplify HLPFILE_Uncompress_Topic function. - winhelp: Add support for winhelp 3.0 phrases. - winhelp: Add support for winhelp 3.0 topics. - winhelp: winhelp 3.0 uses page numbers instead of hash values. - winhelp: Implement generic B+ tree search function. - winhelp: Rewrite Context support using B+ tree search. - winhelp: Rewrite internal files lookup using B+ tree search. Add some sanity checks. - winhelp: Enlarge font size by 3 as native winhelp does. - winhelp: Use HEAP_ZERO_MEMORY instead of setting individual fields to zero. - winhelp: There are files without Phrases or Phrases40 compression, add support for them. - winhelp: Do not confuse caller application with bogus error when we really succeeded. - winhelp: winhelp >3.0 files always use 0x4000 as a divisor in TOPICPOS regardless of DecompressSize. - winhelp: Change font charset from ANSI to DEFAULT. - winhelp: Export enum and search B+ tree functions. - winhelp: Read keywords. - winhelp: Display keywords index dialog box. - -Lei Zhang (16): - quartz: Move current tests into their own test case. - quartz: Add a test for IFilterGraph2. - quartz: Add some IGraphBuilder related tests. - quartz: Fix return value in IFilterGraph_FindFilterByName. - quartz: Validate input for IFilterGraph_FindFilterByName. - quartz: Add IFilterGraph2 interface and stubs. - quartz: Add videorenderer QueryInterface test. - quartz: Add videorenderer aggregation test. - quartz: Add referenceclock QueryInterface test. - quartz: Set *ppvObject to NULL if QueryInterface fails. - quartz: Make video renderer aggregatable. - ole32: Print a fixme when an aggregation attempt fails. - quartz: Give video renderer's Inner_QueryInterface a less generic name. - quartz: Fix typo in GraphConfig_AddRef. - quartz: Make aggregation test generic. - quartz: Do aggregation test for more video renderer interfaces. - -Lionel Debroux (3): - msi: Fix missing alloc check. - msi: Fix memory leaks (found by Smatch). - winhelp: Fix memory leaks (found by Smatch). - -Louis Lenders (1): - msvcrt40: Add DllMain. - -Luis C. Busquets Pérez (10): - d3dx8: Implementation of D3DXAssembleShaderFromFileA. - mshtml: Update Spanish resource. - shell32: Update Spanish resource. - browseui: Add Spanish resource. - wineboot: Added Spanish resource. - gphoto2: Add Spanish resource. - credui: Add Spanish resource. - msvfw32: Add Spanish resource. - sane: Add Spanish Resource. - shell32: Update Spanish resource. - -Maarten Lankhorst (10): - winealsa: Fix period size in capture. - winealsa: Fix return value checking in wavein. - winealsa: Simplify the feeding of capture buffers. - winealsa: Clear dwBytesRecorded in waveheader when adding buffer. - winealsa: Remove fixed fixme. - winealsa: Add control 'Digital' as alias for microphone. - winealsa: Don't require a cswitch control for capture. - winealsa: Add 'Front Mic' as alias for microphone. - riched20: Make some functions static. - include: Update oleacc with new constants and IAccessible interface. - -Marcel Partap (3): - include/winspool.h: Add FORM_INFO_2. - winspool.drv/tests: Add dumping of FORM_INFO_1/2 in test_EnumForms. - configure: Add i586-mingw32 prefix for crosscompiling. - -Marco Schuster (3): - wined3d: Fixed a bug that the 8600M GT could not be detected. - wine.man: Added small clarification for AppDB. - loader: Added de_DE.UTF-8 translated Wine man page. - -Marcus Meissner (1): - server: Removed superflous async->queue NULL tests. - -Michael Stefaniuc (20): - secur32: Remove the SECUR32_ALLOC() macro around HeapAlloc(). - kernel32: Pass HEAP_ZERO_MEMORY to HeapAlloc() instead of clearing the memory with a separate memset() call. - mshtml: Rename the wrappers around HeapAlloc() &Co to use the new standard naming. - winecfg: Pass HEAP_ZERO_MEMORY to HeapAlloc() instead of clearing the memory with a separate memset() call. - user32/tests: Pass HEAP_ZERO_MEMORY to HeapAlloc() instead of clearing the memory with a separate memset() call. - riched20: Rename the wrappers around HeapAlloc() &Co to use the new standard naming. - riched20: Remove the RTFAlloc() wrapper around heap_alloc(). - hhctrl.ocx: Rename the wrappers around HeapAlloc() &Co to use the standard names. - iccvid: Rename the wrappers around HeapAlloc() &Co to use the standard names. - pdh: Rename the wrappers around HeapAlloc() &Co to use the standard names. - localspl: Rename the wrappers around HeapAlloc() &Co to use the standard names. - hlink: Rename the wrappers around HeapAlloc() &Co to use the standard names. - crypt32: Do not use an empty body in an else-statement as documentation. - usp10: Rename the wrappers around HeapAlloc() &Co to use the standard names. - wined3d: Fix a "ordered comparison of pointer with integer zero". - rsaenh/tests: Remove duplicate abPlainPrivateKey variable. - rsaenh/tests: Remove an unused global variable. - wineoss.drv: Move a function wide variable down to the block it is used in. - kernel32: Do not reuse the name of a function argument for a local variable. - winebuild: Remove duplicate declaration of variable 'j'. - -Paul Vriens (3): - kernel32: Add some simple tests for GetVersionExA. - kernel32: Make tests run on Win98 again. - kernel32/tests: Test for functions should be or-ed. - -Peter Oberndorfer (2): - comctl32: Add EnumMRUList tests. - comctl32: EnumMRUListA/W fix getting list size by negative item pos. - -Rob Shearman (73): - oleaut32: Implement OLEPictureImpl_GetIDsOfNames. - include: Move Wine-specific EH_* defines from winnt.h to include/wine/exception.h. - ole32: Always create a window for the main apartment. - ole32: Ignore the threading model of the PSFactoryBuffer object created during standard marshaling. - include: Fix the HRESULT_FROM_WIN32 macro to not change the HRESULT if the error is already an HRESULT. - rpcrt4: Initialise the memory in test_simple_struct_marshal before passing it to NdrSimpleStructUnmarshall. - rpcrt4: Reverse the conditions for which *pPointer is assigned base_ptr_val in PointerUnmarshall. - rpcrt4: Test that the string retrieved from get_name was actually unmarshalled correctly. - d3dx8: Initialise temp in D3DXQuaternionInverse to avoid a uninitialised variable warning with some versions of gcc. - rpcrt4: Flesh out more of the IRpcChannelBuffer vtable to make the test_delegating_Invoke test succeed on Windows. - rpcrt4: Call IRpcChannelBuffer_GetDestCtx in NdrStubInitialize, just like we do in NdrProxyInitialize. - rpcrt4: Put the delegating stub thunks in an executable memory page, rather than on the heap. - ole32: Fix the test of the size returned from WdtpInterfacePointer_UserSize. - rpcrt4: Handle all non-continuable exceptions in CStdStubBuffer_Invoke. - rpcrt4: Set the destination pointer in PointerUnmarshall before calling the referenced type's unmarshalling routine. - rpcrt4: Add tests for a pointer to a conformant strings. - rpcrt4: Set fMustAlloc to TRUE when unmarshalling an object pointer. - rpcrt4: Set the memory pointer in NdrBaseTypeUnmarshall to the buffer if we're unmarshalling on a server without memory being passed in. - ole32: Initialise object variable in RunningObjectTableImpl_GetObject. - mshtml: Use the correct deallocator in the htmldoc tests for the memory returned by IMoniker_GetDisplayName and fix a use-after-free error. - rpcrt4: Fix a memory leak in RpcAssoc_BindConnection. - rpcrt4: Fix a memory leak when freeing an association by deleting the critical section. - rpcrt4: Fix a memory leak caused by NdrFullPointerXlatFree not freeing the entries in the full pointer translation table. - rpcrt4: Improve PointerFree to not free buffer memory. - oleaut32: Don't call SafeArrayAllocData in LPSAFEARRAY_UserUnmarshal if we called SafeArrayCreateEx instead of SafeArrayAllocDescriptor. - oleaut32: Try to re-use existing memory when unmarshalling variants with byref types. - oleaut32: Set the number of locks held on the safe arrays in the safe array tests to zero before destroying them, otherwise the operation will fail and leak memory. - mshtml: Fix a memory leak in the htmldoc tests. - ole32: Register the window used in the marshal tests only once. - rpcrt4: Implement NdrConformantStructFree. - rsaenh: Fix some leaks of the provider handle in the rsaenh tests. - oleaut32: Fix a reference count leak of the TMarshalDispatchChannel. - oleaut32: Fix two memory leaks in the test for DispCallFunc. - oleaut32: Fix a leak of the typelib in the tmarshal tests. - rpcrt4: Use an alertable wait in rpcrt4_protseq_np_wait_for_new_connection to fix a small memory leak flagged by Valgrind. - ole32: Process messages while waiting for a local server to create a pipe. - widl: Don't override the pointer type in top-level arrays. - rpcrt4: Fix NdrConformantArrayUnmarshall to use buffer memory if applicable and to reuse memory for embedded pointers. - rpcrt4: Fix NdrFixedArrayUnmarshall to use buffer memory if applicable and to reuse memory for embedded pointers. - rpcrt4: Fix NdrConformantStructUnmarshall to use buffer memory if applicable and to reuse memory for embedded pointers. - rpcrt4: Implement PointerMemorySize. - rpcrt4: Add a trace to NdrBaseTypeMemorySize. - rpcrt4: Fix the return value from NdrSimpleStructMemorySize. - rpcrt4: Save the buffer in EmbeddedPointerMemorySize, like EmbeddedPointerUnmarshall does. - rpcrt4: Add a missing break in DllMain. - rpcrt4: Implement NdrConformantArrayMemorySize. - rpcrt4: NdrRangeUnmarshall is implemented so add it to the spec file. - rpcrt4: Pass the USER_MARSHAL_CB structure into user marshal routines. - actxprxy: Add the start of actxprxy.dll. - wine.inf: Register actxprxy.dll and create a fake DLL for it. - widl: Always write a freeing function for arrays in generated code. - widl: Arrays should have freeing code generated on the server side, even if they are [in] parameters. - widl: Make sure to generate freeing calls for all non-simple structures with pointers and pointers to user marshalled types. - widl: Support the address-of operator in expressions. - widl: iid_is should take expressions, not just identifiers. - widl: Add support for non-basetype return types. - rsaenh: Fix some memory leaks in the tests. - rpcrt4: Make the NdrAllocate tests pass on XP SP2 and greater. - rpcrt4: Store allocated memory in a singly-linked list to keep track of what we should and shouldn't free in NdrFree. - rpcrt4: Try to free every non-stack pointer in PointerFree now that NdrFree does the sanity checking for us. - widl: Remove some confusion in how version numbers are packed into an attribute by defining some macros for this purpose. - widl: Swap the version packing order back to what typelibs expect. - rpcrt4: Add tests for freeing non-NdrAllocate allocated memory blocks. - widl: Don't write redundant FC_RP type format out for conformant strings, unless it is a top level variable. - Revert "rpcrt4: Try to free every non-stack pointer in PointerFree now that NdrFree does the sanity checking for us.". - rpcrt4: NdrStubGetBuffer shouldn't set BufferStart and BufferEnd. - rpcrt4: Fix the check in NdrPointerFree. - rpcrt4: Free the base pointer in PointerFree when freeing a pointer with RPC_FC_P_DEREF. - rpcrt4: Partially revert commit 18faf3184b2ea263d77c2a7ad92eef27bc4ba08f. - rpcrt4: Document NdrAllocate. - rpcrt4: Update TODO list. - rpcrt4: Fix a typo in rpcrt4_conn_tcp_read. - include: Make RpcRaiseException DECLSPEC_NORETURN, like it is in the PSDK. - -Roy Shea (7): - wininet: Removed inline from copy_compsA and zero_compsA to allow Windows testing. - wininet: Added check of dwStructSize required by Windows in calls to InternetCrackUrlA. - svchost: Implementation of svchost. - qmgr: Renamed bits_main.c to qmgr_main.c and updated comments. - include: Added bitsmsg.h header. - include: Added IDL file for BITS. - qmgrprxy: Queue manager proxy generated using an IDL compiler and bits.idl. - -Sam Dennis (1): - advapi32: Fix undocumented behaviour in ReqQueryValueEx when 'count' and 'type' point to the same address. - -Stefan Dösinger (30): - wined3d: mov to a0.x does a floor(), not a round to nearest. - wined3d: Enabling too many lights is silently ignored. - wined3d: Unify bpp to format conversion. - wined3d: Detect the Intel GPU in macbooks. - wined3d: Add parentheses to a flag check. - wined3d: Add a method for querying the gl drawable size of rendertarget. - wined3d: Use the proper drawable size when setting the scissor rect. - wined3d: Retrieve the height properly when setting the viewport. - wined3d: Disable the scissor test when blitting. - wined3d: Fixes for drawable handling in Clear. - wined3d: Clear honors the viewport. - wined3d: Use the proper drawable size when clearing. - wined3d: Test clearing regarding the scissor test and colorwrite. - wined3d: Ignore unused attributes when generating the swizzle array. - wined3d: Initialize output texcoord .w to 1.0 if needed. - wined3d: A more detailed occlusion query test and fixes. - ddraw: Set X8R8G8B8 for 32 bpp. - wined3d: Add an alpha blending test. - wined3d: Use the adapter to read the display mode. - wined3d: Remove 24/32 bit hacks. - wined3d: Use SetDisplayMode to set the display mode. - winex11: Remove an unused variable. - gdi32, winex11drv: Add a test for compatible bitmap depths. - gdi32: Test bitmap depths. - winex11: Remove an unused variable. - gdi32: Test the bit depth of compatible bitmaps explicitly. - winex11: Ignore the alpha if all pixels are 0. - gdi32: Test the "alpha" channel on compatible bitmaps. - user32: Add a test for WM_DISPLAYCHANGE. - user32: Add a test for EnumDisplaySettings vs GetDeviceCaps. - -Ted Percival (1): - regedit: Display REG_DWORD as unsigned with lowercase hex digits. - -Thomas Weidenmueller (1): - comctl32: Fix painting bug in listview control. - -Tim Schwartz (1): - advapi32: service_control_dispatcher(): Fixed invalid pipe test to display GetLastError() before it gets overwritten. - -Vitaly Lipatov (7): - oledlg: Use wide strings, fix buffers size. - oledlg: Add Russian translation. - avifil32: Fix buffer sizes. - midimap: Fix buffer sizes. - shell32: Use sizeof instead of constant for buffer size. - winspool.drv: Fix buffer sizes. - winecfg: Updated Russian translation. - -Zac Brown (2): - wininet: Fix FtpGetCurrentDirectoryW to handle bad input. - wininet: Add test for FtpGetCurrentDirectoryA in wininet/tests/ftp.c. - --- -Alexandre Julliard -julliard@winehq.org +This is release 0.9.52 of Wine, a free implementation of Windows on Unix. + +What's new in this release: + - Improved graphics tablet support. + - Support for RPC context handles. + - Fixes for some longstanding screen depth issues. + - Implementation of "My Network Places" shell folder. + - 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.52.tar.bz2 + http://prdownloads.sourceforge.net/wine/wine-0.9.52.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.51: + +Alex Villacís Lasso (2): + user32: Fix regression in DlgDirList caused by modified LB_DIR return behavior, with tests. + comdlg32: Fix another regression in 3.1-style file dialog from LB_DIR fix. + +Alexander Dorofeyev (7): + ddraw: Fix incorrect WARN text. + wined3d: Rewrite IWineD3DSurfaceImpl_BltOverride colorfill codepath. + wined3d: Use IWineD3DDeviceImpl_ClearSurface in IWineD3DDeviceImpl_Clear. + ole32: Fix wrong timeout check. + ws2_32: Fix timeout check. + wined3d: Add zero/near zero vertex rhw special case. + wined3d: Also update alpha test when stage texture is NULL. + +Alexander Nicolaysen Sørnes (1): + comdlg32: PageSetupDlgW: Load paper orientation in ChangePrinterW. + +Alexandre Julliard (30): + Revert "user32: Moved some 16-bit functions." + oleaut32/tests: Avoid relying on system-dependent rounding. + server: Fix possible NULL dereference. + ntoskrnl.exe: Added implementation for IoCreateDriver and IoDeleteDriver. + ntoskrnl.exe: Allow returning data in ioctls along with a positive non-zero status. + user32: Set the WSF_VISIBLE flag on the main window station. + advapi32: Reimplement RegisterServiceCtrlHandler on top of RegisterServiceCtrlHandlerEx. + advapi32: Fix RegisterServiceCtrlHandler spec entry. + advapi32: Use exponential backoff when waiting for a service to start. + advapi32: Replace the list of services with an array. + advapi32: Return from StartServiceCtrlDispatcher when all services are stopped. + kernel32: Forward interrupts in 32-bit code to winedos too. + server: Use SIGQUIT instead of SIGTERM to terminate a thread. + advapi32: Move the EnumDependentServicesA/W stubs in service.c where they belong. + wineboot: Simplify the unnecessarily complex code structure. + wineboot: Add support for starting NT-style services. + wineboot: Rewrite wininit.ini processing to use GetPrivateProfileSectionW. Convert to Unicode. + wineboot: Convert the rest of the code to Unicode. + wine.inf: Mark the spool service as disabled, it's just a stub. + include: Added the mountmgr.h header. + server: Don't count system processes as users of a desktop. + server: Don't give out full access to the system process event. + explorer: It no longer needs to be made a system process. + advapi32: Start non-interactive services in a separate window station. + ntdll: Increase the buffer size dynamically for relay debug lists. + kernel32: Store the initial directory as a full path in the process parameters. + kernel32: Yet another workaround for broken apps in GlobalMemoryStatus. + kernel32: Initialize MaximumLength of the user params directory too. + winedos: Add the possibility of refusing to emulate some interrupts. + wintab32: Fix debug traces to use wine_dbg_sprintf. + +Alistair Leslie-Hughes (1): + msxml3: Fix memory leaks in tests. + +Andrew Riedi (1): + gdiplus: Add GdipCreateHBITMAPFromBitmap() stub. + +Andrew Talbot (10): + kernel32: Remove unneeded casts. + kernel32: Remove unneeded casts. + kernel32: Remove unneeded casts. + mapi32: Remove unneeded casts. + kernel32: Revert the removal of a cast from a macro. + mciavi32: Remove unneeded casts. + mciseq: Remove unneeded casts. + msacm32: Remove unneeded casts. + msvcrt: Remove unneeded cast. + msi: Remove unneeded cast. + +Andrey Turkin (5): + server: I/O completion ports can only be used with overlapped I/O. + server: Store I/O completion information in async structure. + ntdll: Implement BindIoCompletionCallback. + dbghelp: Adjust minidump streams ordering and sizing. + dbghelp: Treat const addresses as const unsigned. + +Aric Stewart (1): + fonts: Correct External leading for japanese small font and enable fontmetric test for the font. + +David Adam (4): + d3dx8: Add definition for MatrixStack. + d3dx8: Rename d3dx_core_private.h to d3dx8_private.h. + d3dx8: Add basic functions and stubs for MatrixStack. + d3dx8: Implement D3DXCreateMatrixStack. + +Dmitry Timoshkov (11): + user32: Always clip the button painting to the client rectangle. + gdi32: Add a GdiConvertToDevmodeW test, make it pass under Wine. + gdi32: When compiling with PSDK headers request latest DEVMODE definition. + gdi32: In the calculations use a fixed dmSize, not a passed in (possibly too large) one. + user32: Make sure to setup clipping before any painting is done. + user32: Set the edit text in a combobox only if combobox has strings. + include: Add CONTEXT86_EXTENDED_REGISTERS and CONTEXT86_ALL definitions. + gdi32: Add a test for minimal acceptable DEVMODEA size, make it pass under Wine. + user32: Add a test for an invalid DEVMODE passed to ChangeDisplaySettings, make it pass under Wine. + riched20: Remove a redundant parameter from trace. + user32: Reimplement IsHungAppWindow. + +Eric Pouech (1): + valgrind: Made Wine compliant will latest Valgrind macros (the one removed from 3.3.0 and deprecated since 3.2.0). + +Francois Gouget (13): + rpcrt4: Add an rpcasync.h header stub and fix the RpcErrorStartEnumeration() prototype. + user32/tests: Use GetProcAddress() on ChangeDisplaySettingsExA() because it is missing on Windows 95. + msi: Add a trailing '\n' to Wine traces. + secur32/tests: Dynamically load various APIs and don't link with crypt32.dll to make the test run on Windows 95. + shell32/tests: Avoid SHDeleteKeyA() because shlwapi.dll is missing on Windows 95. + shell32/tests: Copy the PathRemoveBackslashA() and PathAddBackslashW() implementations because shlwapi.dll is missing on Windows 95. + shell32/tests: Use GetProcAddress() on SHGetPathFromIDListW() because it is missing on Windows 95. + shell32/tests: Use GetProcAddress() on Shell_NotifyIconW() because it is missing on Windows 95. + shell32/tests: Use GetProcAddress() on SHFileOperationW() because it is missing on Windows 95. + oleaut32/tests: Avoid SHDeleteKeyW() because shlwapi.dll is missing on Windows 95. + dinput: Make _dump_cooperativelevel_DI() and _dump_EnumDevices_dwFlags() more self-contained. + Assorted spelling fixes. + configure: Work around an Xcode 3.0 bug when detecting the libGL library. + +Gerald Pfeifer (1): + msi: Fix error handling in encode_streamname(). + +Huw Davies (6): + include: Add IMimeAllocator. + inetcomm: Add IMimeAllocator implementation. + inetcomm: Fix spelling typo. + inetcomm: Implement IMimeBody_GetParameters. + inetcomm: Unquote parameter values. + inetcomm: Implement IMimeBody_GetOffsets. + +Ivan Sinitsin (1): + winefile: Save font settings in registry. + +Jacek Caban (24): + mshtml: Remove not used argument of nsACString_GetData. + mshtml: Remove not used argument in nsAString_GetData. + shdocvw: Ignore Exec(CGID_Explorer, 66) calls in tests. + urlmon: Use flag to store protocol lock state. + urlmon: Fixed protocol tests. + urlmon: Added BindProtocol::GetBindString implementation. + urlmon: Added IServiceProvider implementation to BindProtocol object. + urlmon: Added BindProtocol::Switch implementation. + urlmon: Added BindProtocol::Continue implementation. + urlmon: Added BindProtocol::[Un]LockRequest. + urlmon: Added more BindProtocol::ReportProgress implementation. + urlmon: Added more binding tests. + urlmon: Fixed BindToObject tests. + mshtml: Use IBindCtx passed to Load in BindToStorage call. + mshtml: Added AboutProtocolInfo::QueryInfo implementation. + mshtml: Added ResProtocolInfo::QueryInfo implementation. + mshtml: Added QueryInfo tests. + urlmon: Added CoInternetQueryInfo implementation. + urlmon: Added CoInternetQueryInfo tests. + urlmon: RegisterNameSpace clean up. + urlmon: Added [Un]RegisterMimeFilter implementation. + urlmon: Added mime filters tests. + urlmon: Use heap_alloc_zero to allocate BindProtocol. + urlmon: Rename BindProtocol's IInternetProtocolSink methods. + +James Hawkins (23): + msi: Release the record when loading the hash data. + msi: Add more tests for MsiOpenPackage. + msi: Validate the parameters of MsiOpenPackage. + msi: If the package doesn't exist, return ERROR_FILE_NOT_FOUND. + msi: Verify that the PID_PAGECOUNT and PID_REVNUMBER summary info properties exist. + msi: Simplify ExpandAnyPath. + msi: Add tests for MsiEnumClients. + msi: Validate the parameters of MsiEnumClients. + msi: Check the user component key for the clients. + msi: Also check the local system component key for the clients. + msi: Return ERROR_UNKNOWN_COMPONENT if no products exist. + msi: Return ERROR_INVALID_PARAMETER if the product list is empty and index is not zero. + msi: The line control has a height of exactly 2 device units. + msi: Set the text color after calling the window proc. + msi: Test sorting a table using a column that is not selected. + msi: Sort each table of the join separately. + msi: Free the ordering information. + msi: Allow NULL parameters to be passed to the local MsiSetProperty. + msi: Initialize a default COM apartment for custom actions. + msi: The BS_GROUPBOX style should only be used if the HasBorder attribute is set. + msi: Fix deleting temporary rows, with tests. + msi: Allow the not-equal operator in WHERE query string comparisons. + msi: Allow whitespace after the property name when setting a property in the dialog. + +Jeremy White (11): + wintab32: Store and use the physical device id to match device to cursor. + wintab32: Do not offset the physical device id by the cursor number. + wintab32: Add constants for cursor types and use them. + wintab32: Order the cursor array by the standard Wacom promulgates. + wintab32: Add additional device tracing. + wintab32: Compute our physical device characteristics based on the first tablet device that looks like a stylus. + wintab32: Correctly handle devices with a device id of 0. + wintab32: Don't return information for non existent cursors. + wintab32: Implement the ability to return the number of devices and cursors. + wintab32: Capture the number of buttons earlier, allowing our button maps to be filled in. + wintab32: Fix the W->A translation for CSR_NAME and CSR_BTNNAMES. + +Johannes Stezenbach (3): + wininet: Implement support for INTERNET_OPTION_VERSION in InternetQueryOptionW. + wininet: Fix error return code in FindFirstUrlCacheEntryW() stub. + ws2_32: Set *res = NULL for error return from WS_getaddrinfo(). + +Kirill K. Smirnov (7): + winhelp: Remember last added page. + winhelp: Avoid any keywords comparision during lookup, store pointer to listbox ITEMDATA instead. + server: Properly notify renderer while activating another screen buffer. + ws2_32: Fix flags conversion in getnameinfo() function. + kernel32: ReadConsoleW should wait for at least one character before returning. + winhelp: When we reuse window structure, old brush should not be reused. + kernel32: Invalidate local copy of console input event handle while reallocating console. + +Lei Zhang (2): + quartz: Move aggregation tests into separate file. + quartz: Make filtergraph aggregatable. + +Lionel Debroux (2): + winedevice: Fix memory leak (found by Smatch). + winspool: Fix memory leak (found by Smatch). + +Maarten Lankhorst (3): + riched20: Implement ECO/EM SELECTIONBAR. + riched20: Fix bugs in EM_SETOPTIONS. + winealsa: Add special case for microphone source in mixer. + +Marcus Meissner (2): + msi: Fixed buffer overflow in number parsing. + d3d9: Initialize pVertexBuffer. + +Michael Jung (1): + ole32: Avoid leaving a critical section twice. + +Michael Stefaniuc (3): + rpcrt4: Add missing LeaveCriticalSection. Found by Smatch. + secur32/tests: InitFunctionPtrs() needs to use the global crypt32dll variable. + gdi32: There is no need to cast NULL to a function pointer. + +Mike McCormack (1): + shell32: Implement "My Network Places" shell folder. + +Peter Beutner (1): + d3d9: Add stub for Direct3DShaderValidatorCreate9(). + +Peter Oberndorfer (2): + winex11: Remove unused SWAP_INT macro. + gdi32: Fix a comment typo. + +Reece H. Dunn (2): + include: Added the new Vista messages. + user32: Added the new Vista messages to spy. + +Rico Schüller (3): + comdlg32: Fix typo. + kernel32: Fix typo. + wined3d: Fix some typos. + +Rob Shearman (50): + widl: Clear padding in the buffer due to alignment. + widl: Return types shouldn't be freed. + widl: Only base types or reference pointers to base types don't need to be freed. + include: Add definitions for RPC_FC_SSTRING and RPC_FC_C_SSTRING. + rpcrt4: Clear padding inserted into the buffer during marshalling because of alignment. + rpcrt4: Add a FIXME for RPC_FC_P_ALLOCALLNODES in PointerUnmarshall. + rpcrt4: Fix NdrConformantStringUnmarshall to use buffer memory if possible. + rpcrt4: Return an error from rpcrt4_conn_tcp_read if recv returns 0. + rpcrt4: Make a server association when a bind packet is received in the server. + rpcrt4: Move association code into a separate file. + hlink: Fix some memory leaks in the tests. + include: Add more NDR types and function declarations to rpcndr.h. + include: Add more types and function declarations to the rpcasync.h header file. + rpcrt4: Don't copy memory from the buffer in NdrConformantStringUnmarshall if we just pointed the memory pointer into the buffer. + rpcrt4: Add a stub for I_RpcGetCurrentCallHandle. + include: Add some context handle defines to rpcdcep.h. + mscoree: Add a stub for GetVersionFromProcess. + rpcrt4: Implement I_RpcGetCurrentCallHandle. + widl: The detection of types is highly dependent on the ordering of the various type detection functions. + widl: Fix the length used when clearing alignment space in generated files. + rpcrt4: Fix the ALIGN_POINTER_CLEAR macro. + rpcrt4: Memory should only be cleared in ComplexUnmarshall, not in ComplexMarshall. + rpcrt4: Initialise memory passed into RPCs in the server test. + rpcrt4: Don't use BufferEnd in RpcStream_Write. + rpcrt4: Fix NdrConformantStringUnmarshall to always increment the buffer during unmarshalling. + ole32: Fix RPC_GetLocalClassObject to wait for 30 seconds, even if messages arrive while we are waiting. + rpcrt4: Print an error if stub buffer pointer is passed into safe_copy_from_buffer. + rpcrt4: Fix a memory leak from the get_filename call in the server tests. + kernel32: Add a test for calling VirtualAlloc on a view of a SEC_RESERVE file mapping. + widl: Tweak the rules for when to call pfnFree for arrays. + rpcrt4: Set pStubMsg->BufferMark in NdrConformantVaryingArrayUnmarshall and NdrVaryingArrayUnmarshall. + widl: Fix the generation of temporary variables for declared arrays. + widl: Fix pointer detection in structures and arrays. + include: Remove semi-colons from the end of cpp_quote statements as MIDL likes them. + rpcrt4: Move low-level NDR context handle functions to a separate file. + rpcrt4: Implement higher-level NDR server context handle functions. + rpcrt4: Implement low-level context handle support. + rpcrt4: Add tests for low-level context handle functions. + widl: Add support for generating code for out-only context handles by calling NdrContextHandleInitialize. + rpcss: Use context handles to automatically free running object table entries if the client process quits without calling IrotRevoke. + hlink: Fix memory leak by freeing extension services This->headers in the release function. + msi: Fix several memory leaks after using IEnumSTATSTG_Next. + oleaut32: Fix copy and paste error in VARIANT_UserUnmarshall with VT_UNKNOWN test. + quartz: Fix memory leak in FilterGraphInner_Release. + rpcrt4: Add tests for varying and conformant varying arrays. + rpcrt4: Re-use existing memory for embedded pointers in NdrConformantVaryingArrayUnmarshall. + rpcrt4: Re-use existing memory for embedded pointers in NdrVaryingArrayUnmarshall. + rpcss: Zero the memory of several variables before writing them to the pipe to silence Valgrind warnings. + explorer: Fix memory leak when one or more properties are not present on a hal device. + server: Initialise the apc_call_t union in async_set_result to all zero to avoid a Valgrind warning. + +Roderick Colenbrander (2): + wined3d: In case of GL_EXT_paletted_textures we use GL_COLOR_INDEX and don't need a GL_RED fixup. + wined3d: Only store the palette index in the alpha component when the primary render target uses P8. + +Roy Shea (2): + qmgr: Generate C file with local GUID definitions from bits.idl. + qmgr: AddRef, QueryInterface, and stub functions for queue manager interface. + +Stefan Dösinger (37): + winex11: Distinguish between bpp and depth. + winex11: Activate the depth-bpp difference. + d3d9: The refrast returns an error on invalid clear rects. + d3d9: D3DLOCK_DISCARD is not valid on managed textures. + d3d9: Do not set NONE MIN and MAG filters. + d3d9: Remove a few more incorrect D3DLOCK_DISCARDs. + d3d9: Add a note about a breakage in the refrast. + wined3d: Disable the SWAPEFFECT_DISCARD clear. + wined3d: Correct a pixel shader version comparison. + wined3d: Ignore tesselated and unused streams when comparing attribs. + wined3d: Filter out some shader compilation spam. + kernel32: Add a test for BindIoCompletionCallback. + wined3d: Implement D3DFMT_G16R16. + wined3d: Split up the render target -> render target blit. + wined3d: Implement blits from the active render target to swapchains. + wined3d: Emulate half float vertices if GL_NV_half_float is not there. + wined3d: Some improvements for SFLAG_CONVERTED checking. + wined3d: Implement texture -> swapchain blits with stretch_rect_fbo. + wined3d: Always dump the fbo state on errors. + wined3d: Store if half float conversion is needed in the decl. + wined3d: Fixed function vertex attribute types are flexible. + wined3d: Fix vertex buffers based on type, not semantic. + wined3d: Move the GL info structure into the adapter. + wined3d: Add a test for 16 bit floats. + wined3d: Implement half float vertex buffer conversion. + wined3d: Change the vertex buffer declaration's data format. + d3d9: Extend the fixed function vertex declaration test. + wined3d: Improve some traces. + wined3d: Add a test for POSITIONT vertex fixups. + wined3d: Vertex attributes are 4 byte aligned. + wined3d: Per stream offsets are 4 byte aligned. + wined3d: Implement and test vertex fixups with per stream offsets. + d3d9: Accept D3DDEVTYPE_REF devices in the vertex declaration test. + wined3d: Fix a problem in BltOverride. + wined3d: Get rid of the invymat. + wined3d: Combine two glScalef calls into one. + wined3d: Multiply the half pixel correction with .w. + +Stefan Leichter (2): + gdiplus: Partly implement GdipCreateFromHDC2 + kernel32: Silence a fixme in GetNativeSystemInfo. + +Vincent Hardy (1): + regedit: Window caption correction. + +Zhangrong Huang (2): + gdi32, winex11.drv: Correct default Chinese font name. + secur32: Fix possible crash while loading SSP providers from registry. + +-- +Alexandre Julliard +julliard@winehq.org diff --git a/ChangeLog b/ChangeLog index a7dc84d4d53..fa8e26a57a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1318 @@ +2007-12-28 Vincent Hardy + + * programs/regedit/Fr.rc: + regedit: Window caption correction. + +2007-12-23 Roderick Colenbrander + + * dlls/wined3d/surface.c: + wined3d: Only store the palette index in the alpha component when the primary + render target uses P8. + This was already done in other places but I missed this spot. + + * dlls/wined3d/surface.c: + wined3d: In case of GL_EXT_paletted_textures we use GL_COLOR_INDEX and don't + need a GL_RED fixup. + +2007-12-28 Dmitry Timoshkov + + * dlls/user32/message.c, include/wine/server_protocol.h, + server/protocol.def, server/queue.c, server/request.h, + server/trace.c: + user32: Reimplement IsHungAppWindow. + +2007-12-28 Jacek Caban + + * dlls/urlmon/bindprot.c: + urlmon: Rename BindProtocol's IInternetProtocolSink methods. + Binding's implementation uses the same names, what makes reading logs + harder. + + * dlls/urlmon/bindprot.c: + urlmon: Use heap_alloc_zero to allocate BindProtocol. + + * dlls/urlmon/tests/misc.c: + urlmon: Added mime filters tests. + + * dlls/urlmon/session.c: + urlmon: Added [Un]RegisterMimeFilter implementation. + + * dlls/urlmon/session.c: + urlmon: RegisterNameSpace clean up. + + * dlls/urlmon/tests/misc.c: + urlmon: Added CoInternetQueryInfo tests. + + * dlls/urlmon/internet.c, dlls/urlmon/umon.c: + urlmon: Added CoInternetQueryInfo implementation. + + * dlls/mshtml/tests/protocol.c: + mshtml: Added QueryInfo tests. + + * dlls/mshtml/protocol.c: + mshtml: Added ResProtocolInfo::QueryInfo implementation. + + * dlls/mshtml/protocol.c: + mshtml: Added AboutProtocolInfo::QueryInfo implementation. + +2007-12-27 Stefan Dösinger + + * dlls/wined3d/vertexshader.c: + wined3d: Multiply the half pixel correction with .w. + +2007-12-27 Rob Shearman + + * server/async.c: + server: Initialise the apc_call_t union in async_set_result to all zero to + avoid a Valgrind warning. + +2007-12-26 Mike McCormack + + * dlls/shell32/Makefile.in, dlls/shell32/pidl.c, dlls/shell32/pidl.h, + dlls/shell32/shell32_main.h, dlls/shell32/shellole.c, + dlls/shell32/shfldr_netplaces.c, dlls/shell32/shres.rc: + shell32: Implement "My Network Places" shell folder. + +2007-12-24 Marcus Meissner + + * dlls/d3d9/tests/device.c: + d3d9: Initialize pVertexBuffer. + +2007-12-26 Aric Stewart + + * dlls/gdi32/tests/font.c, tools/sfnt2fnt.c: + fonts: Correct External leading for japanese small font and enable fontmetric + test for the font. + +2007-12-27 Rob Shearman + + * programs/explorer/hal.c: + explorer: Fix memory leak when one or more properties are not present on a + hal device. + + * programs/rpcss/np_server.c: + rpcss: Zero the memory of several variables before writing them to the pipe + to silence Valgrind warnings. + +2007-12-26 Stefan Dösinger + + * dlls/wined3d/state.c: + wined3d: Combine two glScalef calls into one. + +2007-12-25 Stefan Dösinger + + * dlls/wined3d/state.c: + wined3d: Get rid of the invymat. + glScalef(1.0, -1.0, 1.0) does the same as the glMultMatrix with the + invymat matrix, and it is more optimal. + + * dlls/wined3d/surface.c: + wined3d: Fix a problem in BltOverride. + +2007-12-26 Gerald Pfeifer + + * dlls/msi/table.c: + msi: Fix error handling in encode_streamname(). + +2007-12-27 Alexander Dorofeyev + + * dlls/wined3d/state.c: + wined3d: Also update alpha test when stage texture is NULL. + +2007-12-23 Alexander Nicolaysen Sørnes + + * dlls/comdlg32/printdlg.c: + comdlg32: PageSetupDlgW: Load paper orientation in ChangePrinterW. + +2007-12-25 Alexander Dorofeyev + + * dlls/wined3d/directx.c: + wined3d: Add zero/near zero vertex rhw special case. + +2007-12-24 Alexander Dorofeyev + + * dlls/ws2_32/socket.c: + ws2_32: Fix timeout check. + +2007-12-24 Rob Shearman + + * dlls/rpcrt4/ndr_marshall.c, dlls/rpcrt4/tests/server.c: + rpcrt4: Re-use existing memory for embedded pointers in + NdrVaryingArrayUnmarshall. + + * dlls/rpcrt4/ndr_marshall.c, dlls/rpcrt4/tests/server.c: + rpcrt4: Re-use existing memory for embedded pointers in + NdrConformantVaryingArrayUnmarshall. + + * dlls/rpcrt4/tests/server.c, dlls/rpcrt4/tests/server.idl: + rpcrt4: Add tests for varying and conformant varying arrays. + +2007-12-26 Andrey Turkin + + * dlls/dbghelp/dwarf.c: + dbghelp: Treat const addresses as const unsigned. + This will prevent winedbg from spamming about __wine_dbch__default. + +2007-12-26 Rob Shearman + + * dlls/quartz/filtergraph.c: + quartz: Fix memory leak in FilterGraphInner_Release. + + * dlls/oleaut32/tests/usrmarshal.c: + oleaut32: Fix copy and paste error in VARIANT_UserUnmarshall with VT_UNKNOWN + test. + The variant type is VT_UNKNOWN so we should be using V_UNKNOWN, not + V_VARIANTREF(V_R8) to check the type unmarshalled properly. + + * dlls/msi/streams.c, dlls/msi/table.c: + msi: Fix several memory leaks after using IEnumSTATSTG_Next. + The pwcsName field of STATSTG must be freed, otherwise the memory will + be leaked. + + * dlls/hlink/extserv.c: + hlink: Fix memory leak by freeing extension services This->headers in the + release function. + +2007-12-25 Reece H. Dunn + + * dlls/user32/spy.c: + user32: Added the new Vista messages to spy. + + * include/winuser.h: + include: Added the new Vista messages. + +2007-12-25 Rob Shearman + + * dlls/ole32/moniker.c, include/wine/irot.idl, programs/rpcss/irotp.c: + rpcss: Use context handles to automatically free running object table entries + if the client process quits without calling IrotRevoke. + + * tools/widl/typegen.c: + widl: Add support for generating code for out-only context handles by calling + NdrContextHandleInitialize. + + * dlls/rpcrt4/tests/server.c, dlls/rpcrt4/tests/server.idl: + rpcrt4: Add tests for low-level context handle functions. + + * dlls/rpcrt4/ndr_contexthandle.c, dlls/rpcrt4/rpc_assoc.c, + dlls/rpcrt4/rpc_assoc.h: + rpcrt4: Implement low-level context handle support. + Server context handles are tracked from associations as their lifetime + is determined by the lifetime of the association. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Implement higher-level NDR server context handle functions. + Implement NdrServerContextMarshall and NdrServerContextNewMarshall on + top of NDRSContextMarshall2. Implement NdrContextHandleInitialize, + NdrServerContextUnmarshall and NdrServerContextNewUnmarshall on top of + NDSContextUnmarshall2. + + * dlls/rpcrt4/Makefile.in, dlls/rpcrt4/ndr_contexthandle.c, + dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Move low-level NDR context handle functions to a separate file. + + * include/d3d10.idl, include/msinkaut.idl, include/oleacc.idl, + include/wine/irot.idl: + include: Remove semi-colons from the end of cpp_quote statements as MIDL + likes them. + + * tools/widl/typegen.c: + widl: Fix pointer detection in structures and arrays. + write_embedded_types doesn't descend into all types contained by the + array or structure, so create a new function, type_has_pointers, for the + purpose of descending into all types and returning whether or not + pointers are present. + +2007-12-26 Alexandre Julliard + + * dlls/wintab32/context.c: + wintab32: Fix debug traces to use wine_dbg_sprintf. + +2007-12-24 Jeremy White + + * dlls/wintab32/context.c: + wintab32: Fix the W->A translation for CSR_NAME and CSR_BTNNAMES. + Has the lovely side effect of making Photoshop pressure + tilt work. + + * dlls/winex11.drv/wintab.c: + wintab32: Capture the number of buttons earlier, allowing our button maps to + be filled in. + + * dlls/winex11.drv/wintab.c: + wintab32: Implement the ability to return the number of devices and cursors. + + * dlls/winex11.drv/wintab.c: + wintab32: Don't return information for non existent cursors. + +2007-12-23 Jeremy White + + * dlls/winex11.drv/wintab.c: + wintab32: Correctly handle devices with a device id of 0. + The XInput macros such as DeviceMotionNotify will correctly return an eventclass + of 0 + if the device id is 0. Given that, we cannot use eventclass != 0 as a meaningful + test, and must instead use the returned type. + + * dlls/winex11.drv/wintab.c: + wintab32: Compute our physical device characteristics based on the first tablet + device that looks like a stylus. + Otherwise, we may be computing based on a mouse or cursor, and then + come to incorrect values for our tilt and pressure settings. + + * dlls/winex11.drv/wintab.c: + wintab32: Add additional device tracing. + + * dlls/winex11.drv/wintab.c: + wintab32: Order the cursor array by the standard Wacom promulgates. + +2007-12-24 Jeremy White + + * dlls/winex11.drv/wintab.c: + wintab32: Add constants for cursor types and use them. + +2007-12-24 Maarten Lankhorst + + * dlls/winealsa.drv/mixer.c: + winealsa: Add special case for microphone source in mixer. + Some microphones don't have a capture control, but a playback control + instead. So use the playback volume, but still register it as capture + volume. + +2007-12-24 Jacek Caban + + * dlls/mshtml/mshtml_private.h, dlls/mshtml/navigate.c, + dlls/mshtml/persist.c, dlls/mshtml/task.c: + mshtml: Use IBindCtx passed to Load in BindToStorage call. + + * dlls/urlmon/tests/url.c: + urlmon: Fixed BindToObject tests. + + * dlls/urlmon/tests/protocol.c: + urlmon: Added more binding tests. + + * dlls/urlmon/bindprot.c: + urlmon: Added more BindProtocol::ReportProgress implementation. + + * dlls/urlmon/bindprot.c: + urlmon: Added BindProtocol::[Un]LockRequest. + + * dlls/urlmon/bindprot.c: + urlmon: Added BindProtocol::Continue implementation. + + * dlls/urlmon/bindprot.c: + urlmon: Added BindProtocol::Switch implementation. + + * dlls/urlmon/bindprot.c: + urlmon: Added IServiceProvider implementation to BindProtocol object. + + * dlls/urlmon/bindprot.c: + urlmon: Added BindProtocol::GetBindString implementation. + + * dlls/urlmon/bindprot.c, dlls/urlmon/tests/protocol.c: + urlmon: Fixed protocol tests. + +2007-12-23 Jeremy White + + * dlls/winex11.drv/wintab.c: + wintab32: Do not offset the physical device id by the cursor number. + + * dlls/winex11.drv/wintab.c: + wintab32: Store and use the physical device id to match device to cursor. + +2007-12-24 Alistair Leslie-Hughes + + * dlls/msxml3/tests/domdoc.c: + msxml3: Fix memory leaks in tests. + +2007-12-24 Alexander Dorofeyev + + * dlls/ole32/compobj.c: + ole32: Fix wrong timeout check. + +2007-12-23 Eric Pouech + + * dlls/ntdll/heap.c, dlls/ntdll/signal_i386.c, loader/kthread.c: + valgrind: Made Wine compliant will latest Valgrind macros (the one removed + from 3.3.0 and deprecated since 3.2.0). + +2007-12-22 Rob Shearman + + * tools/widl/typegen.c: + widl: Fix the generation of temporary variables for declared arrays. + These need to include their array part so use var->type instead of + var->ref->type. + +2007-12-21 Andrew Talbot + + * dlls/msi/format.c: + msi: Remove unneeded cast. + + * dlls/msvcrt/file.c: + msvcrt: Remove unneeded cast. + + * dlls/msacm32/driver.c, dlls/msacm32/pcmconverter.c: + msacm32: Remove unneeded casts. + +2007-12-23 Stefan Leichter + + * dlls/kernel32/cpu.c: + kernel32: Silence a fixme in GetNativeSystemInfo. + + * dlls/gdiplus/gdiplus.spec, dlls/gdiplus/graphics.c, + include/gdiplusflat.h: + gdiplus: Partly implement GdipCreateFromHDC2 + +2007-12-22 Johannes Stezenbach + + * dlls/ws2_32/socket.c: + ws2_32: Set *res = NULL for error return from WS_getaddrinfo(). + + * dlls/wininet/urlcache.c: + wininet: Fix error return code in FindFirstUrlCacheEntryW() stub. + + * dlls/wininet/internet.c: + wininet: Implement support for INTERNET_OPTION_VERSION in InternetQueryOptionW. + +2007-12-22 Peter Oberndorfer + + * dlls/gdi32/palette.c: + gdi32: Fix a comment typo. + + * dlls/winex11.drv/text.c: + winex11: Remove unused SWAP_INT macro. + +2007-12-21 James Hawkins + + * dlls/msi/dialog.c: + msi: Allow whitespace after the property name when setting a property in + the dialog. + + * dlls/msi/tests/db.c, dlls/msi/where.c: + msi: Allow the not-equal operator in WHERE query string comparisons. + + * dlls/msi/table.c, dlls/msi/tests/db.c: + msi: Fix deleting temporary rows, with tests. + +2007-12-22 Rob Shearman + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Set pStubMsg->BufferMark in NdrConformantVaryingArrayUnmarshall and + NdrVaryingArrayUnmarshall. + pStubMsg->BufferMark should always be set before + EmbeddedPointerUnmarshall is called and these functions didn't + previously do so. + +2007-12-22 Andrey Turkin + + * dlls/dbghelp/minidump.c: + dbghelp: Adjust minidump streams ordering and sizing. + To more closely match native format; this is required for windbg. + +2007-12-23 Alexandre Julliard + + * dlls/kernel32/instr.c, dlls/kernel32/kernel_private.h, + dlls/winedos/dosexe.h, dlls/winedos/interrupts.c: + winedos: Add the possibility of refusing to emulate some interrupts. + + * dlls/kernel32/process.c: + kernel32: Initialize MaximumLength of the user params directory too. + +2007-12-21 Alexandre Julliard + + * dlls/kernel32/heap.c: + kernel32: Yet another workaround for broken apps in GlobalMemoryStatus. + +2007-12-20 Kirill K. Smirnov + + * dlls/kernel32/console.c: + kernel32: Invalidate local copy of console input event handle while reallocating + console. + +2007-12-20 Lei Zhang + + * dlls/quartz/filtergraph.c, dlls/quartz/tests/misc.c: + quartz: Make filtergraph aggregatable. + + * dlls/quartz/tests/Makefile.in, dlls/quartz/tests/misc.c, + dlls/quartz/tests/videorenderer.c: + quartz: Move aggregation tests into separate file. + +2007-12-19 Alexander Dorofeyev + + * dlls/wined3d/device.c: + wined3d: Use IWineD3DDeviceImpl_ClearSurface in IWineD3DDeviceImpl_Clear. + + * dlls/wined3d/device.c, dlls/wined3d/surface.c, + dlls/wined3d/wined3d_private.h: + wined3d: Rewrite IWineD3DSurfaceImpl_BltOverride colorfill codepath. + +2007-12-20 Andrey Turkin + + * dlls/kernel32/sync.c, dlls/kernel32/tests/sync.c, dlls/ntdll/ntdll.spec, + dlls/ntdll/threadpool.c, include/winternl.h: + ntdll: Implement BindIoCompletionCallback. + +2007-12-20 Zhangrong Huang + + * dlls/secur32/secur32.c: + secur32: Fix possible crash while loading SSP providers from registry. + + * dlls/gdi32/gdiobj.c, dlls/winex11.drv/xfont.c: + gdi32, winex11.drv: Correct default Chinese font name. + +2007-12-20 Stefan Dösinger + + * dlls/d3d9/tests/vertexdeclaration.c: + d3d9: Accept D3DDEVTYPE_REF devices in the vertex declaration test. + + * dlls/d3d9/tests/visual.c, dlls/wined3d/state.c, + dlls/wined3d/vertexbuffer.c: + wined3d: Implement and test vertex fixups with per stream offsets. + + * dlls/d3d9/tests/device.c, dlls/wined3d/device.c: + wined3d: Per stream offsets are 4 byte aligned. + + * dlls/d3d9/tests/vertexdeclaration.c, dlls/d3d9/vertexdeclaration.c, + dlls/wined3d/device.c, dlls/wined3d/vertexbuffer.c, + dlls/wined3d/vertexdeclaration.c: + wined3d: Vertex attributes are 4 byte aligned. + + * dlls/d3d9/tests/visual.c: + wined3d: Add a test for POSITIONT vertex fixups. + +2007-12-19 Stefan Dösinger + + * dlls/wined3d/device.c: + wined3d: Improve some traces. + + * dlls/d3d9/tests/visual.c: + d3d9: Extend the fixed function vertex declaration test. + +2007-12-21 Stefan Dösinger + + * dlls/wined3d/vertexbuffer.c, dlls/wined3d/wined3d_private.h: + wined3d: Change the vertex buffer declaration's data format. + This hopefully makes the vertex attribute detection simpler, more solid, + readable and flexible. + +2007-12-19 Stefan Dösinger + + * dlls/wined3d/device.c, dlls/wined3d/drawprim.c, dlls/wined3d/state.c, + dlls/wined3d/vertexbuffer.c, dlls/wined3d/wined3d_private.h: + wined3d: Implement half float vertex buffer conversion. + +2007-12-21 Michael Jung + + * dlls/ole32/moniker.c: + ole32: Avoid leaving a critical section twice. + +2007-12-21 Rob Shearman + + * tools/widl/typegen.c: + widl: Tweak the rules for when to call pfnFree for arrays. + Varying arrays that aren't unmarshalled shouldn't be freed, but + conformant arrays that aren't unmarshalled should. + +2007-12-21 Alexandre Julliard + + * dlls/kernel32/process.c: + kernel32: Store the initial directory as a full path in the process parameters. + +2007-12-20 Rob Shearman + + * dlls/kernel32/tests/virtual.c: + kernel32: Add a test for calling VirtualAlloc on a view of a SEC_RESERVE + file mapping. + + * dlls/rpcrt4/tests/server.c: + rpcrt4: Fix a memory leak from the get_filename call in the server tests. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Print an error if stub buffer pointer is passed into + safe_copy_from_buffer. + Also print an error message if there was an overflow. + +2007-12-20 Kirill K. Smirnov + + * programs/winhelp/winhelp.c: + winhelp: When we reuse window structure, old brush should not be reused. + +2007-12-20 Alex Villacís Lasso + + * dlls/comdlg32/filedlg31.c: + comdlg32: Fix another regression in 3.1-style file dialog from LB_DIR fix. + +2007-12-20 Andrew Talbot + + * dlls/mciseq/mcimidi.c: + mciseq: Remove unneeded casts. + + * dlls/mciavi32/mciavi.c, dlls/mciavi32/mmoutput.c: + mciavi32: Remove unneeded casts. + + * dlls/kernel32/local16.c: + kernel32: Revert the removal of a cast from a macro. + + * dlls/mapi32/imalloc.c, dlls/mapi32/prop.c: + mapi32: Remove unneeded casts. + + * dlls/kernel32/thunk.c, dlls/kernel32/toolhelp.c: + kernel32: Remove unneeded casts. + +2007-12-20 Huw Davies + + * dlls/inetcomm/mimeole.c, dlls/inetcomm/tests/mimeole.c: + inetcomm: Implement IMimeBody_GetOffsets. + +2007-12-20 Ivan Sinitsin + + * programs/winefile/winefile.c: + winefile: Save font settings in registry. + +2007-12-20 Alexandre Julliard + + * dlls/ntdll/relay.c: + ntdll: Increase the buffer size dynamically for relay debug lists. + + * dlls/advapi32/service.c: + advapi32: Start non-interactive services in a separate window station. + + * programs/explorer/desktop.c: + explorer: It no longer needs to be made a system process. + + * server/process.c: + server: Don't give out full access to the system process event. + + * server/process.c: + server: Don't count system processes as users of a desktop. + + * include/Makefile.in, include/ddk/mountmgr.h: + include: Added the mountmgr.h header. + + * tools/wine.inf: + wine.inf: Mark the spool service as disabled, it's just a stub. + + * programs/wineboot/wineboot.c: + wineboot: Convert the rest of the code to Unicode. + Fix Windows File Protection handling to use the correct system directory. + + * programs/wineboot/wineboot.c: + wineboot: Rewrite wininit.ini processing to use + GetPrivateProfileSectionW. Convert to Unicode. + + * programs/wineboot/wineboot.c: + wineboot: Add support for starting NT-style services. + + * programs/wineboot/wineboot.c: + wineboot: Simplify the unnecessarily complex code structure. + + * dlls/advapi32/security.c, dlls/advapi32/service.c: + advapi32: Move the EnumDependentServicesA/W stubs in service.c where they belong. + Make the stubs return success. + +2007-12-19 Roy Shea + + * dlls/qmgr/Makefile.in, dlls/qmgr/qmgr.c, dlls/qmgr/qmgr.h: + qmgr: AddRef, QueryInterface, and stub functions for queue manager interface. + +2007-12-20 Alexandre Julliard + + * dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, + dlls/ntdll/signal_sparc.c, dlls/ntdll/signal_x86_64.c, + server/thread.c: + server: Use SIGQUIT instead of SIGTERM to terminate a thread. + This allows keeping the default SIGTERM behavior of killing the whole + process. + + * dlls/kernel32/instr.c, dlls/winedos/interrupts.c: + kernel32: Forward interrupts in 32-bit code to winedos too. + +2007-12-20 Dmitry Timoshkov + + * dlls/riched20/reader.c: + riched20: Remove a redundant parameter from trace. + +2007-12-20 James Hawkins + + * dlls/msi/dialog.c: + msi: The BS_GROUPBOX style should only be used if the HasBorder attribute is set. + +2007-12-20 Rob Shearman + + * dlls/ole32/rpc.c: + ole32: Fix RPC_GetLocalClassObject to wait for 30 seconds, even if messages + arrive while we are waiting. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Fix NdrConformantStringUnmarshall to always increment the buffer + during unmarshalling. + safe_copy_from_buffer has the side-effect of incrementing the buffer and + this still needs to be done when we point the memory into the buffer. + (Thanks to Maarten Lankhorst for finding the mistake and suggesting a fix.) + +2007-12-19 Stefan Dösinger + + * dlls/d3d9/tests/visual.c, dlls/wined3d/drawprim.c: + wined3d: Add a test for 16 bit floats. + + * dlls/wined3d/device.c, dlls/wined3d/directx.c, dlls/wined3d/utils.c, + dlls/wined3d/wined3d_private.h, include/wine/wined3d_gl.h: + wined3d: Move the GL info structure into the adapter. + + * dlls/wined3d/vertexbuffer.c, dlls/wined3d/wined3d_private.h: + wined3d: Fix vertex buffers based on type, not semantic. + + * dlls/d3d9/tests/visual.c, dlls/wined3d/directx.c, + dlls/wined3d/drawprim.c, dlls/wined3d/state.c, + dlls/wined3d/wined3d_private.h: + wined3d: Fixed function vertex attribute types are flexible. + +2007-12-20 Stefan Dösinger + + * dlls/wined3d/drawprim.c, dlls/wined3d/state.c, + dlls/wined3d/vertexdeclaration.c, dlls/wined3d/wined3d_private.h: + wined3d: Store if half float conversion is needed in the decl. + +2007-12-18 Stefan Dösinger + + * dlls/wined3d/device.c: + wined3d: Always dump the fbo state on errors. + +2007-12-20 Dmitry Timoshkov + + * dlls/user32/sysparams.c, dlls/user32/tests/monitor.c, + dlls/winex11.drv/settings.c: + user32: Add a test for an invalid DEVMODE passed to ChangeDisplaySettings, + make it pass under Wine. + + * dlls/gdi32/driver.c, dlls/gdi32/tests/dc.c: + gdi32: Add a test for minimal acceptable DEVMODEA size, make it pass under Wine. + +2007-12-20 James Hawkins + + * dlls/msi/custom.c: + msi: Initialize a default COM apartment for custom actions. + + * dlls/msi/package.c: + msi: Allow NULL parameters to be passed to the local MsiSetProperty. + +2007-12-19 Andrew Riedi + + * dlls/gdiplus/gdiplus.spec, dlls/gdiplus/image.c: + gdiplus: Add GdipCreateHBITMAPFromBitmap() stub. + +2007-12-19 Rico Schüller + + * dlls/wined3d/state.c: + wined3d: Fix some typos. + +2007-12-19 Andrew Talbot + + * dlls/kernel32/ne_module.c, dlls/kernel32/ne_segment.c, + dlls/kernel32/resource.c: + kernel32: Remove unneeded casts. + +2007-12-19 Alex Villacís Lasso + + * dlls/user32/dialog.c, dlls/user32/tests/listbox.c: + user32: Fix regression in DlgDirList caused by modified LB_DIR return behavior, + with tests. + +2007-12-19 Rob Shearman + + * dlls/rpcrt4/ndr_ole.c: + rpcrt4: Don't use BufferEnd in RpcStream_Write. + It is usually used during marshalling, where pStubMsg->BufferStart and + pStubMsg->BufferEnd won't be valid. Replace it with a check using + RpcMsg->Buffer and pStubMsg->BufferLength. + + * dlls/rpcrt4/tests/server.c, dlls/rpcrt4/tests/server.idl: + rpcrt4: Initialise memory passed into RPCs in the server test. + aligns contains padding, but the memory is marshalled in one block so + call memset to avoid Valgrind warnings. padded and padded2 are + marshalled as complex types so this is not required here. + Initialise the dummy member of test_list_t to zero for the TL_NULL case. + Change the type to the smallest available to not waste buffer space. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Memory should only be cleared in ComplexUnmarshall, not in + ComplexMarshall. + Also clear memory when FC_STRUCTPAD* is encountered. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Fix the ALIGN_POINTER_CLEAR macro. + + * tools/widl/typegen.c: + widl: Fix the length used when clearing alignment space in generated files. + Only do the clearing when marshalling a base type. + + * tools/widl/typegen.c: + widl: The detection of types is highly dependent on the ordering of the various + type detection functions. + Therefore, needs_freeing would have to duplicate a lot of + write_remoting_arg in order to get the detection right. Because of + this, it is easier and will cause less problems in the future to + simply move the logic of needs_freeing into write_remoting_arg in the + appropriate handling code for the detected type. + +2007-12-19 Alexandre Julliard + + * dlls/advapi32/service.c: + advapi32: Return from StartServiceCtrlDispatcher when all services are stopped. + + * dlls/advapi32/service.c: + advapi32: Replace the list of services with an array. + + * dlls/advapi32/service.c: + advapi32: Use exponential backoff when waiting for a service to start. + + * dlls/advapi32/advapi32.spec: + advapi32: Fix RegisterServiceCtrlHandler spec entry. + + * dlls/advapi32/service.c: + advapi32: Reimplement RegisterServiceCtrlHandler on top of + RegisterServiceCtrlHandlerEx. + +2007-12-17 Roy Shea + + * .gitignore, dlls/qmgr/Makefile.in, dlls/qmgr/qmgr_local.idl: + qmgr: Generate C file with local GUID definitions from bits.idl. + +2007-12-19 Dmitry Timoshkov + + * include/winnt.h: + include: Add CONTEXT86_EXTENDED_REGISTERS and CONTEXT86_ALL definitions. + + * dlls/user32/combo.c: + user32: Set the edit text in a combobox only if combobox has strings. + + * dlls/user32/button.c: + user32: Make sure to setup clipping before any painting is done. + + * dlls/gdi32/driver.c: + gdi32: In the calculations use a fixed dmSize, not a passed in (possibly too + large) one. + + * dlls/gdi32/tests/dc.c: + gdi32: When compiling with PSDK headers request latest DEVMODE definition. + +2007-12-18 Stefan Dösinger + + * dlls/wined3d/surface.c: + wined3d: Implement texture -> swapchain blits with stretch_rect_fbo. + +2007-12-16 Stefan Dösinger + + * dlls/wined3d/surface.c: + wined3d: Some improvements for SFLAG_CONVERTED checking. + We can check this flag before setting up the gl lock, and add the + surface format to the FIXME. + +2007-12-17 Stefan Dösinger + + * dlls/wined3d/drawprim.c, dlls/wined3d/state.c, + dlls/wined3d/vertexdeclaration.c, dlls/wined3d/wined3d_private.h: + wined3d: Emulate half float vertices if GL_NV_half_float is not there. + +2007-12-18 Stefan Dösinger + + * dlls/wined3d/surface.c: + wined3d: Implement blits from the active render target to swapchains. + +2007-12-19 Michael Stefaniuc + + * dlls/gdi32/region.c: + gdi32: There is no need to cast NULL to a function pointer. + +2007-12-18 Michael Stefaniuc + + * dlls/secur32/tests/schannel.c: + secur32/tests: InitFunctionPtrs() needs to use the global crypt32dll variable. + +2007-12-18 James Hawkins + + * dlls/msi/table.c: + msi: Free the ordering information. + +2007-12-18 Andrew Talbot + + * dlls/kernel32/local16.c, dlls/kernel32/module.c: + kernel32: Remove unneeded casts. + +2007-12-18 Kirill K. Smirnov + + * dlls/kernel32/console.c: + kernel32: ReadConsoleW should wait for at least one character before returning. + +2007-12-18 Huw Davies + + * dlls/inetcomm/mimeole.c, dlls/inetcomm/tests/mimeole.c: + inetcomm: Unquote parameter values. + + * dlls/inetcomm/mimeole.c, dlls/inetcomm/tests/mimeole.c: + inetcomm: Implement IMimeBody_GetParameters. + +2007-12-18 Rob Shearman + + * dlls/rpcrt4/rpc_binding.h, dlls/rpcrt4/rpc_server.c, + dlls/rpcrt4/rpcrt4_main.c: + rpcrt4: Implement I_RpcGetCurrentCallHandle. + + * dlls/mscoree/mscoree.spec, dlls/mscoree/mscoree_main.c: + mscoree: Add a stub for GetVersionFromProcess. + +2007-12-18 Rico Schüller + + * dlls/kernel32/sync.c: + kernel32: Fix typo. + + * dlls/comdlg32/fontdlg.c: + comdlg32: Fix typo. + +2007-12-18 Alexandre Julliard + + * dlls/user32/user_main.c: + user32: Set the WSF_VISIBLE flag on the main window station. + + * dlls/ntoskrnl.exe/ntoskrnl.c: + ntoskrnl.exe: Allow returning data in ioctls along with a positive non-zero + status. + + * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, + include/ddk/wdm.h: + ntoskrnl.exe: Added implementation for IoCreateDriver and IoDeleteDriver. + + * server/async.c: + server: Fix possible NULL dereference. + +2007-12-17 Andrey Turkin + + * dlls/ntdll/tests/file.c, server/async.c, server/fd.c, server/file.h: + server: Store I/O completion information in async structure. + This is to allow completions to be sent on handle close. Also this can + be helpful for AcceptEx/TransmitFile implementation. + +2007-12-17 Kirill K. Smirnov + + * dlls/ws2_32/socket.c: + ws2_32: Fix flags conversion in getnameinfo() function. + +2007-12-18 Francois Gouget + + * configure, configure.ac: + configure: Work around an Xcode 3.0 bug when detecting the libGL library. + +2007-12-18 Francois Gouget + + * dlls/comctl32/commctrl.c, dlls/d3d9/tests/device.c, dlls/gdi32/font.c, + dlls/shell32/shfldr_unixfs.c: + Assorted spelling fixes. + +2007-12-17 David Adam + + * dlls/d3dx8/d3dx8.spec, dlls/d3dx8/math.c: + d3dx8: Implement D3DXCreateMatrixStack. + +2007-12-18 David Adam + + * dlls/d3dx8/d3dx8_private.h, dlls/d3dx8/math.c: + d3dx8: Add basic functions and stubs for MatrixStack. + +2007-12-17 David Adam + + * dlls/d3dx8/d3dx8_main.c, dlls/d3dx8/d3dx8_private.h, + dlls/d3dx8/d3dx8core_private.h, dlls/d3dx8/d3dxbuffer.c: + d3dx8: Rename d3dx_core_private.h to d3dx8_private.h. + + * dlls/dxguid/dx8guid.c, include/d3dx8math.h: + d3dx8: Add definition for MatrixStack. + +2007-12-16 Stefan Dösinger + + * dlls/wined3d/surface.c: + wined3d: Split up the render target -> render target blit. + +2007-12-15 Stefan Dösinger + + * dlls/d3d9/tests/visual.c, dlls/wined3d/directx.c, + dlls/wined3d/surface.c, dlls/wined3d/utils.c, + dlls/wined3d/wined3d_private.h: + wined3d: Implement D3DFMT_G16R16. + +2007-12-17 Stefan Dösinger + + * dlls/kernel32/tests/sync.c: + kernel32: Add a test for BindIoCompletionCallback. + +2007-12-15 Stefan Dösinger + + * dlls/wined3d/glsl_shader.c: + wined3d: Filter out some shader compilation spam. + +2007-12-18 Kirill K. Smirnov + + * server/console.c: + server: Properly notify renderer while activating another screen buffer. + +2007-12-18 Dmitry Timoshkov + + * dlls/gdi32/driver.c, dlls/gdi32/tests/dc.c: + gdi32: Add a GdiConvertToDevmodeW test, make it pass under Wine. + +2007-12-18 Huw Davies + + * dlls/inetcomm/mimeole.c: + inetcomm: Fix spelling typo. + + * dlls/inetcomm/inetcomm.spec, dlls/inetcomm/inetcomm_main.c, + dlls/inetcomm/inetcomm_private.h, dlls/inetcomm/mimeole.c, + dlls/inetcomm/regsvr.c, dlls/inetcomm/tests/mimeole.c: + inetcomm: Add IMimeAllocator implementation. + +2007-12-14 Huw Davies + + * include/mimeole.idl: + include: Add IMimeAllocator. + +2007-12-15 Stefan Dösinger + + * dlls/wined3d/vertexshader.c: + wined3d: Ignore tesselated and unused streams when comparing attribs. + +2007-12-14 Stefan Dösinger + + * dlls/wined3d/glsl_shader.c: + wined3d: Correct a pixel shader version comparison. + +2007-12-13 Stefan Dösinger + + * dlls/wined3d/swapchain.c: + wined3d: Disable the SWAPEFFECT_DISCARD clear. + +2007-12-08 Stefan Dösinger + + * dlls/d3d9/tests/visual.c: + d3d9: Add a note about a breakage in the refrast. + + * dlls/d3d9/tests/visual.c: + d3d9: Remove a few more incorrect D3DLOCK_DISCARDs. + +2007-12-18 Peter Beutner + + * dlls/d3d9/d3d9.spec, dlls/d3d9/d3d9_main.c: + d3d9: Add stub for Direct3DShaderValidatorCreate9(). + +2007-12-18 Francois Gouget + + * dlls/dinput/device.c, dlls/dinput/dinput_main.c: + dinput: Make _dump_cooperativelevel_DI() and _dump_EnumDevices_dwFlags() + more self-contained. + + * dlls/oleaut32/tests/Makefile.in, dlls/oleaut32/tests/typelib.c: + oleaut32/tests: Avoid SHDeleteKeyW() because shlwapi.dll is missing on + Windows 95. + + * dlls/shell32/tests/shlfileop.c: + shell32/tests: Use GetProcAddress() on SHFileOperationW() because it is missing + on Windows 95. + + * dlls/shell32/tests/systray.c: + shell32/tests: Use GetProcAddress() on Shell_NotifyIconW() because it is + missing on Windows 95. + + * dlls/shell32/tests/shlfolder.c: + shell32/tests: Use GetProcAddress() on SHGetPathFromIDListW() because it is + missing on Windows 95. + + * dlls/shell32/tests/Makefile.in, dlls/shell32/tests/shellpath.c, + dlls/shell32/tests/shlfolder.c: + shell32/tests: Copy the PathRemoveBackslashA() and PathAddBackslashW() + implementations because shlwapi.dll is missing on Windows 95. + + * dlls/shell32/tests/shlexec.c: + shell32/tests: Avoid SHDeleteKeyA() because shlwapi.dll is missing on Windows 95. + + * dlls/secur32/tests/Makefile.in, dlls/secur32/tests/schannel.c: + secur32/tests: Dynamically load various APIs and don't link with crypt32.dll + to make the test run on Windows 95. + + * dlls/msi/package.c: + msi: Add a trailing '\n' to Wine traces. + + * dlls/user32/tests/sysparams.c: + user32/tests: Use GetProcAddress() on ChangeDisplaySettingsExA() because it + is missing on Windows 95. + +2007-12-17 James Hawkins + + * dlls/msi/Makefile.in, dlls/msi/alter.c, dlls/msi/create.c, + dlls/msi/distinct.c, dlls/msi/insert.c, dlls/msi/join.c, + dlls/msi/msipriv.h, dlls/msi/order.c, dlls/msi/query.h, + dlls/msi/select.c, dlls/msi/sql.y, dlls/msi/streams.c, + dlls/msi/table.c, dlls/msi/tests/db.c, dlls/msi/where.c: + msi: Sort each table of the join separately. + + * dlls/msi/tests/db.c: + msi: Test sorting a table using a column that is not selected. + +2007-12-17 Michael Stefaniuc + + * dlls/rpcrt4/rpc_assoc.c: + rpcrt4: Add missing LeaveCriticalSection. Found by Smatch. + +2007-12-17 Rob Shearman + + * include/rpcdcep.h: + include: Add some context handle defines to rpcdcep.h. + + * dlls/rpcrt4/rpc_server.c, dlls/rpcrt4/rpcrt4.spec: + rpcrt4: Add a stub for I_RpcGetCurrentCallHandle. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Don't copy memory from the buffer in NdrConformantStringUnmarshall if + we just pointed the memory pointer into the buffer. + (Reported by Dan Kegel.) + +2007-12-17 Kirill K. Smirnov + + * programs/winhelp/winhelp.c: + winhelp: Avoid any keywords comparision during lookup, store pointer to listbox + ITEMDATA instead. + + * programs/winhelp/hlpfile.c, programs/winhelp/hlpfile.h: + winhelp: Remember last added page. + +2007-12-17 Maarten Lankhorst + + * dlls/riched20/editor.c: + riched20: Fix bugs in EM_SETOPTIONS. + Add SELECTIONBAR to mask, and use settings rather then lParam. 2 subtle + bugs that prevent selectionbar from working. + +2007-12-17 Rob Shearman + + * dlls/winex11.drv/desktop.c, dlls/winex11.drv/event.c, + include/rpcasync.h: + include: Add more types and function declarations to the rpcasync.h header file. + Fix up a couple of conflicts with the Status field in the + RPC_EXTENDED_ERROR_INFO and the X Status define. + +2007-11-13 Francois Gouget + + * dlls/rpcrt4/rpcrt4_main.c, include/Makefile.in, include/rpc.h, + include/rpcasync.h: + rpcrt4: Add an rpcasync.h header stub and fix the RpcErrorStartEnumeration() + prototype. + +2007-12-17 Rob Shearman + + * include/rpcndr.h: + include: Add more NDR types and function declarations to rpcndr.h. + +2007-12-13 Dmitry Timoshkov + + * dlls/user32/button.c: + user32: Always clip the button painting to the client rectangle. + +2007-12-16 Alexander Dorofeyev + + * dlls/ddraw/surface.c: + ddraw: Fix incorrect WARN text. + +2007-12-14 Lionel Debroux + + * dlls/winspool.drv/info.c: + winspool: Fix memory leak (found by Smatch). + + * programs/winedevice/device.c: + winedevice: Fix memory leak (found by Smatch). + +2007-12-08 Stefan Dösinger + + * dlls/d3d9/tests/visual.c: + d3d9: Do not set NONE MIN and MAG filters. + + * dlls/d3d9/tests/visual.c: + d3d9: D3DLOCK_DISCARD is not valid on managed textures. + + * dlls/d3d9/tests/visual.c: + d3d9: The refrast returns an error on invalid clear rects. + +2007-12-14 Stefan Dösinger + + * dlls/gdi32/tests/bitmap.c, dlls/user32/tests/sysparams.c, + dlls/winex11.drv/bitmap.c, dlls/winex11.drv/desktop.c, + dlls/winex11.drv/settings.c, dlls/winex11.drv/x11drv_main.c, + dlls/winex11.drv/xrandr.c, dlls/winex11.drv/xvidmode.c: + winex11: Activate the depth-bpp difference. + +2007-12-16 Stefan Dösinger + + * dlls/winex11.drv/bitmap.c, dlls/winex11.drv/desktop.c, + dlls/winex11.drv/init.c, dlls/winex11.drv/settings.c, + dlls/winex11.drv/winpos.c, dlls/winex11.drv/x11drv.h, + dlls/winex11.drv/x11drv_main.c, dlls/winex11.drv/xrandr.c, + dlls/winex11.drv/xvidmode.c: + winex11: Distinguish between bpp and depth. + +2007-12-14 Rob Shearman + + * dlls/hlink/tests/hlink.c: + hlink: Fix some memory leaks in the tests. + +2007-12-16 Rob Shearman + + * dlls/rpcrt4/Makefile.in, dlls/rpcrt4/rpc_assoc.c, + dlls/rpcrt4/rpc_assoc.h, dlls/rpcrt4/rpc_binding.c, + dlls/rpcrt4/rpc_binding.h, dlls/rpcrt4/rpc_server.c, + dlls/rpcrt4/rpc_transport.c: + rpcrt4: Move association code into a separate file. + + * dlls/rpcrt4/rpc_binding.h, dlls/rpcrt4/rpc_message.c, + dlls/rpcrt4/rpc_message.h, dlls/rpcrt4/rpc_server.c, + dlls/rpcrt4/rpc_transport.c: + rpcrt4: Make a server association when a bind packet is received in the server. + Support handing out association group IDs. + + * dlls/rpcrt4/rpc_transport.c: + rpcrt4: Return an error from rpcrt4_conn_tcp_read if recv returns 0. + +2007-12-15 Rob Shearman + + * dlls/rpcrt4/ndr_marshall.c, dlls/rpcrt4/tests/ndr_marshall.c: + rpcrt4: Fix NdrConformantStringUnmarshall to use buffer memory if possible. + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Add a FIXME for RPC_FC_P_ALLOCALLNODES in PointerUnmarshall. + +2007-12-14 Rob Shearman + + * dlls/rpcrt4/ndr_marshall.c: + rpcrt4: Clear padding inserted into the buffer during marshalling because + of alignment. + +2007-12-15 Rob Shearman + + * include/wine/rpcfc.h: + include: Add definitions for RPC_FC_SSTRING and RPC_FC_C_SSTRING. + + * tools/widl/typegen.c: + widl: Only base types or reference pointers to base types don't need to be freed. + There are other cases where calls to Free functions can be omitted (such + as types always unmarshalled using buffer memory with no embedded + pointers), but these are easier dealt with inside the relevent case in + write_remoting_arg. + + * tools/widl/server.c: + widl: Return types shouldn't be freed. + +2007-12-14 Rob Shearman + + * tools/widl/typegen.c: + widl: Clear padding in the buffer due to alignment. + +2007-12-17 Alexandre Julliard + + * dlls/oleaut32/tests/vartest.c: + oleaut32/tests: Avoid relying on system-dependent rounding. + + * dlls/user32/clipboard.c, dlls/user32/user16.c: + Revert "user32: Moved some 16-bit functions." + This partially reverts commit 6e9fea22f82fe60624e1081d74ad990a5c428eed. + 16-bit and 32-bit clipboard handles aren't interchangeable. + +2007-12-17 Andrey Turkin + + * dlls/ntdll/tests/file.c, server/fd.c: + server: I/O completion ports can only be used with overlapped I/O. + +2007-12-17 Jacek Caban + + * dlls/urlmon/binding.c: + urlmon: Use flag to store protocol lock state. + + * dlls/shdocvw/tests/webbrowser.c: + shdocvw: Ignore Exec(CGID_Explorer, 66) calls in tests. + + * dlls/mshtml/editor.c, dlls/mshtml/htmlbody.c, dlls/mshtml/htmldoc5.c, + dlls/mshtml/htmlelem.c, dlls/mshtml/htmlelem2.c, + dlls/mshtml/htmlinput.c, dlls/mshtml/htmlnode.c, + dlls/mshtml/htmloption.c, dlls/mshtml/htmlselect.c, + dlls/mshtml/htmlstyle.c, dlls/mshtml/htmltextarea.c, + dlls/mshtml/mshtml_private.h, dlls/mshtml/nsembed.c, + dlls/mshtml/nsservice.c, dlls/mshtml/persist.c, + dlls/mshtml/txtrange.c: + mshtml: Remove not used argument in nsAString_GetData. + + * dlls/mshtml/mshtml_private.h, dlls/mshtml/nsembed.c, dlls/mshtml/nsio.c: + mshtml: Remove not used argument of nsACString_GetData. + +2007-12-16 James Hawkins + + * dlls/msi/dialog.c: + msi: Set the text color after calling the window proc. + + * dlls/msi/dialog.c: + msi: The line control has a height of exactly 2 device units. + + * dlls/msi/registry.c, dlls/msi/tests/msi.c: + msi: Return ERROR_INVALID_PARAMETER if the product list is empty and index is + not zero. + + * dlls/msi/registry.c, dlls/msi/tests/msi.c: + msi: Return ERROR_UNKNOWN_COMPONENT if no products exist. + + * dlls/msi/registry.c, dlls/msi/tests/msi.c: + msi: Also check the local system component key for the clients. + + * dlls/msi/registry.c, dlls/msi/tests/msi.c: + msi: Check the user component key for the clients. + + * dlls/msi/registry.c, dlls/msi/tests/msi.c: + msi: Validate the parameters of MsiEnumClients. + + * dlls/msi/registry.c, dlls/msi/tests/msi.c: + msi: Add tests for MsiEnumClients. + + * dlls/msi/appsearch.c: + msi: Simplify ExpandAnyPath. + + * dlls/msi/package.c, dlls/msi/tests/package.c: + msi: Verify that the PID_PAGECOUNT and PID_REVNUMBER summary info properties + exist. + + * dlls/msi/package.c, dlls/msi/tests/package.c: + msi: If the package doesn't exist, return ERROR_FILE_NOT_FOUND. + + * dlls/msi/package.c, dlls/msi/tests/package.c: + msi: Validate the parameters of MsiOpenPackage. + + * dlls/msi/package.c, dlls/msi/tests/package.c: + msi: Add more tests for MsiOpenPackage. + +2007-12-14 James Hawkins + + * dlls/msi/action.c: + msi: Release the record when loading the hash data. + +2007-12-14 Maarten Lankhorst + + * dlls/riched20/caret.c, dlls/riched20/editor.c, dlls/riched20/editstr.h, + dlls/riched20/ocr_reverse.cur, dlls/riched20/res.h, + dlls/riched20/version.rc, dlls/riched20/wrap.c: + riched20: Implement ECO/EM SELECTIONBAR. + +2007-12-14 Marcus Meissner + + * dlls/msi/dialog.c: + msi: Fixed buffer overflow in number parsing. + +2007-12-14 Alexandre Julliard + + * ANNOUNCE, ChangeLog, VERSION, configure: + Release 0.9.51. + +---------------------------------------------------------------- 2007-12-14 Alexandre Julliard * dlls/riched32/tests/editor.c: diff --git a/VERSION b/VERSION index 6d8e2ac3532..b4447a7a2ae 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Wine version 0.9.51 +Wine version 0.9.52 diff --git a/configure b/configure index 3b1466c2b3b..6aa83fd323f 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for Wine 0.9.51. +# Generated by GNU Autoconf 2.61 for Wine 0.9.52. # # Report bugs to . # @@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='Wine' PACKAGE_TARNAME='wine' -PACKAGE_VERSION='0.9.51' -PACKAGE_STRING='Wine 0.9.51' +PACKAGE_VERSION='0.9.52' +PACKAGE_STRING='Wine 0.9.52' PACKAGE_BUGREPORT='wine-devel@winehq.org' ac_unique_file="server/atom.c" @@ -1291,7 +1291,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Wine 0.9.51 to adapt to many kinds of systems. +\`configure' configures Wine 0.9.52 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1360,7 +1360,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Wine 0.9.51:";; + short | recursive ) echo "Configuration of Wine 0.9.52:";; esac cat <<\_ACEOF @@ -1456,7 +1456,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Wine configure 0.9.51 +Wine configure 0.9.52 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1470,7 +1470,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Wine $as_me 0.9.51, which was +It was created by Wine $as_me 0.9.52, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -21754,7 +21754,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Wine $as_me 0.9.51, which was +This file was extended by Wine $as_me 0.9.52, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21807,7 +21807,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -Wine config.status 0.9.51 +Wine config.status 0.9.52 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/dlls/mshtml/protocol.c b/dlls/mshtml/protocol.c index e70e78e9641..f70287091cb 100644 --- a/dlls/mshtml/protocol.c +++ b/dlls/mshtml/protocol.c @@ -251,6 +251,8 @@ static HRESULT WINAPI AboutProtocol_Start(IInternetProtocol *iface, LPCWSTR szUr IInternetBindInfo_GetBindInfo(pOIBindInfo, &grfBINDF, &bindinfo); ReleaseBindInfo(&bindinfo); + TRACE("bindf %x\n", grfBINDF); + if(strlenW(szUrl)>=sizeof(wszAbout)/sizeof(WCHAR) && !memcmp(wszAbout, szUrl, sizeof(wszAbout))) { text = szUrl + sizeof(wszAbout)/sizeof(WCHAR); if(!strcmpW(wszBlank, text)) @@ -449,9 +451,43 @@ static HRESULT WINAPI AboutProtocolInfo_QueryInfo(IInternetProtocolInfo *iface, QUERYOPTION QueryOption, DWORD dwQueryFlags, LPVOID pBuffer, DWORD cbBuffer, DWORD* pcbBuf, DWORD dwReserved) { - FIXME("%p)->(%s %08x %08x %p %d %p %d)\n", iface, debugstr_w(pwzUrl), QueryOption, dwQueryFlags, pBuffer, - cbBuffer, pcbBuf, dwReserved); - return E_NOTIMPL; + TRACE("%p)->(%s %08x %08x %p %d %p %d)\n", iface, debugstr_w(pwzUrl), QueryOption, dwQueryFlags, pBuffer, + cbBuffer, pcbBuf, dwReserved); + + switch(QueryOption) { + case QUERY_CAN_NAVIGATE: + return INET_E_USE_DEFAULT_PROTOCOLHANDLER; + + case QUERY_USES_NETWORK: + if(!pBuffer || cbBuffer < sizeof(DWORD)) + return E_FAIL; + + *(DWORD*)pBuffer = 0; + if(pcbBuf) + *pcbBuf = sizeof(DWORD); + + break; + + case QUERY_IS_CACHED: + FIXME("Unsupported option QUERY_IS_CACHED\n"); + return E_NOTIMPL; + case QUERY_IS_INSTALLEDENTRY: + FIXME("Unsupported option QUERY_IS_INSTALLEDENTRY\n"); + return E_NOTIMPL; + case QUERY_IS_CACHED_OR_MAPPED: + FIXME("Unsupported option QUERY_IS_CACHED_OR_MAPPED\n"); + return E_NOTIMPL; + case QUERY_IS_SECURE: + FIXME("Unsupported option QUERY_IS_SECURE\n"); + return E_NOTIMPL; + case QUERY_IS_SAFE: + FIXME("Unsupported option QUERY_IS_SAFE\n"); + return E_NOTIMPL; + default: + return E_FAIL; + } + + return S_OK; } static const IInternetProtocolInfoVtbl AboutProtocolInfoVtbl = { @@ -844,9 +880,30 @@ static HRESULT WINAPI ResProtocolInfo_QueryInfo(IInternetProtocolInfo *iface, LP QUERYOPTION QueryOption, DWORD dwQueryFlags, LPVOID pBuffer, DWORD cbBuffer, DWORD* pcbBuf, DWORD dwReserved) { - FIXME("%p)->(%s %08x %08x %p %d %p %d)\n", iface, debugstr_w(pwzUrl), QueryOption, dwQueryFlags, pBuffer, - cbBuffer, pcbBuf, dwReserved); - return E_NOTIMPL; + TRACE("%p)->(%s %08x %08x %p %d %p %d)\n", iface, debugstr_w(pwzUrl), QueryOption, dwQueryFlags, pBuffer, + cbBuffer, pcbBuf, dwReserved); + + switch(QueryOption) { + case QUERY_USES_NETWORK: + if(!pBuffer || cbBuffer < sizeof(DWORD)) + return E_FAIL; + + *(DWORD*)pBuffer = 0; + if(pcbBuf) + *pcbBuf = sizeof(DWORD); + break; + + case QUERY_IS_SECURE: + FIXME("not supporte QUERY_IS_SECURE\n"); + return E_NOTIMPL; + case QUERY_IS_SAFE: + FIXME("not supporte QUERY_IS_SAFE\n"); + return E_NOTIMPL; + default: + return INET_E_USE_DEFAULT_PROTOCOLHANDLER; + } + + return S_OK; } static const IInternetProtocolInfoVtbl ResProtocolInfoVtbl = { diff --git a/dlls/mshtml/tests/protocol.c b/dlls/mshtml/tests/protocol.c index 0164a526e1a..2e9d6e9b8c5 100644 --- a/dlls/mshtml/tests/protocol.c +++ b/dlls/mshtml/tests/protocol.c @@ -367,6 +367,52 @@ static void test_res_protocol(void) hres = IInternetProtocolInfo_CompareUrl(protocol_info, NULL, NULL, 0xdeadbeef); ok(hres == E_NOTIMPL, "CompareUrl failed: %08x\n", hres); + for(i=0; i<30; i++) { + if(i == QUERY_USES_NETWORK || i == QUERY_IS_SECURE || i == QUERY_IS_SAFE) + continue; + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, i, 0, + buf, sizeof(buf), &size, 0); + ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, + "QueryInfo(%d) returned: %08x, expected INET_E_USE_DEFAULT_PROTOCOLHANDLER\n", i, hres); + } + + size = 0xdeadbeef; + memset(buf, '?', sizeof(buf)); + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + buf, sizeof(buf), &size, 0); + ok(hres == S_OK, "QueryInfo(QUERY_USES_NETWORK) failed: %08x\n", hres); + ok(size == sizeof(DWORD), "size=%d\n", size); + ok(!*(DWORD*)buf, "buf=%d\n", *(DWORD*)buf); + + memset(buf, '?', sizeof(buf)); + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + buf, sizeof(buf), NULL, 0); + ok(hres == S_OK, "QueryInfo(QUERY_USES_NETWORK) failed: %08x\n", hres); + ok(!*(DWORD*)buf, "buf=%d\n", *(DWORD*)buf); + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + buf, 3, &size, 0); + ok(hres == E_FAIL, "QueryInfo(QUERY_USES_NETWORK) failed: %08x, expected E_FAIL\n", hres); + + size = 0xdeadbeef; + memset(buf, '?', sizeof(buf)); + hres = IInternetProtocolInfo_QueryInfo(protocol_info, NULL, QUERY_USES_NETWORK, 0, + buf, sizeof(buf), &size, 0); + ok(hres == S_OK, "QueryInfo(QUERY_USES_NETWORK) failed: %08x, expected E_FAIL\n", hres); + ok(hres == S_OK, "QueryInfo(QUERY_USES_NETWORK) failed: %08x\n", hres); + ok(size == sizeof(DWORD), "size=%d\n", size); + ok(!*(DWORD*)buf, "buf=%d\n", *(DWORD*)buf); + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + NULL, sizeof(buf), &size, 0); + ok(hres == E_FAIL, "QueryInfo(QUERY_USES_NETWORK) failed: %08x, expected E_FAIL\n", hres); + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, 60, 0, + NULL, sizeof(buf), &size, 0); + ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, + "QueryInfo failed: %08x, expected INET_E_USE_DEFAULT_PROTOCOLHANDLER\n", hres); + IInternetProtocolInfo_Release(protocol_info); } @@ -380,6 +426,12 @@ static void test_res_protocol(void) ok(hres == S_OK, "Could not get IInternetProtocol: %08x\n", hres); if(SUCCEEDED(hres)) { + IInternetPriority *priority; + + hres = IInternetProtocol_QueryInterface(protocol, &IID_IInternetPriority, (void**)&priority); + ok(hres == E_NOINTERFACE, + "QueryInterface(IInternetPriority) returned %08x, expected E_NOINTEFACE\n", hres); + test_protocol_fail(protocol, wrong_url1, E_INVALIDARG, FALSE); test_protocol_fail(protocol, wrong_url2, HRESULT_FROM_WIN32(ERROR_RESOURCE_TYPE_NOT_FOUND), FALSE); @@ -560,6 +612,54 @@ static void test_about_protocol(void) hres = IInternetProtocolInfo_CompareUrl(protocol_info, NULL, NULL, 0xdeadbeef); ok(hres == E_NOTIMPL, "CompareUrl failed: %08x\n", hres); + for(i=0; i<30; i++) { + switch(i) { + case QUERY_CAN_NAVIGATE: + case QUERY_USES_NETWORK: + case QUERY_IS_CACHED: + case QUERY_IS_INSTALLEDENTRY: + case QUERY_IS_CACHED_OR_MAPPED: + case QUERY_IS_SECURE: + case QUERY_IS_SAFE: + break; + default: + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, i, 0, + buf, sizeof(buf), &size, 0); + ok(hres == E_FAIL, "QueryInfo(%d) returned: %08x, expected E_FAIL\n", i, hres); + } + } + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_CAN_NAVIGATE, 0, + buf, sizeof(buf), &size, 0); + ok(hres == INET_E_USE_DEFAULT_PROTOCOLHANDLER, + "QueryInfo returned: %08x, expected INET_E_USE_DEFAULT_PROTOCOLHANDLER\n", hres); + + size = 0xdeadbeef; + memset(buf, '?', sizeof(buf)); + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + buf, sizeof(buf), &size, 0); + ok(hres == S_OK, "QueryInfo(QUERY_USES_NETWORK) failed: %08x\n", hres); + ok(size == sizeof(DWORD), "size=%d\n", size); + ok(!*(DWORD*)buf, "buf=%d\n", *(DWORD*)buf); + + memset(buf, '?', sizeof(buf)); + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + buf, sizeof(buf), NULL, 0); + ok(hres == S_OK, "QueryInfo(QUERY_USES_NETWORK) failed: %08x\n", hres); + ok(!*(DWORD*)buf, "buf=%d\n", *(DWORD*)buf); + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + buf, 3, &size, 0); + ok(hres == E_FAIL, "QueryInfo(QUERY_USES_NETWORK) failed: %08x, expected E_FAIL\n", hres); + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, QUERY_USES_NETWORK, 0, + NULL, sizeof(buf), &size, 0); + ok(hres == E_FAIL, "QueryInfo(QUERY_USES_NETWORK) failed: %08x, expected E_FAIL\n", hres); + + hres = IInternetProtocolInfo_QueryInfo(protocol_info, blank_url, 60, 0, + NULL, sizeof(buf), &size, 0); + ok(hres == E_FAIL, "QueryInfo failed: %08x, expected E_FAIL\n", hres); + IInternetProtocolInfo_Release(protocol_info); } @@ -573,6 +673,12 @@ static void test_about_protocol(void) ok(hres == S_OK, "Could not get IInternetProtocol: %08x\n", hres); if(SUCCEEDED(hres)) { + IInternetPriority *priority; + + hres = IInternetProtocol_QueryInterface(protocol, &IID_IInternetPriority, (void**)&priority); + ok(hres == E_NOINTERFACE, + "QueryInterface(IInternetPriority) returned %08x, expected E_NOINTEFACE\n", hres); + protocol_start(protocol, blank_url); hres = IInternetProtocol_LockRequest(protocol, 0); ok(hres == S_OK, "LockRequest failed: %08x\n", hres); diff --git a/dlls/urlmon/bindprot.c b/dlls/urlmon/bindprot.c index a41575caacb..f97fc4f9765 100644 --- a/dlls/urlmon/bindprot.c +++ b/dlls/urlmon/bindprot.c @@ -399,26 +399,26 @@ static const IInternetPriorityVtbl InternetPriorityVtbl = { #define PROTSINK_THIS(iface) DEFINE_THIS(BindProtocol, InternetProtocolSink, iface) -static HRESULT WINAPI InternetProtocolSink_QueryInterface(IInternetProtocolSink *iface, +static HRESULT WINAPI BPInternetProtocolSink_QueryInterface(IInternetProtocolSink *iface, REFIID riid, void **ppv) { BindProtocol *This = PROTSINK_THIS(iface); return IInternetProtocol_QueryInterface(PROTOCOL(This), riid, ppv); } -static ULONG WINAPI InternetProtocolSink_AddRef(IInternetProtocolSink *iface) +static ULONG WINAPI BPInternetProtocolSink_AddRef(IInternetProtocolSink *iface) { BindProtocol *This = PROTSINK_THIS(iface); return IInternetProtocol_AddRef(PROTOCOL(This)); } -static ULONG WINAPI InternetProtocolSink_Release(IInternetProtocolSink *iface) +static ULONG WINAPI BPInternetProtocolSink_Release(IInternetProtocolSink *iface) { BindProtocol *This = PROTSINK_THIS(iface); return IInternetProtocol_Release(PROTOCOL(This)); } -static HRESULT WINAPI InternetProtocolSink_Switch(IInternetProtocolSink *iface, +static HRESULT WINAPI BPInternetProtocolSink_Switch(IInternetProtocolSink *iface, PROTOCOLDATA *pProtocolData) { BindProtocol *This = PROTSINK_THIS(iface); @@ -428,7 +428,7 @@ static HRESULT WINAPI InternetProtocolSink_Switch(IInternetProtocolSink *iface, return IInternetProtocolSink_Switch(This->protocol_sink, pProtocolData); } -static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink *iface, +static HRESULT WINAPI BPInternetProtocolSink_ReportProgress(IInternetProtocolSink *iface, ULONG ulStatusCode, LPCWSTR szStatusText) { BindProtocol *This = PROTSINK_THIS(iface); @@ -453,7 +453,7 @@ static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink return E_NOTIMPL; } -static HRESULT WINAPI InternetProtocolSink_ReportData(IInternetProtocolSink *iface, +static HRESULT WINAPI BPInternetProtocolSink_ReportData(IInternetProtocolSink *iface, DWORD grfBSCF, ULONG ulProgress, ULONG ulProgressMax) { BindProtocol *This = PROTSINK_THIS(iface); @@ -463,7 +463,7 @@ static HRESULT WINAPI InternetProtocolSink_ReportData(IInternetProtocolSink *ifa return IInternetProtocolSink_ReportData(This->protocol_sink, grfBSCF, ulProgress, ulProgressMax); } -static HRESULT WINAPI InternetProtocolSink_ReportResult(IInternetProtocolSink *iface, +static HRESULT WINAPI BPInternetProtocolSink_ReportResult(IInternetProtocolSink *iface, HRESULT hrResult, DWORD dwError, LPCWSTR szResult) { BindProtocol *This = PROTSINK_THIS(iface); @@ -476,13 +476,13 @@ static HRESULT WINAPI InternetProtocolSink_ReportResult(IInternetProtocolSink *i #undef PROTSINK_THIS static const IInternetProtocolSinkVtbl InternetProtocolSinkVtbl = { - InternetProtocolSink_QueryInterface, - InternetProtocolSink_AddRef, - InternetProtocolSink_Release, - InternetProtocolSink_Switch, - InternetProtocolSink_ReportProgress, - InternetProtocolSink_ReportData, - InternetProtocolSink_ReportResult + BPInternetProtocolSink_QueryInterface, + BPInternetProtocolSink_AddRef, + BPInternetProtocolSink_Release, + BPInternetProtocolSink_Switch, + BPInternetProtocolSink_ReportProgress, + BPInternetProtocolSink_ReportData, + BPInternetProtocolSink_ReportResult }; #define SERVPROV_THIS(iface) DEFINE_THIS(BindProtocol, ServiceProvider, iface) @@ -530,7 +530,7 @@ static const IServiceProviderVtbl ServiceProviderVtbl = { HRESULT create_binding_protocol(LPCWSTR url, IInternetProtocol **protocol) { - BindProtocol *ret = heap_alloc(sizeof(BindProtocol)); + BindProtocol *ret = heap_alloc_zero(sizeof(BindProtocol)); ret->lpInternetProtocolVtbl = &BindProtocolVtbl; ret->lpInternetBindInfoVtbl = &InternetBindInfoVtbl; @@ -539,11 +539,6 @@ HRESULT create_binding_protocol(LPCWSTR url, IInternetProtocol **protocol) ret->lpInternetProtocolSinkVtbl = &InternetProtocolSinkVtbl; ret->ref = 1; - ret->protocol = NULL; - ret->bind_info = NULL; - ret->protocol_sink = NULL; - ret->service_provider = NULL; - ret->priority = 0; URLMON_LockModule(); diff --git a/dlls/urlmon/internet.c b/dlls/urlmon/internet.c index 66939df2ff0..b8168ab86c4 100644 --- a/dlls/urlmon/internet.c +++ b/dlls/urlmon/internet.c @@ -254,3 +254,47 @@ HRESULT WINAPI CoInternetCompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwCo return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags) ? S_FALSE : S_OK; } + +/*********************************************************************** + * CoInternetQueryInfo (URLMON.@) + * + * Retrieves information relevant to a specified URL + * + */ +HRESULT WINAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOption, + DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer, + DWORD dwReserved) +{ + IInternetProtocolInfo *protocol_info; + HRESULT hres; + + TRACE("(%s, %x, %x, %p, %x, %p, %x): stub\n", debugstr_w(pwzUrl), + QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer, dwReserved); + + protocol_info = get_protocol_info(pwzUrl); + + if(protocol_info) { + hres = IInternetProtocolInfo_QueryInfo(protocol_info, pwzUrl, QueryOption, dwQueryFlags, + pvBuffer, cbBuffer, pcbBuffer, dwReserved); + IInternetProtocolInfo_Release(protocol_info); + + return SUCCEEDED(hres) ? hres : E_FAIL; + } + + switch(QueryOption) { + case QUERY_USES_NETWORK: + if(!pvBuffer || cbBuffer < sizeof(DWORD)) + return E_FAIL; + + *(DWORD*)pvBuffer = 0; + if(pcbBuffer) + *pcbBuffer = sizeof(DWORD); + break; + + default: + FIXME("Not supported option %d\n", QueryOption); + return E_NOTIMPL; + } + + return S_OK; +} diff --git a/dlls/urlmon/session.c b/dlls/urlmon/session.c index 044b3ea690a..a63509c9b2a 100644 --- a/dlls/urlmon/session.c +++ b/dlls/urlmon/session.c @@ -31,7 +31,16 @@ typedef struct name_space { struct name_space *next; } name_space; +typedef struct mime_filter { + IClassFactory *cf; + CLSID clsid; + LPWSTR mime; + + struct mime_filter *next; +} mime_filter; + static name_space *name_space_list = NULL; +static mime_filter *mime_filter_list = NULL; static name_space *find_name_space(LPCWSTR protocol) { @@ -184,7 +193,6 @@ static HRESULT WINAPI InternetSession_RegisterNameSpace(IInternetSession *iface, const LPCWSTR *ppwzPatterns, DWORD dwReserved) { name_space *new_name_space; - int size; TRACE("(%p %s %s %d %p %d)\n", pCF, debugstr_guid(rclsid), debugstr_w(pwzProtocol), cPatterns, ppwzPatterns, dwReserved); @@ -199,13 +207,10 @@ static HRESULT WINAPI InternetSession_RegisterNameSpace(IInternetSession *iface, new_name_space = heap_alloc(sizeof(name_space)); - size = (strlenW(pwzProtocol)+1)*sizeof(WCHAR); - new_name_space->protocol = heap_alloc(size); - memcpy(new_name_space->protocol, pwzProtocol, size); - IClassFactory_AddRef(pCF); new_name_space->cf = pCF; new_name_space->clsid = *rclsid; + new_name_space->protocol = heap_strdupW(pwzProtocol); new_name_space->next = name_space_list; name_space_list = new_name_space; @@ -246,15 +251,49 @@ static HRESULT WINAPI InternetSession_UnregisterNameSpace(IInternetSession *ifac static HRESULT WINAPI InternetSession_RegisterMimeFilter(IInternetSession *iface, IClassFactory *pCF, REFCLSID rclsid, LPCWSTR pwzType) { - FIXME("(%p %s %s)\n", pCF, debugstr_guid(rclsid), debugstr_w(pwzType)); - return E_NOTIMPL; + mime_filter *filter; + + TRACE("(%p %s %s)\n", pCF, debugstr_guid(rclsid), debugstr_w(pwzType)); + + filter = heap_alloc(sizeof(mime_filter)); + + IClassFactory_AddRef(pCF); + filter->cf = pCF; + filter->clsid = *rclsid; + filter->mime = heap_strdupW(pwzType); + + filter->next = mime_filter_list; + mime_filter_list = filter; + + return S_OK; } static HRESULT WINAPI InternetSession_UnregisterMimeFilter(IInternetSession *iface, IClassFactory *pCF, LPCWSTR pwzType) { - FIXME("(%p %s)\n", pCF, debugstr_w(pwzType)); - return E_NOTIMPL; + mime_filter *iter, *prev = NULL; + + TRACE("(%p %s)\n", pCF, debugstr_w(pwzType)); + + for(iter = mime_filter_list; iter; iter = iter->next) { + if(iter->cf == pCF && !strcmpW(iter->mime, pwzType)) + break; + prev = iter; + } + + if(!iter) + return S_OK; + + if(prev) + prev->next = iter->next; + else + mime_filter_list = iter->next; + + IClassFactory_Release(iter->cf); + heap_free(iter->mime); + heap_free(iter); + + return S_OK; } static HRESULT WINAPI InternetSession_CreateBinding(IInternetSession *iface, diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c index 863e8a74d3a..ba36d8ac300 100644 --- a/dlls/urlmon/tests/misc.c +++ b/dlls/urlmon/tests/misc.c @@ -350,6 +350,48 @@ static void test_CoInternetCompareUrl(void) ok(hres == S_FALSE, "CoInternetParseUrl failed: %08x\n", hres); } +static const struct { + LPCWSTR url; + DWORD uses_net; +} query_info_tests[] = { + {url1, 0}, + {url2, 0}, + {url3, 0}, + {url4, 0}, + {url5, 0}, + {url6, 0}, + {url7, 0}, + {url8, 0} +}; + +static void test_CoInternetQueryInfo(void) +{ + BYTE buf[100]; + DWORD cb, i; + HRESULT hres; + + for(i=0; i < sizeof(query_info_tests)/sizeof(query_info_tests[0]); i++) { + cb = 0xdeadbeef; + memset(buf, '?', sizeof(buf)); + hres = CoInternetQueryInfo(query_info_tests[0].url, QUERY_USES_NETWORK, 0, buf, sizeof(buf), &cb, 0); + ok(hres == S_OK, "[%d] CoInternetQueryInfo failed: %08x\n", i, hres); + ok(cb == sizeof(DWORD), "[%d] cb = %d\n", i, cb); + ok(*(DWORD*)buf == query_info_tests[i].uses_net, "[%d] ret %x, expected %x\n", + i, *(DWORD*)buf, query_info_tests[i].uses_net); + + hres = CoInternetQueryInfo(query_info_tests[0].url, QUERY_USES_NETWORK, 0, buf, 3, &cb, 0); + ok(hres == E_FAIL, "[%d] CoInternetQueryInfo failed: %08x, expected E_FAIL\n", i, hres); + hres = CoInternetQueryInfo(query_info_tests[0].url, QUERY_USES_NETWORK, 0, NULL, sizeof(buf), &cb, 0); + ok(hres == E_FAIL, "[%d] CoInternetQueryInfo failed: %08x, expected E_FAIL\n", i, hres); + + memset(buf, '?', sizeof(buf)); + hres = CoInternetQueryInfo(query_info_tests[0].url, QUERY_USES_NETWORK, 0, buf, sizeof(buf), NULL, 0); + ok(hres == S_OK, "[%d] CoInternetQueryInfo failed: %08x\n", i, hres); + ok(*(DWORD*)buf == query_info_tests[i].uses_net, "[%d] ret %x, expected %x\n", + i, *(DWORD*)buf, query_info_tests[i].uses_net); + } +} + static const WCHAR mimeTextHtml[] = {'t','e','x','t','/','h','t','m','l',0}; static const WCHAR mimeTextPlain[] = {'t','e','x','t','/','p','l','a','i','n',0}; static const WCHAR mimeTextRichtext[] = {'t','e','x','t','/','r','i','c','h','t','e','x','t',0}; @@ -893,6 +935,13 @@ static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pOuter, REFIID riid, void **ppv) { + ok(0, "unexpected call\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI ProtocolCF_CreateInstance(IClassFactory *iface, IUnknown *pOuter, + REFIID riid, void **ppv) +{ CHECK_EXPECT(CreateInstance); ok(iface == expect_cf, "unexpected iface\n"); @@ -918,8 +967,17 @@ static const IClassFactoryVtbl ClassFactoryVtbl = { ClassFactory_LockServer }; -static IClassFactory test_protocol_cf = { &ClassFactoryVtbl }; -static IClassFactory test_protocol_cf2 = { &ClassFactoryVtbl }; +static const IClassFactoryVtbl ProtocolCFVtbl = { + ClassFactory_QueryInterface, + ClassFactory_AddRef, + ClassFactory_Release, + ProtocolCF_CreateInstance, + ClassFactory_LockServer +}; + +static IClassFactory test_protocol_cf = { &ProtocolCFVtbl }; +static IClassFactory test_protocol_cf2 = { &ProtocolCFVtbl }; +static IClassFactory test_cf = { &ClassFactoryVtbl }; static void test_NameSpace(void) { @@ -1047,6 +1105,33 @@ static void test_NameSpace(void) IInternetSession_Release(session); } +static void test_MimeFilter(void) +{ + IInternetSession *session; + HRESULT hres; + + static const WCHAR mimeW[] = {'t','e','s','t','/','m','i','m','e',0}; + + hres = CoInternetGetSession(0, &session, 0); + ok(hres == S_OK, "CoInternetGetSession failed: %08x\n", hres); + if(FAILED(hres)) + return; + + hres = IInternetSession_RegisterMimeFilter(session, &test_cf, &IID_NULL, mimeW); + ok(hres == S_OK, "RegisterMimeFilter failed: %08x\n", hres); + + hres = IInternetSession_UnregisterMimeFilter(session, &test_cf, mimeW); + ok(hres == S_OK, "UnregisterMimeFilter failed: %08x\n", hres); + + hres = IInternetSession_UnregisterMimeFilter(session, &test_cf, mimeW); + ok(hres == S_OK, "UnregisterMimeFilter failed: %08x\n", hres); + + hres = IInternetSession_UnregisterMimeFilter(session, (void*)0xdeadbeef, mimeW); + ok(hres == S_OK, "UnregisterMimeFilter failed: %08x\n", hres); + + IInternetSession_Release(session); +} + static ULONG WINAPI unk_Release(IUnknown *iface) { CHECK_EXPECT(unk_Release); @@ -1196,10 +1281,12 @@ START_TEST(misc) test_RegisterFormatEnumerator(); test_CoInternetParseUrl(); test_CoInternetCompareUrl(); + test_CoInternetQueryInfo(); test_FindMimeFromData(); test_SecurityManager(); test_ZoneManager(); test_NameSpace(); + test_MimeFilter(); test_ReleaseBindInfo(); test_UrlMkGetSessionOption(); test_ObtainUserAgentString(); diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c index 395464126f0..7b4a77224f4 100644 --- a/dlls/urlmon/umon.c +++ b/dlls/urlmon/umon.c @@ -1126,26 +1126,6 @@ HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker ** } /*********************************************************************** - * CoInternetQueryInfo (URLMON.@) - * - * Retrieves information relevant to a specified URL - * - * RETURNS - * S_OK success - * S_FALSE buffer too small - * INET_E_QUERYOPTIONUNKNOWN invalid option - * - */ -HRESULT WINAPI CoInternetQueryInfo(LPCWSTR pwzUrl, QUERYOPTION QueryOption, - DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD * pcbBuffer, - DWORD dwReserved) -{ - FIXME("(%s, %x, %x, %p, %x, %p, %x): stub\n", debugstr_w(pwzUrl), - QueryOption, dwQueryFlags, pvBuffer, cbBuffer, pcbBuffer, dwReserved); - return S_OK; -} - -/*********************************************************************** * IsAsyncMoniker (URLMON.@) */ HRESULT WINAPI IsAsyncMoniker(IMoniker *pmk) @@ -1184,6 +1164,8 @@ HRESULT WINAPI BindAsyncMoniker(IMoniker *pmk, DWORD grfOpt, IBindStatusCallback LPBC pbc = NULL; HRESULT hr = E_INVALIDARG; + TRACE("(%p %08x %p %s %p)\n", pmk, grfOpt, pbsc, debugstr_guid(iidResult), ppvResult); + if (pmk && ppvResult) { *ppvResult = NULL; diff --git a/dlls/user32/message.c b/dlls/user32/message.c index d3f4a3ac8f2..67bf10e81e6 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -3556,6 +3556,13 @@ BOOL WINAPI GetGUIThreadInfo( DWORD id, GUITHREADINFO *info ) */ BOOL WINAPI IsHungAppWindow( HWND hWnd ) { - DWORD_PTR dwResult; - return !SendMessageTimeoutA(hWnd, WM_NULL, 0, 0, SMTO_ABORTIFHUNG, 5000, &dwResult); + BOOL ret; + + SERVER_START_REQ( is_window_hung ) + { + req->win = hWnd; + ret = !wine_server_call_err( req ) && reply->is_hung; + } + SERVER_END_REQ; + return ret; } diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index f9df55e713a..24cc14df489 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1402,7 +1402,7 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_ *convert = CONVERT_PALETTED; } } - else if(GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) { + else if(!GL_SUPPORT(EXT_PALETTED_TEXTURE) && GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) { *format = GL_RED; *internal = GL_RGBA; *type = GL_UNSIGNED_BYTE; @@ -1931,7 +1931,7 @@ static void d3dfmt_p8_init_palette(IWineD3DSurfaceImpl *This, BYTE table[256][4] if (device->render_targets && device->render_targets[0]) { IWineD3DSurfaceImpl* render_target = (IWineD3DSurfaceImpl*)device->render_targets[0]; - if(render_target->resource.usage & WINED3DUSAGE_RENDERTARGET) + if((render_target->resource.usage & WINED3DUSAGE_RENDERTARGET) && (render_target->resource.format == WINED3DFMT_P8)) index_in_alpha = TRUE; } diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c index e50bf8f8e7f..d6c34d8a873 100644 --- a/dlls/wined3d/vertexshader.c +++ b/dlls/wined3d/vertexshader.c @@ -413,7 +413,8 @@ static VOID IWineD3DVertexShaderImpl_GenerateShader( * 1.0 or -1.0 to turn the rendering upside down for offscreen rendering. PosFixup.x * contains 1.0 to allow a mad. */ - shader_addline(&buffer, "gl_Position.xy = gl_Position.xy * posFixup.xy + posFixup.zw;\n"); + shader_addline(&buffer, "gl_Position.y = gl_Position.y * posFixup.y;\n"); + shader_addline(&buffer, "gl_Position.xy += posFixup.zw * gl_Position.ww;\n"); /* Z coord [0;1]->[-1;1] mapping, see comment in transform_projection in state.c * @@ -444,10 +445,7 @@ static VOID IWineD3DVertexShaderImpl_GenerateShader( This->baseShader.limits.constant_float = min(95, This->baseShader.limits.constant_float); - /* Some instructions need a temporary register. Add it if needed, but only if it is really needed */ - if(reg_maps->usesnrm || This->rel_offset) { - shader_addline(&buffer, "TEMP TMP;\n"); - } + shader_addline(&buffer, "TEMP TMP;\n"); /* Base Declarations */ shader_generate_arb_declarations( (IWineD3DBaseShader*) This, reg_maps, &buffer, &GLINFO_LOCATION); @@ -479,8 +477,9 @@ static VOID IWineD3DVertexShaderImpl_GenerateShader( * 1.0 or -1.0 to turn the rendering upside down for offscreen rendering. PosFixup.x * contains 1.0 to allow a mad, but arb vs swizzles are too restricted for that. */ - shader_addline(&buffer, "ADD TMP_OUT.x, TMP_OUT.x, posFixup.z;\n"); - shader_addline(&buffer, "MAD TMP_OUT.y, TMP_OUT.y, posFixup.y, posFixup.w;\n"); + shader_addline(&buffer, "MUL TMP, posFixup, TMP_OUT.w;\n"); + shader_addline(&buffer, "ADD TMP_OUT.x, TMP_OUT.x, TMP.z;\n"); + shader_addline(&buffer, "MAD TMP_OUT.y, TMP_OUT.y, posFixup.y, TMP.w;\n"); /* Z coord [0;1]->[-1;1] mapping, see comment in transform_projection in state.c * and the glsl equivalent diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 85d5fa62f65..f5b2ee3cec1 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -2597,6 +2597,19 @@ struct kill_win_timer_reply +struct is_window_hung_request +{ + struct request_header __header; + user_handle_t win; +}; +struct is_window_hung_reply +{ + struct reply_header __header; + int is_hung; +}; + + + struct get_serial_info_request { struct request_header __header; @@ -4466,6 +4479,7 @@ enum request REQ_get_message_reply, REQ_set_win_timer, REQ_kill_win_timer, + REQ_is_window_hung, REQ_get_serial_info, REQ_set_serial_info, REQ_register_async, @@ -4709,6 +4723,7 @@ union generic_request struct get_message_reply_request get_message_reply_request; struct set_win_timer_request set_win_timer_request; struct kill_win_timer_request kill_win_timer_request; + struct is_window_hung_request is_window_hung_request; struct get_serial_info_request get_serial_info_request; struct set_serial_info_request set_serial_info_request; struct register_async_request register_async_request; @@ -4950,6 +4965,7 @@ union generic_reply struct get_message_reply_reply get_message_reply_reply; struct set_win_timer_reply set_win_timer_reply; struct kill_win_timer_reply kill_win_timer_reply; + struct is_window_hung_reply is_window_hung_reply; struct get_serial_info_reply get_serial_info_reply; struct set_serial_info_reply set_serial_info_reply; struct register_async_reply register_async_reply; @@ -5059,6 +5075,6 @@ union generic_reply struct add_fd_completion_reply add_fd_completion_reply; }; -#define SERVER_PROTOCOL_VERSION 334 +#define SERVER_PROTOCOL_VERSION 335 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/programs/regedit/Fr.rc b/programs/regedit/Fr.rc index b972bed5cb3..0b309ff8066 100644 --- a/programs/regedit/Fr.rc +++ b/programs/regedit/Fr.rc @@ -182,7 +182,7 @@ END IDD_EDIT_STRING DIALOG DISCARDABLE 22, 17, 210, 75 STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Modification de la c&haîne" +CAPTION "Modification de la chaîne" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Nom de la valeur :",IDC_STATIC,5,5,119,8 diff --git a/server/protocol.def b/server/protocol.def index bd63895318e..a022d1860f4 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -1925,6 +1925,14 @@ enum message_type @END +/* check if the thread owning the window is hung */ +@REQ(is_window_hung) + user_handle_t win; /* window handle */ +@REPLY + int is_hung; +@END + + /* Retrieve info about a serial port */ @REQ(get_serial_info) obj_handle_t handle; /* handle to comm port */ diff --git a/server/queue.c b/server/queue.c index d837e84e0e1..a32bd7e250f 100644 --- a/server/queue.c +++ b/server/queue.c @@ -1562,6 +1562,22 @@ void post_win_event( struct thread *thread, unsigned int event, } } + +/* check if the thread owning the window is hung */ +DECL_HANDLER(is_window_hung) +{ + struct thread *thread; + + thread = get_window_thread( req->win ); + if (thread) + { + reply->is_hung = is_queue_hung( thread->queue ); + release_object( thread ); + } + else reply->is_hung = 0; +} + + /* get the message queue of the current thread */ DECL_HANDLER(get_msg_queue) { diff --git a/server/request.h b/server/request.h index 602ec13036e..28485d6c424 100644 --- a/server/request.h +++ b/server/request.h @@ -239,6 +239,7 @@ DECL_HANDLER(accept_hardware_message); DECL_HANDLER(get_message_reply); DECL_HANDLER(set_win_timer); DECL_HANDLER(kill_win_timer); +DECL_HANDLER(is_window_hung); DECL_HANDLER(get_serial_info); DECL_HANDLER(set_serial_info); DECL_HANDLER(register_async); @@ -481,6 +482,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] = (req_handler)req_get_message_reply, (req_handler)req_set_win_timer, (req_handler)req_kill_win_timer, + (req_handler)req_is_window_hung, (req_handler)req_get_serial_info, (req_handler)req_set_serial_info, (req_handler)req_register_async, diff --git a/server/trace.c b/server/trace.c index b2d68bcce31..64d5c50b9ed 100644 --- a/server/trace.c +++ b/server/trace.c @@ -2412,6 +2412,16 @@ static void dump_kill_win_timer_request( const struct kill_win_timer_request *re fprintf( stderr, " id=%lx", req->id ); } +static void dump_is_window_hung_request( const struct is_window_hung_request *req ) +{ + fprintf( stderr, " win=%p", req->win ); +} + +static void dump_is_window_hung_reply( const struct is_window_hung_reply *req ) +{ + fprintf( stderr, " is_hung=%d", req->is_hung ); +} + static void dump_get_serial_info_request( const struct get_serial_info_request *req ) { fprintf( stderr, " handle=%p", req->handle ); @@ -3941,6 +3951,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = { (dump_func)dump_get_message_reply_request, (dump_func)dump_set_win_timer_request, (dump_func)dump_kill_win_timer_request, + (dump_func)dump_is_window_hung_request, (dump_func)dump_get_serial_info_request, (dump_func)dump_set_serial_info_request, (dump_func)dump_register_async_request, @@ -4180,6 +4191,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = { (dump_func)dump_get_message_reply_reply, (dump_func)dump_set_win_timer_reply, (dump_func)0, + (dump_func)dump_is_window_hung_reply, (dump_func)dump_get_serial_info_reply, (dump_func)0, (dump_func)0, @@ -4419,6 +4431,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = { "get_message_reply", "set_win_timer", "kill_win_timer", + "is_window_hung", "get_serial_info", "set_serial_info", "register_async", -- 2.11.4.GIT