Commit Graph

451 Commits (4620e983be2fa6acf877d47aecebcfa817ce7bbc)

Author SHA1 Message Date
Scover 637b59da60
Updated ``SafeLPSTR``, ``SafeLPTSTR`` and ``SafeLPWSTR`` (#352)
* Fixed unbounded recursion

Fixed unbounded recursion in ``SafeLPSTR``, ``SafeLPTSTR`` and ``SafeLPWSTR`` implicit cast operators from string by inverting the types.
As the associated documentation states the operators are supposed to convert to a string, not from a string.

* Removed useless operators + nullable
2022-12-19 16:42:43 -07:00
David Hall 6fb1d69828 Fixed exceptions being thrown by `BOOL` and `BOOLEAN` when interacting with `int` and ! operator 2022-11-18 07:54:12 -07:00
David Hall 630261a8c4 Fixed bug in IEnumString.Enum extension method 2022-11-16 11:53:02 -07:00
dahall d5cbaabf5f Removed implicit operators with SafeLPXSTR classes to prevent compiler confusion 2022-09-22 11:09:42 -06:00
David Hall 0e84510a8b Updated NuGet packages 2022-09-01 17:48:45 -06:00
dahall 7c032ba708 Renamed all project report files to 'readme.md' so they show in GitHub 2022-09-01 14:43:04 -06:00
dahall d7a7a340f5 Added implicit operators to new types for GuidPtr, and StrPtrXX variants 2022-08-29 16:21:43 -06:00
dahall b1247750f6 Simplified NativeMemoryStream.Write() 2022-08-29 16:21:01 -06:00
dahall 93bdb99f43 Added SafeMemoryHandleEx.AddSubReference 2022-08-29 16:20:24 -06:00
dahall 9dc2de859d Added nullable type handling to IntPtr.Convert 2022-08-29 16:19:37 -06:00
dahall 3b18dd7755 Updated project files 2022-08-06 15:38:43 -06:00
dahall 155609864a Fixed minor build errors 2022-08-05 21:03:44 -06:00
dahall 34bed8cfb4 Cleaned handle classes 2022-07-28 22:19:53 -06:00
dahall 480f5df595 Added string classes via template 2022-07-20 17:40:09 -06:00
dahall eeb429ebb6 Added ! operator support to SafeAllocatedMemoryHandle and SafeMemoryHandle.Clone() method 2022-07-20 17:36:27 -06:00
dahall 2ce6552190 Enhanced SafeMemString with nullable support and the addition of methods, properties and operators to mimic StringBuilder 2022-07-20 17:35:05 -06:00
dahall 0320c6b7b6 Enabled nullable support for string related classes 2022-07-20 17:33:26 -06:00
dahall e97896fda6 Updated project files 2022-07-16 19:30:05 -06:00
dahall b0d7174d5a Added SafeMemoryPool class to auto dispose temporary pointers. 2022-07-16 17:43:48 -06:00
dahall fb9787ec0a Fixed bug in StringHelper.GetByteCount 2022-07-05 09:43:24 -06:00
dahall 500fc4ecc7 Added RequiresUnreferencedCodeAttribute for frameworks other than NET50 and greater. 2022-06-28 16:02:10 -06:00
dahall 298ea34914 Updated package readme files 2022-06-14 16:55:29 -06:00
dahall ca94a21b15 Added operator overloads to `SizeT` 2022-05-16 13:14:38 -06:00
dahall aa69db53fd Updated documentation and added package readme files. 2022-05-09 15:56:58 -06:00
dahall a1d049242d Exposed VirtualDictionary.Add as virtual method 2022-04-10 22:34:59 -06:00
dahall dc6cea6de0 Moved most TargetFrameworks tags out of project files and into Directory.Build.props for easier maint. Also changed net462 build to net45 for greater compatibility. 2022-03-14 09:32:06 -06:00
dahall 7b9c17050b Pulled back dependency on System.Memory to 4.5.3 for compatibility 2022-03-11 18:04:38 -07:00
dahall 3876cce9a0 Added indexer to SafeMemString 2022-03-10 17:43:56 -07:00
NN 95328a6fd0
Lower System.ValueTuple version dependency. (#280) 2022-02-28 11:54:43 -07:00
dahall 9e69ce32ca Made CorrespondingTypeAttribute.GetAttrForEnum public. 2022-02-22 19:38:50 -07:00
dahall a9ae8df90a Extended SafeAllocatedMemoryHandle.ToType extension method to support CharSet 2022-02-15 16:01:21 -07:00
dahall dd2e46ae75 Fixed minor error handling in EnumFlagIndexer and added Intersect method. 2022-02-08 14:53:03 -07:00
dahall 565ec6add7 Fixed #274 (error in EnumerableEqualityComparer.Equals) 2022-02-08 09:18:03 -07:00
dahall b669932c57 Removed code and conditionals for obsolete target frameworks. 2022-02-07 14:58:09 -07:00
dahall d9f00186b0 Removed support for .NET 2.0, 3.5, 4.0 and 4.5, .NET Core 2.0, 2.1, and 3.0 since all are or shortly will be out of support. Added support for .NET 4.6.2 and 4.8. 2022-02-07 14:35:37 -07:00
dahall d29963d39a Added PinnedObject implicit operator to unsafe void*. 2022-02-05 15:14:55 -07:00
dahall 4ce428215c Added SafeAllocatedMemoryHandleBase.GetBytes() and pulled SafeMemoryHandle.Locked from IMemoryMethods instance 2022-01-22 15:30:42 -07:00
dahall 5a511172ea Added extra buffer when setting size from VanaraMarshaler to prevent errors when they're off due to alignment issues 2022-01-22 15:28:48 -07:00
dahall 0f6fb75d3d Added StringHelper methods supporting encoders 2022-01-22 15:27:13 -07:00
dahall c3078b052b Updated project files with 3.4.0 changes 2022-01-17 17:15:18 -07:00
dahall 5f52aa7820 Added SafeMoveableHGlobalHandle class and added support to locking memory to all memory classes. 2022-01-16 17:22:34 -07:00
dahall 747da30302 Fixed small bug in IntPtr.ToStringEnum 2022-01-16 17:21:11 -07:00
dahall 0bb9797e2f BREAKING CHANGES: I have dramatically 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. I added Vanara.Windows.Shell.Common which has all the content from Vanara.WIndows.Shell that did not have dependencies. I extracted all extension methods from Gdi32 and User32 and moved them to Vanara.Windows.Extensions. 2022-01-14 07:32:51 -07:00
dahall 92c8ab945b Updated NuGet packages 2022-01-04 15:28:43 -07:00
dahall b9614e7eb2 Rolled version to 3.4.0 and added support for .NET 6.0 2021-12-27 16:34:25 -07:00
dahall 1cbfdefb5b Updated project files 2021-12-12 21:19:43 -07:00
dahall 62c78d4ac2 Added `BeginEndEventContext` to call delegates on context entry and exit 2021-11-11 17:49:22 -07:00
dahall 7667a26c16 Updated NuGet dependencies 2021-10-19 07:52:18 -06:00
dahall 26bd7d8e04 Added IEquatable support to GuidPtr and StrPtr* structs.
Added char* cast to StrPtrUni and sbyte* cast to StrPtrAnsi.
2021-09-27 15:47:33 -06:00
dahall 231ea34f17 Added IsNullOrEmpty property to StrPtrXX structures. 2021-09-21 16:11:45 -06:00
dahall d52b0d5b18 Updated NuGet package dependencies 2021-08-26 09:05:27 -06:00
dahall b864f19066 Added CorrespondingTypeAttribute.EncodingType property to allow for encoding as part of a conversion. 2021-08-17 11:06:35 -06:00
dahall 55458a86fe Updated project files for 3.3.10 2021-06-03 20:12:24 -06:00
dahall c1f2225efb Updated project files for 3.3.10 release 2021-06-02 20:57:31 -06:00
dahall 370e8a857a Added constants and conversion methods for enums in the C Run-time Library related to files. 2021-06-02 13:08:30 -06:00
dahall d53279dcc6 Fixed bug in IntPtr.ToStringEnum method that failed when just the ending null terminator was present. 2021-05-02 21:51:20 -06:00
dahall 89f5605f65 Updated project files 2021-04-26 10:16:34 -06:00
dahall 4694988177 Enhanced ComConnectionPoint 2021-03-28 20:12:48 -06:00
dahall ce5e582d25 Updated ComStream to support IStream implementation 2021-03-28 16:34:49 -06:00
NN 28822bab9e
Use explicit framework reference. Remove transitive TFM requirement. (#212)
Co-authored-by: NN <NN---@users.noreply.github.com>
2021-03-23 07:26:03 -06:00
dahall 3e00f2743c Updated referenced NuGet package versions 2021-03-07 11:15:52 -07:00
dahall 483d76df37 Changed return value of OpenFileById from IntPtr to SafeHFILE 2021-03-02 07:55:51 -07:00
dahall c2c75a461e Updated project files for 3.3.3 release 2021-02-03 14:49:55 -07:00
dahall 967389e246 Removed all calls to `Marshal.ReleaseComObject` where there exists a possibility that the interface could have been referenced by another object and changed to nulling the holding variable. See discussion thread #188. 2021-02-01 16:08:43 -07:00
dahall a6d225b6b8 Updated project files with `ImportWindowsDesktopTargets` feature to prevent NETSDK1136 build error (#200) 2021-01-26 07:49:48 -07:00
dahall 2b4cfee7e2 Added SafeMemStruct.InitializeSizeField method to initialize an in-memory structure's size field 2021-01-25 12:10:13 -07:00
dahall affe76ff74 Added Append overloaded methods to SafeMemStruct to extend memory and write in bytes, memory or objects and return a pointer to the newly written element. Also added GetFieldAddress method to get the location of a field in the structure's memory. 2021-01-20 16:56:09 -07:00
dahall 2165632d1d Added InteropExtensions.SizeOf(object) method to calculate the size of an object in native memory. It will handle blittalbe structures, primitives, strings and arrays or enumerable lists of those items. 2021-01-20 16:53:12 -07:00
dahall c5c0833b98 Added binary negate overload to BOOL and BOOLEAN 2021-01-14 11:15:16 -07:00
dahall 5cd53d5c7b Extended IntPtr.Write(object value...) method to handle almost all cases of object types (arrays, lists, etc.) 2021-01-11 11:22:39 -07:00
dahall e1cfb9c8ce Added ISafeMemoryHandle.GetBytes method that was already implemented all implemented classes 2021-01-11 11:19:15 -07:00
dahall bf89a972a2 Added Null field to SafeCoTaskMemStruct<T> and SafeCoTaskMemStruct<T> 2020-12-30 20:47:14 -07:00
dahall e576bd40e7 Updated project information 2020-12-26 11:07:30 -07:00
dahall 8acca80194 Updated project information 2020-12-22 19:13:59 -07:00
dahall 76fc958c10 Abstracted out read-only methods from SafeAllocatedMemoryHandl into SafeAllocatedMemoryHandleBase 2020-12-22 16:26:27 -07:00
dahall c4ed47de61 Added XML comment 2020-12-22 16:25:39 -07:00
dahall f1b7e7c363 Added more detail to error msg in VanaraMarshalerAttribute 2020-12-17 15:42:50 -07:00
dahall e214393430 Updated project documentation files 2020-12-16 11:41:02 -07:00
dahall 4fa2755085 Added IArrayStruct<T> interface to identify two-field structures where the first field is an UInt32 and the second is a pointer to an array of structures along with supporting marshaler and extension method. 2020-12-14 15:57:23 -07:00
dahall 4d71e6ce9b Updated project information markdown files with new format 2020-11-20 18:52:43 -07:00
dahall 4c18661740 Updated project files for 3.3.0 release 2020-11-20 12:38:46 -07:00
dahall 5dd910e41c Added time_t class with conversion support to/from DateTime 2020-11-19 14:47:13 -07:00
dahall 57219c7cc9 Fixed code with new warnings -- no functionality change 2020-11-14 13:36:32 -07:00
dahall ab4f3c5bd2 Removed explicit exception re-throw to prevent warning 2020-11-14 10:11:47 -07:00
dahall 04d33e7e1a Added support for .NET 5.0 (windows) 2020-11-13 16:55:23 -07:00
dahall 5ce303ed5a Added InteropExtensions.UnsafePtrToArray method 2020-11-11 19:57:53 -07:00
dahall 8344b80f2a Moved DECIMAL to Ole 2020-11-11 19:57:15 -07:00
dahall bed583797a Added RefEnumerator.Count, Reset and indexer 2020-11-10 21:36:56 -07:00
dahall c2640876c3 Added IntPtr.AsRef extension method 2020-11-10 21:35:58 -07:00
dahall 9a52915d58 Added OLE based DECIMAL struct 2020-11-10 09:44:27 -07:00
dahall db7884b6f5 Overloaded IntPtr.LinkedListToEnum extension method to allow for offset func. 2020-11-04 13:04:42 -07:00
dahall 5136887803 Updated Theraot NuGet pkg to 3.2.0 across solution 2020-10-28 19:32:14 -06:00
dahall ffc54378a7 Removed .NET 5.0 support until VS is updated 2020-10-26 18:36:24 -06:00
dahall 69bd276627 Added support for .NET 5.0 (windows) 2020-10-26 10:36:13 -06:00
dahall 30167bc6ca Fixed bug with CorrespondingTypeAttribute.GetAttrForEnum with default action 2020-10-22 14:31:33 -06:00
dahall 8686a6723d Updated project and build files for 3.2.18. Converted all project files to new SDK format. 2020-10-21 08:27:54 -06:00
dahall 3c4e5fe12c More work on generic History collection 2020-09-25 17:17:51 -06:00
dahall 7f2c2a6df3 Added `Vanara.Collections.History` class 2020-09-22 13:57:52 -06:00
dahall 2824e230b6 Oops. Removing an addition that was already added. 2020-09-10 10:30:48 -06:00
dahall a8ef6e11c8 Added NativeMemoryStream.ReadToPtr and WriteFromPtr methods to interact with allocated memory. 2020-09-10 10:13:56 -06:00