Release Notes - 4.0.5
Big Changes
- Separated DirectX (Graphics) project into individual assemblies and added most functions, interfaces, and constants for DirectX assemblies.
- Renamed Graphics packages to DirectX and it includes all DirectX projects.
- Swapped AppVeyor for GitHub Actions and MyGet.
- Lots of changes to move to latest NUnit testing version
Breaking Changes
- BREAKING CHANGE: Renamed misspelled static extension class HexDempHelpers to HexDumpHelpers
- POTENTIAL BREAKING CHANGE: Changed ISafeMemoryHandle.AddSubReference and all derived classes to use SafeAllocatedMemoryHandle rather then the interface for more generality. Also, changed many int and uint parameters to SizeT.
- More bug fixes and usability for ActiveDS. BREAKING CHANGE: type change of ADS_SEARCH_COLUMN.pADsValues to object?[].
- BREAKING CHANGE: Pulled generics out of IADsContainerObject
- Hopefully not a breaking change for everyone, but modified MAKELONG, MAKELONG64, and MAKELPARAM macro implementations to use IConvertible.
Other additions and fixes
- Added StrPtrUni from char* operator
- Added ArrayPointer to IntPtr operator
- Added marshaling logic to ADS_ATTR_INFO and ADS_SEARCH_COLUMN. Completed definition of ADSVALUE.
- Fixed definitions of IDirectoryObject and IDirectorySearch and added extension methods for each.
- Added SYSTEMTIME.CheckBounds to validate entries before converting.
- Added SizeT conversions from ushort and short.
- Changed many int and uint parameters to SizeT for interop functions (ToArray, ToStruct, etc.)
- Lots of work on DirectoryServices:
- Added marshaling to many structures for more intutive use
- Fixed bugs and added extension methods for IDirectorySearch and IDirectoryObject
- Improved usability of ADSVALUE
- Added container support to wrappers where missing
- Fixed XML docs
- Added CorrespondingTypeAttribute values to ADS_SEARCHPREF
- Fixed bug in ADS_SEARCHPREF_INFO.ctor and ADSTYPE.SetValue not handling values for ADSTYPE_PROV_SPECIFIC
- Added DirectoryObject and DirectorySearch and updated Container interface.
- Fixed bug in ADsSchemaPropertySyntax casting from IADs
- Fixed alignment error in User32.POINTER_TYPE_INFO (#489)
- Added Kernel32.GetFileInformationByName method and supporting structures
- Added Kernel32.TlsGetValue2 method
- Removed driver and DX headers from Gdi32. They will never be implemented.
- Added Shell32.IServiceProvider.QueryService extension
- Fixed Shell32.IShellWindows interface methods and added extension method for FindWindowSW. Part of #469 response.
- Added Vanara.PInvoke.UIAnimation assembly and test
- Added float and generic Matrix classes to Core.
- Added COM object logic to IntPtrConverter
- Added COLORREF.ctor that sets all values
- Moved LUID from Security (AdvApi32) to Shared
- Added SafeAllocatedMemoryHandleBase.GetContentHashCode to get a fast hash of all allocated bytes.
- More FunctionHelper.IidGetObj helpers
- Fixed documentation for PROPVARIANT reference values (#497)
- Partial but fully working implementation of NtQueryInformationFile with test and extension method. (#498)
- Added a few undocumented HRESULT codes (#490)
- Fixed #488 that ShellFolder.EnumerateChildIds might throw NullReferenceException if failed to enum the objects (#499)
- Minor updates to WUApi, but #496 persists. Possible non-bug and operation of Windows Update when empty collection provided.
- Fixed bug #496 though don't know why it throws exception.
- Fixed #502 and added some optimations to NativeMemoryStream
- Update FwpTypes.cs (FWP_DATA_TYPE.FWP_SINGLE_DATA_TYPE_MAX) (#503)
- Fixed bug with enum and method around ID3D12Device.CheckFeatureSupport and fixed memory for D3DX12SerializeVersionedRootSignature
- Proposed fix for #504
- Optimized IntPtr.CopyTo extension using System.Buffer
- Added SafeAllocatedMemoryHandleBase.CopyTo methods to copy memory segments to pointers and other SafeAllocatedMemoryHandleBase instances
- Fixed bug in MsgExtensions.GetParam method
- Fixed bug in IUnknownPointer
- Added User32.NCCALCSIZE_PARAMS
- Added macro implementations from windowsx.h into appropriate projects.
- Some compatibility fixes with new MAKELONG64 impl
- Fixed bug in MOUSEWHEEL
- Augmented ShellDataObject to confirm equivalent streams (#505)
- Added SizeFieldNameAttribute and helper methods to specify the size of array and string pointers.