Skip to content

Release Notes - 4.0.5

Choose a tag to compare

@dahall dahall released this 08 Feb 21:16
· 316 commits to master since this release

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.