1 This is release 0.9.47 of Wine, a free implementation of Windows on Unix.
3 What's new in this release:
4 - New scheme for OpenGL support in child windows.
5 - Lots of fixes for regression test failures.
6 - A Tahoma replacement font.
9 Because of lags created by using mirrors, this message may reach you
10 before the release is available at the public sites. The sources will
11 be available from the following locations:
13 http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.47.tar.bz2
14 http://prdownloads.sourceforge.net/wine/wine-0.9.47.tar.bz2
16 Binary packages for various distributions will be available from:
18 http://www.winehq.org/site/download
20 You will find documentation on
22 http://www.winehq.org/site/documentation
24 You can also get the current source directly from the git or CVS
25 repositories. Check respectively http://www.winehq.org/site/git or
26 http://www.winehq.org/site/cvs for details.
28 If you fix something, please submit a patch; instructions on how to do
29 this can be found at http://www.winehq.org/site/sending_patches
31 Wine is available thanks to the work of many people. See the file
32 AUTHORS in the distribution for the complete list.
34 ----------------------------------------------------------------
38 Alexandre Julliard (26):
39 msvcirt: Added stub implementation of msvcirt.dll.
40 comctl32/tests: Avoid destroying a DPA twice.
41 mshtml: The HTMLDocument URL is a standard WCHAR string, not a BSTR.
42 msi: Avoid accessing a freed object.
43 user32/tests: Compare against ASCII string first since it may not be a valid Unicode string in that case.
44 shlwapi: Fix GetAcceptLanguagesA to not read past the end of the buffer.
45 ntdll: Clear heap blocks also for WARN_ON(heap).
46 ntdll: Remove assumptions that the subheap is at the beginning of the memory block.
47 ntdll: Convert the subheap list to a standard list.
48 ntdll: Make the heap structure more compatible with the NT layout.
49 kernel32: Improve tracing in GlobalAlloc.
50 server: Add a default access mapping function for files, and use it for devices too.
51 imagehlp: Fixed UpdateDebugInfoFile definition.
52 user32/tests: Replace GWL_WNDPROC by GWLP_WNDPROC.
53 winenas.drv: Add workaround for INT64 type too.
54 ntdll: Fix the HEAP_CreateSubHeap return value (spotted by Allan Tong).
55 kernel32: Use FIELD_OFFSET instead of pointer cast.
56 server: Use the file_pos_t type for file sizes and offsets in the protocol structures.
57 winex11: Use ExtEscape to flush the GL drawable to the physdev.
58 winex11: Don't store a physdev pointer in the GL context.
59 msvcrt: Fix demangling of function pointers by maintaining the left/right distinction for type references.
60 winex11: Add generic mechanism for managing WM_STATE properties.
61 winex11: Set the SKIP_PAGER and SKIP_TASKBAR styles on tool windows.
62 winex11: Reuse the mwm hints when computing the window X11 rectangle.
63 winex11: Don't use a window manager border for a simple WS_BORDER-style border.
64 kernel32: Get rid of the NLS_RegOpenSubKey function, its behavior is broken.
67 msvfw32: Fix a memory leak.
68 ole32: Fix some memory leaks.
69 oleaut32: Fix some memory leaks.
70 secur32: Fix some memory leaks.
71 shell32: Fix some memory leaks.
72 urlmon: Fix some memory leaks.
73 winealsa.drv: Fix a memory leak.
74 wined3d: Fix a memory leak.
75 wineps.drv: Fix some memory leaks.
76 wineps.drv: Fix some memory leaks.
77 wininet: Fix a memory leak.
80 dbghelp: Avoid crashing on files with bogus export table.
81 libwine: Emulate MS linker stub for builtin dlls.
82 wine.inf: Add Protected Storage System Provider key.
85 msdmo: Implement DMOGetTypes.
86 msdmo: Improve registration and reading of codecs.
89 winex11: Store a GL-specific drawable with the window.
90 wgl: Remove GL scissors/viewport override.
91 winex11: Use an offscreen redirected window for child OpenGL rendering.
92 winex11: Pass a display parameter when destroying glxpixmaps.
93 winex11: Track async GL drawable changes.
94 winex11: Use a GLXPixmap for offscreen OpenGL rendering when XComposite isn't available.
95 winex11: Load and use GLX_MESA_copy_sub_buffer for swapping buffers on a GLXPixmap.
96 wined3d: Prevent some console spamming.
97 winex11: Create GLXPixmap for bitmaps in SetPixelFormat.
98 winex11: Use the specified format for GL Bitmaps.
99 winex11: Don't choose double buffered modes with gdi support.
100 wined3d: Set D3DCAPS2_CANAUTOGENMIPMAP flag when supported.
103 wine.inf: Create psapi.dll as a fake dll.
105 Damjan Jovanovic (2):
106 ole32: Implement win16 COCREATEGUID.
107 ws2_32: Silently ignore WS_IP_DONTFRAGMENT.
110 widl: Add newlines to error messages that are missing them.
111 widl: Add a declonly argument to write_type_left.
112 widl: Write types in the format string comments.
113 widl: Correct default pointers.
114 rpcrt4/tests: Make server.idl compatible with MIDL.
115 widl: Make structs containing user types bogus; fix square_test_us test failure.
116 widl: Allow quoted UUIDs.
117 widl: Implement pointer_default functionality.
118 widl: Keep track of every allocated type_t to simplify set_all_tfswrite.
119 rpcrt4, widl: Make pointer layouts compatible with windows; fix conformant array tests.
122 msvcrt: Improve CR CR LF handling.
123 msvcrt: Fix ^Z handling in text mode.
124 quartz: Make clock test less flaky.
127 include: Skeleton header for D3DX8.
128 d3dx8: Fix the definition of D3DXVECTOR.
130 Detlef Riekenberg (6):
131 msi: Dump the database name in a FIXME.
132 winspool: Add a missing export.
133 spoolss: Implement SplInitializeWinSpoolDrv.
134 spoolss/tests: Add tests for SplInitializeWinSpoolDrv.
135 localspl: Implement InitializePrintProvidor.
136 wininet/tests: Initial tests for InternetCanonicalizeUrlA.
138 Dmitry Timoshkov (3):
139 user32: WM_IME_SETCONTEXT messages are optional.
140 gdi32: Prefer a Microsoft cmap table over other platform ones.
141 user32: Add a message test for ownerdrawn listbox, make it pass under Wine.
144 kernel32: Implement SetUserGeoID.
146 Francois Gouget (10):
147 comdlg32/tests: Tell PageSetupDlg() not to bring up a dialog if there is no default printer.
148 user32/tests: Remove an unneeded cast.
149 regedit: Add support for 'regedit -' for feeding regedit from stdin.
150 regedit: Add support for 'regedit /E -', to export the registry to stdout.
151 winex11.drv: Remove an obsolete FIXME comment.
152 winex11.drv: Add the trailing '\n' to a Wine trace.
153 user32/tests: Don't use nameless unions where they are not needed.
154 comctl32/tests: Fix the control's size reporting in an error message.
155 pdh/tests: Fix compilation on systems that don't support nameless unions.
156 Assorted spelling fixes.
159 kernel32: Fix signedess for FreeBSD-specific implementation of GetSystemInfo().
160 kernel32: Fix types for the FreeBSD implementation of GlobalMemoryStatusEx().
161 winex11.drv: Move X11DRV_XRender_Installed under #ifdef SONAME_LIBXRENDER.
162 mshtml: Removed unused function get_child_text_node().
165 d3d9: Release pixel shaders after we're done with them in the visual test.
168 pdh: Implement PdhValidatePath{, Ex}{A, W}.
169 pdh: Add tests for PdhValidatePath{, Ex}{A, W}.
170 pdh: Serialize access to performance counters and queries.
171 pdh: Implement and test PdhCollectQueryDataEx.
172 pdh: Implement PdhCalculateCounterFromRawValue.
173 pdh: Fix parameter handling in PdhAddEnglishCounter{A, W} and PdhCollectQueryDataWithTime.
174 pdh: Skip tests when running on non-english locale.
177 gdi32: TrueType fonts from the data directory should be added to the registry.
178 gdi32: Only cache the glyph metrics when rendering to a monochrome bitmap or when just retrieving the metrics.
179 gdi32: Let the WINE_GGO_GRAY16_BITMAP case load a bitmap.
180 fonts: Add a Tahoma replacement. Almost entirely based on a patch by Larry Snyder.
181 gdi32: Fixed a misplaced break.
182 fonts: Add a very incomplete Tahoma Bold.
183 comctl32/tests: Skip some font dependent tests if we don't have System or Tahoma installed.
184 comctl32/tests: Don't assume that the default font height is 16 pixels.
186 Hwang YunSong(황윤성) (2):
187 wineboot: New Korean resource.
188 winecfg: Updated Korean resource.
191 mshtml: Remove no longer used defines.
192 mshtml: Use GetWineURL in before_async_open.
193 urlmon: Added IID_IBindStatusCallbackHolder to uuid.
194 urlmon: Wrap callback in RegisterBindStatusCallback.
195 urlmon: Added more strict QueryInterface tests.
196 urlmon: Added more RegiterBindStatusCallback tests.
197 urlmon: Get rid of no longer needed IHttpNegotiate wrapper.
198 mshtml: Added get_tagName implementation.
199 mshtml: Pass the IDispatch interface of the element right-clicked on to IDocHostUIHandler_ShowContextMenu if applicable instead of always the document's one.
200 mshtml: Pass HTMLDOMNode pointer to its destructor.
201 mshtml: Pass HTMLDOMNode pointer to HTMLElement's destructor.
202 mshtml: Use vtbl for node destructors.
203 mshtml: Move nodes' QueryInterface implementation to vtbl.
204 mshtml: Move common code to separated function.
205 mshtml: Return IHTMLElementCollection instead of IDispatch from HTMLElementCollection_Create.
206 mshtml: Include document element in collection returned by IHTMLDocument2::get_all.
207 mshtml: Added IHTMLOptionElement interface stub implementation.
208 mshtml: IHTMLElementContainer::item rewrite.
209 mshtml: Added IHTMLSelectElement::get_length implementation.
210 mshtml.idl: Added IHTMLInputTextElement interface.
211 mshtml: Added IHTMLInputTextElement interface implementation.
212 mshtml: Move most code from handle_editor_load to exec_editmode.
213 mshtml: Skip tests if we can't get body object - it means that there is no Gecko available.
214 actctx: Rename version to assembly_version.
215 shdocvw: Fixed tests on IE7.
216 urlmon: Fixed test on IE7.
217 mshtml: Fixed tests on IE7.
218 mshtml: Move init_nsevents call from start_binding to read_stream_data to avoid race.
219 mshtml: Fixed test crash on Windows.
220 mshtml: Added support for installing Gecko from the local file.
223 user32: Test the ddeml client interface.
224 user32: Set client_pid to zero before initializing dde.
225 user32: Move the test_ddeml_client function closer to the other ddeml client test functions.
226 user32: Test the ddeml server interface.
229 msinkaut.idl: Declare the IInkCollector interface and its dependencies.
230 nkobj: Use an internal header.
231 inkobj: Stub implementation of IInkCollector.
234 crypt32: Add a helper function to create a file store from an already-initialized memory store.
235 crypt32: Create file store directly in CRYPT_FileNameOpenStoreW.
236 crypt32: Allow file stores to support more than one type of file.
237 crypt32: Implement opening file name stores from files that contain PKCS7 messages.
238 crypt32: Be more strict about format of serialized store files.
239 wintrust: Implement SoftpubDefCertInit.
240 wintrust: Improve SoftpubLoadMessage for WTD_CHOICE_CERT.
241 wintrust: In SoftpubLoadSignature, don't assume a message is present.
242 wintrust: Don't warn for generic cert verify action.
243 crypt32: Correct copying a signer info's attributes.
244 wintrust: Add stub for WVTAsn1SpcSpOpusInfoDecode.
245 wincrypt.h: Add a few more definitions.
246 crypt32: Don't check decoded length against encoded length for indefinite-form sequences.
248 wintrust: Copy time to verify from cert info.
249 wintrust: Use file's creation time as time to verify.
250 wintrust: Remove bad check that prevents root certificates from appearing time valid.
251 wintrust: Use verify time rather than current time to check certificate chain.
252 crypt32: Fix a silly variable name.
253 crypt32: Improve trace.
254 crypt32: Don't fail if buffer is NULL, just return required size.
255 crypt32: Don't fail if a cert is invalid, Windows doesn't either (tests to follow).
256 crypt32: Always set cNumOIDs.
257 crypt32: Don't set ret to FALSE when it isn't checked.
258 crypt32: Reduce valid usages count when removing a valid usage.
259 crypt32: Add tests for CertGetValidUsages.
260 crypt32: Don't assume a maximum of 32 valid usages.
261 setupapi: Remove a misleading fixme.
262 crypt32: Remove some tests that fail inconsistently on Windows.
263 crypt32: Print values of failing time tests.
264 crypt32: Add an extra pointer alignment to avoid possible memory corruption.
265 softpub.h: Add missing definitions.
266 wintrust: Trace input to WinVerifyTrust.
267 wintrust: Add a helper function to initialize chain creation parameters.
268 wintrust: Add a helper function to create a chain for a signer.
269 wintrust: Implement GenericChainCertificateTrust.
270 wintrust: Implement GenericChainFinalProv.
271 wintrust: Add traces.
272 wintrust: Add generic chain action to known actions.
273 crypt32: Allow imprecision of one millisecond in time decoding to fix test failures on Windows.
274 crypt32: Remove superficially different certificates.
275 crypt32: Add another test to show that time validity nesting isn't checked.
276 crypt32: Test encoding/decoding name constraints.
277 crypt32: Implement name constraint encoding.
278 crypt32: Allow either NULL or empty strings where one or the other is expected.
279 crypt32: Don't check tag in AsnDecodeIntInternal, caller already checks it.
280 crypt32: Implement name constraints decoding.
281 crypt32: Implement name constraint checking.
282 setupapi: Test SetupDiInstallClass.
283 setupapi: SetupOpenAppendInfFile is implemented, so remove #if 0 around it.
284 setupapi: Correct creating the class key.
285 setupapi: Install more items when installing a class.
286 setupapi: Add stubs for SetupDiCreateDevRegKeyA/W.
287 setupapi: Implement SetupDiCreateDevRegKeyA on top of SetupDiCreateDevRegKeyW.
288 setupapi: Add helper function to open a device's hardware key.
289 setupapi: Don't require caller to pass a SP_DEVINFO_DATA pointer to SETUPDI_AddDeviceToSet.
290 setupapi: Add a device ID member to DeviceInfo.
291 setupapi: Implement SetupDiCreateDevRegKeyW.
294 secur32: Remove hardcoded assumption that the SECBUFFER_DATA is always at index 1 for en/decrypting.
295 secur32: ntlm_auth returns BH if the connection to winbindd fails.
298 wineserver: Allow already peeked messages to merge.
301 ntdll: Work around a bug in Mac OS X's getdirentries().
303 Konstantin Kondratyuk (2):
304 mpr: Implement WNetGetResourceInformation functions.
305 net.exe: Add Russian resources.
308 comctl32: Fix monthcal hit tests.
311 advapi32/tests: Fix memory leaks (found by Smatch).
312 advapi32/tests: Fix a typo.
315 faultrep: Add stub for ReportFault.
317 d3dx8: Update spec file.
318 wsock32: Export 3 more functions.
319 wine.inf: Add 2 keys for *.chm files.
322 winecfg: Add more keyboard shortcuts.
324 Maarten Lankhorst (9):
325 gdi32: Fix meaning and use of bidirectionality flags.
326 gdi32: Fix 3 tiny bugs in bidi.
327 dsound: Use smaller buffers for wavein capture.
328 dsound: Call waveInUnPrepareHeader and waveInPrepareHeader when submitting new buffer.
329 wineoss: Seperate wave-in and wave-outs shared use of a single OSS_DEVICE struct.
330 dsound: Fix IDirectSoundBuffer_GetPosition.
331 winmm: Set default sound driver to alsa,oss,coreaudio.
332 dsound: Release buffer before reopening when buffer is too small.
333 wineoss: Remove useless fixme shown on initialisation.
336 kernel32: Test IsBadReadPtr/ IsBadCodePtr / IsBadWritePtr.
337 mpr: Initialize lpwSystem.
338 pdh: Removed superflous NULL ptr check.
339 d3d9/tests: Initialize shader to NULL.
340 setupapi: Use correct parameter in pointer init.
341 advpack: Handle localized C:\Program Files.
342 crypt32/tests: Fixed buffer overflow in encode test.
343 imm32: Avoid spamming the debug output.
345 Mikolaj Zalewski (6):
346 oleaut32: olepicture: Support loading Aldus Placable Metafiles.
347 oleaut32: olepicture: When drawing metafiles set the coordinates system so that it is drawn in the correct place.
348 advapi32: security: Remove unneeded FIXME.
349 oleview: Don't crash if the parent type couldn't be retrieved.
350 ole32: OleIsRunning should return TRUE if the class doesn't implement IRunnableObject.
351 oleaut32: Function kind for dispatch interfaces should be FUNC_DISPATCH.
354 urlmon: Increment/decrement reference count when internet handles are created/destroyed.
357 include/winsock.h: Fix parenthesis mismatch.
360 comctl32: Fixed drawing the trackbar background when themes are installed.
363 user32: Add tests for DefWindowProc processing the undocumented 0x3B message.
364 wineboot: Add a timeout dialog when any WM_QUERYENDSESSION or WM_ENDSESSION messages take too long.
365 server: Move set_security_object to handle.c and set_object_sd to object.c.
366 server: Add a new get_security_object call for getting the security descriptor of an object.
367 server: Use ACL_REVISION in create_default_dacl instead of MAX_ACL_REVISION since we don't use any features from later ACL revisions.
368 advapi32: Implement SetFileSecurityW on top of NtSetSecurityObject.
369 advapi32: Allow GetFileSecurityA/W to work on files that have been opened already with restricted sharing flags.
370 server: Add a simple mapping from Unix uids to NT SIDs.
371 server: Add get_sd and set_sd object operations to allow the security descriptor to be stored somewhere other than server memory, such as on disk.
372 server: Add primitive support for setting and getting the security descriptor of files based on their Unix permissions.
373 server: Remove an unnecessary check from file_set_fd.
374 server: Only call fchmod in file_set_fd if the mode actually changed.
375 oleaut32: Add a check for a test that depends on the decimal separator being a dot.
376 ole32: RegisterDragDrop should return E_OUTOFMEMORY in the case that COM isn't intialised, instead of CO_E_NOTINITIALIZED.
379 mshtml: Set the SETUP_IS_CHROME_WRAPPER to FALSE as the embedded Gecko is always used to display content and not chrome.
381 Roderick Colenbrander (12):
382 wined3d: CreateFakeGLContxt/ReleaseFakeGLContext doesn't need ENTER_GL/LEAVE_GL and they are making GDI calls.
383 wined3d: CreateContext should not be called between ENTER_GL/LEAVE_GL.
384 wined3d: Only call ENTER_GL for the parts in ActivateContext that actually need it.
385 wined3d: WINAPI compile fixes.
386 ddraw: Fix RegDeleteTreeA/W compile issues when building ddraw for Windows.
387 wined3d: Render to the correct hwnd/hdc.
388 wined3d: Make sure we receive a hw accelerated pixel format with OpenGL support.
389 wined3d: Remove an unused ChoosePixelFormat line.
390 wined3d: Use EXT-versions of glBlend*.
391 wined3d: Merge p8 palette initialization code.
392 wined3d: Fix inverse palette lookup for P8 surfaces.
393 wined3d: Use a fragment shader to do P8 palette conversion in hardware.
396 net.exe: Added missing service name.
397 qmgr: Skeleton implementation of Background Intelligent Transfer Service (BITS).
400 user32: Moved some 16-bit functions.
401 user32: Renamed and moved SetDeskPattern.
403 Stefan Dösinger (17):
404 wined3d: Add texreg2rgb support to arb shaders.
405 wined3d: Add proper input register handling to texreg2ar/gb.
406 wined3d: Implement texbeml in arb shaders.
407 wined3d: Enable the mNxN implementation for pixel shaders.
408 wined3d: Bem is an instruction and uses registers.
409 wined3d: Reverse the position fixup if the pshader is reading vpos.
410 wined3d: Take care against overwriting a source register in cmp.
411 wined3d: d3d ignores the sign of the input value in the log instruction.
412 wined3d: Implement the vFace register.
413 wined3d: Nested loop support.
414 d3d9: Do not rely on CreateVertexShader failing.
415 wined3d: Clear up in Init3D if something fails.
416 ddraw: Cope with Init3D failures.
417 wined3d: Silently ignore setting the 0 texture on gdi surfaces.
418 ddraw: Do not fail on surface creation errors, skip instead.
419 ddraw: Downgrade the SetCooperativeLevel FIXME to a TRACE.
420 wined3d: Add a (nested) loop test.
423 ole32: Define WINE_FILEVERSION in version resource of ole2nls.dll too.
424 gdi32: Define WINE_FILEVERSION in version resource of gdi.exe.
425 kernel32: Define WINE_FILEVERSION in version resource of krnl386.exe.
426 user32: Define WINE_FILEVERSION in version resource of user.exe.
427 winecfg: Replace call to remove_path with RegDeleteTreeW.
428 regedit: Replace call to delete_branch with RegDeleteTreeA.
430 Stéphane LOEUILLET (1):
431 Fix substandard wine.desktop file.
434 d3d9: Fix crash in texture test.
436 Vitaliy Margolen (3):
438 winex11drv: Ignore mouse move events when position did not change only when other events are present.
439 dinput: Use ClipCursor() to keep mouse from leaving the window.
442 tools/wine.desktop: Add Name field in Russian.