Commit Graph

177 Commits (2c10bf7415234d7ae5c4cfb897697b2634260acb)

Author SHA1 Message Date
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 740bd61ac5 Added ToString method that includes an offset parameter. 2019-09-27 13:32:19 -06: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 4322becff6 Added better documentation 2019-09-05 19:59:25 -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 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 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 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 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 64b2911d5e BREAKING CHANGE: Changed CorrepsondingAction to CorrespondingAction due to misspelling. 2019-07-12 09:49:54 -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 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 3415cac1dc Added implicit operator from IntPtr 2019-06-07 10:59:03 -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 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 111d8478ad Improved handling of 'null' in ToString methods 2019-04-28 09:46:59 -06:00
David Hall 9c97ccfd14 Fixed bug in GetBytes method 2019-04-24 08:24:18 -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 34d48333d6 Corrected documentation errors 2019-04-10 11:28:19 -06:00
David Hall 9ed6c463c7 WIP on new generic marshaler 2019-04-08 12:08:29 -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 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 38b45d9192 Added methods to simplify safely converting from a pointer to a type. Handles blittable and serializable types. 2019-03-07 09:25:12 -07:00
David Hall 9612664387 Fixed Write methods to better handle string types 2019-03-07 09:22:40 -07:00
David Hall 838f7fca10 Added method to lookup enum value from corresponding type. 2019-02-24 18:36:37 -07:00
David Hall 8aefdc9389 Revert "Added some missing functions, structs and enums to winsvc.cs and tests"
This reverts commit dd15c0478c.
2019-02-11 18:38:41 -07:00
Luigi Grilli dd15c0478c Added some missing functions, structs and enums to winsvc.cs and tests
Added QueryServiceStatusEx SERVICE_STATUS_PROCESS and more and test

Removed redundant CloseServiceHandle calls

Added Start/Stop/Delete/Control service functions

Added Start/Stop/Delete/Control service functions and appveyor for testing

Fixed version in appveyor.yml

Reducing msbuild verbosity

Improved AdvApi32 tests

Improve StartStop test method

Fixed StartService arguments types

Added ControlService, Fixed ControlServiceEx

Delete appveyor.yml
2019-02-07 00:52:59 +00:00
David Hall a6bd30dd03 Added FillMemory methods and exposed Zero method as public on SafeAllocatedMemoryHandle 2019-01-25 11:09:07 -05:00
David Hall eaaaa2f2d4 Extended .NET 2, 3, and 4 builds to include Tasks from Theraot library 2018-12-15 11:56:24 -07:00
David Hall c5467dfb7e Another 2.0 major commit. All tests working. 2018-11-19 21:18:50 -07:00
David Hall 627c6d2314 2.0 Checkin - Buildable 2018-10-26 12:24:07 -06:00
David Hall bf9d17c855 Optimized code on GenericSafeHandle and removed check for invalid on release as this duplicated internal functionality. 2018-09-19 15:03:45 -06:00
David Hall 20d3d2df0d Removed conversion operator to IntPtr completely 2018-09-04 13:39:21 -06:00
David Hall 6b1ed53536 Made conversion operator from GenericSafeHandle to IntPtr explicit to minimize unintended conversions (#12) and updated all affected functions, including fixing those affected by unintended consequences. 2018-09-04 12:04:25 -06:00
David Hall 69acd1fece Added more open constructor for derived classes. 2018-08-10 09:46:42 -06:00
David Hall d6bce2e752 Refactored constructors for easier inheritance 2018-07-21 14:12:08 -06:00
David Hall b6ac026cdd Changed namespace 2018-07-17 11:28:07 -06:00
David Hall 255dc13239 Added ComConnectionPoint which provides wrapper around IConnectionPoint.Advise for COM source and sinks. 2018-07-16 15:07:31 -06:00
David Hall 749d3702a9 Changed GetAttrForObj/Type access to protected 2018-06-28 18:00:56 -06:00
David Hall 5f9bbc5b09 Updated lookup to not throw exception if attribute not defined for type or enum 2018-06-23 18:10:12 -06:00
David Hall 604eee2c95 Added static Null property 2018-05-29 17:45:53 -06:00
David Hall d716ccaeb0 Removed IsInvalid override so both 0 and -1 are invalid (from base) 2018-05-13 21:37:20 -06:00
David Hall 0d8b96fe9b Corrected XML documentation errors 2018-04-03 18:35:18 -06:00
David Hall 80a915f06e Added implicit conversion from T and object constructor that casts to T 2018-03-30 11:53:21 -06:00
David Hall 178752581e Added a safe pointer for COM objects: ComReleaser 2018-03-28 20:38:04 -06:00
David Hall cd67f194ed Added ability to not own memory pointed to by SafeCoTaskMemString. 2018-01-15 11:57:06 -07:00
David Hall e617c912a3 Added GetCustomAttributes extension method and converted existing uses. 2018-01-12 11:41:42 -07:00
David Hall 2524cd22de Corrected Zero method implementation and use 2018-01-11 14:12:07 -07:00
David Hall 79ba7668c8 Changed CorrespondingTypeAttribute to allow for multiple types on an enum or a type and updated existing dependencies 2018-01-06 16:38:01 -07:00
David Hall c808717fbf Added base abstract class SafeAllocatedMemoryHandle for SafeMemoryHandle and GetBytes method to SafeMemoryHandle 2018-01-06 16:36:28 -07:00
David Hall b44f91b5a1 Initial code push: Core, PInvoke.Shared and PInvoke.TaskSchd 2017-11-27 10:18:01 -07:00