Commit Graph

269 Commits (bcafee296b907fc47339c786a1c4ccab771c2e34)

Author SHA1 Message Date
David Hall a8e15280e1 Added workaround for missing function in .NET Std 2.0 2019-10-23 12:20:52 -06:00
David Hall 8d21d70f91 Added class to invoke methods on dynamic COM IDispatch. 2019-10-23 12:04:44 -06:00
David Hall dee8220068 Update project file information and version to 3.1.1. 2019-10-17 13:43:37 -06:00
David Hall 05bd6d2098 Changed Write method to take structure as 'in' param. 2019-10-17 09:13:45 -06:00
David Hall 1b472f58be Added SizeT.Zero value. 2019-10-17 09:13:00 -06:00
David Hall 77d4e5c49a Fixed XML doc errors 2019-10-11 10:34:50 -06:00
David Hall 4f087df55c Added non-generic CanGet/Set methods. 2019-10-08 20:13:17 -06:00
David Hall cca953eb5f 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). 2019-10-08 13:29:30 -06:00
David Hall bce17ac78f Added CanSet method that gets the corresponding enum value given a type 2019-10-07 18:43:55 -06:00
David Hall f517fba76b Added ObjectSecurity<T> for pre .NET 4.0 builds 2019-10-07 18:43:16 -06:00
David Hall 1a7aaf37f7 Fixed SetField so it works with ref structs 2019-10-07 18:42:49 -06:00
David Hall 4451258143 ADDED: Support for .NET Core 3.0 in all projects!!
Updated project files to version 3.1.0, changed icon to embedded NuGet resource rather than link, consolidated dependency conditions in project files, and updated all NuGet dependencies.
2019-10-03 13:35:16 -06:00
David Hall 740bd61ac5 Added ToString method that includes an offset parameter. 2019-09-27 13:32:19 -06:00
David Hall 1450d98b32 Fixed BitPosition logic for exception 2019-09-25 14:12:17 -05:00
David Hall 1491e32f80 Made ISafeMemoryHandle derive from IDisposable 2019-09-19 12:22:21 -06:00
David Hall c009606359 Added Set method to SafeMemString to allow for a new string to be set on the condition it is of same or lesser length. 2019-09-16 07:55:18 -06:00
David Hall c0e3335f47 Fixed docs 2019-09-16 07:53:41 -06:00
David Hall 846783b115 Updated project documentation 2019-09-05 21:03:18 -06:00
David Hall 4322becff6 Added better documentation 2019-09-05 19:59:25 -06:00
David Hall d56d9486e7 Updated project information to version 3.0.1, added DLL references, and updated markdown files. 2019-09-04 14:11:25 -06:00
David Hall d89a9df2a5 With so many breaking changes, I decided to roll the version to 3.0.0. 2019-08-27 12:42:33 -06:00
David Hall 3a1d6548b3 Added BOOL and BOOLEAN types 2019-08-27 09:05:48 -06:00
David Hall 4a25d8dc25 Added comparison operators and methods 2019-08-27 08:41:39 -06:00
David Hall 15ffe13254 Added ability to get CharSet and resize by setting Capacity property. 2019-08-23 11:52:14 -06:00
David Hall 75a70f2319 Fixed bug due to invalid externs 2019-08-22 13:56:16 -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 fb62105f42 Added TypeConverter, MinValue/MaxValue fields, comparison operators, and fixed inconsistent handling of Int32 conversions. 2019-08-17 16:07:02 -06:00
David Hall 246b53dd69 Fixed bug in CanSet method 2019-08-17 16:05:22 -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 a23ac2d587 Fixed bug when handling enums 2019-08-15 00:16:05 -07:00
David Hall 602f847bd8 Fixed bug in CanGet method when value supported more than one type. 2019-08-15 00:15:43 -07:00
David Hall ae0251ded9 Changed structure input parameter to CreateFromStructure to 'in' for memory classes 2019-07-27 13:05:10 -06:00
David Hall d72cca74cb Fixed documentation error 2019-07-27 12:55:59 -06:00
David Hall 683280a945 Updated constructors of all SafeAllocatedMemory derivatives to use SizeT instead of int for the size parameter. 2019-07-27 12:48:33 -06:00
David Hall 42630dd833 BREAKING CHANGE: Changed type of SafeAllocatedMemoryHandle.Size property from int to SizeT so that it more easily converts to different types used in memory size functions. 2019-07-25 19:46:45 -06:00
David Hall 893efef823 Moved into InteropServices 2019-07-25 18:53:21 -06:00
David Hall 9b42ed675c Moved SizeT into Vanara.Core 2019-07-25 18:51:11 -06:00
David Hall 499f10c996 Changed validation check to ensure boundary is a power of 2. 2019-07-25 12:01:46 -06:00
David Hall 6235cd776e Added SafeAllocatedMemoryHandle derived class for managed aligned memory buffers. 2019-07-25 10:49:18 -06:00
David Hall 0fef11ebb1 Made SafeMemoryHandle conversion to IntPtr implicit instead of explicit. In practice, I have found this to be a constant conversion need. 2019-07-25 10:48:43 -06:00
David Hall b471f81899 Fixed bug in new code 2019-07-24 15:23:22 -06:00
David Hall b4dde29d90 Simplified and extended GetCorrespondingTypes methods 2019-07-24 12:55:23 -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 64b2911d5e BREAKING CHANGE: Changed CorrepsondingAction to CorrespondingAction due to misspelling. 2019-07-12 09:49:54 -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 63c67871aa Added DebuggerDisplayAttribute for all classes to show pointer and string values. 2019-07-08 11:37:32 -06:00
David Hall a360548771 Added Equals override and new GuidPtr structure. 2019-07-03 14:44:16 -06:00
David Hall c374ab2cff Added ability to read nullable structure, fixed bug in WriteObject 2019-07-03 14:43:47 -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 422ab0a7dd Updated project files for 2.8.11 release 2019-06-07 20:42:41 -06:00
David Hall 3415cac1dc Added implicit operator from IntPtr 2019-06-07 10:59:03 -06:00
David Hall 1c25f88529 Added Write method to set string into memory 2019-06-07 10:58:30 -06:00
David Hall d191144a51 Change implicit string conversion to get 'null' for IntPtr.Zero 2019-06-04 16:01:43 -06:00
David Hall f59831bc2c Updated project files for 2.3.10 2019-06-04 12:18:56 -06:00
David Hall 0b83c0a914 Updated projects for version 2.3.9 2019-05-25 19:47:54 -06:00
David Hall da3d9d27b9 Updated project information for 2.3.8 2019-05-13 14:55:44 -06:00
David Hall cdcdffca4b Added static Instance field and caused 0's to be trimmed off end of Format response. 2019-05-08 19:02:31 -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 1f6d4f4384 Added .NET Stream wrapper for COM IStream instances. 2019-05-08 09:25:15 -06:00
David Hall 51c888f4da Added FromNullable static creator 2019-05-08 09:24:39 -06:00
David Hall 15f05e2924 Added factory to make instancing ComReleaser easier and changed implicit operators to explicit. 2019-05-08 09:24:00 -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 56f517d6e9 Updated project information for 2.3.8 2019-04-30 08:00:06 -06:00
David Hall 111d8478ad Improved handling of 'null' in ToString methods 2019-04-28 09:46:59 -06:00
David Hall 0cc1d914d0 Updated project files for 2.3.7 release 2019-04-24 08:48:29 -06:00
David Hall 9c97ccfd14 Fixed bug in GetBytes method 2019-04-24 08:24:18 -06:00
David Hall 5be3e15570 Update project versions to 2.3.6 2019-04-15 13:45:35 -06:00
David Hall 5548ff6c71 Changed generic constraint on Write methods to struct instead of unmanaged 2019-04-10 13:11:06 -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 f0ce103165 Updated project file information 2019-04-09 15:20:49 -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 9ed6c463c7 WIP on new generic marshaler 2019-04-08 12:08:29 -06:00
David Hall 455f9971d2 Added resources tied to backwards compatible additions 2019-04-08 12:04:00 -06:00
David Hall 8cfcee658d Added much improved native memory stream implementation over MarshalingStream. Use NativeMemoryStream moving forward. It is saver and more function rich. 2019-04-08 12:03:20 -06:00
David Hall 65e1440ec0 Ensured that space in newly allocated memory is zeroed by default. Fixed handling of Size manipulation to zero out bytes added. (bug: it zeroed out everything) 2019-04-08 11:54:24 -06:00
David Hall 51edbded7c Added static Instance properties to IMemoryMethods implementations 2019-04-08 11:42:16 -06:00
David Hall 180dc255d8 Added 'Obsolete' attribute to push users to NativeMemoryStream 2019-04-08 11:41:26 -06:00
David Hall f18f91950d Fixes for handling null pointer and bool 2019-04-08 11:40:43 -06:00
David Hall a941609f2c Minor optimization of property Position use 2019-04-08 11:25:17 -06:00
David Hall 791e8af6a6 Added extension dump function for IntPtr 2019-04-08 11:24:19 -06:00
David Hall 427de28a0e Added ToStructure method with boundary checking. Cleaned and optimized code. 2019-03-26 21:03:39 -07:00
David Hall 0644bcedfb Minor reformatting 2019-03-26 21:02:27 -07:00
David Hall 3c40989527 Fixed Unicode bug in GetString 2019-03-25 17:40:06 -07:00
David Hall 178701d505 Added string handling to all Convert methods 2019-03-25 17:39:29 -07:00
David Hall dc83d5d0b4 Moved Dump, GetBytes and IntPtr operator to SafeAllocatedMemory base class. Added byte* and SafeBuffer operators to SafeAllocatedMemory. 2019-03-25 17:38:42 -07:00
David Hall 8281580a28 Added null checking to Contains method 2019-03-25 17:36:39 -07:00
David Hall 40155dc239 Added backwards compatible classes SafeBuffer, UnmanagedMemoryAccessor and UnmanagedMemoryStream for .NET 2.0 and 3.5. 2019-03-25 17:35:51 -07:00