Misc fixes:
- Only set file attributes if they changed
- Fail to set attributes if directory attribute is asked for a file
- Perform file attributes setting before dates to allow safe fail
svn path=/trunk/; revision=75917
Rewrite GetFileAttributesW() to make it simpler and more accurate.
Make GetFileAttributesA() call GetFileAttributesW()
This fixes the last failing tests from r75236.
CORE-13495
svn path=/trunk/; revision=75915
Rewrite SetFileAttributesW() to make it W2K3 compliant.
Notable improvements:
- Supports reparse points
- Doesn't query attributes to set them (speedup!)
This fixes a few failures in tests committed in r75236.
CORE-13495
svn path=/trunk/; revision=75914
Fix a really bad bug in VfatChkdsk(), the routine used to check a volume:
In case readwrite is enabled (ie, volume fixing is allowed), when the volume is opened, it is also locked.
If the volume has the clean shutdown bit and is to be checked only if that one is not set, then the volume lock is leaked.
This makes the volume then totally unusable later on (any later open will fail).
Because r75772 fixed volume locking on non-system partition, this totally broke (access denied) any secondary FAT volume in ROS.
Now, we just properly release the lock when required, also made a comment more explicit to avoid later bugs like that.
CORE-13805
svn path=/trunk/; revision=75911
Only perform dismount check on close/cleanup for volume opening.
This prevents random dismounts and fixes 1st stage when ENABLE_SWAPOUT is enabled in FastFAT (disabled by default).
CORE-13805
svn path=/trunk/; revision=75908
5660a9b urlmon: Remove a redundant NULL check before SysFreeString().
acb1f03 urlmon: Support BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS in BindProtocol object.
ccc5ba2 urlmon: Added a helper function for releasing protocol handler.
cded077 urlmon: Release previously set URI in BindProtocol::StartEx.
9e92254 urlmon: Added support for BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS in http protocol handler.
svn path=/trunk/; revision=75902
2d9e894 rpcrt4: Always protect ref access for connections associated with protseq in RPCRT4_ReleaseConnection.
aea6d23 rpcrt4: Mark function that are only called from assembly as hidden.
bea5c0c rpcrt4: Spelling fixes in comments.
2cb32b2 rpcrt4: Change RPCRT4_ReleaseConnection return type to void.
e889b02 rpcrt4: Fix a race when server grabs a connection from the list of active connections.
09e98be rpcrt4: Wait for server threads to finish in RpcMgmtWaitServerListen.
e98c7a5 rpcrt4: Wait for all active connections to be released before quiting server thread.
10a6b33 rpcrt4: Recreate listening pipe in rpcrt4_protseq_np_get_wait_array if needed.
5c2083f rpcrt4: Store listening pipe name in RpcConnection_np.
5c81f82 rpcrt4: Store server thread handle in RpcServerProtseq.
svn path=/trunk/; revision=75898
58cac9c riched20: Remove the separate implementation of IOleWindow as IOleInPlaceSite inherits from IOleWindow.
adf53a9 riched20: Add support for pasting EMFs.
bbf34a4 riched20: Use the implementation of EM_PASTESPECIAL for EM_CANPASTE.
46fef3d riched20: Use the implementation of EM_PASTESPECIAL for WM_PASTE.
9bec53f riched20: Add support for EM_PASTESPECIAL.
417c80d riched20: Don't create a special richedit ole instance for the RTF parser.
1bc48be riched20: Initialize ME_TextEditor members in ME_MakeEditor().
5cc8c9f riched20: Retrieve the default paragraph alignment from the text host.
4cb7578 riched20: Move the editor initialization out of CreateTextHost().
2d91663 riched20: New high resolution cursor generated from SVG.
17b7cde riched20: The background colour is set using \highlight.
svn path=/trunk/; revision=75896
8da116d oleaut32: Don't copy uninitialized data.
0dde882 oleaut32: Use variable with the correct type in LIST_FOR_EACH_ENTRY_SAFE macro.
840ab7c oleaut32: Simplify VarCat implementation.
538e46a oleaut32: Improve support for IDispatch in VarCat.
cf45f3b oleaut32: Add an arguments check to LoadTypeLibEx.
4be8d83 oleaut32: Make VARIANT_GetLocalisedText() static.
svn path=/trunk/; revision=75892
a56bc8f ole32: Store proxy/stub CLSIDs per process, not per apartment.
3b44927 ole32: New high resolution cursors generated from SVG.
5a3b87a ole32: Avoid null pointer dereferences in CoGetTreatAsClass.
13c6d37 ole32: Add stub for OleGetIconOfFile.
33a720b ole32: InitNew() should fail if there is a current storage.
966e8a2 ole32: Create initial cache entries for the CLSID_Picture_ classes.
111b72f ole32: Add the ability to create an entry without returning it.
705ccd7 ole32: Start allocating regular cache entries with id of 2.
0267564 ole32: Fix incorrectly assigned member in the presentation stream.
85a1309 ole32: Make bitmap_info_size() static.
svn path=/trunk/; revision=75890
993faf5 msacm32: Implement ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT.
84e61e6 msacm32: Add invalid parameter checks for acmFormatChoose().
5e2c243 msacm32: Don't add a format entry if it is decode-only.
cadedd7 msacm32: Rewrite PCM conversion functions.
7493364 msacm32: Check correct variable.
ab2760e msacm32: Try to suggest PCM to PCM conversion first.
8e88af3 msacm32: Add more invalid parameter checks for acmFormatSuggest().
1e30f79 msacm32: Add invalid parameter checks for acmFormatDetails().
c984aa5 msacm32: Add more invalid parameter checks for acmFormatEnum().
4e0c370 msacm32: Don't write cbSize if the format is WAVE_FORMAT_PCM.
svn path=/trunk/; revision=75886
6bf1b63 gdiplus: Account for gdi32 transform in SOFTWARE_GdipDrawThinPath.
e127101 gdiplus: Send paths to gdi32 in device coordinates.
93e8507 gdiplus: Account for gdi32 transform in GdipDrawImage.
be95252 gdiplus: Use SOFTWARE_GdipDrawPath with alpha hdc's.
0914f62 gdiplus: Account for gdi transform in brush_fill_pixels.
399fd55 gdiplus: Account for gdi transform in SOFTWARE_GdipFillRegion.
016dc76 gdiplus: Transform clipping region to gdi device coordinates.
cfa4f08 gdiplus: Replace DPtoLP with an internal coordinate space constant.
5c12ced gdiplus: Check for invalid coordinate space in GdipTransformPoints.
8c593bd gdiplus: Set correct color space flags for grayscale images.
7860d11 gdiplus: Don't call PlayEnhMetaFileRecord for records handled by gdiplus.
5870431 gdiplus: Force conversion of 8 bpp grayscale PNG images to 32 bpp BGRA.
42e5d27 gdiplus: Use defined constants for wrap modes.
79ebd3f gdiplus: Fix copy-paste typo.
a4ab858 gdiplus: GdipCreateMetafileFromWmfFile will also load EMFs.
aac33da gdiplus: Implement transform matrix for line gradient brushes.
14bb8df gdiplus: Support GdipSetClipRegion in metafiles.
4a02870 gdiplus: Add write_region_data helper and use it in GdipGetRegionData.
595959c gdiplus: Add more accurate algorithm for inverting scaling and translation matrices in GdipInvertMatrix.
1744277 gdiplus: Implement stub for GdipGraphicsSetAbort.
331a7af gdiplus: Fix a possible floating point exception in path gradients.
400cfb0 gdiplus: Avoid division by zero in SOFTWARE_GdipDrawThinPath.
2176348 gdiplus: Return success saving path to metafile.
70afb4e gdiplus: Fix saving pen dashed line cap style to metafile.
a172cc6 gdiplus: Free dash_pattern_scaled (Coverity).
58eb74c gdiplus: Use write_path_data helper in GdipGetRegionData.
a892b68 gdiplus: Add write_path_data helper to create EMF+ path object.
5545332 gdiplus: Store newer gdi+ version in created GdipRegions.
cfe2b3f gdiplus: Don't require specific gdi+ versions in metafile structures.
a8b5fdd gdiplus: Use VERSION_MAGIC2 constant in metafiles functions.
8498aa3 gdiplus: Add support for creating image object containing metafile.
9f22041 gdiplus: Fix leak in widen_dashed_figure.
f9b881e gdiplus: Fix GdipGetVisibleClipBounds behavior on metafiles.
de37ced gdiplus: Add partial support for GdipFillPath on metafiles.
e79c4ca gdiplus: Add partial support for GdipDrawPath on metafiles.
7d6896e gdiplus: Add helper for saving pens to metafile.
e502a8d gdiplus: Add helper for saving path objects in metafile.
8608bf5 gdiplus: Add DrawPath stub for metafiles.
29968cf gdiplus: Support GdipSetInterpolationMode in metafiles.
f248374 gdiplus: Support GdipSetCompositingQuality in metafiles.
1cecd47 gdiplus: Support GdipSetCompositingMode in metafiles.
910975a gdiplus: Support GdipSetSmoothingMode in metafiles.
f716029 gdiplus: Support GdipSetPixelOffsetMode in metafiles.
683315d gdiplus: Support GdipSetTextRenderingHint in metafiles.
689268d gdiplus: Add support for ImageAttributes when drawing image to metafile.
ac231b1 gdiplus: Add function for managing metafile objects id.
e1e4dd2 gdiplus: Add partial support for GdipDrawImagePointsRect on metafile.
1a75f76 gdiplus: Remove unused clsid parameter from encode_image_func helpers.
01c9fb9 gdiplus: Remove a duplicate word in a comment.
6ec3cd9 gdiplus: Set flatness more appropriately in GdipDrawPath.
7e1522c gdiplus: Scale widened dashes to the pen width.
c95877d gdiplus: Write API documentation for GdipAddPathArc and GdipAddPathArcI.
f1123f3 gdiplus: Write API for GdipClonePath.
f96e319 gdiplus: Write API for GdipAddPathLine and GdipAddPathLineI.
260cbd0 gdiplus: Implement triangular line caps in widened paths.
a4b7fe6 gdiplus: Initialize containers list in GdipCloneImage.
svn path=/trunk/; revision=75872