Vanara/Core/readme.md

19 KiB

Assembly report for Vanara.Core.dll

This library includes shared methods, structures and constants for use throughout the Vanara assemblies. Think of it as windows.h with some useful extensions. It includes:

  • Extension methods for working with enumerated types (enum), FILETIME, and method and property extractions via reflection
  • Extension and helper methods to marshaling structures arrays and strings
  • SafeHandle based classes for working with memory allocated via CoTaskMem, HGlobal, or Local calls that handles packing and extracting arrays, structures and raw memory
  • Safe pinning of objects in memory
  • Memory stream based on marshaled memory

Enumerations

Enum Description Values
Vanara.InteropServices.CorrespondingAction Actions that can be taken with a corresponding type. None, Get, Set, GetSet, Exception
Vanara.RunTimeLib.FileAttributeConstant These constants specify the current attributes of the file or directory specified by the function. _A_NORMAL, _A_RDONLY, _A_HIDDEN, _A_SYSTEM, _A_SUBDIR, _A_ARCH
Vanara.RunTimeLib.FileOpConstant The integer expression formed from one or more of these constants determines the type of reading or writing operations permitted. It is formed by combining one or more constants with a translation-mode constant. _O_RDONLY, _O_WRONLY, _O_RDWR, _O_APPEND, _O_RANDOM, _O_SEQUENTIAL, _O_TEMPORARY, _O_NOINHERIT, _O_CREAT, _O_TRUNC, _O_EXCL, _O_SHORT_LIVED, _O_OBTAIN_DIR, _O_TEXT, _O_BINARY, _O_RAW, _O_WTEXT, _O_U16TEXT, _O_U8TEXT
Vanara.RunTimeLib.FilePermissionConstant These constants are used to indicate file type in the st_mode field of the _stat structure. _S_IEXEC, _S_IWRITE, _S_IREAD, _S_IFIFO, _S_IFCHR, _S_IFDIR, _S_IFREG, _S_IFMT
Vanara.InteropServices.StringListPackMethod Method used to pack a list of strings into memory. Concatenated, Packed

Structures

Struct Description
Vanara.BOOL Managed instance of the four-byte BOOL type.
Vanara.BOOLEAN Managed instance of the single-byte BOOLEAN type.
Vanara.Extensions.EnumFlagIndexer Structure to use in place of a enumerated type with the System.FlagsAttribute set. Allows for indexer access to flags and simplifies boolean logic.
Vanara.InteropServices.GuidPtr The GuidPtr structure represents a LPGUID.
Vanara.PInvoke.RefEnumerator Enumerator with zero copy access using ref.
Vanara.PInvoke.SizeT Managed instance of the SIZE_T type.
Vanara.InteropServices.StrPtrAnsi The StrPtr structure represents a LPWSTR.
Vanara.InteropServices.StrPtrAuto The StrPtr structure represents a LPTSTR.
Vanara.InteropServices.StrPtrUni The StrPtr structure represents a LPWSTR.
Vanara.PInvoke.time_t Managed instance of the time_t type.

Interfaces

Interface Description
Vanara.PInvoke.IArrayStruct Interface that identifies a structure containing only a 4-byte size field followed by a pointer to an array of .
Vanara.PInvoke.IHandle Signals that a structure or class holds a HANDLE.
Vanara.Collections.IHistory Provides an interface for a history of items.
Vanara.InteropServices.IMemoryMethods Interface to capture unmanaged memory methods.
Vanara.InteropServices.ISafeMemoryHandle Interface for classes that support safe memory pointers.
Vanara.InteropServices.ISimpleMemoryMethods Interface to capture unmanaged simple (alloc/free) memory methods.
Vanara.ISupportIndexer Interface representing a class that holds an indexer.
Vanara.InteropServices.IVanaraMarshaler Smarter custom marshaler.
Vanara.Collections.IVirtualListMethods Interface that defines the methods for a virtual list. This interface is used by the Vanara.Collections.VirtualList1` class.
Vanara.Collections.IVirtualReadOnlyListMethods Interface that defines the methods for a virtual read-only list. This interface is used by the Vanara.Collections.VirtualReadOnlyList1` class.

Classes

