Commit Graph

414 Commits (ff50c4a4c9b25abd88cf8a4a47f92c56e0fd4a94)

Author SHA1 Message Date
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
dahall 258b01886e Added CallerXXAttribute classes missing from .NET 2-4 so that current compliers can be spoofed to pull that information. 2020-09-10 10:13:17 -06:00
dahall dabe7bcd84 Added methods to assist with memory alignment. 2020-09-10 10:11:58 -06:00
NN 80bfe2ce20
Call to closeMethod in GenericSafeHandle. (#161) 2020-08-27 10:25:14 -06:00
dahall b7d0a30276 Updated project information 2020-08-26 21:03:04 -06:00
dahall 37d8521a9d Updated project files for 3.2.14 2020-08-20 09:28:06 -06:00
dahall c5814672d5 Added protected size and offset values 2020-08-19 20:51:11 -06:00
dahall c88d9feb3c Added LibHelper class with Is64BitProcess and DoesWin32MethodExist methods 2020-08-05 10:36:37 -06:00
dahall cac3df43f2 Project information update 2020-07-27 10:50:28 -06:00
dahall 1564c3d702 Made SafeAllocatedMemoryHandle.GetBytes() public 2020-07-22 18:23:37 -06:00
dahall 091352956e Fixed (#152) bug in base class SafeMemoryHandleExt that caused ToString(int...) to fail if memory size was not specifically set (like in parameter assignment). 2020-07-20 10:44:01 -06:00
dahall e701d99c1b BREAKING CHANGE: Due to performance, changed IMemoryMethods and ISimpleMemoryMethods to contain method signatures instead of properties of method delegates. Then changed all derived memory classes to new interface definition. I believe most of this only affects internal classes so hopefully not a huge effect on your code. 2020-07-20 09:48:32 -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
dahall c081cfa38c Updated project information files 2020-07-14 16:02:36 -06:00
dahall fffb6981ff Update project statistics files 2020-07-14 15:07:18 -06:00
dahall eb3cc13bb3 Updated project information for 3.2.12 2020-07-13 08:58:32 -06:00
dahall b3842a902a Fixed compile warning for unused variable in Convert 2020-07-13 07:56:43 -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 9e5e73b27c
Throw the exception with stack (#148) 2020-07-12 07:55:22 -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 adae5b3268 Fixed bug in UntypedNativeMemoryEnumerator where enumerated type was not set. 2020-07-11 16:25:56 -06:00
dahall fdcd7e93a1 Updated NuGet packages 2020-06-11 11:52:26 -06:00
dahall 8e981f25b6 Added IsMethodCompatibleWithDelegate method 2020-06-09 19:00:42 -06:00
dahall 28eaf62f3b Updated project information 2020-06-02 22:02:36 -06:00
dahall f0976ae924 Added implicit conversion operator to SafeCoTaskMemStruct and SafeHGlobalStruct from nullable struct. 2020-05-27 22:14:24 -06:00
dahall 8b5979d17c Added SafeCoTaskMemStruct and SafeHGlobalStruct derivations of SafeMemoryStruct 2020-05-26 06:41:40 -06:00
dahall fb90105165 Added SafeGuidPtr for instances where GUID is optional. 2020-05-20 12:25:55 -06:00
dahall b309678901 Fixed sizing to include enums 2020-05-20 12:25:19 -06:00
dahall f67c02dc14 Added SafeAllocatedMemoryHandle.AsReadOnlySpan extension method and changed Span methods to use IntPtr extensions. 2020-05-16 08:56:21 -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
dahall 30aabcaaed Added Equals(TStruct) method to SafeMemStruct to prevent boxing when comparing. (Thanks @NN) 2020-05-15 06:46:55 -06:00
dahall 4216d271d9 Added new SafeMemStruct class that wraps a structure into memory with Span support. Added assoc. unit test. 2020-05-14 17:56:28 -06:00
dahall ab42b87b0c Moved SafeAllocatedMemoryHandle.Dump back under DEBUG only build. Added AsSpan and AsBytes methods to SafeAllocatedMemoryHandle for frameworks supporting Span<T>. Added SafeMemoryHandleExt.AsRef<T> method for getting a Span of a structure from the memory. 2020-05-14 17:53:35 -06:00
dahall d1f19d705b Added System.Memory NuGet package reference for supported frameworks 2020-05-14 17:51:09 -06:00
dahall a86fe27c11 Updated project file information for 3.2.4 release 2020-04-13 06:44:23 -06:00
dahall a59b4bfba7 Added ISimpleMemoryMethods (subset of IMemoryMethods with just alloc and free) and MemoryMethodsFromSimple<TSimple> which implements most of IMemoryMethods using just the methods from ISimpleMemoryMethods. 2020-04-07 14:34:28 -06:00