Skip to content

Releases: dahall/Vanara

Release Notes - 3.4.3

14 Jun 23:01
Compare
Choose a tag to compare

Additions

  • Added operator overloads to SizeT
  • Added app management and storage provider interfaces to Shell32
  • Adding DbgPrint and DbgPrintEx to Wdm (#299)
  • Added provider constants to AdvApi32.WinCrypt (PInvoke.Security) and fixed CryptEnumProviders, CryptEnumProviderTypes, and CryptExportKey (#300)
  • Added ICategoryProvider::CreateCategory overload
  • Added Shell.ShellFolderCategorizer class and accessor from ShellFolder to get the "group by" categories associated with a folder.
  • Pushed MRUManager base class to Windows.Shell.Common
  • Added more helper functions for working with StringBuffer related methods.
  • Added BindCtx support for WIN32_FIND_DATA "simple parsing" and optional object parameters.
  • Added IStream load and save methods to Shell32.PIDL

Fixes

  • In Pinvoke.Crypt32, fixed PFN_CRYPT_ENUM_KEYID_PROP, BlobType, CryptEnumKeyIdentifierProperties, and PUBLICKEYSTRUC (#300)
  • Fixed IPersistFolder3::InitializeEx syntax (#301)
  • Fixed parameters of functions in INamespaceWalk

Release Notes - 3.4.2

13 May 16:00
Compare
Choose a tag to compare

Additions

  • Updated build targets to include package readme files and CI build values for AppVeyor and GitHub.
  • Added IOleLink and supporting enums
  • Added ARRAYDESC and PARAMDESCEX structures to Ole
  • Added logging interfaces from txlogpub.h to PInvoke.Ole
  • Added interfaces from imagetranscode.h and inputpanelconfiguration to PInvoke.Shell

Fixes

  • Fixed incorrect CorrespondingAction on User32.SPI.SPI_SETTHREADLOCALINPUTSETTINGS (#298)
  • Fixed VirtualDisk.Attach(string[]...), duplicated it in VirtualDisk.AttachAsync, and removed VirtualDisk.Attach(string...), VirtualDisk.VolumeGuidPath and VirtualDisk.VolumeMountPoint in leiu of their multi-mountpoint alternatives (#284)
  • Fixed marshaling attributes for STGOPTIONS and COSERVERINFO

Release Notes - 3.4.1

05 May 00:17
Compare
Choose a tag to compare

Additions

  • Added Vanara.Management assembly with helpers for System.Management.
  • Added Vanara.PInvoke.SensorsApi
  • VirtualDisk: Added support for mounting specific path or drive when attaching, added properties for mount information, CreateAsync, AttachAsync, VHD set, snapshot and mirror methods.
  • VirtDisk: Added CREATE_VIRTUAL_DISK_PARAMETERS.ctor, RAW_SCSI_VIRTUAL_DISK_PARAMETERS.ctor and enhanced OPEN_VIRTUAL_DISK_PARAMETERS.ctor for platform adherance and new constants from SDK.

Fixes

  • Moved RGBQUAD from Gdi32 to Shared.
  • Fixed recursive bug in WinNTExtensions.IsValidSecurityDescriptor
  • Fixed bug with DRIVE_LAYOUT_INFORMATION_EX
  • Improved error handling in DeviceIoControl
  • Fixed conditional binding to Registry in Vanara.PInvoke.Shared
  • Updates to hopefully fix PInvoke.Shared load problems
  • #284 - added functionality to address multiple mount points to VirtualDisk
  • SPCorrespondingTypeAttribute refactor (#288)
  • Rearranged file placement of elements from NtDll as part of exploring #289
  • Fixed flags in MONITORINFOEX (#293)
  • Fixed bug #294 -- problem with SYMBOL_INFO and SymEnumSymbols not showing Name field correctly. Had to change PSYM_ENUMERATESYMBOLS_CALLBACK (breaking change). Added new SymEnumSymbolsEx overload to do the hard work.
  • Reworked all structures in IpHlpApi assembly to ensure size compatibility. (#296)
  • Fixed #297 - Incorrect value for Ws2_32.IN6_ADDR.Loopback

Release Notes - 3.4.0

14 Mar 21:56
Compare
Choose a tag to compare

Major Changes to .NET Version support

  • Removed support for .NET 2.0, 3.5, and 4.0, .NET Core 2.0, 2.1, and 3.0 since all are or shortly will be out of support.
  • Added support for .NET 4.8 and 6.0.
  • Removed PackageReference details for .NET 5 and 6 projects with System.Drawing.Common.
  • Moved most TargetFrameworks tags out of project files and into Directory.Build.props for easier maintenance.

Breaking Changes due to dependency reduction

  • Reduced dependencies of almost all assemblies on .NET runtime assemblies not part of core System assemblies, most specifically System.Drawing and System.Windows.Forms. This forced the removal of some overloaded methods and the replacement of leveraged structures and enums with native equivalents.
  • Added Vanara.Windows.Shell.Common which has all the content from Vanara.Windows.Shell that did not have dependencies.
  • Removed dependencies on WinForms and WPF for Gdi32 and User32 assemblies. This forced the removal of extension methods to convert HBITMAP and HICON to System.Windows.Media.Imaging.BitmapSource and all uses of IWin32Window.
  • Extracted all extension methods from Gdi32 and User32 and moved them to Vanara.Windows.Extensions.
  • Moved TEXTMETRIC, LOGPALLETTE, PALLETTEENTRY, and PC from Gdi32 to Shared project to remove dependencies on Ggi32 by other projects (e.g. Ole).
  • Added POINT struct to Vanara.PInvoke, changed all System.Drawing.Point reference to POINT, and optimized RECT and SIZE structures.
  • Added extension assemblies for WinForms, WPF, and WinUI/UWP
  • Converted ShellView items returning PIDLs to return ShellItems

Upgrade notes

  • Replace all instances of System.Drawing.Point in Vanara methods and properties with Vanara.PInvoke.POINT
  • Replace all instances of System.Windows.Forms.Form and Control and IWin32Window with the raw window handle (HWND)
  • If you are missing other items from System.Drawing or System.Windows.Forms look for new values or check the new Vanara.Windows.Extentions assembly.

New Assemblies

  • Added Antimalware assembly (Vanara.PInvoke.AMSI) with supporting wrapper class: Vanara.SystemServices.AntimalwareScan.
  • Vanara.PInvoke.Ime32
  • Vanara.PInvoke.Usp10 (Uniscribe)
  • Vanara.PInvoke.WinHTTP

Additions

  • Added ABN and ABS enums to ShellApi
  • Added HWND.HWND_BROADCAST constant
  • Added NMHDR.LParamAsRef method
  • Added PinnedObject implicit operator to unsafe void*.
  • Added SafeAllocatedMemoryHandleBase.GetBytes() and pulled SafeMemoryHandle.Locked from IMemoryMethods instance
  • Added SafeMoveableHGlobalHandle class and added support to locking memory to all memory classes.
  • Added StringHelper methods supporting encoders
  • Added Vanara.Windows.Shell.Taskbar class to get/set information regarding the system taskbar.
  • Added elements from mstcpip.h to Ws2_32
  • Added extra buffer when setting size from VanaraMarshaler to prevent errors when they're off due to alignment issues
  • Added helper functions to WINDOWPOS to help when using it with LPARAM values.
  • Added indexer to SafeMemString
  • Added missing hook constants from winuser.h
  • Added tcp_keepalive struct to Ws2_32
  • Applied new lang constructs to CLIPFORMAT
  • Extended SafeAllocatedMemoryHandle.ToType extension method to support CharSet
  • Incorporated non-breaking suggestions for Device and DeviceManager in #282
  • Made CorrespondingTypeAttribute.GetAttrForEnum public.
  • Made some optimizing changes to PInvoke.VirtDisk and added VirtualDisk.SetParentPath and SetParentPathWithDepth methods.

Fixes

  • Changed SafeMoveableHGlobalHandle.ctor(IntPtr...) method to not accept size and rather extract it using GlobalSize
  • Correct alignment for WTSINFO and WTSINFOEX. (#279)
  • Corrected APPBARDATA structure layout to address #276
  • Fixed #268
  • Fixed #274 (error in EnumerableEqualityComparer.Equals)
  • Fixed SecPkgContext_IssuerListInfoEx size and added extraction property
  • Fixed WINHTTP_CURRENT_USER_IE_PROXY_CONFIG so it exposed pointers which can be freed.
  • Fixed bug in Win32Error.ThrowLastErrorIf method that would exception if error was success.
  • Fixed bug with VirtDisk.GetStorageDependencyInformation and implemented VirtualDisk.GetStorageDependencyInformation() and VirtualDisk.DangerousGetHandle()
  • Fixed incorrect struct layout for WTSINFO (#278)
  • Fixed minor error handling in EnumFlagIndexer and added Intersect method.
  • Fixed multiple problems with SystemParametersInfo and SPI values (#283). Overload methods now are tested against all SPI values.
  • Fixed small bug in IntPtr.ToStringEnum
  • Lots of work to make using IDataObject and the clipboard more stable and usable. Added Get/Set extension methods for IDataObject. Added attributes to clipboard formats to help reading. Added formatters to process clipboard types. Fixed bugs in ShellDataObject and NativeClipboard.
  • Lower System.ValueTuple version dependency. (#280)
  • Prevented #269 by addeding documentation and removing [Optional] attribute on final param for SHChangeNotify.
  • TYPEFLAGS changed to uint (#267)
  • Updated documentation for all window messages.

Release Notes - 3.3.15

27 Dec 18:53
Compare
Choose a tag to compare

Additions

  • Added IStorageProviderCopyHook per request #252
  • Added BeginEndEventContext to call delegates on context entry and exit
  • Added WindowStylesEx.WS_EX_NOREDIRECTIONBITMAP (#254)
  • Cleaned BITS file syntax and added support for v10.2 and 10.3: IBackgroundCopyFile6, IBackgroundCopyJobHttpOptions2, IBackgroundCopyJobHttpOptions3, and IBackgroundCopyServerCertificateValidationCallback
  • Added Shell notify icon messages (#260)

Fixes

  • Work on fixing and enabling Audit log writes using AuthzReportSecurityEvent and AuthzReportSecurityEventFromParams. The prior is now fully working. (#251)
  • Finished fixing AuthzReportSecurityEventFromParams. BREAKING CHANGE: removed SafeAUTHZ_SOURCE_SCHEMA_REGISTRATION as all functionality was possible by marshaling AUTHZ_SOURCE_SCHEMA_REGISTRATION correctly.
  • Fixed bug with AVICOMPRESSOPTIONS functions (#253)
  • Made changes to address #255.
  • Fixed missing size in HeapAlloc, HeapReAlloc, and SafeHHEAP.GetBlock (#258)
  • Changed IBackgroundCopyJob.SetNotifyInterface parameter to IBackgroundCopyCallback instead of Object
  • Fixed #257 problem with BackgroundCopyJob constructor throwing error on systems prior to Win 10 and deficiencies with BackgroundCopyManager.Version property.
  • Fixing wrong size of IMAGEHLP_MODULE64.ModuleName; see https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_modulew64 (#256)
  • Updated IEnumFromCom to support intialized (new) items so it covers structures and classes.
  • Fixed #262 and adjusted other functions in ICreateTypeInfo to include enums.

Release Notes - 3.3.14

26 Oct 04:10
Compare
Choose a tag to compare

Additions

  • Added EnhancedStorge and PortableDeviceAPI (WPD) assemblies
  • Added new DNS, TimeStamp, Kernel and various other functions introduced in Win11
  • Added SafePSECURITY_DESCRIPTOR.ToString(SECURITY_INFO) overload
  • Added IObjectSafety interface
  • Added intefaces to UrlMon: IAuthenticate, IAuthenticateEx, IBindHost and IPersistMoniker
  • Added GetInfo, SetInfo, ReadMemeory and WriteMemory process extension methods.
  • Added KERNEL_USER_TIMES to NtDll
  • Added path extension methods for processes and extended GetInformation to also get values from NtQueryInformationProcess.
  • Added Process.GetPebAddress extension method
  • Code cleanup of SecurityBaseApi.cs and addition of generic GetTokenInformation overload.
  • Added MANDATORY_LEVEL enum.
  • Added extension methods HTOKEN.GetIntegrityLevel, PSECURITY_DESCRIPTOR.GetIntegrityLevel, PACE.GetAceType.
  • Added IEquatable support to SID_IDENTIFIER_AUTHORITY and PSID_IDENTIFIER_AUTHORITY
  • Added SafePSID.Authority and SubAuthorities properties and mirrored extension methods for PSID.
  • Added GetModuleHandleEx overload for an address
  • Added GetProcAddress methods to SafeHINSTANCE
  • Added Ole32.IPersistPropertyBag interface
  • Added missing constants from lmaccess.h
  • Added LocalGroup and UserAccount classes to Vanara.SystemServices to retrieve local group and user account information from a server's SAM. Added access through Computer class.
  • Added IPortableDeviceManager extension methods

Fixes

  • Changed paramters to CoDecodeProxy, added CoGetClassObject overload
  • Fixed PROCESS_INFORMATION_CLASS values and types.
  • Updated and fixed attributes for appmodel.h functions, adding GetPackageFullName function.
  • Extracted WinNTExtensions into its own file and added PACL.GetAce and PACL.EnumerateAces extension methods.
  • Updated SafePSID.FromToken to use generic GetInfo.
  • BREAKING CHANGE: Removed ProcessIntegrityLevel and replaced use with AdvApi32.MANDATORY_LEVEL.
  • Fix MIB_TCP_STATE enum wrapper (#250)

Release Notes - 3.3.13

30 Sep 21:32
Compare
Choose a tag to compare

Additions

  • Added methods and interfaces for File History (FhSvcCtl)
  • Added NotifyIcon.GetBounds extension method
  • Updated SafeAnysizeStruct so an IntPtr field can be used for the array size.
  • Updated documentation for NOTIFYICONIDENTIFIER and added constructors.
  • Added Rtl*Heap functions
  • Added missing constants and CLSID for component category registration.
  • Added Shell32.IDeskBand and supporting types
  • Added ability to set a COLORREF by using a tuple (e.g. COLORREF c = (255,255,0);)
  • Added SHCIDS constants
  • Added IsNullOrEmpty property to StrPtrXX structures.
  • Added IEquatable support to GuidPtr and StrPtr* structs. …
  • Added char* cast to StrPtrUni and sbyte* cast to StrPtrAnsi.
  • Added Wireless Ad Hoc interfaces to WlanApi assembly.

Fixes

  • Removed HelpBuilder project and files -- unused and problematic.
  • Fixed parameter and field types for User32 mouse functions (#248)
  • Fixed bug in SafeProcThreadAttributeList.Create (#249)
  • BREAKING CHANGE Changed const params in SHCreateDefaultContextMenu, SHCreateShellFolderView and SHCreateShellFolderViewEx from ref to in.

Release Notes - 3.3.12

30 Aug 14:11
Compare
Choose a tag to compare

Additions

  • Added assembly for CimFs library
  • Added BasicMessageWindow.HandleCreated and HandleDestroyed events.
  • Added CorrespondingType attributes to StandardClipboardFormat values.
  • Added CorrespondingTypeAttribute.EncodingType property to allow for encoding as part of a conversion.
  • Added Flags attribute to DROPEFFECT and UPDFCACHE
  • Added NativeClipboard.GetShellDataObject
  • Added ASCII text item to NativeClipboard.SetText method.
  • Added ShellDataObject.GetData handler for CFSTR_INETURL
  • Added ShellDataObject.SetData handler for CFSTR_DROPDESCRIPTION
  • Added ShellDataObject.SetOleStreamData
  • Added ShellItemArray.ToDataObject method to extract an IDataObject
  • Added ShellItemPropertyStore.Dispose overload to null out use of ShellItem. May help with #242.
  • Added SystemEventHandler.MessageWindowHandleCreated event
  • Added USN type with correct mapping (long for LONGLONG instead of int) and corrected all references in structures and functions. #241

Fixes

  • Changed HFILE to implement ISyncHandle
  • Changed ShellDataObject.ctor to take IEnumerable instead of array and expanded it to set CFSTR_SHELLIDLIST, CFSTR_FILEDESCRIPTORW, CFSTR_FILECONTENTS, CF_HDROP, CFSTR_FILENAMEA, and CFSTR_FILENAMEW.
  • Changed order of title and url placement in NativeClipboard.SetUrl to url first.
  • Fixed misspelling in FILEDESCRIPTOR.nFileSize
  • Made adjustments to WinCon to fix INPUT_EVENT marshaling problems (#244)
  • Renamed PInvoke\NTDll to PInvoke\NtDll to match NuGet package (#243)
  • Streamlined disposals of ShellItem and ReadOnlyPropertyStore to address #242 and minimize impact of garbage collection when IPropertyStore is used.
  • Updated NativeClipboard to ensure that the listener window is only created when the ClipboardUpdate event is handled.
  • Updated User32.INPUT structure for better usability, changed UIntPtr fields to IntPtr in a few structures and functions, added VK_* constants.

Release Notes - 3.3.11

22 Jul 02:56
Compare
Choose a tag to compare

Additions

  • Added NtCreateProcess(Ex) methods to NtDll (#233)
  • Completed addition of all functions to Multimedia project
  • Added WinBio functions and corrected structures -- only partially functional
  • Added winsock2 select function (#239)

Fixes

  • Changed all dll references to lowercase to avoid new .NET 5 behavior (fixes #235)
  • Switched ShellBrowser event handler based methods to overrides and reformatted doc.
  • Fixed #225 with ExplorerBrowser failing when added to designer window.

Release Notes - 3.3.10 and 3.3.9

04 Jun 12:51
Compare
Choose a tag to compare

3.3.9

Additions

  • Added CfgMgr32 assembly (#222) with initial requested functions
  • Added assembly for Text Services Framework
  • Added DEVPROPKEY.LookupName and ToString methods
  • Added DEVPROPKEY.TryGetReadOnly method to look at read-only flag.
  • Added DEVPROPTYPE.GetObject extension methods
  • Added GUID_DEVINTERFACE_* constants
  • Added LANGID structure
  • Added actions to DEVPROPKEY corresponding type info
  • Added missing structures from SetupAPI's devpropdef.h.

Fixes

  • Extracted and fixed IEnumFromCom
  • Fixed #223 due to INPUT alignment problem
  • Fixed bug in ExplorerBrowser to avoid releasing a PIDL whose owner is the shell itself (#224)
  • Fixed #226 by correcting layout and marshaling for WlanSetFilterList and DOT11_SSID
  • Fixed bug in IEnumFromCom single object constructor
  • Fixed bug in IntPtr.ToStringEnum method that failed when just the ending null terminator was present.
  • Moved LCID to WinNT folder where it belongs and updated with LANGID parts

3.3.10

Additions

  • Added Lz32 assembly with all functions from lzexpand.h.
  • Added SafeHANDLE.ReleaseOwnership method to extract handle from safe handle so it is not closed on disposal.
  • Added constants and conversion methods for enums in the C Run-time Library related to files.
  • Added related structures for BITMAPINFO and new SafeBITMAPINFO class to handle various incarnations
  • Added partial Multimedia assembly.

Fixes

  • BREAKING CHANGES: Worked over functions related to BITMAPINFO adding attributes, creating overloads and changing 'ref' params to 'in' params where immutable. Needed because these functions often could fail due to poor processing of the structure.
  • Extracted OFSTRUCT from Kernel32 to Shared and changed fFixedDisk field to bool.
  • FIxes and improvements to PInvoke.VirtDisk (some breaking changes) and Vanara.VirtualDisk (chaged Enabled to ResilientChangeTrackingEnabled to avoid confusion).
  • Fixed #228 by adjusting field type of Vanara.PInvoke.CryptUI.CRYPTUI_WIZ_IMPORT_SRC_INFO.CRYPTUI_WIZ_IMPORT_SRC_INFO_UNION.pwszFileName to blittable StrPtrUni
  • Fixed #230 by changing all import library references from Kernelbase to Psapi for functions defined in psapi.h. This allows the functions to work on all versions of Windows.
  • Fixes to Cabinet assembly based on #232 issue and @IllidanS4. Many of which are BREAKING CHANGES.
  • Modified structure fields to make blittable
  • Support Windows 10 window-frame style (#229)