Releases: dahall/Vanara
Releases · dahall/Vanara
Release Notes - 3.1.6
Additions
- Added Vanara.PInvoke.Printing project to include, for now, winspool.h functions
- Adding missing kerberos related structures to Vanara.PInvoke.Security
- Added IsMarshalable method and converted most uses of IsBlittable to it.
- Added EnumInheritance and InheritsFrom extension methods.
- Added ISerializable support as last option for pushing and pulling from memory pointers
Fixes
- Fixed overruns on IntPtr write functions
- Potentially Breaking Change: Moved DEVMODE and supporting enums out from Gdi32 class to items under the Vanara.PInvoke namespace. Moved DM_SPECVERSION to const value under DEVMODE struct.
- Fixed MarshalToPtr(Array ... method to not throw casting exception.
Release Notes - 3.1.5
Fixes
- Fixed overflow problem when marshaling arrays and enumerations
- Fixed bug with POLICY_AUDIT_EVENTS_INFO when using 64-bit builds.
Release Notes - 3.1.4
Additions
- Added generic helper functions for LSA query and set functions.
- Added CorrespondingTypeAttrribute.CanGet method to pull when enum is not found
- Added SafeAnysizeStructMarshaler which is a IVanaraMarshaler implementation for SafeAnysizeStruct. Converted structures from using IVanaraMarshaler to using SafeAnysizeStructMarshaler attribute
- Added attributes and strong types to functions and interfaces from ShObjIdl.h
- Updated ShellTypeArray constructor with strong type param
- Added IKnownFolderManager GetIKnownFolder and Name extension methods.
- Completed work on ExplorerBrowser control and added test project.
- Added error handling for EditSecurityAdvanced in ShowDialog
*Added extension methods for IShellFolder
Fixes
- Removed IMarshalDirective and created IVanaraMarshaler with supporting attribute and helper class. Converted structures that supported IMarshalDirective to IVanaraMarshaler
- Reworked memory manipulation functions in InteropExtensions and IntPtrConverter to use new marshaling directives and to drive consistency of use across libs (i.e. call same method to do same work).
- Fixed bug in MatchesLookupPattern (#71)
- Changed IKnownFolderManager.GetFolderIds extension method to return GUIDs, like the interface method and added GetKnownFolderIds to get the equivalent KNOWNFOLDERID values.
- Fixed FreeKnownFolderDefinitionFields.
- Fixed bugs in IPAddressBox and MAKEIPADDRESS
- Fixed bugs in VistaTypeExtender and EnumComboBox
- Fixed TypeLoad error (#72) for PROPSPECunion.
- BREAKING CHANGE: Fixed problems with STRRET and its use in IShellFolder::GetDisplayNameOf. #73
Release Notes - 3.1.3
Additions
- Added ResourceIdOrHandle to represent a resource string, id or handle union
- Modified PROPSHEETHEADER to use ResourceId and ResourceIdOrHandle for fields that can be different resource types.
- Added TokenMandatoryPolicy enum for use by TOKEN_MANDATORY_POLICY
- Added almost all functions from wintrust.dll
- Added all functions and interfaces from OleAut32.dll except the specific VARIANT conversions
Fixes
- Fix to prevent exceptions when both extended and basic limits are set on a job. (#70)
- XML Comment corrections (bad params, bad refs, bad syntax).
- BREAKING CHANGE: moved interfaces and VARIANT from oaidl.h into Vanara.PInvoke.OleAut32 from Ole32 as they are actually hosted there. This required some changes to supporting code.
Release Notes - 3.1.2
Additions
- Added
SafeAnysizeStruct
to help marshal structures with a 1-element field at the end that can be variable size. Adjusted all structs of this type to use this to marshal along with tests and supported classes. - BREAKING CHANGE: The above forced the removal of
PTOKEN_PRIVILEGES
as that functionality is now in a shared marshaling class. - Added
IMarshalDirective
interface as a means forIntPtrConverter.Convert
to handle odd marshal behavior - Added copy constructor to
SafeMemoryHandle
and consolidated initialization - Added
SafeAllocatedMemoryHandle.TakeOwnership
method to take control of the allocated memory. - Added all codes, enums and many (#67) structures from winioctl.h
- Added all the typelib interfaces from Shell32.dll
- All the CSIDL* and SID_S* constants have been added.
- First pass at adding support for Windows Search to
Vanara.Windows.Shell
- Added
IEnumUnknown
generics implementation - Added a generic IEnumerator implementation
Fixes
- Fixed unterminated string bug in
LSA_UNICODE_STRING.ToString
and implicit operator. - Fixed parameters in
SHCreateShellItemArray
- Fixed marshal parameter on
ICondition::GetSubConditions
- Updated attributes and some parameters in
IShellWindows
- Fixed condition on
IEnumFromCom
where TryGet looped forever. - Fixed bug and docs for Enumerate method
- Fixed condition where
IEnumIDList
is not implemented (#68)
Release Notes - 3.1.1
Changes
- Separated out Virtual Storage (Vanara.VirtualDisk) and BITS (Vanara.BITS) wrappers into their own packages for easier consumption.
Additions
- Added .NET friendly wrappers for Job Objects and I/O Completion Ports with tests.
- Added Process.StartEx extension method to allow for passing CreateProcess flags.
- Added IUserHandle reference to all user object handles.
- Added property to GROUP_AFFINITY to make it easier to get/set the list of affinitized processors.
- Added support for PROCESS_MEMORY_COUNTERS_EX in GetProcessMemoryInfo
- Added ObjectSecurity for pre .NET 4.0 builds
Fixes
- Fixed bug #66 that forces all SafeMemString string representations to Empty when a size not known (like as a return value from a COM object).
Release Notes - 3.1.0
Additions
- Support for .NET Core 3.0 in all projects!!
- All GDI32.dll functions for drawing and device info (missing DDI & printer calls still)
- Updated all NuGet dependencies.
Fixes
- EnumExtensions.BitPosition logic
- SafeAllocatedMemoryHandle.ToString - added offset param from base
Release Notes - 3.0.1
- Added KtmW32.dll and Pdh.dll supporting assemblies with 100% of functions implemented.
- Added new Vanara.Library metapackage that pulls in all Vanara packages.
- Completed adding functions with unit tests from wininet.dll to Vanara.PInvoke.WinInet.
- Completed adding functions from vertdll.dll to Vanara.PInvoke.Kernel32.
- Completed adding functions from ncrypt.dll to Vanara.PInvoke.Cryptography.
- Completed adding functions from ole32.dll and propsys.dll to Vanara.PInvoke.Ole.
- Enhanced testing support classes and moved all static file references to single class.
- Extended error structures with FormatMessage to get their descriptive text.
- Added IDisposable to ISafeMemoryHandle so it can be used instead of abstract SafeAllocatedMemoryHandle.
- BREAKING: Moved reflection extension methods that extend
object
to special namespaceVanara.Extensions.Reflection
to Intellisense isn't crowded with them.
Release Notes - 3.0.0
Too many changes to document them all, but here are the highlights:
- Rework of memory reading and writing extension methods and core classes to provide more safety and bounds checking.
- Addition of wer.dll support with Vanara.PInvoke.Wer assembly.
- Removal of the Vanara.PInvoke.User32.Gdi assembly after combining all its functions into Vanara.PInvoke.User32.
- Added support for .NET Standard 2.0, .NET Core 2.0 and 2.1 builds to all but Vanara.Windows.Shell and Vanara.Windows.Forms.
- Complete, that is every single function, unit testing for kernel32.dll, advapi32.dll, authz.dll, schannel.dll, and secur32.dll P/Invoke methods in their respective assemblies. If you need help on using those functions, check the unit tests as I ended up doing a lot of research to get some of them to work.
- Moved some extension methods to sub namespaces to avoid Intellisense showing you many functions for every object.
- Added
DebuggerDisplay
attributes to many of the support objects for easier debugging. - Added many extension methods, struct constructors, safe handle classes, and documentation to make coding with P/Invoke more pleasant and less error prone.
Release - 2.3.11
Additions
- Added part of WinTrust.dll
- Added remainder of AdvApi32.dll - now 100% (2.3.10)
- Added multiple SafeXX functions to support structures that need to release memory
- Added ACCESS_MASK and converted some parameters and fields from UInt32
- Added LCID and converted some parameters and fields from UInt32
Fixes
- Fixed multiple structures (CREDENTIAL, INSTALLSPEC, WAITCHAIN_NODE_INFO, WINTRUST_DATA, KNOWNFOLDER_DEFINITION, and others) so they marshal correctly
- Fixed FormatMessage implementation for all use cases
- Fixed SafeNativeArray insert bug
- Fixed OBJECT_TYPE_LIST constructor bug
- Fixed SetupOverlappedFunction so it doesn't fail binding the handle if already bound