Commit Graph

134 Commits (3f0e9f0798de9e884930e75b54dcf79ead7f5b80)

Author SHA1 Message Date
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 b864f19066 Added CorrespondingTypeAttribute.EncodingType property to allow for encoding as part of a conversion. 2021-08-17 11:06:35 -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
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 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 c5c0833b98 Added binary negate overload to BOOL and BOOLEAN 2021-01-14 11:15:16 -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 76fc958c10 Abstracted out read-only methods from SafeAllocatedMemoryHandl into SafeAllocatedMemoryHandleBase 2020-12-22 16:26:27 -07:00
dahall f1b7e7c363 Added more detail to error msg in VanaraMarshalerAttribute 2020-12-17 15:42:50 -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 8344b80f2a Moved DECIMAL to Ole 2020-11-11 19:57:15 -07:00
dahall 9a52915d58 Added OLE based DECIMAL struct 2020-11-10 09:44:27 -07:00
dahall 30167bc6ca Fixed bug with CorrespondingTypeAttribute.GetAttrForEnum with default action 2020-10-22 14:31:33 -06:00
dahall a8ef6e11c8 Added NativeMemoryStream.ReadToPtr and WriteFromPtr methods to interact with allocated memory. 2020-09-10 10:13:56 -06:00
NN 80bfe2ce20
Call to closeMethod in GenericSafeHandle. (#161) 2020-08-27 10:25:14 -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 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 b3842a902a Fixed compile warning for unused variable in Convert 2020-07-13 07:56:43 -06:00
NN 9e5e73b27c
Throw the exception with stack (#148) 2020-07-12 07:55:22 -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 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 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
dahall 814833852b Major changes which could affect anticipated behavior: All conversions to ordinals now look for max value and will return converted value's max value. No more invalid conversions. 2020-03-31 16:00:36 -06:00
dahall 8d10011a6f Changed call at disposal to just ReleaseComObject insted of FinalReleaseComObject. 2020-02-26 15:15:31 -07:00
David Hall c3121e6ecb Fixed passing byte[] into GetSize 2019-12-10 06:54:55 -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 38baa53cc1 Unfinished work on object marshaler 2019-12-06 17:09:56 -07:00
David Hall 61fe0f30d8 Changed Marshal.SizeOf to InteropExtensions.SizeOf to account for IVanaraMarshaler instances 2019-11-25 19:36:46 -07:00
David Hall ce3dc1a0fe Removed blittable constraint on ToArray and ToEnumerable 2019-11-21 16:33:39 -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 2892d1e677 Added cookie handler to marshaler and attribute 2019-11-16 15:48:44 -07:00
David Hall 79ad7b8452 Added CanGet method to pull when enum is not found 2019-11-16 15:47:02 -07:00
David Hall ba49b74b73 Removed IMarshalDirective and created IVanaraMarshaler with supporting attribute and helper class. 2019-11-13 23:02:11 -05:00
David Hall 4143c8767e Added IMarshalDirective interface as a means for IntPtrConverter.Convert to handle odd marshal behavior 2019-11-03 16:00:13 -07:00
David Hall 9ade2c8bd1 Added copy constructor to SafeMemoryHandle and consolidated initialization 2019-10-31 11:47:04 -06:00