Releases: dahall/Vanara
Releases · dahall/Vanara
Release Notes - 3.4.3
Additions
- Added operator overloads to
SizeT
- Added app management and storage provider interfaces to Shell32
- Adding
DbgPrint
andDbgPrintEx
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
Release Notes - 3.4.2
Additions
- Updated build targets to include package readme files and CI build values for AppVeyor and GitHub.
- Added
IOleLink
and supporting enums - Added
ARRAYDESC
andPARAMDESCEX
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 inVirtualDisk.AttachAsync
, and removedVirtualDisk.Attach(string...)
,VirtualDisk.VolumeGuidPath
andVirtualDisk.VolumeMountPoint
in leiu of their multi-mountpoint alternatives (#284) - Fixed marshaling attributes for
STGOPTIONS
andCOSERVERINFO
Release Notes - 3.4.1
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
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
andHICON
toSystem.Windows.Media.Imaging.BitmapSource
and all uses ofIWin32Window
. - 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 allSystem.Drawing.Point
reference toPOINT
, 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 withVanara.PInvoke.POINT
- Replace all instances of
System.Windows.Forms.Form
andControl
andIWin32Window
with the raw window handle (HWND)- If you are missing other items from
System.Drawing
orSystem.Windows.Forms
look for new values or check the newVanara.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
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
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
Additions
- Added methods and interfaces for File History (FhSvcCtl)
- Added
NotifyIcon.GetBounds
extension method - Updated
SafeAnysizeStruct
so anIntPtr
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 toGuidPtr
andStrPtr*
structs. … - Added char* cast to
StrPtrUni
and sbyte* cast toStrPtrAnsi
. - 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
fromref
toin
.
Release Notes - 3.3.12
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
Release Notes - 3.3.10 and 3.3.9
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 blittableStrPtrUni
- 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)