1 This is release 0.9.41 of Wine, a free implementation of Windows on Unix.
3 What's new in this release:
4 - A number of gdiplus functions.
5 - More complete pdh.dll implementation.
6 - Support for MSI remote calls.
7 - Messaging support in crypt32.dll.
10 Because of lags created by using mirrors, this message may reach you
11 before the release is available at the public sites. The sources will
12 be available from the following locations:
14 http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.41.tar.bz2
15 http://prdownloads.sourceforge.net/wine/wine-0.9.41.tar.bz2
17 Binary packages for various distributions will be available from:
19 http://www.winehq.org/site/download
21 You will find documentation on
23 http://www.winehq.org/site/documentation
25 You can also get the current source directly from the git or CVS
26 repositories. Check respectively http://www.winehq.org/site/git or
27 http://www.winehq.org/site/cvs for details.
29 If you fix something, please submit a patch; instructions on how to do
30 this can be found at http://www.winehq.org/site/sending_patches
32 Wine is available thanks to the work of many people. See the file
33 AUTHORS in the distribution for the complete list.
35 ----------------------------------------------------------------
39 Alexander Nicolaysen Sørnes (3):
40 comdlg32: fontdlg: Respect the CF_NOSCRIPTSEL flag.
41 wordpad: Disable copy/cut in menu when appropriate.
42 wordpad: Prompt for saving file changes.
44 Alexandre Julliard (41):
45 configure: Fix the strip command line for Mac OS.
46 configure: Export the shared library extension instead of hardcoding .so.
47 configure: Don't use a default soname if a library is not found, leave it undefined.
48 configure: Don't set LDPATH if not needed.
49 configure: Change WINE_GET_SONAME to allow it to be used as a replacement for AC_CHECK_LIB.
50 configure: Move the dll checks earlier in the file to make them available for library checks.
51 configure: Merge the libhal existence check with the soname check.
52 configure: Merge the libcurses existence check with the soname check.
53 configure: Merge the libcapi20 existence check with the soname check.
54 configure: Merge the libsane existence check with the soname check.
55 configure: Make the libcups soname check depend on the header check.
56 configure: Make the libjack soname check depend on the header check.
57 configure: Make the libfontconfig soname check depend on the header check.
58 configure: Make the libssl soname check depend on the header check.
59 configure: Make the libjpeg soname check depend on the header check.
60 configure: Added checks for libpng.
61 ntdll: Add check for null pointer in NtQuerySystemInformation(SystemModuleInformation).
62 configure: Merge the libGL existence check with the soname check.
63 configure: Merge the libXrandr existence check with the soname check.
64 configure: Merge the libXrender existence check with the soname check.
65 configure: Merge the libXinerama existence check with the soname check.
66 configure: Get rid of the no longer used check for libtxc_dxtn.
67 Maketest.rules: Add dependency on IDL headers for crosstest objects.
68 configure: Make the libXcursor soname check depend on the header check.
69 configure: Make the libXi soname check depend on the header check.
70 configure: Merge the libfreetype existence check with the soname check.
71 configure: Merge the libX11 and libXext existence check with the soname check.
72 configure: We no longer need the shared library extension.
73 aclocal: Add macros for logging messages about missing features.
74 configure: Move notices about missing features next to the corresponding checks.
75 configure: Add a few more notices for missing packages.
76 include: Add some definitions for manifest resources.
77 winedump: Add RT_MANIFEST resource type.
78 configure: Fix typo in liblcms notice check.
79 kernel32: Implemented GetTickCount64.
80 user32/tests: Flush messages more aggressively in a couple of tests.
81 msi/tests: Comment out call to function that is still a stub in Wine.
82 user32: Check both A and W proc for previously allocated winprocs.
83 user32: Allocate a dual A/W winproc for DefWindowProc.
84 dnsapi: Fix some potential infinite loops because of an unsigned loop counter.
85 wldap32: Fix some potential infinite loops because of an unsigned loop counter.
88 cmd: Use toupperW instead of toupper.
91 ole32: Constify some variables.
92 oleaut32: Constify some variables.
93 ole32: Constify some variables.
94 winelib: Cast-qual warnings fix.
95 ole32: Constify a variable (and fix a typo concerning its level of indirection).
96 ole32: Cast-qual warnings fix.
97 comdlg32: Cast-qual warning fix.
98 ole32: Cast-qual warning fix.
99 winedump: Cast-qual warnings fix.
100 winedump: Cast-qual warnings fix.
103 imm32: Implementation of GCS_CURSORPOS.
104 include: Add a ddk header for imm.
105 imm32: Implement Locking/Unlocking IMC and IMCC functions.
106 imm32: Use the COMPOSITIONSTRING in hCompStr.
109 ws2_32: Don't tell users to run Wine as root when sockets not creatable.
110 winecfg: Clean up Graphics tab and remove broken neutral translation.
112 Bernd Buschinski (1):
113 gdiplus: Fix test typo/compile error.
116 winemp3: Check the right macro when defining TRUE.
117 winemp3: Use head_check to check for valid headers.
118 winemp3: Remove global mpstr pointer.
119 winemp3: Remove function declarations with no definition and unused macros.
121 Damjan Jovanovic (2):
122 shell32: DragQueryFile doesn't count the null terminator.
123 ntdll: Use the win16 current directory for win16 processes.
125 Detlef Riekenberg (4):
126 setupapi: Avoid crash in SetupCloseInfFile.
127 advpack+setupapi: Remove unneeded checks before SetupCloseInfFile.
128 ntdll: Avoid crash with WINEDEBUG=+snoop.
129 printui: Parse args for PrintUIEntryW.
131 Dmitry Timoshkov (4):
132 gdi32: Do not report an error if a requested to add font is already loaded.
133 include: Add HandleToUlong, UlongToHandle, UintToPtr, UlongToPtr compatibility macros.
134 ntdll: Remove an artificial limitation in NtQuerySecurityObject.
135 shlwapi: Fix some spec entry definitions.
137 Emmanuel Maillard (1):
138 winecoreaudio: MIDIIn_MessageHandler: Fix non-SysEx messages parsing.
141 oleaut32: Added support for decoding some PNG files.
142 oleaut32: Save load time format of pictures.
143 gdiplus: Use SaveDC, RestoreDC in GdipDrawLineI.
144 gdiplus: Call EndPath() in GdipDrawLineI in case there is an open path.
145 gdi32: Don't access DC in PolyDraw after releasing handle.
146 gdiplus: Added SetPenEndCap.
147 gdiplus: Rendering of linecaps.
148 gdiplus: Added linecap rendering for GdipDrawBezier.
149 gdiplus: Public declaration of GdipSetPenEndCap.
150 gdiplus: Added GdipAddPathLine2.
151 gdiplus: Added GdipClosePathFigure.
152 gdiplus: Added GdipClosePathFigures.
153 gdiplus: Added GdipGetPointCount.
154 gdiplus: Added GdipGetPathPoints.
155 gdiplus: Added GdipGetPathTypes.
156 gdiplus: Updated draw_pie to use SaveDC/RestoreDC.
157 gdiplus: Updated GdipDrawRectangleI.
158 gdiplus: GdipDrawCurve2 now uses SaveDC()/RestoreDC() and end caps.
159 gdiplus: Fixed a bug in helper function draw_polybezier.
160 gdiplus: Make LineCapArrowAnchor look more like it does in windows.
161 gdiplus: Added constructor and destructor test for gdiplus paths.
162 gdiplus: Fixed bug in GdipGetPathPoints().
163 gdiplus: Added a test for GdipAddPathLine2.
164 gdiplus: Changed calls to floor to floorf.
165 gdiplus: Moved two inline helpers to the header.
166 gdiplus: Added GdipAddPathArc.
167 gdiplus: Added GdipAddPathArc test.
168 gdiplus: Updated GdipDrawArc to use SaveDC()/RestoreDC()/line caps.
169 gdiplus: Updated GdipDrawLines to use SaveDC()/RestoreDC()/end caps.
170 gdiplus: Added GdipStartPathFigure.
171 gdiplus: Added GdipDrawPath.
172 gdiplus: Added draw_polybezier error checking.
173 gdiplus: Added draw_polyline error checking.
174 gdiplus: Added basic matrix implementation.
175 gdiplus: Added GdipTransformMatrixPoints.
176 gdiplus: Added GdipCreateMatrix2 test.
177 gdiplus: Added GdipTransformPath.
178 gdiplus: Added GdipGetPathWorldBounds.
179 gdiplus: Fixed memory leak in GdipDeletePath.
180 gdiplus: Added GdipTransformMatrixPoints test.
181 gdiplus: Added GdipGetPathWorldBounds test.
182 gdiplus: Changed the way the direction of the endcap is calculated to make LineCapArrowAnchor direction match Windows better.
183 gdiplus: Added GdipSetPenLineJoin.
184 gdiplus: Use passed pen in GdipAddPathWorldBound.
185 gdiplus: Added more GdipGetPathWorldBounds tests.
186 gdiplus: Improved GdipGetPathWorldBounds handling of both matrix and pen's effect on bounding box.
187 gdiplus: Added GdipGetPathFillMode.
188 gdiplus: Added GdipResetPath.
189 gdiplus: Added GdipAddPathPath.
190 gdiplus: Added GdipAddPathPath test.
193 ddraw/tests: Fix compilation on systems that don't support nameless unions.
194 Assorted spelling fixes.
195 ddraw/tests: Fix compilation on systems that don't support nameless unions.
198 wined3d: Call IWineD3DDeviceImpl_FindTexUnitMap for cards without support for NV_REGISTER_COMBINERS as well.
199 wined3d: Only call activate_dimensions() if the texture is used.
200 wined3d: Only set GL_SHADER_OPERATION_NV to GL_NONE for supported units.
201 wined3d: In tex_colorop() & tex_alphaop(), only check the mapped stage against GL_LIMITS(textures) if the texture is used.
202 wined3d: Cleanup shader_glsl_load_psamplers().
203 wined3d: Implement dsx & dsy shader instructions.
204 wined3d: Advertise A32B32G32R32F render target support.
205 wined3d: Advertise VTF support.
208 dwmapi: Add a stub implementation for DwmIsCompositionEnabled.
209 pdh: Add tests for opening and closing queries.
210 pdh: Add an uptime counter source based on GetTickCount.
211 pdh: Add tests for Pdh{Add, Remove}Counter and PdhCollectQueryData.
212 pdh: Implement and test PdhSetCounterScaleFactor and PdhGetFormattedCounterValue.
213 pdh: Implement and test PdhGetRawCounterValue.
214 pdh: Implement and test PdhGetCounterInfo{A, W} and PdhGetCounterTimeBase.
215 pdh: Use GetTickCount64 instead of GetTickCount.
219 winex11.drv: Pass root_window to XCreatePixmap to avoid BadDrawable errors.
220 winex11.drv: Move the PictFormats into an array.
221 winex11.drv: Use global Pictures for the tiles.
222 gdi32: Using a bitmap font as the fallback sans serif is a very bad idea.
223 kernel32: Swap incorrect use of buffers.
224 kernel32: SetNamedPipeHandleState() is a stub, so for now don't check its return value.
227 msi: Implement MsiSourceListGetInfoA.
228 msi: Add tests for MsiSourceListGetInfo.
229 msi: Validate MsiSourceListGetInfo parameters.
230 msi: Return ERROR_BAD_CONFIGURATION if the SourceList key does not exist.
231 msi: Return ERROR_SUCCESS if the PackageName property is not present.
232 msi: Add the IWineMsiRemotePackage interface.
233 msi: Add the IWineMsiRemoteCustomAction interface.
234 msi: Handle remote calls to MsiGetActiveDatabase.
235 msi: Handle remote calls to MsiGetProperty.
236 msi: Handle remote calls to MsiSetProperty.
237 msi: pcchValue represents the length of szValue in TCHARS, not bytes.
238 msi: Add support for the MSICODE_PATCH option.
239 msi: Add tests to show when the SourceList is published to the registry.
240 msi: PackagePath must also include the package name.
241 msi: Delay publishing of the SourceList until the PublishProduct action.
242 msi: Unpublish the product when it is entirely removed.
243 msi: Only publish the product if at least one feature is to be installed.
244 msi: Set the WindowsInstaller value in RegisterProduct instead of PublishProduct.
245 msi: Add tests for MsiQueryFeatureState.
246 msi: Open the correct key and return INSTALLSTATE_ADVERTISED if it's missing.
247 msi: Return INSTALLSTATE_ADVERTISED if the component list is empty.
248 msi: Return INSTALLSTATE_BADCONFIG if we can't decode the first component.
249 msi: Read the components state directly from the registry.
250 msi: Handle remote calls to MsiProcessMessage.
251 msi: Handle remote calls to MsiDoAction.
252 msi: Handle remote calls to MsiSequence.
253 msi: Handle remote calls to MsiGetTargetPath.
254 msi: Handle remote calls to MsiGetSourcePath.
255 msi: Handle remote calls to MsiSetTargetPath.
256 msi: Handle remote calls to MsiGetMode.
257 msi: Handle remote calls to MsiSetFeatureState.
258 msi: Handle remote calls to MsiGetFeatureState.
259 msi: Handle remote calls to MsiGetComponentState.
260 msi: Handle remote calls to MsiSetComponentState.
261 msi: Handle remote calls to MsiGetLanguage.
262 msi: Handle remote calls to MsiSetInstallLevel.
263 msi: Fix use of BSTRs.
264 msi: Handle remote calls to MsiFormatRecordW.
265 msi: Forward MsiFormatRecordA to MsiFormatRecordW.
266 msi: Handle remote calls to MsiEvaluateCondition.
267 msi: Enable remote custom actions.
268 msi: Match the changes made by the hand-generated and API-generated transforms.
269 msi: Delete msifile after the tests.
270 msi: Test adding columns with data in a transform.
271 msi: Handle adding columns in transforms.
272 msi: Check for NULL transform, as there may be no transforms for the _Columns or _Tables tables.
273 msi: Fix current _Property table tests and add more tests.
274 msi: Add tests for adding properties in a transform.
275 msi: Add tests for adding properties with a transform during an install.
276 msi: Fix a copy and paste error.
277 msi: Reload properties as they may have been changed by a transform.
278 msi: Fix automation.c compile for MSVC.
279 msi: Fix three tests that were failing in Windows.
280 msi: Fix compilation in MSVC.
281 msi: Add a test for installing from different current working directories.
282 msi: Add a test for running an ADMIN install.
285 crypt32: Use skip to avoid failures where support is missing.
286 crypt32: Don't fail when CryptVerifyCertificateSignatureEx is missing, use skip (and get rid of unnecessary indenting).
287 crypt32: Accept OSS errors.
288 crypt32: Accept OSS errors as well.
289 crypt32: Accept ERROR_BADKEY in addition to ERROR_INVALID_HANDLE.
290 crypt32: Accept ERROR_INVALID_PARAMETER in addition to ERROR_PATH_NOT_FOUND (and remove no-longer-useful checkFileStoreFailure).
291 crypt32: Pass function pointers to CryptMsgBase_Init rather than rely on callers to initialize them.
292 crypt32: Add more tests for opening a data message for encoding.
293 crypt32: Make a copy of a passed-in stream info rather than assuming the pointer will live forever.
294 crypt32: Test that inner content OID is ignored for data messages.
295 crypt32: Add tests for streamed encoding of data messages.
296 crypt32: Test and fix CryptMsgGetParam for streamed messages.
297 crypt32: Add a stub decode message implementation.
298 crypt32: Implement getting the type of a decode message.
299 crypt32: Add some tests for updating decode messages.
300 crypt32: More decode message update tests.
301 crypt32: Implement CryptSIPLoad.
302 crypt32: Implement CryptSIPGetSignedDataMsg, CryptSIPPutSignedDataMsg,
303 rsaenh: Get rid of the hash idle state, native doesn't behave as though it has one.
304 crypt32: Make some encoding functions available outside encode.c.
305 crypt32: Implement streamed encoding of definite-length data messages.
306 crypt32: Add open tests for hash messages.
307 crypt32: Add tests for updating hash messages opened to encode.
308 crypt32: Test opening hash messages to encode with streaming.
309 crypt32: Add a stub hash message implementation.
310 crypt32: Add tests for getting hash message params.
311 crypt32: Implement getting a hash message's hash value.
312 crypt32: Simplify hash value tests.
313 crypt32: Test updating hash messages with NULL stream output function.
314 crypt32: Partially implement updating hash messages.
315 crypt32: Add more missing defines.
316 crypt32: Implement getting hash message version.
317 crypt32: Add tests for hash message encoding.
318 crypt32: Copy data in hash message update.
319 crypt32: Add a helper function to copy params.
320 crypt32: Don't check if msg is NULL, tests show native doesn't either.
321 crypt32: Detached hash messages don't contain the content, so don't make a copy of it.
322 crypt32: Add tests for retrieving the content of a non-finalized (detached) message.
323 crypt32: Introduce an algorithm id encoding function that encodes missing parameters as NULL
324 crypt32: Implement retrieving a hashed message's content.
325 crypt32: Relax a test, the specific error isn't so important.
326 crypt32: Change finalized from a boolean to a state and use it to simplify message updating.
327 crypt32: Introduce an updated state, and use it to remove boolean "begun".
328 crypt32: Update comments about hash message version numbers.
330 Julio E. Gonzalez P (1):
331 ntdll: Add PYT and PYST time zones.
334 ws2_32: Handle IPv6 in WSAStringToAddress.
337 winecoreaudio: Enable DirectSound HEL mode for output.
338 winecoreaudio: Enable DirectSound HEL mode for input.
339 winecoreaudio: Improve safety of iterations when returning WAVEHDRs to client.
340 winecoreaudio: Correct the AudioBufferList allocated for input.
341 winecoreaudio: Protect against AudioUnitRender clobbering our buffer list.
342 winecoreaudio: Report format error on sample rate mismatch when opening wave-in device.
345 d3d10: Add stub for d3d10.dll.
348 start.exe: Put double quotes around arguments with spaces.
349 winex11.drv: Remove old dnd code.
351 Maarten Lankhorst (6):
352 winealsa: Silence the buffer warning more often.
353 dsound: Revert "dsound: Disable property sets if hardware doesn't support it.".
354 dsound: Clean up some unused variables.
355 dsound: Remove some more unused variables.
356 dsound: Fix division by zero in DSOUND_Calc3DBuffer.
357 dsound: Simplify IDirectSoundBufferImpl_GetCurrentPosition.
360 iphlpapi: Add support for GetTcpTable on Mac OS X.
361 iphlpapi: Fix byte ordering of Linux ports.
364 comctl32/datetime: Added a missing InvalidateRect to update display after WM_ENABLE.
365 user32: Center MessageBox dialogs to desktop, as Windows does.
367 Michael Stefaniuc (2):
368 ntdll: Fix missing unlock on error path. Found by Smatch.
369 msvcrt: Remove superfluous casts of void pointers to other pointer types.
371 Mikołaj Zalewski (2):
372 comctl32: toolbar: The iImage in TBN_GETDISPINFO should be initialized to -1.
373 comctl32: toolbar: We should send TBN_GETDISPINFOW even for ANSI controls (with testcase).
376 gdi32: Slightly simplify result handling in PolyDraw.
377 urlmon/tests: Make http protocol mime type test pass on native.
378 urlmon: Improve ObtainUserAgentString conformance to native.
379 urlmon/tests: Add tests for ObtainUserAgentString.
380 urlmon: Implement HttpProtocol.
381 urlmon: Fix HttpProtocol_Start and strndupW to work properly with native wininet.
382 urlmon: Make HttpProtocol conform with native wininet on wine.
385 advapi32/tests: Add tests for OpenSCManagerA.
386 user32/tests: Use skip.
387 user32/tests: Use skip.
388 advapi32/tests: Use skip when we don't have enough rights.
389 advpack/tests: Create the temporary inf-file in a directory where we are allowed to write.
390 kernel32/tests: Use skip when functions are not available.
391 kernel32/tests: Don't crash on win98.
392 kernel32/tests 2/2: Use skip for not implemented function.
393 advapi32/tests: Use skip for not implemented function.
394 secur32/tests: Use skip when functions are not available.
395 advapi32/tests: Add tests for OpenServiceA.
396 advapi32/tests: Add tests for CloseServiceHandle.
397 ddraw/tests: Use skip instead of trace.
398 ddraw/tests: Use skip instead of trace.
399 kernel32/tests: Add a forgotten if statement.
400 advapi32: Handle to Service Control Manager is checked first.
401 advapi32: Create specific access rights for service control manager handles.
402 gdiplus: Don't use struct member before NULL check (Coverity).
403 advapi/service: Simplify DeleteService by using RegDeleteTree.
404 advapi/service: Fix possible handle leak.
405 advapi/service: First tests (and fixes) for CreateService.
406 advapi/service: Check if we have enough access rights to create a service.
407 advapi/service: Check for empty servicename and binaryname.
408 programs/cmd: Do the assignment after the return to avoid a missing free() (Coverity).
409 advapi/service: Create specific access rights for service handles.
410 advapi/service: Check servicetype and starttype.
411 advapi32/tests: Use skip instead of trace.
412 crypt32/tests: Skip test if we don't have enough rights.
413 mscms/tests: Skip tests if we don't have enough rights.
415 Pedro Araujo Chaves Jr (1):
416 winspool.drv: Fallback to the first found printer as default printer.
418 Peter Dons Tychsen (1):
419 winex11: Fix X11DRV_DIB_GetImageBits() when target bitmaps are larger than fetched.
422 secur32: Don't free the password in InitializeSecurityContextW to enable the credentials handle to be re-used in further InitializeSecurityContextW calls.
423 secur32: Add tests for multiple use of a credential handle.
424 rpcrt4: Translate between NCA and RPC status codes.
425 rpcrt4: Call RPCRT4_Send directly from PKT_RECEIVE handler in server.
426 rpcrt4: Return a fault packet if the proc num exceeds the index of the last function available for the interface.
427 ntdll: The impersonation level in NtDuplicateToken should be taken from the SecurityQualityOfService member of ObjectAttributes if present.
428 rpcrt4: Make binding to an interface a function of RpcAssoc instead of
429 msxml3: Implement IXMLDOMNode::get_text for CDATA, processing instruction and comment nodes.
430 mshtml: Implement HTMLElement_insertAdjacentHTML and HTMLElement_insertAdjacentText.
433 dsound: Fix bug preventing correct calculation of the sound parameters
434 dsound: Simplify the calculation of sound attenuation due to distance.
435 dsound: Correct field access.
437 Stefan Dösinger (19):
438 wined3d: rsq and rcp use the .w component if no swizzle is given.
439 wined3d: Select onscreen contexts based on the thread id.
440 wined3d: Create multiple contexts for onscreen render targets.
441 ddraw: Z buffers can be attached to offscreen d3d devices.
442 ddraw: Fix an incorrect iface->impl cast.
443 ddraw: Materials in the execute buffer are handles.
444 ddraw: D3DOP_BRANCHFORWARD includes the current instruction size.
445 ddraw: Read the world matrix correctly.
446 ddraw: Implement IDirect3DViewport3::TransformVertices.
447 wined3d: Offscreen rendering from foreign threads.
448 ddraw: Update the wined3d matrix if a current matrix handle is modified.
449 ddraw: Y coords are inversed.
450 wined3d: Do not set streamIsUP in DrawPrimitiveStrided.
451 wined3d: Implement high order patches.
452 wined3d: Initialize surfaces at creation.
453 wined3d: Print the fixed and unfixed vertex warning only when needed.
454 wined3d: Add CTXUSAGE_CLEAR context usage.
455 wined3d: Make ActivateContext a bit smaller.
456 wined3d: Store the last active thread.
458 Thomas Weidenmueller (2):
459 shell32: Set current directory when executing files in a shell view.
460 shlwapi: Use publicly defined structure DATABLOCK_HEADER instead of redefining it locally.
463 net.exe: Converted strings to resources.
465 Vitaliy Margolen (9):
466 dinput: Correct test - use appropriate mouse state structure.
467 dinput: Keep the list of all the dinput devices created for each IDIrectInput object.
468 dinput: Keep a list of all IDirectInput objects and check it instead of refcount to create/destroy hook thread.
469 dinput: Export Mouse and Keyboard GUIDs.
470 dinput: Handle multiple keyboard and mouse devices.
471 dinput: Rename set_dinput_hook and call it from the base class.
472 dinput: Clear static variables after releasing hooks.
473 dinput: Convert IDirectInput into multi-interface object.
474 dxdiagn: Add reporting of some display related information.