Commit Graph

80 Commits (369b5206531846cef7e5140b1e9d1817da6026f3)

Author SHA1 Message Date
dahall 5ce303ed5a Added InteropExtensions.UnsafePtrToArray method 2020-11-11 19:57:53 -07:00
dahall c2640876c3 Added IntPtr.AsRef extension method 2020-11-10 21:35:58 -07:00
dahall db7884b6f5 Overloaded IntPtr.LinkedListToEnum extension method to allow for offset func. 2020-11-04 13:04:42 -07:00
dahall dabe7bcd84 Added methods to assist with memory alignment. 2020-09-10 10:11:58 -06:00
dahall 704987c2a1 Extended all MarshalToPtr methods with lock and unlock pointer functions and optional parameters. 2020-07-19 16:45:54 -06:00
David Hall 26f61b9189
Merge pull request #142 from NN---/getiptable_raw
Add zero copy GetIpNetTable2.
2020-07-12 08:30:02 -06:00
NN ca36a6bc95
Fix passing non-readonly-struct by read-only reference (#147) 2020-07-12 07:54:40 -06:00
NN bc139f52a7 Add zero copy GetIpNetTable2. 2020-07-12 10:09:39 +03:00
dahall 8e981f25b6 Added IsMethodCompatibleWithDelegate method 2020-06-09 19:00:42 -06:00
dahall 589d47c3b6 Added classes to enumerate on pointer elements (NativeMemoryEnumerator and UntypedNativeMemoryEnumerator). Changed IntPtr.ToIEnum methods to use new classes and added IntPtrGetEnumerator extension methods. 2020-05-15 16:37:15 -06:00
dahall 5c726943b3 Added IntPtr.AsSpan and IntPtr.AsReadOnlySpan extension methods 2020-05-15 11:40:11 -06:00
David Hall 08273f800c Added StringHelper.IsNullOrWhiteSpace to account for missing function prior to .NET 4. (#86) 2019-12-30 10:25:45 -07:00
David Hall f74d478b28 Added support for serialization to WriteNoChecks 2019-12-10 06:55:54 -07:00
David Hall ad3e1e06ce Fixed EnumInheritance 2019-12-10 06:55:20 -07:00
David Hall 89d17b5241 Added ISerializable support as last option for pushing and pulling from memory pointers 2019-12-09 07:22:20 -07:00
David Hall 159f1c8235 Added EnumInheritance and InheritsFrom extension methods. 2019-12-06 17:09:08 -07:00
David Hall 2cb4245f37 Added IsMarshalable method and converted most uses of IsBlittable to it. Fixed MarshalToPtr(Array ... method to not throw casting exception. 2019-12-06 17:07:21 -07:00
David Hall 80b7256543 Changed unspecified size to uint.Max instead of UIntPtr.Max to prevent overflow 2019-11-25 19:32:51 -07:00
David Hall a94e60820b 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). 2019-11-19 12:52:44 -07:00
David Hall 8f289e2760 Changed to support IVanaraMarshaler requiring addition of size parameter to some methods. 2019-11-13 23:02:51 -05:00
David Hall 835487e466 Added GetOrderedFields Type extension method. 2019-10-29 10:43:18 -06:00
David Hall 05bd6d2098 Changed Write method to take structure as 'in' param. 2019-10-17 09:13:45 -06:00
David Hall 1a7aaf37f7 Fixed SetField so it works with ref structs 2019-10-07 18:42:49 -06:00
David Hall 1450d98b32 Fixed BitPosition logic for exception 2019-09-25 14:12:17 -05:00
David Hall 4322becff6 Added better documentation 2019-09-05 19:59:25 -06:00
David Hall 9d4758ed5d Added Write methods to SafeMemoryHandleExt. Added size checking from InteropExtension methods. Added offset param to ToStructure. 2019-08-21 10:18:07 -06:00
David Hall c3521b7742 MAJOR BREAKING CHANGEs:
1) Obsoleted Vanara.Extensions.InteropExtensions.StructureToPtr for a name change to MarshalToPtr for consistency.
2) Added parameter to all methods reading memory that allows developer to indicate size of allocated memory they read from.
3) Enabled the ability to read/write enum values from memory in all extension methods.
4) Added Write methods for writing to memory
2019-08-17 21:13:57 -06:00
David Hall ee72119e36 MAJOR BREAKING CHANGE: Moved all extension methods for System.Object to Vanara.Extensions.Reflection namespace to avoid Intellisense overloads with methods that will be rarely used. 2019-08-17 14:42:49 -06:00
David Hall d72cca74cb Fixed documentation error 2019-07-27 12:55:59 -06:00
David Hall 277bddcf58 Removed redundant code from CheckHasValue and used IsValid 2019-07-23 13:52:32 -06:00
David Hall 5b4853db7e Added GetStaticFieldValue method 2019-07-19 17:32:05 -06:00
David Hall ceff4504f0 Changed to BitHelper broke too much so reverted. 2019-07-16 07:43:10 -06:00
David Hall 6eb0aa354d Added ToInt64, TimeSpan.ToFileTimeStruct, and ToTimeSpan methods for FILETIME and modified ToString method so that it will display a TimeSpan value if negative. 2019-07-13 21:39:13 -06:00
David Hall 379e23ccb9 Added conversion methods To and ToEnum for fast conversions. 2019-07-13 16:27:46 -06:00
David Hall 1996fadd69 Made GetBit and GetBits extension methods 2019-07-10 11:27:04 -06:00
David Hall 025e6529de Added CreateOrDefault method to get best default value for a structure. Added InvokeStaticMethod to allow for calling a static method generically. 2019-07-09 09:23:41 -06:00
David Hall 4905441377 Added pointer value in front of string with optional params to remove. 2019-07-03 14:42:51 -06:00
David Hall 7ce7b96209 * Derived SafeCoTaskMemString from base class SafeMemString derived from SafeMemHandle<T>.
* BREAKING CHANGE: Removed CharCapacity and made Capacity show char allocation. Size (from parent) shows byte capacity. Mimics StringBuilder.
2019-06-25 17:10:57 -06:00
David Hall badc08c7e5 Extended StructureToPtr so that it works with `enum` values. 2019-06-17 13:44:46 -06:00
David Hall ea5e8d6c2b Consolidated code and fixed bug in ToFileTimeStruct that mixed up UTC conversion. 2019-06-15 13:50:10 -06:00
David Hall 1c25f88529 Added Write method to set string into memory 2019-06-07 10:58:30 -06:00
David Hall 6627c016f2 Added Get/SetFieldValue extension methods 2019-05-08 12:50:26 -06:00
David Hall f738792e11 Better null handling 2019-05-08 12:50:01 -06:00
David Hall 0ff50e3291 Added CopyTo extension that specifies a start offset. 2019-05-08 09:23:04 -06:00
David Hall 0aacc9ff30 Extension to enumerate strings from an IEnumString instance 2019-05-08 09:22:16 -06:00
David Hall 9a76ee5597 Converted MarshalingStream references to NativeMemoryStream. 2019-04-10 12:13:28 -06:00
David Hall 34d48333d6 Corrected documentation errors 2019-04-10 11:28:19 -06:00
David Hall 39264cc1ab Separated GetPropertyValue into 2 separate methods and removed type changing to prevent unintended consequences. 2019-04-09 09:16:59 -06:00
David Hall 83404805c7 Fixed so InvokeMethod would see private methods 2019-04-08 16:20:19 -06:00
David Hall a941609f2c Minor optimization of property Position use 2019-04-08 11:25:17 -06:00