Skip to content

Release Notes - 4.2.0

Choose a tag to compare

@dahall dahall released this 25 Aug 16:27
· 93 commits to master since this release

Major changes

  • Migrated solution to Central Package Management
  • Added Vanara.PInvoke.TelephonyApi (TAPI) assembly with all 3.x interfaces
  • Many additions, changes, and a few BREAKING CHANGES to Kernel32 as I did a full review after many years.

Additions

  • Added bindlink.h to Kernel32
  • Added ComConnectionPoint functionality to retrive the cookie for each supported IID.
  • Added functions for hit lists to BitHelper
  • Added generator that looks for MarshaledAlternativeAttribute and creates conversion code to process between original simple structure and new Marshaled structure
  • Added GuidToStringMarshaler, an ICustomMarshaler to convert an object with a Guid value or a Guid string representation to a formatted string value.
  • Added INVALID_HANDLE_VALUE fields to base handles
  • Added missing MRU list and Flat scrollbar functions and types
  • Added missing WinCrypt structures, updated IntPtr fields with stronger typed StructPointer and ArrayPointer types, added missing error constants.
  • Added ModalDialog class to handle resource based dialogs
  • Added multiple SendDlgItemMessage overloads (like SendMessage)
  • Added ReadFile overloads
  • Added SafeHANDLE null equality handler (false) and made ReleaseOwnership virtual
  • Added some annotation attributes that will eventually feed generators: AddAsMember, Ignore, and SizeDef
  • Added spuihelp.h methods and other minor fixes to SpeechApi
  • Added support to VanaraMarshaler for Marshaled structures
  • Added UnionHelper static class that has methods to make processing overlapping values easier without using ExplicitLayout
  • Added Win32Error.GetExceptionForLastError
  • Adds the two flags that were introduced after Windows 10 1709 but are still missing from Vanara’s CF_UPDATE_FLAGS enum.
  • Add ed CF_UPDATE_FLAG_ALWAYS_FULL & CF_UPDATE_FLAG_ALLOW_PARTIAL to CF_UPDATE_FLAGS (#540)

Changes and Fixes

  • BREAKING CHANGE: Changed SafeAllocatedMemoryHandle.CopyTo(SafeAllocatedMemoryHandle h, SizeT l) and removed second param to prevent ambigous calls. Moved DangerousSetSize to SafeAllocateMemoryHandleBase. Added param check to CopyTo(SizeT start, SizeT length, ISafeMemoryHandleBase dest, SizeT destOffset = default) to prevent buffer overreads and fixed dest checks.
  • BREAKING CHANGES: Fixed MemoryApi MapUserPhysicalPagesScatter and GetMemoryErrorHandlingCapabilities parameters
  • Changed all handles to derive from SafeHANDLE instead of SafeHandle and derivatives to get extra functionality and work better with new analyzer. Hopefully not a breaking change.
  • Changed SafeEventHandle parameters to HEVENT for broader use.
  • Created NUnit TestWhenElevated attribute to mark methods that shouldn't fail if run when not elevated.
  • Exposed HINSTANCE of ModalDialog
  • Extracted ISafeMemoryHandleBase from SafeAllocatedMemoryHandleBase and made ISafeMemoryHandle derive from it.
  • Fixed bug how ModalDialog returned from WM_COMMAND
  • Fixed bug in Library nuspec file
  • Fixed bug in NativeMemoryStream.Read(byte[]) not handling null correctly.
  • Fixed Clipboard.AnsiToUnicode after changes to MultibyteToWideChar function
  • Fixed incomplete parameter declarations in CldApi.CfUpdatePlaceholder (#546)
  • Fixed layout issues with Ole32.DVTARGETDEVICE (#550)
  • Fixed layout of OPEN_VIRTUAL_DISK_PARAMETERS (#541)
  • Fixed problem wtih WlanApi.DOT11_SSID not handling UTF-8 strings (#545)
  • Fixed problems with GETTEXTEX fields
  • Minor changes, but unresolved problems, with CSharpRunner under .NET 8
  • More work on SpeechApi adding in alternative Marshaled structures and overloads
  • Updated AdvApi32.EVENT_TRACE_PROPERTIES with ctors
  • Updated NuGet packages for solution