Class Description
Vanara.InteropServices.AlignedMemory A memory block aligned on a specific byte boundary.
Vanara.PInvoke.BeginEndEventContext A disposable context for which a delegate is called at entry and exit.
Vanara.Extensions.BitHelper Static methods to help with bit manipulation.
Vanara.ByteSizeFormatter A custom formatter for byte sizes (things like files, network bandwidth, etc.) that will automatically determine the best abbreviation.
Vanara.InteropServices.ComConnectionPoint Helper class to create an advised COM sink. When this class is constructed, the source is queried for an System.Runtime.InteropServices.ComTypes.IConnectionPointContainer reference.
Vanara.PInvoke.InteropServices.ComEnumString A COM enumerator for System.String values. This is used to enumerate the values of a System.Runtime.InteropServices.ComTypes.IEnumString interface.
Vanara.InteropServices.ComReleaser A safe variable to hold an instance of a COM class that automatically releases the instance on disposal.
Vanara.InteropServices.ComReleaserFactory Factory for creating Vanara.InteropServices.ComReleaser1` objects.
Vanara.InteropServices.ComStream Implements a .NET stream derivation and a COM IStream instance.
Vanara.Extensions.ComTypeExtensions Extensions for types in System.Runtime.InteropServices.ComTypes.
Vanara.RunTimeLib.ConstantConversionExtensions Extension methods for CRT enumerations to convert to .NET enumerations.
Vanara.InteropServices.CorrespondingTypeAttribute Attribute for enum values that provides information about corresponding types and related actions. Useful for Get/Set methods that use an enumeration value to determine the type to get or set.
Vanara.InteropServices.CoTaskMemoryMethods Unmanaged memory methods for COM.
Vanara.Collections.EnumerableEqualityComparer Checks the linear equality of two enumerated lists. For lists to be equal, they must have the same number of elements and each index must hold the same value in each list.
Vanara.Extensions.EnumExtensions Extensions for enumerated types.
Vanara.Collections.EventedList A generic list that provides event for changes to the list. This is an alternative to ObservableCollection that provides distinct events for each action (add, insert, remove, changed).
Vanara.Extensions.FileTimeExtensions Extensions for System.Runtime.InteropServices.ComTypes.FILETIME.
Vanara.Formatter Base class for expandable formatters.
Vanara.FormatterComposer Extension method to combine formatter instances.
Vanara.InteropServices.GenericSafeHandle A System.Runtime.InteropServices.SafeHandle that takes a delegate in the constructor that closes the supplied handle.
Vanara.Collections.GenericVirtualReadOnlyDictionary A generic class that creates a read-only dictionary from a list and getter function.
Vanara.Extensions.HexDempHelpers Extension to dump a byte array.
Vanara.InteropServices.HGlobalMemoryMethods Unmanaged memory methods for HGlobal.
Vanara.Collections.History Provides a history of items that lives efficiently in memory and whose size can change easily.
Vanara.PInvoke.IArrayStructExtensions Extension methods for Vanara.PInvoke.IArrayStruct1`.
Vanara.PInvoke.IArrayStructMarshaler Allows marshaling of arrays in place of a structure supporting Vanara.PInvoke.IArrayStruct1`.
Vanara.Extensions.InteropExtensions Extension methods for System.Runtime.InteropServices.
Vanara.InteropServices.IntPtrConverter Functions to safely convert a memory pointer to a type.
Vanara.Extensions.IOExtensions Extensions for classes in System.IO.
Vanara.InteropServices.LibHelper General functions to support library calls.
Vanara.LinqHelpers Helper methods for LINQ
Vanara.Collections.EventedList.ListChangedEventArgs An System.EventArgs structure passed to events generated by an Vanara.Collections.EventedList1`.
Vanara.InteropServices.MarshalingStream A System.IO.Stream derivative for working with unmanaged memory.
Vanara.InteropServices.MemoryMethodsBase Implementation of Vanara.InteropServices.IMemoryMethods using just the methods from Vanara.InteropServices.ISimpleMemoryMethods.
Vanara.PInvoke.Collections.NativeMemoryEnumerator Provides a generic enumerator over native memory.
Vanara.InteropServices.NativeMemoryStream A System.IO.Stream derivative for working with unmanaged memory.
Vanara.InteropServices.PinnedObject A safe class that represents an object that is pinned in memory.
Vanara.Extensions.ReflectionExtensions Extensions related to System.Reflection
Vanara.Extensions.Reflection.ReflectionExtensions Extensions for System.Object related to System.Reflection
Vanara.InteropServices.SafeAllocatedMemoryHandle Abstract base class for all SafeHandle derivatives that encapsulate handling unmanaged memory.
Vanara.InteropServices.SafeAllocatedMemoryHandleBase Abstract base class for all SafeHandle derivatives that encapsulate handling unmanaged memory. This class assumes read-only memory.
Vanara.InteropServices.SafeByteArray An safe unmanaged array of bytes allocated on the global heap.
Vanara.InteropServices.SafeCoTaskMemHandle A System.Runtime.InteropServices.SafeHandle for memory allocated via COM.
Vanara.InteropServices.SafeCoTaskMemString Safely handles an unmanaged memory allocated Unicode string.
Vanara.InteropServices.SafeCoTaskMemStruct A structure handler based on unmanaged memory allocated by AllocCoTaskMem.
Vanara.InteropServices.SafeGuidPtr Represents a GUID point, or REFGUID, that will automatically dispose the memory to which it points at the end of scope. You must use the Vanara.InteropServices.SafeGuidPtr.Null value, or the parameter-less constructor to pass the equivalent of .
Vanara.InteropServices.SafeHGlobalHandle A System.Runtime.InteropServices.SafeHandle for memory allocated via LocalAlloc.
Vanara.InteropServices.SafeHGlobalStruct A structure handler based on unmanaged memory allocated by AllocHGlobal.
Vanara.InteropServices.SafeLPSTR Class that reprents a LPSTR with allocated memory behind it.
Vanara.InteropServices.SafeLPTSTR Class that reprents a LPTSTR with allocated memory behind it.
Vanara.InteropServices.SafeLPWSTR Class that reprents a LPWSTR with allocated memory behind it.
Vanara.InteropServices.SafeMemoryHandle Abstract base class for all SafeAllocatedMemoryHandle derivatives that apply a specific memory handling routine set.
Vanara.InteropServices.SafeMemoryHandleExt A System.Runtime.InteropServices.SafeHandle for memory allocated via COM.
Vanara.InteropServices.SafeMemoryPool A memory pool that will automatically release all memory pointers on disposal.
Vanara.InteropServices.SafeMemString Base abstract class for a string handler based on Vanara.InteropServices.SafeMemoryHandle1`.
Vanara.InteropServices.SafeMemStruct Base abstract class for a structure handler based on Vanara.InteropServices.SafeMemoryHandle1`.
Vanara.Collections.SparseArray A sparse array based on a dictionary.
Vanara.Extensions.StringHelper A safe class that represents an object that is pinned in memory.
Vanara.Collections.VirtualReadOnlyList.TryGetDelegate Delegate for a method that tries to get the element at the specified index.
Vanara.Collections.GenericVirtualReadOnlyDictionary.TryGetValueDelegate Delegate for the implementation of the Vanara.Collections.GenericVirtualReadOnlyDictionary2.TryGetValue(0,1@)` method.
Vanara.PInvoke.Collections.UntypedNativeMemoryEnumerator Provides an enumerator over native memory.
Vanara.InteropServices.VanaraCustomMarshaler Provides an System.Runtime.InteropServices.ICustomMarshaler instance that utilizes an Vanara.InteropServices.IVanaraMarshaler implementation.
Vanara.InteropServices.VanaraMarshaler Provides methods to assist with custom marshaling.
Vanara.InteropServices.VanaraMarshalerAttribute Apply this attribute to a class or structure to have all Vanara interop function process via the marshaler.
Vanara.Collections.VirtualDictionary A generic base class for providing a dictionary that gets and sets its values using virtual method calls. Useful for exposing lookups into existing list environments like the file system, registry, service controller, etc.
Vanara.Collections.VirtualList A virtual list that implements a lot of the scaffolding.
Vanara.Collections.VirtualListMethodCarrier Wrapper for Vanara.Collections.IVirtualListMethods1` that allows for the use of delegates instead of implementing the interface.
Vanara.Collections.VirtualReadOnlyDictionary A generic base class for providing a read-only dictionary that gets its values using virtual method calls. Useful for exposing lookups into existing list environments like the file system, registry, service controller, etc.
Vanara.Collections.VirtualReadOnlyList A virtual read-only list that implements a lot of the scaffolding.