# HG changeset patch # User Evgeniy.Koshkin@unit-519.Labs.IntelliJ.Net # Date 1463474969 -10800 # Node ID b287bf39ff9e4cd6829cebb721ebcdd30c96c659 # Parent 1c462701ed755bc93f3711bde3feaff8e14999dd package jet-symbols.exe build from sources diff -r 1c462701ed75 -r b287bf39ff9e .idea/artifacts/plugin.xml --- a/.idea/artifacts/plugin.xml Mon May 16 19:45:25 2016 +0300 +++ b/.idea/artifacts/plugin.xml Tue May 17 11:49:29 2016 +0300 @@ -12,7 +12,7 @@ - + diff -r 1c462701ed75 -r b287bf39ff9e jet-symbols/src/JetBrains.CommandLine.Symbols/JetBrains.CommandLine.Symbols.csproj --- a/jet-symbols/src/JetBrains.CommandLine.Symbols/JetBrains.CommandLine.Symbols.csproj Mon May 16 19:45:25 2016 +0300 +++ b/jet-symbols/src/JetBrains.CommandLine.Symbols/JetBrains.CommandLine.Symbols.csproj Tue May 17 11:49:29 2016 +0300 @@ -31,7 +31,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\out\ TRACE prompt 4 diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.CommandLine.Symbols.Xml --- a/tools/JetSymbols/JetBrains.CommandLine.Symbols.Xml Mon May 16 19:45:25 2016 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ - - - - JetBrains.CommandLine.Symbols - - - - diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.CommandLine.Symbols.exe Binary file tools/JetSymbols/JetBrains.CommandLine.Symbols.exe has changed diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.CommandLine.Symbols.exe.config --- a/tools/JetSymbols/JetBrains.CommandLine.Symbols.exe.config Mon May 16 19:45:25 2016 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.Platform.Symbols.Interop.WinApi.Xml --- a/tools/JetSymbols/JetBrains.Platform.Symbols.Interop.WinApi.Xml Mon May 16 19:45:25 2016 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5494 +0,0 @@ - - - - JetBrains.Platform.Symbols.Interop.WinApi - - - - - Contants used by Component API Interfaces (IMsoComponent and IMsoComponentManager). - - - The constants are taken from: System.Windows.Forms.NativeMethods.MSOCM, Assembly: System.Windows.Forms, Version=4.0.0.0 - - - - - MSO component registration flags. - - - Used by OLECRINFO.grfcrf field passed to IOleComponentManager.FRegisterComponent method and its equivalent in the OLE-world IMsoComponentManager and MSOCRINFO structure. - - - - - Component needs idle time. - - - - - Component needs idle time every N milliseconds. - - - - - Component must process keyboard messages before translation. - - - - - Component must process all messages before translation. - - - - - Component needs to be notified for special activation changes. - Currently, this will notify component if ExclusiveBorderSpace or ExclusiveActivation mode changes. - Top-level components should reg this flag. - - - - - Component needs to be notified for every change in activation state - - - - - Component needs exclusive border space when active (normally only used by TopLevel Mac components). - - - - - Component becomes exclusively active when activated - - - - - Component needs all mac events - - - - - Component is always active and gets first shot at evrything (Mac?) - - - - - OLE component registration advise flags (see msocstate enumeration). - - - - - Component registration flags. - - Used by OLECRINFO.grfcrf field passed to IOleComponentManager.FRegisterComponent method and its equivalent in the OLE-world IMsoComponentManager and MSOCRINFO structure. - - - - - - Provides components that need idle time, such as packages that manage modeless top-level windows, with access to the message loop and other facilities. - - - Register the interface with the component manager that implements the IMsoComponentManager interface. - - The interface declarartion is taken from type: System.Windows.Forms.UnsafeNativeMethods, Assembly: System.Windows.Forms, Version=4.0.0.0 - - - - - This method is reserved for internal use and is not intended to be used in your code. This method always returns TRUE. - - - In Microsoft.VisualStudio.OLE.Interop.IOleComponent inerface this method is called FReserved1. - - BOOL FDebugMessage(HANDLE hinst, UINT message, WPARAM wParam, LPARAM lParam); - - - - Enables components to process a message before the message is translated and is dispatched. - - TRUE to indicate that the message is consumed; otherwise, FALSE - - Components can use the TranslateAccelerator function, use the IsDialogMessage function, modify the pMsg parameter, or take some other action. - - - - - Notifies a component when the application enters or exits the state specified by the uStateId parameter. - - - The component should take action depending on the value of the uStateId parameter as specified in Msocstate (TODO) enumeration. - - If n calls are made with the fEnter parameter equal to TRUE, the component should consider the state to be in effect - until n calls are made with the fEnter parameter equal to FALSE. - - It is possible for this method to be called with the fEnter parameter equal to FALSE more times than it was called with TRUE. - The counter should not be decremented for FALSE if it is already at 0. - - - - - Notifies the component when the host application gains or loses activation. - - - - - Notifies the active component that it has lost its active status because the host or another component has become active. - - - - - Notifies the component when a new object is being activated. - - A pointer to the component being activated. Can be NULL. - TRUE to indicate that the component parameter is the same component registration as the component that this method is being called on; otherwise, FALSE. - A pointer to an MSOCRINFO structure that specifies the active component’s registration information. Can be NULL. - TRUE to indicate that the host object is being activated; otherwise, FALSE. - If the fHostIsActivating parameter is TRUE and the component parameter is NULL, the host object is being activated. - If the fHostIsActivating parameter is FALSE and the component parameter is NULL, there is no current active object - A pointer to an MSOCHOSTINFO structure that specifies the host component's information. Can be NULL. - Reserved for future use. Should be 0. - - - - Enables the component to do idle-time tasks. - - The type of idle-time tasks to perform. The type of tasks are specified by a combination of the values of the following flags: - msoidlefPeriodic = 1 Specifies to perform periodic idle-time tasks. - msoidlefNonPeriodic = 2 Specifies to perform any nonperiodic idle-time tasks. - msoidlefPriority = 4 Specifies to perform high priority, nonperiodic idle-time tasks. - msoidlefAll = 0xFFFFFFFF Specifies to perform all idle-time tasks. - TRUE to indicate that more time is needed to perform the idle-time tasks; otherwise, FALSE. - - The component may periodically call the IMsoComponentManager::FContinueIdle method. - If the FContinueIdle method returns FALSE, the component should terminate its idle-time processing and return. - If a component reaches a point where it has no idle-time tasks and does not need IMsoComponent::FDoIdle method calls, - it should remove its idle task registration by calling the IMsoComponentManager::FUpdateComponentRegistration method. - If this method is called while the component is performing a tracking operation, - the component should perform only idle-time tasks that are appropriate to perform during tracking. - - - - - Indicates whether the message loop pushed by the component should continue. - - Specifies the reason the message loop is being pushed. For more information, see the Msoloop (TODO) enumeration. - The component's private data. - A pointer to the next message in the queue. This parameter is NULL if there are no more messages in the queue. - TRUE to indicate that the message loop should continue; otherwise, FALSE. - - This method is called after peeking the next message in the queue (by calling the PeekMessage function) but before the message is removed from the queue. - The peeked message is passed in the pMsgPeeked parameter. This method may be called again when the next message has already been removed from the queue, - in which case the pMsgPeeked parameter is NULL. - If this method returns FALSE, the component manager terminates the loop without removing from the queue the message specified by the pMsgPeeked parameter. - - - - - Specifies whether the component can terminate. - - TRUE to indicate that the component might need to prompt the user; otherwise, FALSE. - TRUE if the component can terminate; otherwise, FALSE. - - This method is called by the component manager to determine whether the component is in a state in which it can terminate. - - If fPromptUser is TRUE, the component may query the user, as appropriate, to determine whether it should terminate. - If it cannot terminate, it should inform the user of why it cannot terminate. - If fPromptUser is FALSE, the component should make its decision without querying or informing the user. - - - - - Terminates the registration of the IMsoComponent interface. - - - The IMsoComponent interface should revoke its registration with the component manager, release references to the component manager, and then perform any necessary cleanup. - - - - - Retrieves a window that is associated with the component. - - The window for which to obtain the window handle (HWND). The possible values are: - msocWindowFrameToplevel = 0 Specifies the top frame window. - Multiple-document interface (MDI) applications should return the MDI frame (not the MDI client) or the application frame window. - Single-document interface (SDI) applications should return the frame window that hosts the component. - This should be the topmost window that owns the component. - msocWindowFrameOwner = 1 Specifies the window that owns the component. - The window may be the same as the top frame window, or may be an owned window of the top frame window. - msocWindowComponent = 2 Specifies the main window of the component. - msocWindowDlgOwner = 3 Specifies that the caller needs to display a dialog box to be owned by the component. - The component should return a window that is suitable for use as the dialog box's owner window. - Reserved for future use. Should be 0. - The handle to the window associated with the component. If this method fails or the window does not exist, NULL is returned. - - - - Defines a component manager, which is an object that coordinates other components by using its message loop for message processing and allocation of idle time. - - - You can get an instance of this interface by calling the CoRegisterMessageFilter function to get a reference to the current message filter. - Ensure that you immediately call the CoRegisterMessageFilter function again to put the object back right away. - Then call the QueryInterface method on the returned message filter to get an IServiceProvider interface. - Finally, call the QueryService method on the IServiceProvider interface to get an IMsoComponentManager interface. - - The interface declarartion is taken from type: System.Windows.Forms.UnsafeNativeMethods, Assembly: System.Windows.Forms, Version=4.0.0.0 - - - - - Specifies registration information for a MSO component. - - - - - The size, in bytes, of the MSOCRINFO structure. - - - - - The interval time, in milliseconds, of when a periodic idle phase should occur. During the idle phase, the component needs to perform idle-time tasks. - This member applies only if the msocrfNeedPeriodicIdleTime bit flag is registered in the grfcrf member - - - - - Bit flags composed from the Msocrf enumeration. - - - - - Bit flags composed from the Msocadvf enumeration. - - - - - Connect.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - The IsInternetConnected function determines whether the current user is connected to the Internet. - - Cannot call the API IsInternetConnected function directly because it's only available starting with NT6. - - - - Storage instantiation modes - - - - - This is a legacy define to allow old component to builds - - - - - Access flags, e.g. for . - - - - - For . - - - - - If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224). - - - - - If specified, the key is being released. If not specified, the key is being depressed. - - - - - From Winnt.h. - - - - - The MsiCloseHandle function closes an open installation handle. - - - - - - - The MsiGetProductProperty function retrieves product properties. These properties are in the product database. - - - - - The MsiOpenPackageEx function opens a package to use with functions that access the product database. The MsiCloseHandle function must be called with the handle when the handle is no longer needed. - - - MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE = 1 - - - - - For . - - - - - Indicates that the value of marked element could be null sometimes, so the check for null is necessary before its usage - - - - - Indicates that the value of marked element could never be null - - - - - Indicates that the value of marked type (or its derivatives) cannot be compared using '==' or '!=' operators. - There is only exception to compare with null, it is permitted - - - - - Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), - so this symbol will not be marked as unused (as well as by other usage inspections) - - - - - Gets value indicating what is meant to be used - - - - - Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections) - - - - - Gets value indicating what is meant to be used - - - - - Only entity marked with attribute considered used - - - - - Indicates implicit assignment to a member - - - - - Indicates implicit instantiation of a type with fixed constructor signature. - That means any unused constructor parameters won't be reported as such. - - - - - Indicates implicit instantiation of a type - - - - - Specify what is considered used implicitly when marked with or - - - - - Members of entity marked with attribute are considered used - - - - - Entity marked with attribute and all its members considered used - - - - - compression values. - - - - - An uncompressed format. ( version 5) - - - - - A run-length encoded (RLE) format for bitmaps with 8 bpp. The compression format is a 2-byte format consisting of a count byte followed by a byte containing a color index. For more information, see Bitmap Compression. - - - - - An RLE format for bitmaps with 4 bpp. The compression format is a 2-byte format consisting of a count byte followed by two word-length color indexes. For more information, see Bitmap Compression. - - - - - Specifies that the bitmap is not compressed and that the color table consists of three DWORD color masks that specify the red, green, and blue components, respectively, of each pixel. This is valid when used with 16- and 32-bpp bitmaps. - - - - - Windows 98/Me, Windows 2000/XP: Indicates that the image is a JPEG image. - - - - - Windows 98/Me, Windows 2000/XP: Indicates that the image is a PNG image. - - - - - Creates a new file. The function fails if a specified file exists. - - - - - Creates a new file, always. - If a file exists, the function overwrites the file, clears the existing attributes, combines the specified file attributes, - and flags with FILE_ATTRIBUTE_ARCHIVE, but does not set the security descriptor that the SECURITY_ATTRIBUTES structure specifies. - - - - - Opens a file. The function fails if the file does not exist. - - - - - Opens a file, always. - If a file does not exist, the function creates a file as if dwCreationDisposition is CREATE_NEW. - - - - - Opens a file and truncates it so that its size is 0 (zero) bytes. The function fails if the file does not exist. - The calling process must open the file with the GENERIC_WRITE access right. - - - - - Enables subsequent open operations on an object to request read access. - Otherwise, other processes cannot open the object if they request read access. - If this flag is not specified, but the object has been opened for read access, the function fails. - - - - - Enables subsequent open operations on an object to request write access. - Otherwise, other processes cannot open the object if they request write access. - If this flag is not specified, but the object has been opened for write access, the function fails. - - - - - Enables subsequent open operations on an object to request delete access. - Otherwise, other processes cannot open the object if they request delete access. - If this flag is not specified, but the object has been opened for delete access, the function fails. - - - - - Hook codes for callback functions of . - - - - - Mouse hook: The wParam and lParam parameters contain information about a mouse message. - - - - - Mouse hook: The wParam and lParam parameters contain information about a mouse message, and the mouse message has not been removed from the message queue. (An application called the PeekMessage function, specifying the PM_NOREMOVE flag.) - - - - - The type of memory allocation. This parameter must contain one of the following values. - - - - - Allocates physical storage in memory or in the paging file on disk for the specified reserved memory pages. The function initializes the memory to zero. - To reserve and commit pages in one step, call VirtualAlloc with MEM_COMMIT | MEM_RESERVE. - The function fails if you attempt to commit a page that has not been reserved. The resulting error code is ERROR_INVALID_ADDRESS. - An attempt to commit a page that is already committed does not cause the function to fail. This means that you can commit pages without first determining the current commitment state of each page. - - - - - Reserves a range of the process's virtual address space without allocating any actual physical storage in memory or in the paging file on disk. - You can commit reserved pages in subsequent calls to the VirtualAlloc function. To reserve and commit pages in one step, call VirtualAlloc with MEM_COMMIT | MEM_RESERVE. - Other memory allocation functions, such as malloc and LocalAlloc, cannot use a reserved range of memory until it is released. - - - - - Indicates that data in the memory range specified by lpAddress and dwSize is no longer of interest. The pages should not be read from or written to the paging file. However, the memory block will be used again later, so it should not be decommitted. This value cannot be used with any other value. - Using this value does not guarantee that the range operated on with MEM_RESET will contain zeroes. If you want the range to contain zeroes, decommit the memory and then recommit it. - When you specify MEM_RESET, the VirtualAlloc function ignores the value of flProtect. However, you must still set flProtect to a valid protection value, such as PAGE_NOACCESS. - VirtualAlloc returns an error if you use MEM_RESET and the range of memory is mapped to a file. A shared view is only acceptable if it is mapped to a paging file. - - - - - Indicates free pages not accessible to the calling process and available to be allocated. For free pages, the information in the AllocationBase, AllocationProtect, Protect, and Type members is undefined. - - - - - Allocates memory using large page support. - The size and alignment must be a multiple of the large-page minimum. To obtain this value, use the GetLargePageMinimum function. - Windows XP/2000: This flag is not supported. - - - - - Reserves an address range that can be used to map Address Windowing Extensions (AWE) pages. - This value must be used with MEM_RESERVE and no other values. - - - - - Allocates memory at the highest possible address. - - - - - Causes the system to track pages that are written to in the allocated region. If you specify this value, you must also specify MEM_RESERVE. - To retrieve the addresses of the pages that have been written to since the region was allocated or the write-tracking state was reset, call the GetWriteWatch function. To reset the write-tracking state, call GetWriteWatch or ResetWriteWatch. The write-tracking feature remains enabled for the memory region until the region is freed. - Windows 2000: This flag is not supported. - - - - - The type of pages in the region. The following types are defined. - - - - - Indicates that the memory pages within the region are mapped into the view of an image section. - - - - - Indicates that the memory pages within the region are mapped into the view of a section. - - - - - Indicates that the memory pages within the region are private (that is, not shared by other processes). - - - - - The following are the memory-protection options; you must specify one of the following values when allocating or protecting a page in memory. Protection attributes cannot be assigned to a portion of a page; they can only be assigned to a whole page. - - - - - Enables execute access to the committed region of pages. An attempt to read from or write to the committed region results in an access violation. - This flag is not supported by the CreateFileMapping function. - - - - - Enables execute or read-only access to the committed region of pages. An attempt to write to the committed region results in an access violation. - Windows Server 2003 and Windows XP/2000: This attribute is not supported by the CreateFileMapping function until Windows XP with SP2 and Windows Server 2003 with SP1. - - - - - Enables execute, read-only, or read/write access to the committed region of pages. - Windows Server 2003 and Windows XP/2000: This attribute is not supported by the CreateFileMapping function until Windows XP with SP2 and Windows Server 2003 with SP1. - - - - - Enables execute, read-only, or copy-on-write access to a mapped view of a file mapping object. An attempt to write to a committed copy-on-write page results in a private copy of the page being made for the process. The private page is marked as PAGE_EXECUTE_READWRITE, and the change is written to the new page. - This flag is not supported by the VirtualAlloc or VirtualAllocEx functions. - Windows Vista, Windows Server 2003, and Windows XP/2000: This attribute is not supported by the CreateFileMapping function until Windows Vista with SP1 and Windows Server 2008. - - - - - Disables all access to the committed region of pages. An attempt to read from, write to, or execute the committed region results in an access violation. - This flag is not supported by the CreateFileMapping function. - - - - - Enables read-only access to the committed region of pages. An attempt to write to the committed region results in an access violation. If Data Execution Prevention is enabled, an attempt to execute code in the committed region results in an access violation. - - - - - Enables read-only or read/write access to the committed region of pages. If Data Execution Prevention is enabled, attempting to execute code in the committed region results in an access violation. - - - - - Enables read-only or copy-on-write access to a mapped view of a file mapping object. An attempt to write to a committed copy-on-write page results in a private copy of the page being made for the process. The private page is marked as PAGE_READWRITE, and the change is written to the new page. If Data Execution Prevention is enabled, attempting to execute code in the committed region results in an access violation. - This flag is not supported by the VirtualAlloc or VirtualAllocEx functions. - - - - - Pages in the region become guard pages. Any attempt to access a guard page causes the system to raise a STATUS_GUARD_PAGE_VIOLATION exception and turn off the guard page status. Guard pages thus act as a one-time access alarm. For more information, see Creating Guard Pages. - When an access attempt leads the system to turn off guard page status, the underlying page protection takes over. - If a guard page exception occurs during a system service, the service typically returns a failure status indicator. - This value cannot be used with PAGE_NOACCESS. - This flag is not supported by the CreateFileMapping function. - - - - - Sets all pages to be non-cachable. Applications should not use this attribute except when explicitly required for a device. Using the interlocked functions with memory that is mapped with SEC_NOCACHE can result in an EXCEPTION_ILLEGAL_INSTRUCTION exception. - The PAGE_NOCACHE flag cannot be used with the PAGE_GUARD, PAGE_NOACCESS, or PAGE_WRITECOMBINE flags. - The PAGE_NOCACHE flag can be used only when allocating private memory with the VirtualAlloc, VirtualAllocEx, or VirtualAllocExNuma functions. To enable non-cached memory access for shared memory, specify the SEC_NOCACHE flag when calling the CreateFileMapping function. - - - - - Sets all pages to be write-combined. - Applications should not use this attribute except when explicitly required for a device. Using the interlocked functions with memory that is mapped as write-combined can result in an EXCEPTION_ILLEGAL_INSTRUCTION exception. - The PAGE_WRITECOMBINE flag cannot be specified with the PAGE_NOACCESS, PAGE_GUARD, and PAGE_NOCACHE flags. - The PAGE_WRITECOMBINE flag can be used only when allocating private memory with the VirtualAlloc, VirtualAllocEx, or VirtualAllocExNuma functions. To enable write-combined memory access for shared memory, specify the SEC_WRITECOMBINE flag when calling the CreateFileMapping function. - Windows Server 2003 and Windows XP/2000: This flag is not supported until Windows Server 2003 with SP1. - - - - - msg parameter. - Action flag. This parameter can be one of the following values. - - - - - Version 5.80 or later. A page is being created. The return value is not used. - - - - - A dialog box for a page is being created. Return nonzero to allow it to be created, or zero to prevent it. - - - - - A page is being destroyed. The return value is ignored. - - - - - Flags for the function. - - - - Version 5.0. Apply the appropriate overlays to the file's icon. The SHGFI_ICON flag must also be set. - - - Modify SHGFI_ATTRIBUTES to indicate that the dwAttributes member of the SHFILEINFO structure at psfi contains the specific attributes that are desired. These attributes are passed to IShellFolder::GetAttributesOf. If this flag is not specified, 0xFFFFFFFF is passed to IShellFolder::GetAttributesOf, requesting all attributes. This flag cannot be specified with the SHGFI_ICON flag. - - - Retrieve the item attributes. The attributes are copied to the dwAttributes member of the structure specified in the psfi parameter. These are the same attributes that are obtained from IShellFolder::GetAttributesOf. - - - Retrieve the display name for the file. The name is copied to the szDisplayName member of the structure specified in psfi. The returned display name uses the long file name, if there is one, rather than the 8.3 form of the file name. - - - Retrieve the type of the executable file if pszPath identifies an executable file. The information is packed into the return value. This flag cannot be specified with any other flags. - - - Retrieve the handle to the icon that represents the file and the index of the icon within the system image list. The handle is copied to the hIcon member of the structure specified by psfi, and the index is copied to the iIcon member. - - - Retrieve the name of the file that contains the icon representing the file specified by pszPath, as returned by the IExtractIcon::GetIconLocation method of the file's icon handler. Also retrieve the icon index within that file. The name of the file containing the icon is copied to the szDisplayName member of the structure specified by psfi. The icon's index is copied to that structure's iIcon member. - - - Modify SHGFI_ICON, causing the function to retrieve the file's large icon. The SHGFI_ICON flag must also be set. - - - Modify SHGFI_ICON, causing the function to add the link overlay to the file's icon. The SHGFI_ICON flag must also be set. - - - Modify SHGFI_ICON, causing the function to retrieve the file's open icon. Also used to modify SHGFI_SYSICONINDEX, causing the function to return the handle to the system image list that contains the file's small open icon. A container object displays an open icon to indicate that the container is open. The SHGFI_ICON and/or SHGFI_SYSICONINDEX flag must also be set. - - - Version 5.0. Return the index of the overlay icon. The value of the overlay index is returned in the upper eight bits of the iIcon member of the structure specified by psfi. This flag requires that the SHGFI_ICON be set as well. - - - Indicate that pszPath is the address of an ITEMIDLIST structure rather than a path name. - - - Modify SHGFI_ICON, causing the function to blend the file's icon with the system highlight color. The SHGFI_ICON flag must also be set. - - - Modify SHGFI_ICON, causing the function to retrieve a Shell-sized icon. If this flag is not specified the function sizes the icon according to the system metric values. The SHGFI_ICON flag must also be set. - - - Modify SHGFI_ICON, causing the function to retrieve the file's small icon. Also used to modify SHGFI_SYSICONINDEX, causing the function to return the handle to the system image list that contains small icon images. The SHGFI_ICON and/or SHGFI_SYSICONINDEX flag must also be set. - - - Retrieve the index of a system image list icon. If successful, the index is copied to the iIcon member of psfi. The return value is a handle to the system image list. Only those images whose indices are successfully copied to iIcon are valid. Attempting to access other images in the system image list will result in undefined behavior. - - - Retrieve the string that describes the file's type. The string is copied to the szTypeName member of the structure specified in psfi. - - - Indicates that the function should not attempt to access the file specified by pszPath. Rather, it should act as if the file specified by pszPath exists with the file attributes passed in dwFileAttributes. This flag cannot be combined with the SHGFI_ATTRIBUTES, SHGFI_EXETYPE, or SHGFI_PIDL flags. - - - - Classes for functions like . - - - - - Parts for functions like . - - - - - Function type for the field. - - - See members for values. - - - - - - User32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - Shlwapi.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - NtDll.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - Contains information about a file object. - - - - - A handle to the icon that represents the file. You are responsible for destroying this handle with DestroyIcon when you no longer need it. - - - - - The index of the icon image within the system image list. - - - - - An array of values that indicates the attributes of the file object. For information about these values, see the IShellFolder::GetAttributesOf method. - - - - - A string that contains the name of the file as it appears in the Windows Shell, or the path and file name of the file that contains the icon representing the file. - - - - - A string that describes the type of file. - - - - - Kernel32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - Retrieves a handle for each module in the specified process. - To control whether a 64-bit application enumerates 32-bit modules, 64-bit modules, or both types of modules, use the EnumProcessModulesEx function. - - A handle to the process. - An array that receives the list of module handles. - The size of the lphModule array, in bytes. - The number of bytes required to store all module handles in the lphModule array. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - […] - It is a good idea to specify a large array of HMODULE values, because it is hard to predict how many modules there will be in the process at the time you call EnumProcessModules. To determine if the lphModule array is too small to hold all module handles for the process, compare the value returned in lpcbNeeded with the value specified in cb. If lpcbNeeded is greater than cb, increase the size of the array and call EnumProcessModules again. - To determine how many modules were enumerated by the call to EnumProcessModules, divide the resulting value in the lpcbNeeded parameter by sizeof(HMODULE). - […] - - - - - The BITMAPINFOHEADER structure contains information about the dimensions and color format of a DIB. - - - - - Specifies the number of bytes required by the structure. - - - - - Specifies the width of the bitmap, in pixels. - Windows 98/Me, Windows 2000/XP: If biCompression is BI_JPEG or BI_PNG, the biWidth member specifies the width of the decompressed JPEG or PNG image file, respectively. - - - - - Specifies the height of the bitmap, in pixels. If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper-left corner. - If biHeight is negative, indicating a top-down DIB, biCompression must be either BI_RGB or BI_BITFIELDS. Top-down DIBs cannot be compressed. - Windows 98/Me, Windows 2000/XP: If biCompression is BI_JPEG or BI_PNG, the biHeight member specifies the height of the decompressed JPEG or PNG image file, respectively. - - - - - Specifies the number of planes for the target device. This value must be set to 1. - - - - - Specifies the number of bits-per-pixel. The biBitCount member of the BITMAPINFOHEADER structure determines the number of bits that define each pixel and the maximum number of colors in the bitmap. This member must be one of the following values. - Value Meaning - 0 Windows 98/Me, Windows 2000/XP: The number of bits-per-pixel is specified or is implied by the JPEG or PNG format. - 1 The bitmap is monochrome, and the bmiColors member of BITMAPINFO contains two entries. Each bit in the bitmap array represents a pixel. If the bit is clear, the pixel is displayed with the color of the first entry in the bmiColors table; if the bit is set, the pixel has the color of the second entry in the table. - 4 The bitmap has a maximum of 16 colors, and the bmiColors member of BITMAPINFO contains up to 16 entries. Each pixel in the bitmap is represented by a 4-bit index into the color table. For example, if the first byte in the bitmap is 0x1F, the byte represents two pixels. The first pixel contains the color in the second table entry, and the second pixel contains the color in the sixteenth table entry. - 8 The bitmap has a maximum of 256 colors, and the bmiColors member of BITMAPINFO contains up to 256 entries. In this case, each byte in the array represents a single pixel. - 16 The bitmap has a maximum of 2^16 colors. If the biCompression member of the BITMAPINFOHEADER is BI_RGB, the bmiColors member of BITMAPINFO is NULL. Each WORD in the bitmap array represents a single pixel. The relative intensities of red, green, and blue are represented with five bits for each color component. The value for blue is in the least significant five bits, followed by five bits each for green and red. The most significant bit is not used. The bmiColors color table is used for optimizing colors used on palette-based devices, and must contain the number of entries specified by the biClrUsed member of the BITMAPINFOHEADER. - If the biCompression member of the BITMAPINFOHEADER is BI_BITFIELDS, the bmiColors member contains three DWORD color masks that specify the red, green, and blue components, respectively, of each pixel. Each WORD in the bitmap array represents a single pixel. - Windows NT/Windows 2000/XP: When the biCompression member is BI_BITFIELDS, bits set in each DWORD mask must be contiguous and should not overlap the bits of another mask. All the bits in the pixel do not have to be used. - Windows 95/98/Me: When the biCompression member is BI_BITFIELDS, the system supports only the following 16bpp color masks: A 5-5-5 16-bit image, where the blue mask is 0x001F, the green mask is 0x03E0, and the red mask is 0x7C00; and a 5-6-5 16-bit image, where the blue mask is 0x001F, the green mask is 0x07E0, and the red mask is 0xF800. - 24 The bitmap has a maximum of 2^24 colors, and the bmiColors member of BITMAPINFO is NULL. Each 3-byte triplet in the bitmap array represents the relative intensities of blue, green, and red, respectively, for a pixel. The bmiColors color table is used for optimizing colors used on palette-based devices, and must contain the number of entries specified by the biClrUsed member of the BITMAPINFOHEADER. - 32 The bitmap has a maximum of 2^32 colors. If the biCompression member of the BITMAPINFOHEADER is BI_RGB, the bmiColors member of BITMAPINFO is NULL. Each DWORD in the bitmap array represents the relative intensities of blue, green, and red, respectively, for a pixel. The high byte in each DWORD is not used. The bmiColors color table is used for optimizing colors used on palette-based devices, and must contain the number of entries specified by the biClrUsed member of the BITMAPINFOHEADER. - If the biCompression member of the BITMAPINFOHEADER is BI_BITFIELDS, the bmiColors member contains three DWORD color masks that specify the red, green, and blue components, respectively, of each pixel. Each DWORD in the bitmap array represents a single pixel. - Windows NT/ 2000: When the biCompression member is BI_BITFIELDS, bits set in each DWORD mask must be contiguous and should not overlap the bits of another mask. All the bits in the pixel do not need to be used. - Windows 95/98/Me: When the biCompression member is BI_BITFIELDS, the system supports only the following 32-bpp color mask: The blue mask is 0x000000FF, the green mask is 0x0000FF00, and the red mask is 0x00FF0000. - - - - - Use . - Specifies the type of compression for a compressed bottom-up bitmap (top-down DIBs cannot be compressed). This member can be one of the following values. - Value Description - BI_RGB An uncompressed format. - BI_RLE8 A run-length encoded (RLE) format for bitmaps with 8 bpp. The compression format is a 2-byte format consisting of a count byte followed by a byte containing a color index. For more information, see Bitmap Compression. - BI_RLE4 An RLE format for bitmaps with 4 bpp. The compression format is a 2-byte format consisting of a count byte followed by two word-length color indexes. For more information, see Bitmap Compression. - BI_BITFIELDS Specifies that the bitmap is not compressed and that the color table consists of three DWORD color masks that specify the red, green, and blue components, respectively, of each pixel. This is valid when used with 16- and 32-bpp bitmaps. - BI_JPEG Windows 98/Me, Windows 2000/XP: Indicates that the image is a JPEG image. - BI_PNG Windows 98/Me, Windows 2000/XP: Indicates that the image is a PNG image. - - - - - Specifies the size, in bytes, of the image. This may be set to zero for BI_RGB bitmaps. - Windows 98/Me, Windows 2000/XP: If biCompression is BI_JPEG or BI_PNG, biSizeImage indicates the size of the JPEG or PNG image buffer, respectively. - - - - - Specifies the horizontal resolution, in pixels-per-meter, of the target device for the bitmap. An application can use this value to select a bitmap from a resource group that best matches the characteristics of the current device. - - - - - Specifies the vertical resolution, in pixels-per-meter, of the target device for the bitmap. - - - - - Specifies the number of color indexes in the color table that are actually used by the bitmap. If this value is zero, the bitmap uses the maximum number of colors corresponding to the value of the biBitCount member for the compression mode specified by biCompression. - If biClrUsed is nonzero and the biBitCount member is less than 16, the biClrUsed member specifies the actual number of colors the graphics engine or device driver accesses. If biBitCount is 16 or greater, the biClrUsed member specifies the size of the color table used to optimize performance of the system color palettes. If biBitCount equals 16 or 32, the optimal color palette starts immediately following the three DWORD masks. - When the bitmap array immediately follows the BITMAPINFO structure, it is a packed bitmap. Packed bitmaps are referenced by a single pointer. Packed bitmaps require that the biClrUsed member must be either zero or the actual size of the color table. - - - - - Specifies the number of color indexes that are required for displaying the bitmap. If this value is zero, all colors are required. - - - - - The BITMAPINFO structure defines the dimensions and color information for a DIB. - - - - - Specifies a structure that contains information about the dimensions of color format. - - - - - Null, unless you're using a palette. - - - - - The BLENDFUNCTION structure controls blending by specifying the blending functions for source and destination bitmaps. - - - - - Specifies the source blend operation. Currently, the only source and destination blend operation that has been defined is . For details, see the following Remarks section. - - - - - Must be zero. - - - - - Specifies an alpha transparency value to be used on the entire source bitmap. The SourceConstantAlpha value is combined with any per-pixel alpha values in the source bitmap. If you set SourceConstantAlpha to 0, it is assumed that your image is transparent. Set the SourceConstantAlpha value to 255 (opaque) when you only want to use per-pixel alpha values. - - - - - This member controls the way the source and destination bitmaps are interpreted. AlphaFormat has the following value. - -> This flag is set when the bitmap has an Alpha channel (that is, per-pixel alpha). Note that the APIs use premultiplied alpha, which means that the red, green and blue channel values in the bitmap must be premultiplied with the alpha channel value. For example, if the alpha channel value is x, the red, green and blue channels must be multiplied by x and divided by 0xff prior to the call. - - - - - Gets such a structure that supports per-pixel blending and applies an additional constant alpha to the whole bitmap (set 255 for no constant alpha, just per-pixel). - - - - - Gets a per-pixel blender without uniform transparency. - - - - - Gets such a structure that supports uniform transparency only. - - - - - Gets an opaque blender that ignores per-pixel alpha and has no uniform transparency. - - - - - User32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - samDesired is of type REGSAM which is ACCESS_FLAGS which is a DWORD - - - samDesired is of type REGSAM which is ACCESS_FLAGS which is a DWORD - - - samDesired is of type REGSAM which is ACCESS_FLAGS which is a DWORD - - - - - 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 - 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - +---------------+---------------+-------------------------------+ - |G|G|G|G|Res'd|A| StandardRights| SpecificRights | - |R|W|E|A| |S| | | - +-+-------------+---------------+-------------------------------+ - - - - - - Specifies the operation to be performed over the regions. - - - - - The new clipping region combines the overlapping areas of the current clipping region and the region identified by hrgn. - - - - - The new clipping region is a copy of the region identified by hrgn. This is identical to SelectClipRgn. If the region identified by hrgn is NULL, the new clipping region is the default clipping region (the default clipping region is a null region). - - - - - The new clipping region combines the areas of the current clipping region with those areas excluded from the region identified by hrgn. - - - - - The new clipping region combines the current clipping region and the region identified by hrgn. - - - - - The new clipping region combines the current clipping region and the region identified by hrgn but excludes any overlapping areas. - - - - - Same as . - - - - - Same as . - - - - - Specifies the policy to be used when doing a search for a symbol reader. - - - - - Queries the registry for symbol search paths. - - - - - Accesses a symbol server. - - - - - Searches the path specified in the Debug directory. - - - - - Searches for the PDB in the place where the .exe file is. - - - - - Reserved IDs for system objects. See . - - - - - // Time Actions (dwTimerAction) - - - - - // Reset the timer so the progress will be calculated from now until the first ::SetProgress() is called so those this time will correspond to the values passed to ::SetProgress(). Only do this before ::SetProgress() is called. - - - - - Progress has been suspended. - - - - - Progress has resumed. - - - - - // Flags for IProgressDialog::StartProgressDialog() (dwFlags) - - - - - default normal progress dlg behavior - - - - - the dialog is modal to its hwndParent (default is modeless) - - - - - automatically updates the "Line3" text with the "time remaining" (you cant call SetLine3 if you passs this!) - - - - - we dont show the "time remaining" if this is set. We need this if dwTotal < dwCompleted for sparse files - - - - - Do not have a minimize button in the caption bar. - - - - - Don't display the progress bar - - - - - Use marquee progress (comctl32 v6 required) - - - - - No cancel button (operation cannot be canceled) (use sparingly) - - - - - Standard command IDs for the dialog boxes. - - - - - Dialog Codes. - - - - - Flags for the function. - - - - - OLE CMD Errors from DocObj.h. - - - - - x86 - - - - - Intel Itanium-based - - - - - x64 (AMD or Intel) - - - - - Unknown architecture. - - - - - Codes for the function. - - - - - Result flags for the wait functions. - - - - - The specified object is a mutex object that was not released by the thread that owned the mutex object before the owning thread terminated. Ownership of the mutex object is granted to the calling thread, and the mutex is set to nonsignaled. - If the mutex was protecting persistent state information, you should check it for consistency. - - - - - The state of the specified object is signaled. - - - - - The time-out interval elapsed, and the object's state is nonsignaled. - - - - - - The IServiceProvider interface is a generic access mechanism to locate a GUID-identified service that is provided through a control or any other object that the service can communicate with. For example, an embedded object (such as an OLE control) typically communicates only with its associated client site object in the container through the IOleClientSite interface that is supplied by using IOleObject::SetClientSite. The embedded object must ask the client site for some other service that the container supports when that service might not be implemented in the client site. - The client site must provide a means by which the control that is managed by the site can access the service when necessary. For example, the IOleInPlaceSite::GetWindowContext function can be used by an in-place object or control to access interface pointers for the document object that contains the site and the frame object that contains the document. Because these interface pointers exist on separate objects, the control cannot call the site's QueryInterface to obtain those pointers. Instead, use the IServiceProvider interface. - The IServiceProvider interface has only one member, QueryService, through which a caller specifies the service ID (SID, a GUID), the IID of the interface to return, and the address of the caller's interface pointer variable. - - - - - Acts as the factory method for any services exposed through an implementation of IServiceProvider. - - [in] The unique identifier of the service (an SID). - [in] The unique identifier of the interface that the caller wants to receive for the service. - [out] The address of the caller-allocated variable to receive the interface pointer of the service on successful return from this function. The caller becomes responsible for calling Release through this interface pointer when the service is no longer required. - - - - Hosts the scattered WinAPI macros, in the form of functions. - - - - - Gets a signed x-coordinate packed into an LPARAM, usually in Windows messgaes. - To create a point from an LPARAM, use casting thru the class. - - - - - Gets a signed y-coordinate packed into an LPARAM, usually in Windows messgaes. - To create a point from an LPARAM, use casting thru the class. - - - - - In WinAPI, this is called MAKELONG (C's long is of the same size as a DWORD, whilst in C# it's a QWORD). - - - - - MsImg32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - The AlphaBlend function displays bitmaps that have transparent or semitransparent pixels. - - - [in] Handle to the destination device context. - - [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle. - - [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle. - - [in] Specifies the width, in logical units, of the destination rectangle. - - [in] Specifies the height, in logical units, of the destination rectangle. - - [in] Handle to the source device context. - - [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the source rectangle. - - [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the source rectangle. - - [in] Specifies the width, in logical units, of the source rectangle. - - [in] Specifies the height, in logical units, of the source rectangle. - - [in] Specifies the alpha-blending function for source and destination bitmaps, a global alpha value to be applied to the entire source bitmap, and format information for the source bitmap. The source and destination blend functions are currently limited to AC_SRC_OVER. See the and EMRALPHABLEND structures. - If the function succeeds, the return value is TRUE. If the function fails, the return value is FALSE. - - - - Ole32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - OleAut32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - Clears a variant. - - Pointer to the VARIANTARG to clear. - The return value obtained from the returned HRESULT is one of the following. - - Use this function to clear variables of type VARIANTARG (or VARIANT) before the memory containing the VARIANTARG is freed (as when a local variable goes out of scope). - - The function clears a VARIANTARG by setting the vt field to VT_EMPTY. The current contents of the VARIANTARG are released first. If the vtfield is VT_BSTR, the string is freed. If the vtfield is VT_DISPATCH, the object is released. If the vt field has the VT_ARRAY bit set, the array is freed. - - If the variant to be cleared is a COM object that is passed by reference, the vtfield of the pvargparameter is VT_DISPATCH | VT_BYREF or VT_UNKNOWN | VT_BYREF. In this case, VariantClear does not release the object. Because the variant being cleared is a pointer to a reference to an object, VariantClear has no way to determine if it is necessary to release the object. It is therefore the responsibility of the caller to release the object or not, as appropriate. - - In certain cases, it may be preferable to clear a variant in code without calling VariantClear. For example, you can change the type of a VT_I4 variant to another type without calling this function. Safearrays of BSTR will have SysFreeString called on each element not VariantClear. However, you must call VariantClear if a VT_type is received but cannot be handled. Safearrays of variant will also have VariantClear called on each member. Using VariantClear in these cases ensures that code will continue to work if Automation adds new variant types in the future. - - Do not use VariantClear on unitialized variants; use VariantInit to initialize a new VARIANTARG or VARIANT. - - Variants containing arrays with outstanding references cannot be cleared. Attempts to do so will return an HRESULT containing DISP_E_ARRAYISLOCKED. - - - - - Initializes a variant. - - Pointer to the VARIANTARG that will be initialized. - The VariantInit function initializes the VARIANTARG by setting the vt field to VT_EMPTY. Unlike VariantClear, this function does not interpret the current contents of the VARIANTARG. Use VariantInit to initialize new local variables of type VARIANTARG (or VARIANT). - - - - Retrieves information about an object in the file system, such as a file, folder, directory, or drive root. - - Type: LPCTSTR A pointer to a null-terminated string of maximum length MAX_PATH that contains the path and file name. Both absolute and relative paths are valid. If the uFlags parameter includes the SHGFI_PIDL flag, this parameter must be the address of an ITEMIDLIST (PIDL) structure that contains the list of item identifiers that uniquely identifies the file within the Shell's namespace. The PIDL must be a fully qualified PIDL. Relative PIDLs are not allowed. If the uFlags parameter includes the SHGFI_USEFILEATTRIBUTES flag, this parameter does not have to be a valid file name. The function will proceed as if the file exists with the specified name and with the file attributes passed in the dwFileAttributes parameter. This allows you to obtain information about a file type by passing just the extension for pszPath and passing FILE_ATTRIBUTE_NORMAL in dwFileAttributes. This string can use either short (the 8.3 form) or long file names. - A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored. - Pointer to a SHFILEINFO structure to receive the file information. - The size, in bytes, of the SHFILEINFO structure pointed to by the psfi parameter. - The flags that specify the file information to retrieve. This parameter can be a combination of the following values. . - Returns a value whose meaning depends on the uFlags parameter. If uFlags does not contain SHGFI_EXETYPE or SHGFI_SYSICONINDEX, the return value is nonzero if successful, or zero otherwise. If uFlags contains the SHGFI_EXETYPE flag, the return value specifies the type of the executable file. It will be one of the following values. - - - - - - - - - - - The CURSORINFO structure contains global cursor information. - - - - - Specifies the size, in bytes, of the structure. The caller must set this to sizeof(CURSORINFO). - - - - - Specifies the cursor state. This parameter can be one of the following values. - • 0 — The cursor is hidden. - • CURSOR_SHOWING — The cursor is showing. - - - - - Handle to the cursor. - - - - - A structure that receives the screen coordinates of the cursor. - - - - - The CWPRETSTRUCT structure defines the message parameters passed to a WH_CALLWNDPROCRET hook procedure, CallWndRetProc. - - - - - Specifies the return value of the window procedure that processed the message specified by the message value. - - - - - Specifies additional information about the message. The exact meaning depends on the message value. - - - - - Specifies additional information about the message. The exact meaning depends on the message value. - - - - - Specifies the message. - - - - - Handle to the window that processed the message specified by the message value. - - - - - The CWPSTRUCT structure defines the message parameters passed to a WH_CALLWNDPROC hook procedure, CallWndProc. - - - - - Specifies additional information about the message. The exact meaning depends on the message value. - - - - - Specifies additional information about the message. The exact meaning depends on the message value. - - - - - Specifies the message. - - - - - Handle to the window to receive the message. - - - - - The GUITHREADINFO structure contains information about a graphical user interface (GUI) thread. - - - - - Specifies the size of this structure, in bytes. The caller must set this to sizeof(GUITHREADINFO). - - - - - Specifies the thread state. - - - - - Handle to the active window within the thread. - - - - - Handle to the window that has the keyboard focus. - - - - - Handle to the window that has captured the mouse. - - - - - Handle to the window that owns any active menus. - - - - - Handle to the window in a move or size loop. - - - - - Handle to the window that is displaying the caret. - - - - - A RECT structure that describes the caret's bounding rectangle, in client coordinates, relative to the window specified by the hwndCaret member. - - - - - A pointer to the base address of the region of pages. - - - - - A pointer to the base address of a range of pages allocated by the VirtualAlloc function. The page pointed to by the BaseAddress member is contained within this allocation range. - - - - - The memory protection option when the region was initially allocated. This member can be one of the memory protection constants or 0 if the caller does not have access. - - - - - The size of the region beginning at the base address in which all pages have identical attributes, in bytes. - - - - - The state of the pages in the region. This member can be one of the following values: , , . - - - - - The access protection of the pages in the region. This member is one of the values listed for the AllocationProtect member. - - - - - The type of pages in the region. See . - - - - - The MOUSEHOOKSTRUCT structure contains information about a mouse event passed to a WH_MOUSE hook procedure, MouseProc. - - - - - Specifies a POINT structure that contains the x- and y-coordinates of the cursor, in screen coordinates. - - - - - Handle to the window that will receive the mouse message corresponding to the mouse event. - - - - - Specifies the hit-test value. For a list of hit-test values, see the description of the WM_NCHITTEST message. - - - - - Specifies extra information associated with the message. - - - - - The MSG structure contains message information from a thread's message queue. - - - - - Handle to the window whose window procedure receives the message. hwnd is NULL when the message is a thread message. - - - - - Specifies the message identifier. Applications can only use the low word; the high word is reserved by the system. - - - - - Specifies additional information about the message. The exact meaning depends on the value of the message member. - - - - - Specifies additional information about the message. The exact meaning depends on the value of the message member. - - - - - Specifies the time at which the message was posted. - - - - - Specifies the cursor position, in screen coordinates, when the message was posted. - - - - - The MSLLHOOKSTRUCT structure contains information about a low-level keyboard input event. - - - - - Specifies a POINT structure that contains the x- and y-coordinates of the cursor, in screen coordinates. - - - - - If the message is WM_MOUSEWHEEL, the high-order word of this member is the wheel delta. The low-order word is reserved. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as WHEEL_DELTA, which is 120. - If the message is WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP, or WM_NCXBUTTONDBLCLK, the high-order word specifies which X button was pressed or released, and the low-order word is reserved. This value can be one or more of the following values. Otherwise, mouseData is not used. - XBUTTON1 The first X button was pressed or released. - XBUTTON2 The second X button was pressed or released. - - - - - Specifies the event-injected flag. An application can use the following value to test the mouse flags. - LLMHF_INJECTED Test the event-injected flag. - 0 Specifies whether the event was injected. The value is 1 if the event was injected; otherwise, it is 0. - 1-15 Reserved. - - - - - Specifies the time stamp for this message. - - - - - Specifies extra information associated with the message. - - - - - Contains information about a notification message. - - - - - A window handle to the control sending the message. - - - - - An identifier of the control sending the message. - - - - - A notification code. This member can be one of the common notification codes (see Notifications under General Control Reference), or it can be a control-specific notification code. - - - - - The POINT structure defines the x- and y- coordinates of a point. - - - - - Specifies the x-coordinate of the point. - - - - - Specifies the y-coordinate of the point. - - - - - Creates a new point, unpacking its signed coordinates from an LPARAM, using the and functions. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - The structure contains the security descriptor for an object and specifies whether the handle retrieved by specifying this structure is inheritable. This structure provides security settings for objects created by various functions, such as CreateFile, CreatePipe, CreateProcess, RegCreateKeyEx, or RegSaveKeyEx. - - - - - The size, in bytes, of this structure. Set this value to the size of the SECURITY_ATTRIBUTES structure. - - - - - A pointer to a security descriptor for the object that controls the sharing of it. If NULL is specified for this member, the object is assigned the default security descriptor of the calling process. This is not the same as granting access to everyone by assigning a NULL discretionary access control list (DACL). The default security descriptor is based on the default DACL of the access token belonging to the calling process. By default, the default DACL in the access token of a process allows access only to the user represented by the access token. If other users must access the object, you can either create a security descriptor with the appropriate access, or add ACEs to the DACL that grants access to a group of users. - - - - - A Boolean value that specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. - - - - - See - - - - - See - - - - - See - - - - - See - - - - - Assorted constants. - - - - - /* constants for CreateDIBitmap */ - /* initialize bitmap */ - - - - - The name of the input desktop in the interactive window station. - - - - - Maximum number of wait objects. - - - - - Size of the VARIANT / VARIANTARG COM structures. - - - - - The SetTimer function creates a timer with the specified time-out value. - uElapse - [in] Specifies the time-out value, in milliseconds. - Windows NT/2000/XP: If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to 1. - Windows 2000/XP: If uElapse is less than USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM. - Windows Server 2003: If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to USER_TIMER_MAXIMUM. - Windows XP SP2/Windows Server 2003 SP1: If uElapse is less than USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM. If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to USER_TIMER_MAXIMUM. - - - - - The SetTimer function creates a timer with the specified time-out value. - uElapse - [in] Specifies the time-out value, in milliseconds. - Windows NT/2000/XP: If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to 1. - Windows 2000/XP: If uElapse is less than USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM. - Windows Server 2003: If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to USER_TIMER_MAXIMUM. - Windows XP SP2/Windows Server 2003 SP1: If uElapse is less than USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM. If uElapse is greater than USER_TIMER_MAXIMUM, the timeout is set to USER_TIMER_MAXIMUM. - - - - - The interactive window station name, for use with . - - - - - winerror.h -- error code definitions for the Win32 API functions. - - - - Values are 32 bit values laid out as follows: - - 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 - 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 - +---+-+-+-----------------------+-------------------------------+ - |Sev|C|R| Facility | Code | - +---+-+-+-----------------------+-------------------------------+ - - where - - Sev - is the severity code - - 00 - Success - 01 - Informational - 10 - Warning - 11 - Error - - C - is the Customer code flag - - R - is a reserved bit - - Facility - is the facility code - - Code - is the facility's status code - - - - - - User32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - The BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context. - - handle to destination DC - x-coord of destination upper-left corner - y-coord of destination upper-left corner - width of destination rectangle - height of destination rectangle - handle to source DC - x-coordinate of source upper-left corner - y-coordinate of source upper-left corner - raster operation code. Use . - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. - - - - The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device. - - Handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen. - If the function succeeds, the return value is the handle to a memory DC. If the function fails, the return value is NULL. - - - - The CreateDC function creates a device context (DC) for a device using the specified name. - - Windows 95/98/Me: The lpszDriver parameter can be NULL, WINSPL16 (a print provider), or (to obtain a display DC) it can be either the null-terminated string DISPLAY or the device name of a specific display device. If lpszDevice specifies a particular device, you must use NULL for lpszDriver. - Windows NT 4.0: Pointer to a null-terminated character string that specifies either DISPLAY or the name of a print provider, which is usually WINSPOOL. - Windows 2000/XP: Pointer to a null-terminated character string that specifies either DISPLAY or the name of a specific display device or the name of a print provider, which is usually WINSPOOL. - [in] Pointer to a null-terminated character string that specifies the name of the specific output device being used, as shown by the Print Manager (for example, Epson FX-80). It is not the printer model name. The lpszDevice parameter must be used. - To obtain valid names for displays, call EnumDisplayDevices. - If lpszDriver is DISPLAY or the device name of a specific display device, then lpszDevice must be NULL or that same device name. If lpszDevice is NULL, then a DC is created for the primary display device. - Windows NT 3.51 and Windows NT 4.0: There is only one (thus the primary) display device. Set lpszDevice to NULL. - Windows 2000 and later: If there are multiple monitors on the system, calling CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) will create a DC covering all the monitors. - This parameter is ignored and should be set to NULL. It is provided only for compatibility with 16-bit Windows. - [in] Pointer to a DEVMODE structure containing device-specific initialization data for the device driver. The DocumentProperties function retrieves this structure filled in for a specified device. The lpInitData parameter must be NULL if the device driver is to use the default initialization (if any) specified by the user. - If lpszDriver is DISPLAY, then lpInitData must be NULL. The display device's current DEVMODE is used - If the function succeeds, the return value is the handle to a DC for the specified device. If the function fails, the return value is NULL. The function will return NULL for a DEVMODE structure other than the current DEVMODE. - - - - The GetDeviceCaps function retrieves device-specific information for the specified device. - - A handle to the DC. - The item to be returned. See for possible values - The return value specifies the value of the desired item. - - - - The CreateDIBSection function creates a DIB that applications can write to directly. The function gives you a pointer to the location of the bitmap bit values. You can supply a handle to a file-mapping object that the function will use to create the bitmap, or you can let the system allocate the memory for the bitmap. - - handle to DC - bitmap data - data type indicator. Use . - bit values - handle to file mapping object - offset to bitmap bit values - If the function succeeds, the return value is a handle to the newly created DIB, and *ppvBits points to the bitmap bit values. - If the function fails, the return value is NULL, and *ppvBits is NULL. - - - - The CreateDIBitmap function creates a compatible bitmap (DDB) from a DIB and, optionally, sets the bitmap bits. - - handle to DC - bitmap data - initialization option - initialization data - color-format data - color-data usage. Use . - If the function succeeds, the return value is a handle to the compatible bitmap. - If the function fails, the return value is NULL. - - - - The CreatePen function creates a logical pen that has the specified style, width, and color. The pen can subsequently be selected into a device context and used to draw lines and curves. - - - - - The DeleteDC function deletes the specified device context (DC). - - handle to DC - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. - - - - The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid. - - [in] Handle to a logical pen, brush, font, bitmap, region, or palette. - If the function succeeds, the return value is nonzero. - If the specified handle is not valid or is currently selected into a DC, the return value is zero. - Windows NT/2000/XP: To get extended error information, call GetLastError. - - Do not delete a drawing object (pen or brush) while it is still selected into a DC. - When a pattern brush is deleted, the bitmap associated with the brush is not deleted. The bitmap must be deleted independently. - - - - - The GdiFlush function flushes the calling thread's current batch. - - - - - The GetStockObject function retrieves a handle to one of the stock pens, brushes, fonts, or palettes. - - - - - The SelectObject function selects an object into the specified device context (DC). The new object replaces the previous object of the same type. - - [in] Handle to the DC. - [in] Handle to the object to be selected. The specified object must have been created by using one of the following functions. - Object Functions - Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection (Bitmaps can be selected for memory DCs only, and for only one DC at a time.) - Brush CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush - Font CreateFont, CreateFontIndirect - Pen CreatePen, CreatePenIndirect - Region CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreateRectRgn, CreateRectRgnIndirect - - - If the selected object is not a region and the function succeeds, the return value is a handle to the object being replaced. If the selected object is a region and the function succeeds, the return value is one of the following values. - Value Meaning - SIMPLEREGION Region consists of a single rectangle. - COMPLEXREGION Region consists of more than one rectangle. - NULLREGION Region is empty. - If an error occurs and the selected object is not a region, the return value is NULL. Otherwise, it is HGDI_ERROR. - - - This function returns the previously selected object of the specified type. An application should always replace a new object with the original, default object after it has finished drawing with the new object. - An application cannot select a bitmap into more than one DC at a time. - ICM: If the object being selected is a brush or a pen, color management is performed. - - - - - The StretchBlt function copies a bitmap from a source rectangle into a destination rectangle, stretching or compressing the bitmap to fit the dimensions of the destination rectangle, if necessary. The system stretches or compresses the bitmap according to the stretching mode currently set in the destination device context. - - [in] Handle to the destination device context. - [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle. - [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle. - [in] Specifies the width, in logical units, of the destination rectangle. - [in] Specifies the height, in logical units, of the destination rectangle. - [in] Handle to the source device context. - [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the source rectangle. - [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the source rectangle. - [in] Specifies the width, in logical units, of the source rectangle. - [in] Specifies the height, in logical units, of the source rectangle. - [in] Specifies the raster operation to be performed. Raster operation codes define how the system combines colors in output operations that involve a brush, a source bitmap, and a destination bitmap. See BitBlt for a list of common raster operation codes (ROPs). Note that the CAPTUREBLT ROP generally cannot be used for printing device contexts. Use the enum. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. Windows NT/2000/XP: To get extended error information, call GetLastError. - - - - Special HWND values. - Cast to an or a * when using. - - - - - Key State Masks for Mouse Messages. - - - - - Pen Styles. - - - - - Specifies the drawing options [for WM_PRINT]. You can combine one or more of the following flags. - - - - - Draw the window only if it is visible. - - - - - Draw the non-client area of the window. - - - - - Draw the client area of the window. - - - - - Erase the background before drawing the window. - - - - - Draw all visible child windows. - - - - - Draw all owned windows. - - - - - WM_ACTIVATE wParam loword value. - - - - - Deactivated. - - - - - Activated by some method other than a mouse click (for example, by a call to the function or by use of the keyboard interface to select the window). - - - - - Activated by a mouse click. - - - - - return codes. - - - - - Helper methods related to the HRESULT type. - - - - - Checks the given HRESULT, if it's a failure one (), and is not contained in , then an exception-from-hresult is thrown. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The FComment function is called in case of the failure only, should use to contribute to the exception report. - - - - - The FAILED WinAPI Macro. - - - - - The FAILED WinAPI Macro. - - - - - The SUCCEEDED WinAPI Macro. - - - - - The SUCCEEDED WinAPI Macro. - - - - - Kernel32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - Closes an open object handle. - - A valid handle to an open object. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. If the application is running under a debugger, the function will throw an exception if it receives either a handle value that is not valid or a pseudo-handle value. This can happen if you close a handle twice, or if you call CloseHandle on a handle returned by the FindFirstFile function. - - - - Converts the current thread into a fiber. You must convert a thread into a fiber before you can schedule other fibers. - - A pointer to a variable that is passed to the fiber. The fiber can retrieve this data by using the GetFiberData macro. - If the function succeeds, the return value is the address of the fiber. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Allocates a fiber object, assigns it a stack, and sets up execution to begin at the specified start address, typically the fiber function. This function does not schedule the fiber. To specify both a commit and reserve stack size, use the CreateFiberEx function. - - The initial size of the stack, in bytes. If this parameter is zero, the new fiber uses the default stack size for the executable. For more information, see Thread Stack Size. - A pointer to the application-defined function to be executed by the fiber and represents the starting address of the fiber. Execution of the newly created fiber does not begin until another fiber calls the SwitchToFiber function with this address. For more information of the fiber callback function, see FiberProc. - A pointer to a variable that is passed to the fiber. The fiber can retrieve this data by using the GetFiberData macro. - If the function succeeds, the return value is the address of the fiber. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Takes a snapshot of the specified processes, as well as the heaps, modules, and threads used by these processes. - - - - - Deletes an existing fiber. - - The address of the fiber to be deleted. - - - - Determines the location of a resource with the specified type and name in the specified module. To specify a language, use the FindResourceEx function. - - - - - Retrieves a pseudo handle for the current process. - - The return value is a pseudo handle to the current process. - - - - Retrieves the process identifier of the calling process. - - The return value is the process identifier of the calling process. - Until the process terminates, the process identifier uniquely identifies the process throughout the system. - - - - The GetCurrentThreadId function retrieves the thread identifier of the calling thread. - Note: same as , but doesn't raise the “Obsolete” warning. - - - - - Retrieves file system attributes for a specified file or directory. - - [in] The name of the file or directory. - If the function succeeds, the return value contains the attributes of the specified file or directory. - If the function fails, the return value is INVALID_FILE_ATTRIBUTE. - - - - - Retrieves attributes for a specified file or directory. - - The name of the file or directory. - A class of attribute information to retrieve. This parameter can be the following value from the GET_FILEEX_INFO_LEVELS enumeration. - A pointer to a buffer that receives the attribute information. The type of attribute information that is stored into this buffer is determined by the value of - If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero (0). To get extended error information, call . - - - - Retrieves the fully-qualified path for the file that contains the specified module. The module must have been loaded by the current process. - To locate the file for a module that was loaded by another process, use the GetModuleFileNameEx function. - - - A handle to the loaded module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process. - The GetModuleFileName function does not retrieve the path for modules that were loaded using the LOAD_LIBRARY_AS_DATAFILE flag. For more information, see LoadLibraryEx. - - - A pointer to a buffer that receives the fully-qualified path of the module. If the length of the path is less than the size that the nSize parameter specifies, the function succeeds and the path is returned as a null-terminated string. - If the length of the path exceeds the size that the nSize parameter specifies, the function succeeds and the string is truncated to nSize characters including the terminating null character. - Windows XP/2000: The string is truncated to nSize characters and is not null terminated. - The string returned will use the same format that was specified when the module was loaded. Therefore, the path can be a long or short file name, and can use the prefix "\\?\". For more information, see Naming a File. - - The size of the lpFilename buffer, in TCHARs. - - If the function succeeds, the return value is the length of the string that is copied to the buffer, in characters, not including the terminating null character. If the buffer is too small to hold the module name, the string is truncated to nSize characters including the terminating null character, the function returns nSize, and the function sets the last error to ERROR_INSUFFICIENT_BUFFER. - Windows XP/2000: If the buffer is too small to hold the module name, the function returns nSize. The last error code remains ERROR_SUCCESS. If nSize is zero, the return value is zero and the last error code is ERROR_SUCCESS. - If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError. - - - - - Retrieves a module handle for the specified module. The module must have been loaded by the calling process. - To avoid the race conditions described in the Remarks section, use the GetModuleHandleEx function. - - The name of the loaded module (either a .dll or .exe file). - If the file name extension is omitted, the default library extension .dll is appended. - The file name string can include a trailing point character (.) to indicate that the module name has no extension. - The string does not have to specify a path. When specifying a path, be sure to use backslashes (\), not forward slashes (/). - The name is compared (case independently) to the names of modules currently mapped into the address space of the calling process. - If this parameter is NULL, GetModuleHandle returns a handle to the file used to create the calling process (.exe file). - The GetModuleHandle function does not retrieve handles for modules that were loaded using the LOAD_LIBRARY_AS_DATAFILE flag. - For more information, see LoadLibraryEx. - If the function succeeds, the return value is a handle to the specified module. - If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Retrieves an integer associated with a key in the specified section of an initialization file. Note: This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry. - - - - - Retrieves a string from the specified section in an initialization file. - Note: This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry. - - - - - Retrieves the address of an exported function or variable from the specified dynamic-link library (DLL). - - A handle to the DLL module that contains the function or variable. The LoadLibrary or GetModuleHandle function returns this handle. - The function or variable name, or the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero. - If the function succeeds, the return value is the address of the exported function or variable. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - The LoadLibrary function maps the specified executable module into the address space of the calling process. - For additional load options, use the LoadLibraryEx function. - - [in] Pointer to a null-terminated string that names the executable module (either a .dll or .exe file). The name specified is the file name of the module and is not related to the name stored in the library module itself, as specified by the LIBRARY keyword in the module-definition (.def) file. - If the string specifies a path but the file does not exist in the specified directory, the function fails. When specifying a path, be sure to use backslashes (\), not forward slashes (/). - If the string does not specify a path, the function uses a standard search strategy to find the file. See the Remarks for more information. - If the function succeeds, the return value is a handle to the module. - If the function fails, the return value is NULL. To get extended error information, call GetLastError. - Windows Me/98/95: If you are using LoadLibrary to load a module that contains a resource whose numeric identifier is greater than 0x7FFF, LoadLibrary fails. - If you are attempting to load a 16-bit DLL directly from 32-bit code, LoadLibrary fails. If you are attempting to load a DLL whose subsystem version is greater than 4.0, LoadLibrary fails. If your DllMain function tries to call the Unicode version of a function, LoadLibrary fails. - - - - Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count. - When the reference count reaches zero, the module is unloaded from the address space of the calling process and the handle is no longer valid. - - [in] A handle to the loaded library module. - The LoadLibrary, LoadLibraryEx, GetModuleHandle, or GetModuleHandleEx function returns this handle. - If the function succeeds, the return value is nonzero. - If the function fails, the return value is zero. To get extended error information, call the GetLastError function. - - - - Adds a directory to the search path used to locate DLLs for the application. - The SetDllDirectory function affects all subsequent calls to the LoadLibrary and LoadLibraryEx functions. - It also effectively disables safe DLL search mode while the specified directory is in the search path. - - [in, optional] The directory to be added to the search path. - If this parameter is an empty string (""), the call removes the current directory from the default DLL search order. - If this parameter is NULL, the function restores the default search order. - If the function succeeds, the return value is nonzero. - If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - Loads the specified resource into global memory. - - - - - Locks the specified resource in memory. - - - - - The OutputDebugString function sends a string to the debugger for display. - - [in] Pointer to the null-terminated string to be displayed. - - - - Retrieves information about the first process encountered in a system snapshot. - - - - - The QueryPerformanceCounter function retrieves the current value of the high-resolution performance counter. - - [out] Pointer to a variable that receives the current performance-counter value, in counts. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - On a multiprocessor computer, it should not matter which processor is called. However, you can get different results on different processors due to bugs in the basic input/output system (BIOS) or the hardware abstraction layer (HAL). To specify processor affinity for a thread, use the SetThreadAffinityMask function. - - - - The QueryPerformanceFrequency function retrieves the frequency of the high-resolution performance counter, if one exists. The frequency cannot change while the system is running. - - [out] Pointer to a variable that receives the current performance-counter frequency, in counts per second. If the installed hardware does not support a high-resolution performance counter, this parameter can be zero. - If the installed hardware supports a high-resolution performance counter, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. For example, if the installed hardware does not support a high-resolution performance counter, the function fails. - - - - The routine copies the contents of one buffer to another. - - Pointer to the destination of the move. - Pointer to the memory to be copied. - Specifies the number of bytes to be copied. - - - - The routine moves memory either forward or backward, aligned or unaligned, in 4-byte blocks, followed by any remaining bytes. - - Pointer to the destination of the move. - Pointer to the memory to be copied. - Specifies the number of bytes to be copied. - - - - Returns the size, in bytes, of the specified resource. - - - - - Schedules a fiber. The function must be called on a fiber. - - The address of the fiber to be scheduled. - - - - Reserves or commits a region of pages in the virtual address space of the calling process. Memory allocated by this function is automatically initialized to zero, unless MEM_RESET is specified. - To allocate memory in the address space of another process, use the VirtualAllocEx function. - - The starting address of the region to allocate. If the memory is being reserved, the specified address is rounded down to the nearest multiple of the allocation granularity. If the memory is already reserved and is being committed, the address is rounded down to the next page boundary. To determine the size of a page and the allocation granularity on the host computer, use the GetSystemInfo function. If this parameter is NULL, the system determines where to allocate the region. - The size of the region, in bytes. If the lpAddress parameter is NULL, this value is rounded up to the next page boundary. Otherwise, the allocated pages include all pages containing one or more bytes in the range from lpAddress to lpAddress+dwSize. This means that a 2-byte range straddling a page boundary causes both pages to be included in the allocated region. - The type of memory allocation. See . - The memory protection for the region of pages to be allocated. If the pages are being committed, you can specify any one of the memory protection constants. - If the function succeeds, the return value is the base address of the allocated region of pages. - If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Changes the protection on a region of committed pages in the virtual address space of the calling process. - To change the access protection of any process, use the VirtualProtectEx function. - - A pointer to the base address of the region of pages whose access protection attributes are to be changed. - All pages in the specified region must be within the same reserved region allocated when calling the VirtualAlloc or VirtualAllocEx function using MEM_RESERVE. The pages cannot span adjacent reserved regions that were allocated by separate calls to VirtualAlloc or VirtualAllocEx using MEM_RESERVE.The size of the region whose access protection attributes are to be changed, in bytes. The region of affected pages includes all pages containing one or more bytes in the range from the lpAddress parameter to (lpAddress+dwSize). This means that a 2-byte range straddling a page boundary causes the protection attributes of both pages to be changed. - The size of the region whose access protection attributes are to be changed, in bytes. The region of affected pages includes all pages containing one or more bytes in the range from the lpAddress parameter to (lpAddress+dwSize). This means that a 2-byte range straddling a page boundary causes the protection attributes of both pages to be changed. - The memory protection option. This parameter can be one of the memory protection constants. - This value must be compatible with the access protection specified for the pages using VirtualAlloc or VirtualAllocEx. - A pointer to a variable that receives the previous access protection value of the first page in the specified region of pages. If this parameter is NULL or does not point to a valid variable, the function fails. - If the function succeeds, the return value is nonzero. - If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - Retrieves information about a range of pages in the virtual address space of the calling process. - To retrieve information about a range of pages in the address space of another process, use the VirtualQueryEx function. - - A pointer to the base address of the region of pages to be queried. This value is rounded down to the next page boundary. To determine the size of a page on the host computer, use the GetSystemInfo function. - If lpAddress specifies an address above the highest memory address accessible to the process, the function fails with ERROR_INVALID_PARAMETER. - - A pointer to a structure in which information about the specified page range is returned. - The size of the buffer pointed to by the lpBuffer parameter, in bytes. - The return value is the actual number of bytes returned in the information buffer. - If the function fails, the return value is zero. To get extended error information, call GetLastError. Possible error values include ERROR_INVALID_PARAMETER. - - - - - Waits until one or all of the specified objects are in the signaled state or the time-out interval elapses. To enter an alertable wait state, use the WaitForMultipleObjectsEx function. - - - - - Waits until the specified object is in the signaled state or the time-out interval elapses. To enter an alertable wait state, use the WaitForSingleObjectEx function. To wait for multiple objects, use the WaitForMultipleObjects. - - - - - Copies a string into the specified section of an initialization file. - Note This function is provided only for compatibility with 16-bit versions of Windows. Applications should store initialization information in the registry. - - The name of the section to which the string will be copied. If the section does not exist, it is created. The name of the section is case-independent; the string can be any combination of uppercase and lowercase letters. - The name of the key to be associated with a string. If the key does not exist in the specified section, it is created. If this parameter is NULL, the entire section, including all entries within the section, is deleted. - A null-terminated string to be written to the file. If this parameter is NULL, the key pointed to by the lpKeyName parameter is deleted. - Windows Me/98/95: The system does not support the use of the TAB (\t) character as part of this parameter. - The name of the initialization file. - If the file was created using Unicode characters, the function writes Unicode characters to the file. Otherwise, the function writes ANSI characters. - If the function successfully copies the string to the initialization file, the return value is nonzero. If the function fails, or if it flushes the cached version of the most recently accessed initialization file, the return value is zero. To get extended error information, call GetLastError. - - - - The CreateFile function creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, - communications resource, mailslot, or named pipe. The function returns a handle that can be used to access an object. - - - access to the object, which can be read, write, or both - The sharing mode of an object, which can be read, write, both, or none - A pointer to a SECURITY_ATTRIBUTES structure that determines whether or not the returned handle can - be inherited by child processes. Can be null - An action to take on files that exist and do not exist - The file attributes and flags. - A handle to a template file with the GENERIC_READ access right. The template file supplies file attributes - and extended attributes for the file that is being created. This parameter can be null - If the function succeeds, the return value is an open handle to a specified file. If a specified file exists before the function - all and dwCreationDisposition is CREATE_ALWAYS or OPEN_ALWAYS, a call to GetLastError returns ERROR_ALREADY_EXISTS, even when the function - succeeds. If a file does not exist before the call, GetLastError returns 0 (zero). - If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError. - - - - - Retrieves information that describes the changes within the specified directory. The function does not report changes to the specified directory itself. - - A handle to the directory to be monitored. This directory must be opened with the FILE_LIST_DIRECTORY access right. - A pointer to the DWORD-aligned formatted buffer in which the read results are to be returned. The structure of this buffer is defined by the FILE_NOTIFY_INFORMATION structure. This buffer is filled either synchronously or asynchronously, depending on how the directory is opened and what value is given to the lpOverlapped parameter. - The size of the buffer that is pointed to by the lpBuffer parameter, in bytes. - If this parameter is TRUE, the function monitors the directory tree rooted at the specified directory. If this parameter is FALSE, the function monitors only the directory specified by the hDirectory parameter. - The filter criteria that the function checks to determine if the wait operation has completed. - For synchronous calls, this parameter receives the number of bytes transferred into the lpBuffer parameter. For asynchronous calls, this parameter is undefined. You must use an asynchronous notification technique to retrieve the number of bytes transferred. - A pointer to an OVERLAPPED structure that supplies data to be used during asynchronous operation. Otherwise, this value is NULL. The Offset and OffsetHigh members of this structure are not used. - A pointer to a completion routine to be called when the operation has been completed or canceled and the calling thread is in an alertable wait state. - If the function succeeds, the return value is nonzero. For synchronous calls, this means that the operation succeeded. For asynchronous calls, this indicates that the operation was successfully queued. If the function fails, the return value is zero. To get extended error information, call GetLastError. If the network redirector or the target file system does not support this operation, the function fails with ERROR_INVALID_FUNCTION. - - - - Retrieves the size of the specified file. - - - - - Sets the attributes for a file or directory. - - The name of the file whose attributes are to be set - The file attributes to set for the file. This parameter can be one or more values, combined using the bitwise-OR operator. However, all other values override FILE_ATTRIBUTE_NORMAL - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call . - - - - Copies an existing file to a new file. - - - Security attributes for the existing file are copied to the new file. File attributes for the existing file are copied to the new file. For example, if an existing file has the FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to CopyFile will also have the FILE_ATTRIBUTE_READONLY file attribute. When CopyFile is used to copy an encrypted file, it attempts to encrypt the destination file with the keys used in the encryption of the source file. If this cannot be done, this function attempts to encrypt the destination file with default keys. If neither of these methods can be done, CopyFile fails with an ERROR_ENCRYPTION_FAILED error code. Symbolic link behavior—If the source file is a symbolic link, the actual file copied is the target of the symbolic link. If the destination file already exists and is a symbolic link, the target of the symbolic link is overwritten by the source file. - - The name of an existing file. If lpExistingFileName does not exist, CopyFile fails, and GetLastError returns ERROR_FILE_NOT_FOUND. - The name of the new file. - If this parameter is TRUE and the new file specified by lpNewFileName already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds. - If the function succeeds, the return value is nonzero. - - - - Moves an existing file or a directory, including its children. - - The current name of the file or directory on the local computer. - The new name for the file or directory. The new name must not already exist. A new file may be on a different file system or drive. A new directory must be on the same drive. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call . - - - - Deletes an existing file. - - The name of the file to be deleted. - If the function fails, the return value is zero (0). To get extended error information, call . - See MSDN page for behaviour explanation - - - - Converts the specified path to its long form. - - The path to be converted. - A pointer to the buffer to receive the long path. You can use the same buffer you used for the lpszShortPath parameter. - The size of the buffer lpszLongPath points to, in TCHARs. - If the function succeeds, the return value is the length, in TCHARs, of the string copied to lpszLongPath, not including the terminating null character. If the lpBuffer buffer is too small to contain the path, the return value is the size, in TCHARs, of the buffer that is required to hold the path and the terminating null character. If the function fails for any other reason, such as if the file does not exist, the return value is zero. To get extended error information, call . - - - - Retrieves the short path form of the specified path. - - The path string. - A pointer to a buffer to receive the null-terminated short form of the path that lpszLongPath specifies. Passing NULL for this parameter and zero for cchBuffer will always return the required buffer size for a specified lpszLongPath. - The size of the buffer that lpszShortPath points to, in TCHARs. Set this parameter to zero if lpszShortPath is set to NULL. - If the function succeeds, the return value is the length, in TCHARs, of the string that is copied to lpszShortPath, not including the terminating null character. If the lpszShortPath buffer is too small to contain the path, the return value is the size of the buffer, in TCHARs, that is required to hold the path and the terminating null character. If the function fails for any other reason, the return value is zero. To get extended error information, call . - - - - Deletes an existing empty directory. - - The path of the directory to be removed. This path must specify an empty directory, and the calling process must have delete access to the directory. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call . - The RemoveDirectory function marks a directory for deletion on close. Therefore, the directory is not removed until the last handle to the directory is closed. RemoveDirectory removes a directory junction, even if the contents of the target are not empty; the function removes directory junctions regardless of the state of the target object. - - - - Sets the date and time that the specified file or directory was created, last accessed, or last modified. - - A handle to the file or directory. The handle must have been created using the CreateFile function with the FILE_WRITE_ATTRIBUTES access right. - A pointer to a FILETIME structure that contains the new creation date and time for the file or directory. This parameter can be NULL if the application does not need to change this information. - A pointer to a FILETIME structure that contains the new last access date and time for the file or directory. The last access time includes the last time the file or directory was written to, read from, or (in the case of executable files) run. This parameter can be NULL if the application does not need to change this information. To prevent file operations using the given handle from modifying the last access time, call SetFileTime immediately after opening the file handle and pass a FILETIME structure whose dwLowDateTime and dwHighDateTime members are both set to 0xFFFFFFFF. - A pointer to a FILETIME structure that contains the new last modified date and time for the file or directory. This parameter can be NULL if the application does not need to change this information. To prevent file operations using the given handle from modifying the last access time, call SetFileTime immediately after opening the file handle and pass a FILETIME structure whose dwLowDateTime and dwHighDateTime members are both set to 0xFFFFFFFF. - If the function succeeds, the return value is nonzero. - - - - Controls whether the system will handle the specified types of serious errors or whether the process will handle them. - - The process error mode - The return value is the previous state of the error-mode bit flags. - Each process has an associated error mode that indicates to the system how the application is going to respond to serious errors. A child process inherits the error mode of its parent process. To retrieve the process error mode, use the GetErrorMode function. Because the error mode is set for the entire process, you must ensure that multi-threaded applications do not set different error-mode flags. Doing so can lead to inconsistent error handling. The system does not make alignment faults visible to an application on all processor architectures. Therefore, specifying SEM_NOALIGNMENTFAULTEXCEPT is not an error on such architectures, but the system is free to silently ignore the request. - - - - Determines whether the specified process is running under WOW64. - - Process handle - A pointer to a value that is set to TRUE if the process is running under WOW64. If the process is running under 32-bit Windows, the value is set to FALSE. If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE. - - - - - Creates or opens a named or unnamed file mapping object for a specified file. - - - - - Maps a view of a file mapping into the address space of a calling process. - - - - - Unmaps a mapped view of a file from the calling process's address space. - - A pointer to the base address of the mapped view of a file that is to be unmapped. This value must be identical to the value returned by a previous call to the MapViewOfFile or MapViewOfFileEx function. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - Moves an existing file or directory, including its children, with various move options. - The MoveFileWithProgress function is equivalent to the MoveFileEx function, except that MoveFileWithProgress allows you to provide a callback function that receives progress notifications. - To perform this operation as a transacted operation, use the MoveFileTransacted function. - - - - - Wrappers for the functions in this DLL. - - - - - Frequency of the performance counter, for . - - - - - Creates an instance of a COM object without the Registry information, by loading the DLL and invoking its class factory. - - Pathname of the DLL. - CLSID of the object to create. - - - - Gets the high-precision system time value, in milliseconds. - Throws if not supported on the system (unlikely). - May yield irrelevant data on non-synchronized CPU cores. - - - - - Reads an .ini string. - - - - - Loads a native dll and looks up the resource. - Throws on errors. - - - - - Calls the IsWow64Process API function, if one is present on this OS version. - - - - - Calls the IsWow64Process API function, if one is present on this OS version. - - - - - Waits for the object, returns whether the wait was successful. - The abandoned state is considered success. - - Handle to wait for. - Timeout. to test without waiting, to wait infinitely. - Whether the wait has succeeded. - - - - Retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process. - Wraps WinAPI function . - - A handle to the loaded module whose path is being requested. - If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process. - The fully qualified path of the module. - - - - Helper for the function. - - - - - Delegate to Kernel32 IsWow64Process API func. - - - - - “CS_…” window class styles from the RegisterClassEx function. - - - - - Aligns the window's client area on a byte boundary (in the x direction). This style affects the width of the window and its horizontal placement on the display. - - - - - Aligns the window on a byte boundary (in the x direction). This style affects the width of the window and its horizontal placement on the display. - - - - - Allocates one device context to be shared by all windows in the class. Because window classes are process specific, it is possible for multiple threads of an application to create a window of the same class. It is also possible for the threads to attempt to use the device context simultaneously. When this happens, the system allows only one thread to successfully finish its drawing operation. - - - - - Sends a double-click message to the window procedure when the user double-clicks the mouse while the cursor is within a window belonging to the class. - - - - - Windows XP: Enables the drop shadow effect on a window. The effect is turned on and off through SPI_SETDROPSHADOW. Typically, this is enabled for small, short-lived windows such as menus to emphasize their Z order relationship to other windows. - - - - - Specifies that the window class is an application global class. For more information, see Application Global Classes. - - - - - Redraws the entire window if a movement or size adjustment changes the width of the client area. - - - - - Disables Close on the window menu. - - - - - Allocates a unique device context for each window in the class. - - - - - Sets the clipping rectangle of the child window to that of the parent window so that the child can draw on the parent. A window with the CS_PARENTDC style bit receives a regular device context from the system's cache of device contexts. It does not give the child the parent's device context or device context settings. Specifying CS_PARENTDC enhances an application's performance. - - - - - Saves, as a bitmap, the portion of the screen image obscured by a window of this class. When the window is removed, the system uses the saved bitmap to restore the screen image, including other windows that were obscured. Therefore, the system does not send WM_PAINT messages to windows that were obscured if the memory used by the bitmap has not been discarded and if other screen actions have not invalidated the stored image. This style is useful for small windows (for example, menus or dialog boxes) that are displayed briefly and then removed before other screen activity takes place. This style increases the time required to display the window, because the system must first allocate memory to store the bitmap. - - - - - Redraws the entire window if a movement or size adjustment changes the height of the client area. - - - - - Specifies the extended window style of the window being created. - - - - - The following styles can be specified wherever a window style is required. After the control has been created, these styles cannot be modified, except as noted. - - - - - Commands. - - - - - constants. - - - - - Sets the left margin. - - - - - Sets the right margin. - - - - - Rich edit controls: Sets the left and right margins to a narrow width calculated using the text metrics of the control's current font. If no font has been set for the control, the margins are set to zero. The lParam parameter is ignored. Edit controls: The EC_USEFONTINFO value cannot be used in the wParam parameter. It can only be used in the lParam parameter. - - - - - Helper structure for the function. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Visual Studio specific. - - - - - Flags for the function. - - - - - Retrieves the parent window. This does not include the owner, as it does with the GetParent function. - - - - - Retrieves the root window by walking the chain of parent windows. - - - - - Retrieves the owned root window by walking the chain of parent and owner windows returned by GetParent. - - - - - - - - The WINDOWPOS structure contains information about the size and position of a window. - - - - - Handle to the window. - - - - - Specifies the position of the window in Z order (front-to-back position). This member can be a handle to the window behind which this window is placed, or can be one of the special values listed with the SetWindowPos function. - - - - - Specifies the position of the left edge of the window. - - - - - Specifies the position of the top edge of the window. - - - - - Specifies the window width, in pixels. - - - - - Specifies the window height, in pixels. - - - - - Specifies the window position. This member can be one or more of the following values. See for details. - - - - - Determines whether the operating system can retrieve version information for a specified file. If version information is available, returns the size, in bytes, of that information. - - [in] Pointer to a null-terminated string that specifies the name of the file of interest. The function uses the search sequence specified by the LoadLibrary function. Windows 95/98/Me: The short path form of the specified file name must be less than 126 characters. - [out] Pointer to a variable that the function sets to zero. - If the function succeeds, the return value is the size, in bytes, of the file's version information. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - Retrieves version information for the specified file. - - [in] Pointer to a null-terminated string that specifies the name of the file of interest. If a full path is not specified, the function uses the search sequence specified by the LoadLibrary function.Windows 95/98/Me: The short path form of the specified file name must be less than 126 characters. - This parameter is ignored. - [in] Specifies the size, in bytes, of the buffer pointed to by the lpData parameter. Call the function first to determine the size, in bytes, of a file's version information. The dwLen member should be equal to or greater than that value. If the buffer pointed to by lpData is not large enough, the function truncates the file's version information to the size of the buffer. - [out] Pointer to a buffer that receives the file-version information. You can use this value in a subsequent call to the function to retrieve data from the buffer. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - The function retrieves specified version information from the specified version-information resource. To retrieve the appropriate resource, before you call , you must first call the function, and then the function. - - [in] Pointer to the buffer containing the version-information resource returned by the function. - [in] Pointer to a zero-terminated string specifying which version-information value to retrieve. The string must consist of names separated by backslashes (\) and it must have one of the following forms. - \ - Specifies the root block. The function retrieves a pointer to the VS_FIXEDFILEINFO structure for the version-information resource. - \VarFileInfo\Translation - Specifies the translation array in a Var variable information structure—the Value member of this structure. The function retrieves a pointer to this array of language and code page identifiers. An application can use these identifiers to access a language-specific StringTable /// structure (using the szKey member) in the version-information resource. - \StringFileInfo\lang-codepage\string-name - Specifies a value in a language-specific StringTable structure. The lang-codepage name is a concatenation of a language and code page identifier pair found as a DWORD in the translation array for the resource. Here the lang-codepage name must be specified as a hexadecimal string. The string-name name must be one of the predefined strings described in the following Remarks section. The function retrieves a string value specific to the language and code page indicated. - - [out] When this method returns, contains the address of a pointer to the requested version information in the buffer pointed to by pBlock. The memory pointed to by lplpBuffer is freed when the associated pBlock memory is freed. - [out] When this method returns, contains a pointer to the size of the requested data pointed to by lplpBuffer: for version information values, the length in TCHARs of the string stored at lplpBuffer; for translation array values, the size in bytes of the array stored at lplpBuffer; and for root block, the size in bytes of the structure. - If the specified version-information structure exists, and version information is available, the return value is nonzero. If the address of the length buffer is zero, no value is available for the specified version-information name. If the specified name does not exist or the specified resource is not valid, the return value is zero. - - - - Gets the WinAPI file version of a native file. - - - - - WinInet.dll functions. - Must be 64bit-safe. - - - - - Gets the system HTTP cookie. - - - - - Sets a system HTTP cookie. - - - - - Color usage constants for , . - - - - - The BITMAPINFO structure contains an array of literal RGB values. - - - - - The bmiColors member is an array of 16-bit indexes into the logical palette of the device context specified by hdc. - - - - - Device driver version - - - - - Device classification - - - - - Horizontal size in millimeters - - - - - Vertical size in millimeters - - - - - Horizontal width in pixels - - - - - Vertical height in pixels - - - - - Number of bits per pixel - - - - - Number of planes - - - - - Number of brushes the device has - - - - - Number of pens the device has - - - - - Number of markers the device has - - - - - Number of fonts the device has - - - - - Number of colors the device supports - - - - - Size required for device descriptor - - - - - Curve capabilities - - - - - Line capabilities - - - - - Polygonal capabilities - - - - - Text capabilities - - - - - Clipping capabilities - - - - - Bitblt capabilities - - - - - Length of the X leg - - - - - Length of the Y leg - - - - - Length of the hypotenuse - - - - - Shading and Blending caps - - - - - Logical pixels inch in X - - - - - Logical pixels inch in Y - - - - - Number of entries in physical palette - - - - - Number of reserved entries in palette - - - - - Actual color resolution - - - - - Physical Width in device units - - - - - Physical Height in device units - - - - - Physical Printable Area x margin - - - - - Physical Printable Area y margin - - - - - Scaling factor x - - - - - Scaling factor y - - - - - Current vertical refresh rate of the display device (for displays only) in Hz - - - - - Horizontal width of entire desktop in pixels - - - - - Vertical height of entire desktop in pixels - - - - - Preferred blt alignment - - - - - Encapsulates the utility classes for painting the controls. - - - - - Prevents the Member Reordering feature from tossing members of the marked class. - - - The attribute must be mentioned in your member reordering patterns. - - - - - User32.dll functions. - Must be 64bit-safe. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - The BringWindowToTop function brings the specified window to the top of the Z order. If the window is a top-level - window, it is activated. If the window is a child window, the top-level parent window associated with the child window is activated. - - - - - The ClientToScreen function converts the client-area coordinates of a specified point to screen coordinates. - - [in] Handle to the window whose client area is used for the conversion. - [in/out] Pointer to a POINT structure that contains the client coordinates to be converted. The new screen coordinates are copied into this structure if the function succeeds. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. Windows NT/2000/XP: To get extended error information, call GetLastError. - - - - Creates a new desktop, associates it with the current window station of the calling process, and assigns it to the calling thread. The calling process must have an associated window station, either assigned by the system at process creation time or set by the SetProcessWindowStation function. - - The name of the desktop to be created. Desktop names are case-insensitive and may not contain backslash characters (\). - Reserved; must be NULL. - Reserved; must be NULL. - This parameter can be zero or the following value. DF_ALLOWOTHERACCOUNTHOOK 0x0001 Enables processes running in other accounts on the desktop to set hooks in this process. - The access to the desktop. For a list of values, see Desktop Security and Access Rights. This parameter must include the DESKTOP_CREATEWINDOW access right, because internally CreateDesktop uses the handle to create a window. - A pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpsa is NULL, the handle cannot be inherited. The lpSecurityDescriptor member of the structure specifies a security descriptor for the new desktop. If this parameter is NULL, the desktop inherits its security descriptor from the parent window station. - If the function succeeds, the return value is a handle to the newly created desktop. If the specified desktop already exists, the function succeeds and returns a handle to the existing desktop. When you are finished using the handle, call the CloseDesktop function to close it. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Destroys an icon and frees any memory the icon occupied. - - [in] Handle to the icon to be destroyed. The icon must not be in use. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - It is only necessary to call DestroyIcon for icons and cursors created with the following functions: CreateIconFromResourceEx (if called without the LR_SHARED flag), CreateIconIndirect, and CopyIcon. Do not use this function to destroy a shared icon. A shared icon is valid as long as the module from which it was loaded remains in memory. The following functions obtain a shared icon: LoadIcon, LoadImage (if you use the LR_SHARED flag), CopyImage (if you use the LR_COPYRETURNORG flag and the hImage parameter is a shared icon), CreateIconFromResource, CreateIconFromResourceEx (if you use the LR_SHARED flag) - - - - - The DestroyWindow function destroys the specified window. The function sends WM_DESTROY and WM_NCDESTROY messages to the window to deactivate it and remove the keyboard focus from it. The function also destroys the window's menu, flushes the thread message queue, destroys timers, removes clipboard ownership, and breaks the clipboard viewer chain (if the window is at the top of the viewer chain). If the specified window is a parent or owner window, DestroyWindow automatically destroys the associated child or owned windows when it destroys the parent or owner window. The function first destroys child or owned windows, and then it destroys the parent or owner window. DestroyWindow also destroys modeless dialog boxes created by the CreateDialog function. - - - - - The DispatchMessage function dispatches a message to a window procedure. It is typically used to dispatch a message retrieved by the GetMessage function. - - [in] Pointer to an MSG structure that contains the message. - The return value specifies the value returned by the window procedure. Although its meaning depends on the message being dispatched, the return value generally is ignored. - - - - The EnableWindow function enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input. - - [in] Handle to the window to be enabled or disabled. - [in] Specifies whether to enable or disable the window. If this parameter is TRUE, the window is enabled. If the parameter is FALSE, the window is disabled. - If the window was previously disabled, the return value is nonzero. If the window was not previously disabled, the return value is zero. - - - - The EnumChildWindows function enumerates the child windows that belong to the specified parent window by passing the handle to each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE. - - [in] Handle to the parent window whose child windows are to be enumerated. If this parameter is NULL, this function is equivalent to EnumWindows. Windows 95/98/Me: hWndParent cannot be NULL. - [in] Pointer to an application-defined callback function. For more information, see EnumChildProc. - [in] Specifies an application-defined value to be passed to the callback function. - Not used. - If a child window has created child windows of its own, EnumChildWindows enumerates those windows as well. A child window that is moved or repositioned in the Z order during the enumeration process will be properly enumerated. The function does not enumerate a child window that is destroyed before being enumerated or that is created during the enumeration process. - - - - The EnumThreadWindows function enumerates all nonchild windows associated with a thread by passing the handle to each window, in turn, to an application-defined callback function. EnumThreadWindows continues until the last window is enumerated or the callback function returns FALSE. To enumerate child windows of a particular window, use the EnumChildWindows function. - - [in] Identifies the thread whose windows are to be enumerated. - [in] Pointer to an application-defined callback function. For more information, see EnumThreadWndProc. - [in] Specifies an application-defined value to be passed to the callback function. - If the callback function returns TRUE for all windows in the thread specified by dwThreadId, the return value is TRUE. If the callback function returns FALSE on any enumerated window, or if there are no windows found in the thread specified by dwThreadId, the return value is FALSE. - - - - The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumWindows continues until the last top-level window is enumerated or the callback function returns FALSE. - - [in] Pointer to an application-defined callback function. For more information, see EnumWindowsProc. - [in] Specifies an application-defined value to be passed to the callback function. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. If EnumWindowsProc returns zero, the return value is also zero. In this case, the callback function should call SetLastError to obtain a meaningful error code to be returned to the caller of EnumWindows. - - The EnumWindows function does not enumerate child windows, with the exception of a few top-level windows owned by the system that have the WS_CHILD style. - This function is more reliable than calling the GetWindow function in a loop. An application that calls GetWindow to perform this task risks being caught in an infinite loop or referencing a handle to a window that has been destroyed. - - - - - The FillRect function fills a rectangle by using the specified brush. This function includes the left and top borders, but excludes the right and bottom borders of the rectangle. - - - - - The SetForegroundWindow function puts the thread that created the specified window into the foreground and - activates the window. Keyboard input is directed to the window, and various visual cues are changed for the user. - The system assigns a slightly higher priority to the thread that created the foreground window than it does to other threads. - - - - - The GetActiveWindow function retrieves the window handle to the active window attached to the calling thread's message queue. - - The return value is the handle to the active window attached to the calling thread's message queue. Otherwise, the return value is NULL. - To get the handle to the foreground window, you can use GetForegroundWindow. Windows 98/Me and Windows NT 4.0 SP3 and later: To get the window handle to the active window in the message queue for another thread, use GetGUIThreadInfo. - - - - The GetAncestor function retrieves the handle to the ancestor of the specified window. - - [in] Handle to the window whose ancestor is to be retrieved. If this parameter is the desktop window, the function returns NULL. - [in] Specifies the ancestor to be retrieved. This parameter can be one of the following values. - The return value is the handle to the ancestor window. - - - - The GetClassName function retrieves the name of the class to which the specified window belongs. - - [in] Handle to the window and, indirectly, the class to which the window belongs. - [out] Pointer to the buffer that is to receive the class name string. - [in] Specifies the length, in TCHAR, of the buffer pointed to by the lpClassName parameter. The class name string is truncated if it is longer than the buffer and is always null-terminated. - If the function succeeds, the return value is the number of TCHAR copied to the specified buffer. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - The GetClientRect function retrieves the coordinates of a window's client area. The client coordinates specify the upper-left and lower-right corners of the client area. Because client coordinates are relative to the upper-left corner of a window's client area, the coordinates of the upper-left corner are (0,0). - - [in] Handle to the window whose client coordinates are to be retrieved. - [out] Pointer to a RECT structure that receives the client coordinates. The left and top members are zero. The right and bottom members contain the width and height of the window. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - In conformance with conventions for the RECT structure, the bottom-right coordinates of the returned rectangle are exclusive. In other words, the pixel at (right, bottom) lies immediately outside the rectangle. - - - - The GetCursorInfo function retrieves information about the global cursor. - - Pointer to a CURSORINFO structure that receives the information. Note that you must set CURSORINFO.cbSize to sizeof(CURSORINFO) before calling this function. - If the function succeeds, the return value is nonzero. - If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - Retrieves the cursor's position, in screen coordinates. - - [out] Pointer to a POINT structure that receives the screen coordinates of the cursor. - Returns nonzero if successful or zero otherwise. To get extended error information, call GetLastError. - - - - The GetDlgItem function retrieves a handle to a control in the specified dialog box. - - [in] Handle to the dialog box that contains the control. - [in] Specifies the identifier of the control to be retrieved. - If the function succeeds, the return value is the window handle of the specified control. - If the function fails, the return value is NULL, indicating an invalid dialog box handle or a nonexistent control. To get extended error information, call GetLastError. - You can use the GetDlgItem function with any parent-child window pair, not just with dialog boxes. As long as the hDlg parameter specifies a parent window and the child window has a unique identifier (as specified by the hMenu parameter in the CreateWindow or CreateWindowEx function that created the child window), GetDlgItem returns a valid handle to the child window. - - - - The GetFocus function retrieves the handle to the window that has the keyboard focus, if the window is attached to the calling thread's message queue. - - The return value is the handle to the window with the keyboard focus. If the calling thread's message queue does not have an associated window with the keyboard focus, the return value is NULL. - - - - The GetForegroundWindow function returns a handle to the foreground window (the window with which the user is currently working). The system assigns a slightly higher priority to the thread that creates the foreground window than it does to other threads. - - The return value is a handle to the foreground window. The foreground window can be NULL in certain circumstances, such as when a window is losing activation. - - - - Retrieves information about the active window or a specified graphical user interface (GUI) thread. - - Identifies the thread for which information is to be retrieved. To retrieve this value, use the GetWindowThreadProcessId function. If this parameter is NULL, the function returns information for the foreground thread. - Pointer to a structure that receives information describing the thread. Note that you must set GUITHREADINFO.cbSize to sizeof(GUITHREADINFO) before calling this function. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - This function succeeds even if the active window is not owned by the calling process. If the specified thread does not exist or have an input queue, the function will fail. - This function is useful for retrieving out-of-context information about a thread. The information retrieved is the same as if an application retrieved the information about itself. - - - - - The GetKeyState function retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off—alternating each time the key is pressed). - - - [in] Specifies a virtual key. If the desired virtual key is a letter or digit (A through Z, a through z, or 0 through 9), nVirtKey must be set to the ASCII value of that character. For other keys, it must be a virtual-key code. - If a non-English keyboard layout is used, virtual keys with values in the range ASCII A through Z and 0 through 9 are used to specify most of the character keys. For example, for the German keyboard layout, the virtual key of value ASCII O (0x4F) refers to the "o" key, whereas VK_OEM_1 refers to the "o with umlaut" key. - - - The return value specifies the status of the specified virtual key, as follows: - • If the high-order bit is 1, the key is down; otherwise, it is up. - • If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled. - - - - - The GetMessage function retrieves a message from the calling thread's message queue. The function dispatches incoming sent messages until a posted message is available for retrieval. Unlike GetMessage, the function does not wait for a message to be posted before returning. - - [out] Pointer to an MSG structure that receives message information from the thread's message queue. - [in] Handle to the window whose messages are to be retrieved. The window must belong to the current thread. If hWnd is NULL, GetMessage retrieves messages for any window that belongs to the current thread, and any messages on the current thread's message queue whose hwnd value is NULL (see the MSG structure). Therefore if hWnd is NULL, both window messages and thread messages are processed. If hWnd is -1, GetMessage retrieves only messages on the current thread's message queue whose hwnd value is NULL, that is, thread messages as posted by PostMessage (when the hWnd parameter is NULL) or PostThreadMessage. - [in] Specifies the integer value of the lowest message value to be retrieved. Use WM_KEYFIRST to specify the first keyboard message or WM_MOUSEFIRST to specify the first mouse message. Windows XP: Use WM_INPUT here and in wMsgFilterMax to specify only the WM_INPUT messages. If wMsgFilterMin and wMsgFilterMax are both zero, GetMessage returns all available messages (that is, no range filtering is performed). - [in] Specifies the integer value of the highest message value to be retrieved. Use WM_KEYLAST to specify the last keyboard message or WM_MOUSELAST to specify the last mouse message. Windows XP: Use WM_INPUT here and in wMsgFilterMin to specify only the WM_INPUT messages. If wMsgFilterMin and wMsgFilterMax are both zero, GetMessage returns all available messages (that is, no range filtering is performed). - If the function retrieves a message other than WM_QUIT, the return value is nonzero. If the function retrieves the WM_QUIT message, the return value is zero. If there is an error, the return value is -1. For example, the function fails if hWnd is an invalid window handle or lpMsg is an invalid pointer. To get extended error information, call GetLastError. - - - - The GetParent function retrieves a handle to the specified window's parent or owner. To retrieve a handle to a specified ancestor, use the GetAncestor function. - - [in] Handle to the window whose parent window handle is to be retrieved. - If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL. To get extended error information, call GetLastError. For example, this would determine, when the function returns NULL, if the function failed or the window was a top-level window. - Note that, despite its name, this function can return an owner window instead of a parent window. To obtain the parent window and not the owner, use GetAncestor with the GA_PARENT flag. - - - - Retrieves the specified system metric or system configuration setting. - - - - - Retrieves a handle to the desktop assigned to the specified thread. Windows Me/98/95: The system does not support multiple desktops, so GetThreadDesktop always returns the same value. - - A handle to the thread. The GetCurrentThreadId and CreateProcess functions return thread identifiers. - If the function succeeds, the return value is a handle to the desktop associated with the specified thread. You do not need to call the CloseDesktop function to close the returned handle. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - The GetWindowLongPtrW function retrieves information about the specified window. The function also retrieves the value at a specified offset into the extra window memory. - - void* is used instead of IntPtr here for safer casts on x64 systems: IntPtr is explicitly checked and throws an overflow exception. - - - - The function retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen. - - - - - The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. However, GetWindowText cannot retrieve the text of a control in another application. - - [in] Handle to the window or control containing the text. - [out] Pointer to the buffer that will receive the text. If the string is as long or longer than the buffer, the string is truncated and terminated with a NULL character - [in] Specifies the maximum number of characters to copy to the buffer, including the NULL character. If the text exceeds this limit, it is truncated. - If the function succeeds, the return value is the length, in characters, of the copied string, not including the terminating NULL character. If the window has no title bar or text, if the title bar is empty, or if the window or control handle is invalid, the return value is zero. To get extended error information, call GetLastError. This function cannot retrieve the text of an edit control in another application. - - - - The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window. - - [in] Handle to the window. - [out] Pointer to a variable that receives the process identifier. If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable; otherwise, it does not. - The return value is the identifier of the thread that created the window. - - - - The InvalidateRect function adds a rectangle to the specified window's update region. The update region represents the portion of the window's client area that must be redrawn. - - - - - The IsChild function tests whether a window is a child window or descendant window of a specified parent window. A child window is the direct descendant of a specified parent window if that parent window is in the chain of parent windows; the chain of parent windows leads from the original overlapped or pop-up window to the child window. - - [in] Handle to the parent window. - [in] Handle to the window to be tested. - If the window is a child or descendant window of the specified parent window, the return value is nonzero. If the window is not a child or descendant window of the specified parent window, the return value is zero. - - - - The IsIconic function return true is windows is minimized. - - - - - The IsWindow function determines whether the specified window handle identifies an existing window. - - [in] Handle to the window to test. - If the window handle identifies an existing window, the return value is nonzero. If the window handle does not identify an existing window, the return value is zero. - - - - The IsWindowEnabled function determines whether the specified window is enabled for mouse and keyboard input. - - [in] Handle to the window to test. - If the window is enabled, the return value is nonzero. If the window is not enabled, the return value is zero. - A child window receives input only if it is both enabled and visible. - - - - The IsWindowVisible function retrieves the visibility state of the specified window. - - [in] Handle to the window to test. - If the specified window, its parent window, its parent's parent window, and so forth, have the WS_VISIBLE style, the return value is nonzero. Otherwise, the return value is zero. Because the return value specifies whether the window has the WS_VISIBLE style, it may be nonzero even if the window is totally obscured by other windows. - - - - The IsZoomed function return true is windows is maximized. - - - - - Determines whether the specified window is a native Unicode window. - - [in] Handle to the window to be tested. - If the window is a native Unicode window, the return value is nonzero. If the window is not a native Unicode window, the return value is zero. The window is a native ANSI window.. - - The character set of a window is determined by the use of the RegisterClass function. - If the window class was registered with the ANSI version of RegisterClass (RegisterClassA), the character set of the window is ANSI. - If the window class was registered with the Unicode version of RegisterClass (RegisterClassW), the character set of the window is Unicode. - - The system does automatic two-way translation (Unicode to ANSI) for window messages. - For example, if an ANSI window message is sent to a window that uses the Unicode character set, the system translates that message into a Unicode message before calling the window procedure. - The system calls IsWindowUnicode to determine whether to translate the message. - - - - - The LoadCursor function loads the specified cursor resource from the executable (.EXE) file associated with an application instance. - - [in] Handle to an instance of the module whose executable file contains the cursor to be loaded. - [in] Pointer to a null-terminated string that contains the name of the cursor resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. The MAKEINTRESOURCE macro can also be used to create this value. To use one of the predefined cursors, the application must set the hInstance parameter to NULL and the lpCursorName parameter to one the following values: - If the function succeeds, the return value is the handle to the newly loaded cursor. - If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - The LoadString function loads a string resource from the executable file associated with a specified module, copies the string into a buffer, and appends a terminating NULL character. - - - - - The MapWindowPoints function converts (maps) a set of points from a coordinate space relative to one window to a coordinate space relative to another window. - - [in] Handle to the window from which points are converted. If this parameter is NULL or HWND_DESKTOP, the points are presumed to be in screen coordinates. - [in] Handle to the window to which points are converted. If this parameter is NULL or HWND_DESKTOP, the points are converted to screen coordinates. - [in/out] Pointer to an array of POINT structures that contain the set of points to be converted. The points are in device units. This parameter can also point to a RECT structure, in which case the cPoints parameter should be set to 2. - [in] Specifies the number of POINT structures in the array pointed to by the lpPoints parameter. - If the function succeeds, the low-order word of the return value is the number of pixels added to the horizontal coordinate of each source point in order to compute the horizontal coordinate of each destination point; the high-order word is the number of pixels added to the vertical coordinate of each source point in order to compute the vertical coordinate of each destination point. If the function fails, the return value is zero. Call SetLastError prior to calling this method to differentiate an error return value from a legitimate "0" return value. Windows NT/2000/XP: To get extended error information, call GetLastError. - If hWndFrom or hWndTo (or both) are mirrored windows (that is, have WS_EX_LAYOUTRTL extended style), MapWindowPoints will automatically adjust mirrored coordinates if you pass two or less points in lpPoints. If you pass more than two points, the function will not fail but it will return erroneous positions. Thus, to guarantee the correct transformation of rectangle coordinates, you must call MapWindowPoints with two or less points at a time, as shown in the following example: - - RECT rc[10]; - - for(int i =0; i < (sizeof(rc)/sizeof(rc[0])); i++) - { - MapWindowPoints(hWnd1, hWnd2, (LPPOINT)(&rc[i]), (sizeof(RECT)/sizeof(POINT)) ); - } - - - - - The MessageBox function creates, displays, and operates a message box. The message box contains an application-defined message and title, along with any combination of predefined icons and push buttons. - - - - - Waits until one or all of the specified objects are in the signaled state or the time-out interval elapses. The objects can include input event objects, which you specify using the dwWakeMask parameter. To enter an alertable wait state, use the function. - - - - - Waits until one or all of the specified objects are in the signaled state, an I/O completion routine or asynchronous procedure call (APC) is queued to the thread, or the time-out interval elapses. The array of objects can include input event objects, which you specify using the dwWakeMask parameter. - - - - - Opens the specified desktop object. - - The name of the desktop to be opened. Desktop names are case-insensitive. This desktop must belong to the current window station. - This parameter can be zero or the following value. DF_ALLOWOTHERACCOUNTHOOK 0x0001 Allows processes running in other accounts on the desktop to set hooks in this process. - If this value is TRUE, processes created by this process will inherit the handle. Otherwise, the processes do not inherit this handle. - The access to the desktop. For a list of access rights, see Desktop Security and Access Rights. - If the function succeeds, the return value is a handle to the opened desktop. When you are finished using the handle, call the CloseDesktop function to close it. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Opens the specified window station. - - The name of the window station to be opened. Window station names are case-insensitive. This window station must belong to the current session. - If this value is TRUE, processes created by this process will inherit the handle. Otherwise, the processes do not inherit this handle. - The access to the window station. For a list of access rights, see Window Station Security and Access Rights. - If the function succeeds, the return value is the handle to the specified window station. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - The PeekMessage function dispatches incoming sent messages, checks the thread message queue for a posted message, and retrieves the message (if any exist). - - [out] Pointer to an MSG structure that receives message information. - [in] Handle to the window whose messages are to be retrieved. The window must belong to the current thread. - If hWnd is NULL, PeekMessage retrieves messages for any window that belongs to the current thread, and any messages on the current thread's message queue whose hwnd value is NULL (see the MSG structure). Therefore if hWnd is NULL, both window messages and thread messages are processed. - If hWnd is -1, PeekMessage retrieves only messages on the current thread's message queue whose hwnd value is NULL, that is, thread messages as posted by PostMessage (when the hWnd parameter is NULL) or PostThreadMessage. - - [in] Specifies the value of the first message in the range of messages to be examined. Use WM_KEYFIRST to specify the first keyboard message or WM_MOUSEFIRST to specify the first mouse message. If wMsgFilterMin and wMsgFilterMax are both zero, PeekMessage returns all available messages (that is, no range filtering is performed). - [in] Specifies the value of the last message in the range of messages to be examined. Use WM_KEYLAST to specify the last keyboard message or WM_MOUSELAST to specify the last mouse message. If wMsgFilterMin and wMsgFilterMax are both zero, PeekMessage returns all available messages (that is, no range filtering is performed). - [in] Specifies how messages are handled. This parameter can be one of the following values. PM_NOREMOVE Messages are not removed from the queue after processing by PeekMessage. PM_REMOVE Messages are removed from the queue after processing by PeekMessage. You can optionally combine the value PM_NOYIELD with either PM_NOREMOVE or PM_REMOVE. This flag prevents the system from releasing any thread that is waiting for the caller to go idle (see WaitForInputIdle). By default, all message types are processed. To specify that only certain message should be processed, specify one or more of the following values. PM_QS_INPUT Windows 98/Me, Windows 2000/XP: Process mouse and keyboard messages. PM_QS_PAINT Windows 98/Me, Windows 2000/XP: Process paint messages. PM_QS_POSTMESSAGE Windows 98/Me, Windows 2000/XP: Process all posted messages, including timers and hotkeys. PM_QS_SENDMESSAGE Windows 98/Me, Windows 2000/XP: Process all sent messages. - If a message is available, the return value is nonzero. If no messages are available, the return value is zero. - - - - The PostMessageW function places (posts) a message in the message queue associated with the thread that created the specified window and returns without waiting for the thread to process the message. To post a message in the message queue associate with a thread, use the PostThreadMessage function. - - - - - The PostThreadMessage function posts a message to the message queue of the specified thread. It returns without waiting for the thread to process the message. - - - - - Indicates to the system that a thread has made a request to terminate (quit). It is typically used in response to a WM_DESTROY message. - - [in] The application exit code. This value is used as the wParam parameter of the WM_QUIT message. - This function does not return a value. - - - - Yields control to other threads when a thread has no other messages in its message queue. - The WaitMessage function suspends the thread and does not return until a new message is placed in the thread's message queue. - - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - The PrintWindow function copies a visual window into the specified device context (DC), typically a printer DC. - - Window to copy - HDC to print into - Optional flags - If the function succeeds, it returns a nonzero value. - If the function fails, it returns zero. - - - - The ScreenToClient function converts the screen coordinates of a specified point on the screen to client-area coordinates. - - [in] Handle to the window whose client area will be used for the conversion. - [in] Pointer to a POINT structure that specifies the screen coordinates to be converted. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. Windows NT/2000/XP: To get extended error information, call GetLastError. - - - - The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message. - To send a message and return immediately, use the SendMessageCallback or SendNotifyMessage function. To post a message to a thread's message queue and return immediately, use the PostMessageW or PostThreadMessage function. - - - - - The SetActiveWindow function activates a window. The window must be attached to the calling thread's message queue. - - [in] Handle to the top-level window to be activated. - If the function succeeds, the return value is the handle to the window that was previously active. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - The SetActiveWindow function activates a window, but not if the application is in the background. The window will be brought into the foreground (top of Z-Order) if its application is in the foreground when the system activates the window. - If the window identified by the hWnd parameter was created by the calling thread, the active window status of the calling thread is set to hWnd. Otherwise, the active window status of the calling thread is set to NULL. - By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetActiveWindow to activate a window attached to another thread's message queue. - - - - - The SetCursor function sets the cursor shape. - - - [in] - Handle to the cursor. The cursor must have been created by the CreateCursor function or loaded by the LoadCursor or LoadImage function. If this parameter is NULL, the cursor is removed from the screen. - Windows 95/98/Me: The width and height of the cursor must be the values returned by the GetSystemMetrics function for SM_CXCURSOR and SM_CYCURSOR. For Microsoft Windows 95, either the cursor bit depth must match the bit depth of the display or the cursor must be monochrome. However, for Windows 98 and Windows 98, if the cursor bit depth does not match the bit depth of the display then the cursor is converted to 4bpp VGA color. - - - The return value is the handle to the previous cursor, if there was one. - If there was no previous cursor, the return value is NULL. - - - - - The SetFocus function sets the keyboard focus to the specified window. The window must be attached to the calling thread's message queue. The SetFocus function sends a WM_KILLFOCUS message to the window that loses the keyboard focus and a WM_SETFOCUS message to the window that receives the keyboard focus. It also activates either the window that receives the focus or the parent of the window that receives the focus. If a window is active but does not have the focus, any key pressed will produce the WM_SYSCHAR, WM_SYSKEYDOWN, or WM_SYSKEYUP message. If the VK_MENU key is also pressed, the lParam parameter of the message will have bit 30 set. Otherwise, the messages produced do not have this bit set. By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetFocus to set the keyboard focus to a window attached to another thread's message queue. - - [in] Handle to the window that will receive the keyboard input. If this parameter is NULL, keystrokes are ignored. - If the function succeeds, the return value is the handle to the window that previously had the keyboard focus. If the hWnd parameter is invalid or the window is not attached to the calling thread's message queue, the return value is NULL. To get extended error information, call GetLastError. - - - - The SetForegroundWindow function puts the thread that created the specified window into the foreground and - activates the window. Keyboard input is directed to the window, and various visual cues are changed for the user. - The system assigns a slightly higher priority to the thread that created the foreground window than it does to other threads. - - - - - The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window. - - - - - The SetParent function changes the parent window of the specified child window. - An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. The new parent window and the child window must belong to the same application. If the window identified by the hWndChild parameter is visible, the system performs the appropriate redrawing and repainting. For compatibility reasons, SetParent does not modify the WS_CHILD or WS_POPUP window styles of the window whose parent is being changed. Therefore, if hWndNewParent is NULL, you should also clear the WS_CHILD bit and set the WS_POPUP style after calling SetParent. Conversely, if hWndNewParent is not NULL and the window was previously a child of the desktop, you should clear the WS_POPUP style and set the WS_CHILD style before calling SetParent. Windows 2000/XP: When you change the parent of a window, you should synchronize the UISTATE of both windows. For more information, see WM_CHANGEUISTATE and WM_UPDATEUISTATE. - - [in] Handle to the child window. - [in] Handle to the new parent window. If this parameter is NULL, the desktop window becomes the new parent window. Windows 2000/XP: If this parameter is HWND_MESSAGE, the child window becomes a message-only window. - If the function succeeds, the return value is a handle to the previous parent window. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Assigns the specified window station to the calling process. This enables the process to access objects in the window station such as desktops, the clipboard, and global atoms. All subsequent operations on the window station use the access rights granted to hWinSta. - - A handle to the window station. This can be a handle returned by the CreateWindowStation, OpenWindowStation, or GetProcessWindowStation function. This window station must be associated with the current session. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - Assigns the specified desktop to the calling thread. All subsequent operations on the desktop use the access rights granted to the desktop. - - A handle to the desktop to be assigned to the calling thread. This handle is returned by the CreateDesktop, GetThreadDesktop, OpenDesktop, or OpenInputDesktop function. This desktop must be associated with the current window station for the process. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - The SetWindowLongPtrW function changes an attribute of the specified window. The function also sets a value at the specified offset in the extra window memory. - - void* is used instead of IntPtr here for safer casts on x64 systems: IntPtr is explicitly checked and throws an overflow exception. - - - - The ShowWindow function sets the specified window's show state. - - - - - The SwitchToThisWindow function is called to switch focus to a specified window and bring it to the foreground. - - - - - The TranslateMessage function translates virtual-key messages into character messages. The character messages are posted to the calling thread's message queue, to be read the next time the thread calls the or function. - - [in] Pointer to an structure that contains message information retrieved from the calling thread's message queue by using the GetMessage or PeekMessage function. - If the message is translated (that is, a character message is posted to the thread's message queue), the return value is nonzero. If the message is , , , or , the return value is nonzero, regardless of the translation. If the message is not translated (that is, a character message is not posted to the thread's message queue), the return value is zero. - - - - The UpdateLayeredWindow function updates the position, size, shape, content, and translucency of a layered window. - - [in] Handle to a layered window. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function. - [in] - Handle to a device context (DC) for the screen. This handle is obtained by specifying NULL when calling the function. It is used for palette color matching when the window contents are updated. If hdcDst isNULL, the default palette will be used. - If hdcSrc is NULL, hdcDst must be NULL. - [in] Pointer to a POINT structure that specifies the new screen position of the layered window. If the current position is not changing, pptDst can be NULL. - [in] Pointer to a SIZE structure that specifies the new size of the layered window. If the size of the window is not changing, psize can be NULL. If hdcSrc is NULL, psize must be NULL. - [in] Handle to a DC for the surface that defines the layered window. This handle can be obtained by calling the CreateCompatibleDC function. If the shape and visual context of the window are not changing, hdcSrc can be NULL. - [in] Pointer to a POINT structure that specifies the location of the layer in the device context. If hdcSrc is NULL, pptSrc should be NULL. - [in] Pointer to a COLORREF value that specifies the color key to be used when composing the layered window. To generate a COLORREF, use the RGB macro. - [in] Pointer to a BLENDFUNCTION structure that specifies the transparency value to be used when composing the layered window. - [in] This parameter can be one of the following values. , , . If hdcSrc is NULL, dwFlags should be zero. - If the function succeeds, the return value is nonzero. - - - - The ValidateRect function validates the client area within a rectangle by removing the rectangle from the update region of the specified window. - - - - - The WindowFromPoint function retrieves a handle to the window that contains the specified point. - - [in] Specifies a POINT structure that defines the point to be checked. - The return value is a handle to the window that contains the point. If no window exists at the given point, the return value is NULL. If the point is over a static text control, the return value is a handle to the window under the static text control. - The WindowFromPoint function does not retrieve a handle to a hidden or disabled window, even if the point is within the window. An application should use the ChildWindowFromPoint function for a nonrestrictive search. - - - - Defines a new window message that is guaranteed to be unique throughout the system. The message value can be used when sending or posting messages. - - - - - Retrieves a handle to the desktop window. The desktop window covers the entire screen. The desktop window is the area on top of which other windows are painted. - - The return value is a handle to the desktop window. - - - - The mouse_event function synthesizes mouse motion and button clicks. - - - - - Synthesizes a keystroke. The system can use such a synthesized keystroke to generate a or message. The keyboard driver's interrupt handler calls the keybd_event function. - - - - - [This function has been superseded by the VkKeyScanEx function. You can still use VkKeyScanW, however, if you do not need to specify a keyboard layout.] - Translates a character to the corresponding virtual-key code and shift state for the current keyboard. - - - - - Determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState. - - - - - The BringWindowToTop function brings the specified window to the top of the Z order. If the window is a top-level - window, it is activated. If the window is a child window, the top-level parent window associated with the child window is activated. - - - - - Converts a point from window coordinates to screen coordinates, returns an empty point on failure. - - - - - Converts a rectangle from window coordinates to screen coordinates, returns an empty rectangle on failure. - - - - - Calls . - - - - - Disables the window given by its handle. - - - - - Enables the window given by its handle. - - - - - Lists the handles of all child windows of a specific window, recursively. - - - - - Gets the client rectangle for the window. - - - - - Gets the point out of the (note: should not be used). - - - - - The GetDlgItem function retrieves a handle to a control in the specified dialog box. - - [in] Handle to the dialog box that contains the control. - [in] Specifies the identifier of the control to be retrieved. - If the function succeeds, the return value is the window handle of the specified control. - If the function fails, the return value is NULL, indicating an invalid dialog box handle or a nonexistent control. To get extended error information, call GetLastError. - You can use the GetDlgItem function with any parent-child window pair, not just with dialog boxes. As long as the hDlg parameter specifies a parent window and the child window has a unique identifier (as specified by the hMenu parameter in the CreateWindow or CreateWindowEx function that created the child window), GetDlgItem returns a valid handle to the child window. - - - - Gets the window that currently has focus on this desktop — any thread, any process, etc. - - - - - - - - Gets the window that currently has focus in our process — but on any thread, unlike . - - - - - - - - The GetFocus function retrieves the handle to the window that has the keyboard focus, if the window is attached to the calling thread's message queue. - - The return value is the handle to the window with the keyboard focus. If the calling thread's message queue does not have an associated window with the keyboard focus, the return value is NULL. - - - - Gets parent window for the window - - - - - Lists the handles of all the top-level windows that belong to the specific thread. - - - - - Lists the handles of all the top-level windows currently available in the system. - - - - - Wnd class name. - - - - - NOTE: here void* is used as a return type because otherwise on 64-bit systems casting it to an int might get unsafe unexpectedly. - - - - - - - - Gets the ID of the process that owns the window. - Note that creating a wrapper for that is very expensive because it causes an enumeration of all the system processes to happen. - - - - - Wraps . - - - - - Wnd text. - - - - - Gets the ID of the thread that owns the window. - - - - - Invalidates the specific rectangle. If is Null, the whole window is invalidated. - - - - - The IsIconic function return true is windows is minimized. - - - - - Gets whether the given thread has a message pump created for it. - - - - - The IsWindow function determines whether the specified window handle identifies an existing window. - - [in] Handle to the window to test. - If the window handle identifies an existing window, the return value is nonzero. If the window handle does not identify an existing window, the return value is zero. - - - - The IsWindowEnabled function determines whether the specified window is enabled for mouse and keyboard input. - - [in] Handle to the window to test. - If the window is enabled, the return value is nonzero. If the window is not enabled, the return value is zero. - A child window receives input only if it is both enabled and visible. - - - - The IsWindowVisible function retrieves the visibility state of the specified window. - - [in] Handle to the window to test. - If the specified window, its parent window, its parent's parent window, and so forth, have the WS_VISIBLE style, the return value is nonzero. Otherwise, the return value is zero. Because the return value specifies whether the window has the WS_VISIBLE style, it may be nonzero even if the window is totally obscured by other windows. - - - - The IsZoomed function return true is windows is maximized. - - - - - The PostMessageW function places (posts) a message in the message queue associated with the thread that created the specified window and returns without waiting for the thread to process the message. - - - - - Converts a point from screen coordinates to window coordinates, returns an empty point on failure. - - - - - Converts a rectangle from screen coordinates to window coordinates, returns an empty rectangle on failure. - - - - - The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message. - To send a message and return immediately, use the SendMessageCallback or SendNotifyMessage function. To post a message to a thread's message queue and return immediately, use the PostMessageW or PostThreadMessage function. - - - - - The SetActiveWindow function activates a window. The window must be attached to the calling thread's message queue. - - [in] Handle to the top-level window to be activated. - If the function succeeds, the return value is the handle to the window that was previously active. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - The SetActiveWindow function activates a window, but not if the application is in the background. The window will be brought into the foreground (top of Z-Order) if its application is in the foreground when the system activates the window. - If the window identified by the hWnd parameter was created by the calling thread, the active window status of the calling thread is set to hWnd. Otherwise, the active window status of the calling thread is set to NULL. - By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetActiveWindow to activate a window attached to another thread's message queue. - - - - - The SetFocus function sets the keyboard focus to the specified window. The window must be attached to the calling thread's message queue. The SetFocus function sends a WM_KILLFOCUS message to the window that loses the keyboard focus and a WM_SETFOCUS message to the window that receives the keyboard focus. It also activates either the window that receives the focus or the parent of the window that receives the focus. If a window is active but does not have the focus, any key pressed will produce the WM_SYSCHAR, WM_SYSKEYDOWN, or WM_SYSKEYUP message. If the VK_MENU key is also pressed, the lParam parameter of the message will have bit 30 set. Otherwise, the messages produced do not have this bit set. By using the AttachThreadInput function, a thread can attach its input processing to another thread. This allows a thread to call SetFocus to set the keyboard focus to a window attached to another thread's message queue. - - [in] Handle to the window that will receive the keyboard input. If this parameter is NULL, keystrokes are ignored. - If the function succeeds, the return value is the handle to the window that previously had the keyboard focus. If the hWnd parameter is invalid or the window is not attached to the calling thread's message queue, the return value is NULL. To get extended error information, call GetLastError. - - - - The SetForegroundWindow function puts the thread that created the specified window into the foreground and - activates the window. Keyboard input is directed to the window, and various visual cues are changed for the user. - The system assigns a slightly higher priority to the thread that created the foreground window than it does to other threads. - - - - - Wraps the calls. - - - - - Adds or removes window style bits given by the parameter (see WS_… in ), depending on the value. - - Whether the operation succeeded. - - - - Adds or removes window style bits given by the parameter (see WS_… in ), depending on the value. - - Whether the operation succeeded. - - - - Adds or removes window style bits given by the parameter (see WS_… in ), depending on the value. - - Whether the operation succeeded. - - - - Adds or removes window style bits given by the parameter (see WS_… in ), depending on the value. - - Whether the operation succeeded. - - - - Raw implementation for setting a window style. - - Handle to the window whose style is being set/reset. - One or more styles. - Index telling whether it would be simple style or extended style. - Whether to set or reset the style. - - - - The ShowWindow function sets the specified window's show state. - - - - - The SwitchToThisWindow function is called to switch focus to a specified window and bring it to the foreground. - - - - - Wnd class name. Throws no exceptions, returns Null. - - - - - Loads a Win32 string resource from a native DLL. - Returns Null on errors. - - - - - The EnumWindowsProc function is an application-defined callback function used with the EnumWindows or EnumDesktopWindows function. It receives top-level window handles. The WNDENUMPROC type defines a pointer to this callback function. EnumWindowsProc is a placeholder for the application-defined function name. - - [in] Handle to a top-level window. - [in] Specifies the application-defined value given in EnumWindows or EnumDesktopWindows. - To continue enumeration, the callback function must return TRUE; to stop enumeration, it must return FALSE. - An application must register this callback function by passing its address to EnumWindows or EnumDesktopWindows. - - - - The GetWindowLongPtrW function retrieves information about the specified window. The function also retrieves the value at a specified offset into the extra window memory. - - void* is used instead of IntPtr here for safer casts on x64 systems: IntPtr is explicitly checked and throws an overflow exception. - - - - The SetWindowLongPtrW function changes an attribute of the specified window. The function also sets a value at the specified offset in the extra window memory. - - void* is used instead of IntPtr here for safer casts on x64 systems: IntPtr is explicitly checked and throws an overflow exception. - - - - The GetWindowLongPtrW function retrieves information about the specified window. The function also retrieves the value at a specified offset into the extra window memory. - - void* is used instead of IntPtr here for safer casts on x64 systems: IntPtr is explicitly checked and throws an overflow exception. - - - - The SetWindowLongPtrW function changes an attribute of the specified window. The function also sets a value at the specified offset in the extra window memory. - - void* is used instead of IntPtr here for safer casts on x64 systems: IntPtr is explicitly checked and throws an overflow exception. - - - - Declarations for the UxTheme.Dll. - Must be 64bit-compatible. - - - IMPORTANT! Rules for authoring the class (v1.1): - (1) All the function declarations MUST be 64-bit aware. - (2) When copypasting from older declarations, you MUST check against the MSDN help or header declaration, - and you MUST ensure that each parameter has a proper size. - (3) Call the Wide version of the functions (UCS-2-LE) unless there's a strong reason for calling the ANSI version - (such a reason MUST be indicated in XmlDoc). CharSet = CharSet.Unicode. - (4) ExactSpelling MUST be TRUE. Add the "…W" suffix wherever needed. - (5) SetLastError SHOULD be considered individually for each function. Setting it to True allows to report the errors, - but slows down the execution of critical members. - (6) These properties MUST be explicitly set on DllImport attributes of EACH import: - CharSet, PreserveSig, SetLastError, ExactSpelling. - (7) CLR names MUST be used for types instead of C# ones, eg "Int32" not "int" and "Int64" not "long". - This greately improves the understanding of the parameter sizes. - (8) Sign of the types MUST be favored, eg "DWORD" is "UInt32" not "Int32". - (9) Unsafe pointer types should be used for explicit and implicit pointers rather than IntPtr. - This way we outline the unsafety of the native calls, and also make it more clear for the 64bit transition. - Eg "HANDLE" is "void*". If the rule forces you to mark some assembly as unsafe, it's an indication a managed utility - incapsulating the call and the handle should be provided in one of the already-unsafe assemblies. - (A) Same rules must apply to members of the structures. - (B) All of the structures MUST have the [StructLayout(LayoutKind.Sequential)], [NoReorder] attributes, as appropriate. - - - - - Closes the theme data handle. - - - - - Draws the border and fill defined by the visual style for the specified control part. - - - - - Checks whether the UxTheme DLL is available on this platform. - - - - - Opens the theme data for a window and its associated class. - - - - - The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle. - By convention, the right and bottom edges of the rectangle are normally considered exclusive. In other words, the pixel whose coordinates are (right, bottom) lies immediately outside of the the rectangle. For example, when RECT is passed to the FillRect function, the rectangle is filled up to, but not including, the right column and bottom row of pixels. This structure is identical to the RECTL structure. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - The portions of the system to be included in the snapshot. - See . - - - - - Flags for the , functions. - - - - - Erases the newly invalidated region by sending a WM_ERASEBKGND message to the window when specified with the SW_INVALIDATE flag. - - - - - Invalidates the region identified by the hrgnUpdate parameter after scrolling. - - - - - Scrolls all child windows that intersect the rectangle pointed to by the prcScroll parameter. The child windows are scrolled by the number of pixels specified by the dx and dy parameters. The system sends a WM_MOVE message to all child windows that intersect the prcScroll rectangle, even if they do not move. - - - - - Windows 98/Me, Windows 2000/XP: Scrolls using smooth scrolling. Use the HIWORD portion of the flags parameter to indicate how much time the smooth-scrolling operation should take. - - - - - Flags for the fucntion. - - - - - Retains the current size (ignores the cx and cy parameters). - - - - - Retains the current position (ignores X and Y parameters). - - - - - Retains the current Z order (ignores the hWndInsertAfter parameter). - - - - - Does not redraw changes. If this flag is set, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of the window being moved. When this flag is set, the application must explicitly invalidate or redraw any parts of the window and parent window that need redrawing. - - - - - Does not activate the window. If this flag is not set, the window is activated and moved to the top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter parameter). - - - - - Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed. - - - - - Displays the window. - - - - - Hides the window. - - - - - Discards the entire contents of the client area. If this flag is not specified, the valid contents of the client area are saved and copied back into the client area after the window is sized or repositioned. - - - - - Does not change the owner window's position in the Z order. - - - - - Prevents the window from receiving the WM_WINDOWPOSCHANGING message. - - - - - Prevents generation of the WM_SYNCPAINT message. - - - - - If the calling thread and the thread that owns the window are attached to different input queues, the system posts the request to the thread that owns the window. This prevents the calling thread from blocking its execution while other threads process the request. - - - - - Same as the flag. - - - - - Draws a frame (defined in the window's class description) around the window. - - - - - Possible raster operations for the function. - - - - dest = source - - - dest = source OR dest - - - dest = source AND dest - - - dest = source XOR dest - - - dest = source AND (NOT dest ) - - - dest = (NOT source) - - - dest = (NOT src) AND (NOT dest) - - - dest = (source AND pattern) - - - dest = (NOT source) OR dest - - - dest = pattern - - - dest = DPSnoo - - - dest = pattern XOR dest - - - dest = (NOT dest) - - - dest = BLACK - - - dest = WHITE - - - Do not Mirror the bitmap in this call - - - Include layered windows - - - - Flags for the function. - - - - - Use crKey as the transparency color. (see ) - - - - - Use pblend as the blend function. If the display mode is 256 colors or less, the effect of this value is the same as the effect of . - - - - - Draw an opaque layered window. - - - - - The SIZE structure specifies the width and height of a rectangle. - - The rectangle dimensions stored in this structure may correspond to viewport extents, window extents, text extents, bitmap dimensions, or the aspect-ratio filter for some extended functions. - - - - Specifies the rectangle's width. The units depend on which function uses this. - - - - - Specifies the rectangle's height. The units depend on which function uses this. - - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Indicates whether this instance and a specified object are equal. - - - true if and this instance are the same type and represent the same value; otherwise, false. - - Another object to compare to. 2 - - - - Returns the hash code for this instance. - - - A 32-bit signed integer that is the hash code for this instance. - - 2 - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Stock cursors enum for . - - - - - Standard arrow and small hourglass - - - - - Standard arrow - - - - - Crosshair - - - - - Windows 98/Me, Windows 2000/XP: Hand - - - - - Arrow and question mark - - - - - I-beam - - - - - Obsolete for applications marked version 4.0 or later. - - - - - Slashed circle - - - - - Obsolete for applications marked version 4.0 or later. Use IDC_SIZEALL. - - - - - Four-pointed arrow pointing north, south, east, and west - - - - - /Double-pointed arrow pointing northeast and southwest - - - - - Double-pointed arrow pointing north and south - - - - - Double-pointed arrow pointing northwest and southeast - - - - - Double-pointed arrow pointing west and east - - - - - Vertical arrow - - - - - Hourglass - - - - - Common Win32 Interop declarations - - - - - When the BlendOp parameter is AC_SRC_OVER , the source bitmap is placed over the destination bitmap based on the alpha values of the source pixels. () - - - - - This flag is set when the bitmap has an Alpha channel (that is, per-pixel alpha). Note that the APIs use premultiplied alpha, which means that the red, green and blue channel values in the bitmap must be premultiplied with the alpha channel value. For example, if the alpha channel value is x, the red, green and blue channels must be multiplied by x and divided by 0xff prior to the call. - - - - - The DrawText function draws formatted text in the specified rectangle. It formats the text according to the specified method (expanding tabs, justifying characters, breaking lines, and so forth). - - If the function succeeds, the return value is the height of the text in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from lpRect->top to the bottom of the drawn text - If the function fails, the return value is zero. - Windows NT/2000/XP: To get extended error information, call GetLastError. - - - - The GetUpdateRgn function retrieves the update region of a window by copying it into the specified region. The coordinates of the update region are relative to the upper-left corner of the window (that is, they are client coordinates). - - [in] Handle to the window with an update region that is to be retrieved. - [in] Handle to the region to receive the update region. - [in] Specifies whether the window background should be erased and whether nonclient areas of child windows should be drawn. If this parameter is FALSE, no drawing is done. - The return value indicates the complexity of the resulting region; it can be one of the following values. - The BeginPaint function automatically validates the update region, so any call to GetUpdateRgn made immediately after the call to BeginPaint retrieves an empty update region. - - - - The GetAncestor function retrieves the handle to the ancestor of the specified window. - - [in] Handle to the window whose ancestor is to be retrieved. If this parameter is the desktop window, the function returns NULL. - [in] Specifies the ancestor to be retrieved. This parameter can be one of the following values. - The return value is the handle to the ancestor window. - - - - Calls WinAPI::GetWindowRect. - - - - - The AdjustWindowRectEx function calculates the required size of the window rectangle, based on the desired size of the client rectangle. The window rectangle can then be passed to the CreateWindowEx function to create a window whose client area is the desired size. - - [in, out] Pointer to a RECT structure that contains the coordinates of the top-left and bottom-right corners of the desired client area. When the function returns, the structure contains the coordinates of the top-left and bottom-right corners of the window to accommodate the desired client area. - [in] Specifies the window style of the window whose required size is to be calculated. Note that you cannot specify the WS_OVERLAPPED style. - [in] Specifies whether the window has a menu. - [in] Specifies the extended window style of the window whose required size is to be calculated. For more information, see CreateWindowEx. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - The MoveWindow function changes the position and dimensions of the specified window. For a top-level window, the position and dimensions are relative to the upper-left corner of the screen. For a child window, they are relative to the upper-left corner of the parent window's client area. - - [in] Handle to the window. - [in] Specifies the new position of the left side of the window. - [in] Specifies the new position of the top of the window. - [in] Specifies the new width of the window. - [in] Specifies the new height of the window. - [in] Specifies whether the window is to be repainted. If this parameter is TRUE, the window receives a message. If the parameter is FALSE, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of moving a child window. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. - - - - The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. However, GetWindowText cannot retrieve the text of a control in another application. - - [in] Handle to the window or control containing the text. - [out] Pointer to the buffer that will receive the text. If the string is as long or longer than the buffer, the string is truncated and terminated with a NULL character. - [in] Specifies the maximum number of characters to copy to the buffer, including the NULL character. If the text exceeds this limit, it is truncated. - If the function succeeds, the return value is the length, in characters, of the copied string, not including the terminating NULL character. If the window has no title bar or text, if the title bar is empty, or if the window or control handle is invalid, the return value is zero. To get extended error information, call GetLastError. This function cannot retrieve the text of an edit control in another application. - - - - The GetWindowTextLength function retrieves the length, in characters, of the specified window's title bar text (if the window has a title bar). If the specified window is a control, the function retrieves the length of the text within the control. However, GetWindowTextLength cannot retrieve the length of the text of an edit control in another application. - - [in] Handle to the window or control. - If the function succeeds, the return value is the length, in characters, of the text. Under certain conditions, this value may actually be greater than the length of the text. For more information, see the following Remarks section. If the window has no text, the return value is zero. To get extended error information, call GetLastError. - - - - The EndTask function is called to forcibly close a specified window. - - [in] Handle to the window to be closed. - [in] Ignored. Must be FALSE. - [in] A TRUE for this parameter will force the destruction of the window if an initial attempt fails to gently close the window using WM_CLOSE. With a FALSE for this parameter, only the close with WM_CLOSE is attempted. - If the function succeeds, the return value is nonzero. If the function fails, the return value is FALSE. To get extended error information, call GetLastError. - - - - The ScrollWindowEx function scrolls the contents of the specified window's client area. - - [in] Handle to the window where the client area is to be scrolled. - [in] Specifies the amount, in device units, of horizontal scrolling. This parameter must be a negative value to scroll to the left. - [in] Specifies the amount, in device units, of vertical scrolling. This parameter must be a negative value to scroll up. - [in] Pointer to a RECT structure that specifies the portion of the client area to be scrolled. If this parameter is NULL, the entire client area is scrolled. - [in] Pointer to a RECT structure that contains the coordinates of the clipping rectangle. Only device bits within the clipping rectangle are affected. Bits scrolled from the outside of the rectangle to the inside are painted; bits scrolled from the inside of the rectangle to the outside are not painted. This parameter may be NULL. - [in] Handle to the region that is modified to hold the region invalidated by scrolling. This parameter may be NULL. - [out] Pointer to a RECT structure that receives the boundaries of the rectangle invalidated by scrolling. This parameter may be NULL. - [in] Specifies flags that control scrolling. This parameter can be one of the following values. - If the function succeeds, the return value is (rectangular invalidated region), (nonrectangular invalidated region; overlapping rectangles), or (no invalidated region). - If the function fails, the return value is . To get extended error information, call GetLastError. - - - - The ScrollWindowEx function scrolls the contents of the specified window's client area. - - [in] Handle to the window where the client area is to be scrolled. - [in] Specifies the amount, in device units, of horizontal scrolling. This parameter must be a negative value to scroll to the left. - [in] Specifies the amount, in device units, of vertical scrolling. This parameter must be a negative value to scroll up. - [in] Pointer to a RECT structure that specifies the portion of the client area to be scrolled. If this parameter is NULL, the entire client area is scrolled. - [in] Pointer to a RECT structure that contains the coordinates of the clipping rectangle. Only device bits within the clipping rectangle are affected. Bits scrolled from the outside of the rectangle to the inside are painted; bits scrolled from the inside of the rectangle to the outside are not painted. This parameter may be NULL. - [in] Handle to the region that is modified to hold the region invalidated by scrolling. This parameter may be NULL. - [out] Pointer to a RECT structure that receives the boundaries of the rectangle invalidated by scrolling. This parameter may be NULL. - [in] Specifies flags that control scrolling. This parameter can be one of the following values. - If the function succeeds, the return value is (rectangular invalidated region), (nonrectangular invalidated region; overlapping rectangles), or (no invalidated region). - If the function fails, the return value is . To get extended error information, call GetLastError. - - - - The FindWindowEx function retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window. This function does not perform a case-sensitive search. - If the lpszWindow parameter is not NULL, FindWindowEx calls the GetWindowText function to retrieve the window name for comparison. For a description of a potential problem that can arise, see the Remarks section of GetWindowText. - - [in] Handle to the parent window whose child windows are to be searched. If hwndParent is NULL, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop. Microsoft Windows 2000 and Windows XP: If hwndParent is HWND_MESSAGE, the function searches all message-only windows. - [in] Handle to a child window. The search begins with the next child window in the Z order. The child window must be a direct child window of hwndParent, not just a descendant window. If hwndChildAfter is NULL, the search begins with the first child window of hwndParent. Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level and message-only windows. - [in] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be placed in the low-order word of lpszClass; the high-order word must be zero.If lpszClass is a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names, or it can be MAKEINTATOM(0x800). In this latter case, 0x8000 is the atom for a menu class. For more information, see the Remarks section of this topic. - [in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match. - If the function succeeds, the return value is a handle to the window that has the specified class and window names. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device. - - Handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen. - If the function succeeds, the return value is the handle to a memory DC. If the function fails, the return value is NULL. - - - - The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context. - - handle to DC - width of bitmap, in pixels - height of bitmap, in pixels - If the function succeeds, the return value is a handle to the compatible bitmap (DDB). If the function fails, the return value is NULL. - - - - The DeleteDC function deletes the specified device context (DC). - - handle to DC - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. - - - - Converts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size. - - Numeric value to be converted. - Pointer to a buffer to hold the converted number. Note: this function is bound to call the ANSI version. - Size of the buffer, in characters. Note: in our case, in bytes. - Returns the address of the converted string, or if the conversion fails. - - The following table illustrates how this function converts a numeric value into a text string. - - Numeric value -> Text string - 532 532 -> bytes - 1340 -> 1.30KB - 23506 -> 22.9KB - 2400016 -> 2.29MB - 2400000000 -> 2.23GB - - - - - Converts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size. - - Numeric value to be converted. - Pointer to a buffer to hold the converted number. Note: this function is bound to call the ANSI version. - Size of the buffer, in characters. Note: in our case, in bytes. - Returns the address of the converted string, or if the conversion fails. - - The following table illustrates how this function converts a numeric value into a text string. - - Numeric value -> Text string - 532 532 -> bytes - 1340 -> 1.30KB - 23506 -> 22.9KB - 2400016 -> 2.29MB - 2400000000 -> 2.23GB - - - - - Converts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size. - - Numeric value to be converted. - Returns the size string. - - The following table illustrates how this function converts a numeric value into a text string. - - Numeric value -> Text string - 532 532 -> bytes - 1340 -> 1.30KB - 23506 -> 22.9KB - 2400016 -> 2.29MB - 2400000000 -> 2.23GB - - - - - The SetWindowOrgEx function specifies which window point maps to the viewport origin (0,0). - - [in] Handle to the device context. - [in] Specifies the x-coordinate, in logical units, of the new window origin. - [in] Specifies the y-coordinate, in logical units, of the new window origin. - [out] Pointer to a POINT structure that receives the previous origin of the window, in logical units. If lpPoint is NULL, this parameter is not used. - If the function succeeds, the return value is nonzero. - If the function fails, the return value is zero. - - - - The ExtSelectClipRgn function combines the specified region with the current clipping region using the specified mode. - - [in] Handle to the device context. - [in] Handle to the region to be selected. This handle can only be NULL when the RGN_COPY mode is specified. - [in] Specifies the operation to be performed. It must be one of the following values. - The return value specifies the new clipping region's complexity; it can be one of the following values. - If an error occurs when this function is called, the previous clipping region for the specified device context is not affected. The ExtSelectClipRgn function assumes that the coordinates for the specified region are specified in device units. Only a copy of the region identified by the hrgn parameter is used. The region itself can be reused after this call or it can be deleted. - - - - The CreateRectRgn function creates a rectangular region. - - [in] Specifies the x-coordinate of the upper-left corner of the region in logical units. - [in] Specifies the y-coordinate of the upper-left corner of the region in logical units. - [in] Specifies the x-coordinate of the lower-right corner of the region in logical units. - [in] Specifies the y-coordinate of the lower-right corner of the region in logical units. - - - - - The CombineRgn function combines two regions and stores the result in a third region. The two regions are combined according to the specified mode. - - [in] Handle to a new region with dimensions defined by combining two other regions. (This region must exist before CombineRgn is called.) - [in] Handle to the first of two regions to be combined. - [in] Handle to the second of two regions to be combined. - [in] Specifies a mode indicating how the two regions will be combined. This parameter can be one of the following values. - The return value specifies the type of the resulting region. It can be one of the following values. - The three regions need not be distinct. For example, the hrgnSrc1 parameter can equal the hrgnDest parameter. - - - - The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread. - - If the function succeeds, the return value is the handle to the hook procedure. - If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - The LoadCursor function loads the specified cursor resource from the executable (.EXE) file associated with an application instance. - - [in] Handle to an instance of the module whose executable file contains the cursor to be loaded. - [in] Pointer to a null-terminated string that contains the name of the cursor resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. The MAKEINTRESOURCE macro can also be used to create this value. To use one of the predefined cursors, the application must set the hInstance parameter to NULL and the lpCursorName parameter to one the following values: - If the function succeeds, the return value is the handle to the newly loaded cursor. If the function fails, the return value is NULL. To get extended error information, call GetLastError. - - - - Loads the cursor by calling the WinAPI function. - - - - - The GetStockObject function retrieves a handle to one of the stock pens, brushes, fonts, or palettes. - - - - - The DrawFrameControl function draws a frame control of the specified type and style. - - [in] Handle to the device context of the window in which to draw the control. - [in] Pointer to a RECT structure that contains the logical coordinates of the bounding rectangle for frame control. - [in] Specifies the type of frame control to draw. This parameter can be one of the following values. - [in] Specifies the initial state of the frame control. If uType is DFC_BUTTON, uState can be one of the following values. - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. Windows NT/2000/XP: To get extended error information, call GetLastError. - - - - SetDCBrushColor function sets the current device context (DC) brush color to the specified color value. If the device cannot represent the specified color value, the color is set to the nearest physical color. - - [in] Handle to the DC. - [in] Specifies the new brush color. - If the function succeeds, the return value specifies the previous DC brush color as a COLORREF value. If the function fails, the return value is CLR_INVALID. - - - - This function converts variant data types to double from OLECHAR. - Passing invalid (and under some circumstances NULL) pointers to this function causes an unexpected termination of the application. - - - - - The TrackPopupMenuEx function displays a shortcut menu at the specified location and tracks the selection of items on the shortcut menu. The shortcut menu can appear anywhere on the screen. - - [in] Handle to the shortcut menu to be displayed. This handle can be obtained by calling the CreatePopupMenu function to create a new shortcut menu or by calling the GetSubMenu function to retrieve a handle to a submenu associated with an existing menu item. - [in] Specifies function options. Use one of the following flags to specify how the function positions the shortcut menu horizontally. - [in] Horizontal location of the shortcut menu, in screen coordinates. - [in] Vertical location of the shortcut menu, in screen coordinates. - [in] Handle to the window that owns the shortcut menu. This window receives all messages from the menu. The window does not receive a WM_COMMAND message from the menu until the function returns. If you specify TPM_NONOTIFY in the fuFlags parameter, the function does not send messages to the window identified by hwnd. However, you must still pass a window handle in hwnd. It can be any window handle from your application. - [in] Pointer to a TPMPARAMS structure that specifies an area of the screen the menu should not overlap. This parameter can be NULL. - If you specify TPM_RETURNCMD in the fuFlags parameter, the return value is the menu-item identifier of the item that the user selected. If the user cancels the menu without making a selection, or if an error occurs, then the return value is zero. If you do not specify TPM_RETURNCMD in the fuFlags parameter, the return value is nonzero if the function succeeds and zero if it fails. To get extended error information, call GetLastError. - - - - Extends the window frame behind the client area. - If Desktop Window Manager (DWM) composition is toggled, this function must be called again. Handle the WM_DWMCOMPOSITIONCHANGED message for composition change notification. - Negative margins are used to create the "sheet of glass" effect where the client area is rendered as a solid surface with no window border. - - The handle to the window for which the frame is extended into the client area. - that describes the margins to use when extending the frame into the client area. - Returns S_OK if successful, or an error value otherwise. - - - - The return value specifies the new clipping region's complexity; it can be one of the following values. - - - - - An error occurred. - - - - - Region is empty. - - - - - Region is a single rectangle. - - - - - Region is more than one rectangle. - - - - - An error occurred. - - - - - Hook delegate for the function. - - - - - Styles and flags for the status bar. - - - - - Identifies the status bar borders for use with the messages like . - - - - - The horizontal border between the parts and the edges of the window. - - - - - The vertical border between the parts and the edges of the window. - - - - - The spacing between the adjacent status bar parts. - - - - - The stock GDI objects for the function. - - - - - Black brush. - - - - - Dark gray brush. - - - - - Windows 2000/XP: Solid color brush. The default color is white. The color can be changed by using the SetDCBrushColor function. For more information= , see the Remarks section. - - - - - Gray brush. - - - - - Hollow brush (equivalent to NULL_BRUSH). - - - - - Light gray brush. - - - - - Null brush (equivalent to HOLLOW_BRUSH). - - - - - White brush. - - - - - Black pen. - - - - - Windows 2000/XP: Solid pen color. The default color is white. The color can be changed by using the SetDCPenColor function. For more information= , see the Remarks section. - - - - - White pen. - - - - - Windows fixed-pitch (monospace) system font. - - - - - Windows variable-pitch (proportional space) system font. - - - - - Windows NT/2000/XP: Device-dependent font. - - - - - Default font for user interface objects such as menus and dialog boxes. This is MS Sans Serif. Compare this with SYSTEM_FONT. - - - - - Original equipment manufacturer (OEM) dependent fixed-pitch (monospace) font. - - - - - System font. By default= , the system uses the system font to draw menus= , dialog box controls= , and text. Windows 95/98 and Windows NT: The system font is MS Sans Serif. Windows 2000/XP: The system font is Tahoma - - - - - Fixed-pitch (monospace) system font. This stock object is provided only for compatibility with 16-bit Windows versions earlier than 3.0. - - - - - Default palette. This palette consists of the static colors in the system palette. - - - - - Values for . - - - - - Standard button - - - - - Title bar - - - - - Menu bar - - - - - Windows 98/Me, Windows 2000/XP: Popup menu item. - - - - - Scroll bar - - - - - Values for . - Incomplete. - - - - - Push button - - - - - Flags for the function. - - - - - If this flag is set, the function centers the shortcut menu horizontally relative to the coordinate specified by the x parameter. - - - - - If this flag is set, the function positions the shortcut menu so that its left side is aligned with the coordinate specified by the x parameter. - - - - - Positions the shortcut menu so that its right side is aligned with the coordinate specified by the x parameter. - - - - - If this flag is set, the function positions the shortcut menu so that its bottom side is aligned with the coordinate specified by the y parameter. - - - - - If this flag is set, the function positions the shortcut menu so that its top side is aligned with the coordinate specified by the y parameter. - - - - - If this flag is set, the function centers the shortcut menu vertically relative to the coordinate specified by the y parameter. - - - - - If this flag is set, the function does not send notification messages when the user clicks on a menu item. - - - - - If this flag is set, the function returns the menu item identifier of the user's selection in the return value. - - - - - If this flag is set, the user can select menu items with only the left mouse button. - - - - - If this flag is set, the user can select menu items with both the left and right mouse buttons. /// - - - - Animates the menu from right to left. - - - - - Animates the menu from left to right. - - - - - Displays menu without animation. - - - - - Animates the menu from bottom to top. - - - - - Animates the menu from top to bottom. - For any animation to occur, the SystemParametersInfo function must set SPI_SETMENUANIMATION. Also, all the TPM_*ANIMATION flags, except TPM_NOANIMATION, are ignored if menu fade animation is on, See the SPI_GETMENUFADE flag in SystemParametersInfo. - - - - - If the menu cannot be shown at the specified location without overlapping the excluded rectangle, the system tries to accommodate the requested horizontal alignment before the requested vertical alignment. - - - - - If the menu cannot be shown at the specified location without overlapping the excluded rectangle, the system tries to accommodate the requested vertical alignment before the requested horizontal alignment. - The excluded rectangle is a portion of the screen that the menu should not overlap; it is specified by lptpm. - - - - - Flags that go along with the WM_SIZE message in its wParam. - - - - - The window has been resized, but neither the nor value applies. - - - - - The window has been minimized. - - - - - The window has been maximized. - - - - - Message is sent to all pop-up windows when some other window has been restored to its former size. - - - - - Message is sent to all pop-up windows when some other window is maximized. - - - - - Returned by the GetThemeMargins function to define the margins of windows that have visual styles applied. - - - - - Sets no margin. - - - - - Sets all margins to the same value. - - - - - Sets the margins so that they cover the whole surface. - - - - - Sets the margins so that they cover none of the window inner surface. - - - - - Creates a new point, unpacking its signed coordinates from an LPARAM, using the and functions. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Windows hook types for . - - - - - Windows message constants. - - - - - The WM_PRINT message is sent to a window to request that it draw itself in the specified device context, most commonly in a printer device context. - wParam is hdc, lParam is drawing options (PRF_…) - - - - - Index constants for the and functions. - - - - - Sets a new extended window style. For more information, see CreateWindowEx. - - - - - Sets a new window style. - - - - - Sets a new address for the window procedure. - Same as GWL_WNDPROC that is for non-“ptr” versions. - - - - - Sets a new application instance handle. - Same as GWL_HINSTANCE that is for non-“ptr” versions. - - - - - Do not call with the index to change the parent of a child window. Instead, use the SetParent function. - - - - - Sets a new identifier of the window. - Same as GWL_ID that is for non-“ptr” versions. - - - - - Sets the user data associated with the window. This data is intended for use by the application that created the window. Its value is initially zero. - Same as GWL_USERDATA that is for non-“ptr” versions. - - - - - Sets the new pointer to the dialog box procedure. - Valid for dialog boxes only. - - - - - Sets the return value of a message processed in the dialog box procedure. - Valid for dialog boxes only. - - - - - Sets new extra information that is private to the application, such as handles or pointers. - Valid for dialog boxes only. - - - - - Denotes an exception that occurs during the interop calls. - - - - - Implements the interface by just wrapping the handle. - - - - - Wraps a native window handle. - Can be Null. - - - - - Wraps a native window handle. - Can be Null. - - - - - Gets the handle to the window represented by the implementer. - - - - A handle to the window represented by the implementer. - - 1 - - - diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.Platform.Symbols.Interop.WinApi.dll Binary file tools/JetSymbols/JetBrains.Platform.Symbols.Interop.WinApi.dll has changed diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.Platform.Symbols.Metadata.Xml --- a/tools/JetSymbols/JetBrains.Platform.Symbols.Metadata.Xml Mon May 16 19:45:25 2016 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3332 +0,0 @@ - - - - JetBrains.Platform.Symbols.Metadata - - - - - Indicates that the file is not a resource file - - - - - Indicates that the file, possibly a resource file, does not contain metadata - - - - - Provides metadata interface for various sources (ILReader version, only managed code) - - - - - You must call DisposeMetadataAccess after every GetFrom* method, - but if you're loading assemblies via MetadataLoader that will be done for you automatically - on loader dispose - - - - - Structure for storing typedef properties - - - - - Gets fully qualified type name - - - - - Gets base token - - - - - Gets typedef flags - - - - - Structure for storing typeref properties - - - - - Gets type reference resolution scope - - - - - Gets references type namespace name - - - - - Gets references type name (without namespace) - - - - - Gets references type name (namespace_name.type_name) - - - - - Gets name of generic parameter - - - - - Gets generic parmeter index - - - - - Gets owner token - - - - - Gets generic param attributes - - - - - Gets generic param constraints - - - - - Stores properties of a member reference - - - - - Interface for accessing metadata in abstract way - - - - - Gets assembly info interface if available - - - - - Gets array of all available module references - - - - - Gets array of all available typedef tokens - - - - - Gets properties of a typedef - - - - - Gets properties of a typeref - - - - - Gets blob for typeSpec - - - - - Gets blob for StandAloneSig - - - - - Gets blob for typeSpec - - - - - Find all MethodSpec records for concrete method def or ref - - MethodDefOrRef token - Array of corresponding MethodSpec tokens - - - - Gets array of generic parameters fot the specified owner - - - - - Gets properties of a generic parameter - - - - - Gets array of implemented interfaces tokens for specified type - - - - - Gets member (field, method, event or property) name - - - - - Gets array of type fields - - - - - Gets field properties - - - - - Gets array of type methods - - - - - Gets method properties - - - - - Gets method parameters - - - - - Gets parameter by its index in method signature - - - - - Gets parameter properties - - - - - Gets array of type properties - - - - - Gets property properties - - - - - Gets array of type events - - - - - Gets event properties - - - - - Gets enclosing type - - - - - Gets array of custom attributes attached to the specified entity - - - - - Gets custom attribute properties - - - - - Gets custom attribute type fully qualified name - - - - - Gets properties of a module reference - - - - - Gets properties of a member reference - - - - - Gets properties of a manifest resource - - - - - Gets method implementation map for a type - - - - - Gets PInvoke dispatch information for method - - - - - Gets marshalling specification for field or parameter if available, null if not - - - - - Gets array of type references from the assembly - - - - - Gets class layout if specified, null if not - - - - - Gets the string from userstring heap - - - - - Get DeclSecurity rows - - - - - Get DeclSecurity properties - - - - - Get DeclSecurity attribute types names (extracted from blob) - - - - - Finds a record in TypeRef table - - - - - Enumerates all TypeSpec records - - - - - Enumerates all MethodSpec records - - - - - Enumerates all StandaloneSig records - - - - - Enumerates all MethodDef records - - - - - Enumerates all ManifestResource records - - - - - Finds all MemberRefs owned by type - - - - - Returns code RVA for every method in assembly. - Offset in array corresponds to method RID (at zero position - RID 1) - - - - - Returns embedded resource offset (in PE file) by resource offset from - metadata table or -1 if not available - - - - - Metadata provider used to create metadata access - - - - - Gets unique MVID - - - - - Gets target platform - - - - - Nested-relation between types - - - - - Mapping between qualified type names and their typedef tokens - - - - - Exported type token - - - - - The name of the exported type - - - - - An mdFile, mdAssemblyRef, or mdExportedType metadata token that contains or allows access to the properties of the exported type - - - - - mdTypeDef token that represents a type in the file - - - - - flags that describe the metadata applied to the exported type - - - - - The simple name of the file - - - - - Token of file reference - - - - - flags that describe the metadata applied to a file - - - - - Provides access to assembly metadata info - - - - - Gets full assembly name - - - - - Gets names of referenced assemblies - - - - - Get the exported types table - - - - - files referenced in the current assembly manifest - - - - - Gets assembly token - - - - - Type of the encoded token in the CIL tables - - - - - Metadata tables reader - - - - - Read index to the #Strings heap - - - - - Read index to the #GUID heap - - - - - Read index to the #Blob heap - - - - - PE file metadata reader - - - - - ECMA-335 p.22 - - - - - Contains number of bits to represent coded token. - Indexed by number of possible values in given coded token type - - - - - Read coded (multi targeting) token - - Set of the token targets - - - - - Provides metadata interface for various sources - - - - - Metadata tables - - - - - Enumerates prologs for different signatures - - - - - Represents metadata token - - - - - MSIL exception handler record - - - - - Exception handler type - - - - - IL Code FlowControl enumeration - - - - - IL method body flags - - - - - Small Code - - - - - Tiny code format - - - - - Fat code format - - - - - Mask for extract code type - - - - - Runtime call default constructor on all local vars - - - - - there is another attribute after this one - - - - - MSIL instruction. - - - - - Instruction offset from the method beginning. - - - - - Instruction size (in bytes) including the operands. - - - - - Instruction opcode. - - - - - Polymorphic operand whose exact type depends on . - - - - - MSIL Method body - - - - - Provides type-safe utilities for extracting depending on - - - - - MSIL opcode value - - - - - OpCodes static definitions - - - - - OpcodeType enumeration - - - - - Operation codes enumeration - - - - - Debugging breakpoint - - - - - The short-parameter form of br. - - - - - Branch if {value} is zero. - - - - - Branch if {value} is nonzero - - - - - Branch if {value1} is equal to {value2}. - - - - - Branch if the two values are not equal. Integer values are interpreted as unsigned - - - - - Describes the possible types of . - - - - - StackBehaviour enumeration - - - - - Data class to encapsulate source module's path and the referenced assembly name to be resolved - - - - - Interface for resolving assembly names to assemblies - - - - - Resolves assembly name to assembly metadata interface - - - - FileSystemPath.Empty means skipping assembly references resolution - - - - Presentable name for diagnostic issues - - - - - Suppresses module to module resolution - - - - - Searches in gac - - - - - Returns field defs or refs that corresponds to in this assembly - - Array of field defs or refs tokens - - - - Returns type defs, refs or specs that corresponds to in this assembly - - Array of type defs, refs or specs tokens - - - - Returns method specs, defs or refs that corresponds to in this assembly - - Array of method specs, defs, refs tokens - - - - Find a token that corresponds to in this assembly - - TypeDef or TypeRef or Nil - - - - Where the forwarded type is declared (forwarded to) - - - - - Forwarded type FQN - - - - - Unmanaged pointer to a function (fnptr) - - - - - Represents a type in metadata. - Use as comparer - - - - - Gets type presentable name - - - - - Gets array of modopts and modreqs - - - - - Base interface for all metadata entities - - - - - Gets array of attributes having the specified fully qualified name - - - - - Checks if an entity has a custom attribute - - - - - Assembly where this entity is located - - - - - Gets assembly token - - - - - Gets array of custom attributes defined for this metadata entity - - - - - Gets array of custom attributes type names (much faster than getting entire custom attributes) - - - - - Returns whether this entity points to existent entity - - - - - Gets explicitly initialized fields - - - - - Gets explicitly initialized properties - - - - - DeclSecurity rows - - - - - Qualified names of security attributes - - - - - Gets flag indicating whether the method has security attributes - - - - - Gets member name - - - - - Gets type which declares the member. Always null for top-level types - - - - - Gets flag indicating whether the member has special name flag - - - - - Owner - - - - - Sequence number in method local variables list - - - - - Local variable type - - - - - Find usages of in method bodies of current assembly - (one IMethodBodyUsagesFinder was created from). - - - - - Find usages of in method bodies of current assembly - (one IMethodBodyUsagesFinder was created from). - - - - - Find explicit usages of in method bodies of current assembly - (one IMethodBodyUsagesFinder was created from). - - - Covered cases of explicit type usage in method body: typeof (including generic instantiation, - modreq, modopt, function pointers), calls of type's static methods and constructors, - accessing static fields, casts to type, catch arguments, local variables types - - - - - Gets flag indicating whether the field has volatile modifier - - - - - Compares two metadata types. - Note: generic argument references are compared by kind and index, - not actual generic argument entity they are resolved to. - modopt's and pinned are ignored, modreq's are not. - - - - - Reference to type. Name of the type and assmly where it is declared - - - - - Assembly name - - - - - Namespace name of the type - - - - - Name of the type without namespace - - - - - Name of the type - - - - - Searches in gac and near provided assembly. Note: ignores version redirection, probing path and so on - - - - - See Paritition I, 10.3.2. - - - - - Compound resolver. Tries to resolve the assembly thru all of the given resolvers, in order of appearance. - - - - - Entity which stores data about initialized property of a custom attribute - - - - - Gets initialized property - - - - - Gets value the property is initialized with - - - - - Entity which stores data about initialized field of a custom attribute - - - - - Gets initialized field - - - - - Gets value the field is initialized with - - - - - Logs assembly resolution failures. - If adding to , must be the last one. - - - - - Interface for accessing types metadata - - - - - Get the names of all members (except of nested type names). - This is fast, not decoding - - - - - Gets type methods - - - - - Gets type fields - - - - - Gets type properties - - - - - Gets type events - - - - - Gets nested types - - - - - Gets fully qualified name of the type - - - - - Gets assembly qualified name of the type - - - - - Gets namespace of the type. - - - - - Gets name of the type. For nested types, it is the combination of (owner name + Name) - - - - - Assembly name (if any) where this type is located - - - - - Gets base type - - Returns null if there is no base type - - - - Gets array of interfaces implemented by this type - - - - - Gets array of generic arguments of this type - - - - - Gets flag indicating whether the type is abstract - - - - - Gets flag indicating whether the type is abstract - - - - - Gets flag indicating whether the type is imported - - - - - Fields layout type - - - - - Charset for pinvoke calls - - - - - Gets flag indicating whether the type is a class type - - - - - Gets flag indicating whether the type is an interface - - - - - Gets flag indicating whether the type is serializable - - - - - Gets flag indicating whether the type is Windows Runtime type - - - - - Gets flag indicating whether the type is public - - - - - Gets flag indicating whether the type is not public - - - - - Gets flag indicating whether the type is a nested of any type (i.e. any of IsNested* is true) - - - - - Gets flag indicating whether the type is a nested public type - - - - - Gets flag indicating whether the type is a nested private type - - - - - Gets flag indicating whether the type is a nested family type - - - - - Gets flag indicating whether the type is a nested assembly type - - - - - Gets flag indicating whether the type is a nested family-and-assembly type - - - - - Gets flag indicating whether the type is a nested family-or-assembly type - - - - - Packing size for layout process. Positive value if specified - - - - - Class size. Positive value if specified - - - - - Returns method body presentation - - Throws if method body reader failed - - Method body presentation if available, null if no method implementation found - - - - Gets element type - - - - - Returns whether this type is vector - - - - - Gets array rank - - - - - Gets sizes if specified. Note that sizes might be specified not for all dimensions. - - - - - Gets low bounds if specified. Note that low bounds might be specified not for all dimensions. - - - - - Gets type generated for array - - - - - Interface which is used to access metadata of an assembly - - - - - Gets type info from its qualified name - - - - - Gets type info from its token - - - - - Gets type from its qualified name - - - - - Gets array of types defined in the assembly - - - - - Gets types exported from other modules - - - - - - Gets types forwarded to another assembly (TypeForwardedTo) - - - - - - Gets manifest resources - - - - - - Returns new image body reader - It opens module for read and closes it upon Dispose - - - - - Returns new usages finder - Note: It reads module into memory upon creation - - - - - Gets assembly name - - - - - Gets assembly mvid - - - - - Gets array of referenced assemblies' names - - - - - Gets assembly location - - - - - Gets array of custom attributes associated with the main module - - - - - A type which corresponds to a type or instance of a generic class - - - - - Gets underlying metadata type - - - - - Gets type parameters if applicable - - - - - Represents a custom attribute - - - - - Gets constructor which is used for instantiating the attribute - - - - - Gets array of values passed as arguments to the used constructor - - - - - Gets explicitly initialized fields - - - - - Gets explicitly initialized properties - - - - - Represents event metadata - - - - - Gets event type - - - - - Gets adder method - - - - - Gets remover method - - - - - Gets raiser method - - - - - Gets array of other event methods - - - - - Represents field metadata - - - - - Gets literal field value - - - - - Gets literal field value blob - - - - - Gets field type - - - - - Gets a marshalling specification if HasMarshalSpec - - - - - Field offset in type instance. Non-negative value if specified - - - - - Gets the field signature - - - - - Gets initial value RVA in case value stored in the image itself, not metadata - - - - - Gets flag indicating whether the field has assembly visibility - - - - - Gets flag indicating whether the field is private - - - - - Gets flag indicating whether the field is public - - - - - Gets flag indicating whether the field has family visibility - - - - - Gets flag indicating whether the field has family-and-assembly visibility - - - - - Gets flag indicating whether the field has family-or-assembly visibility - - - - - Gets flag indicating whether the field is static - - - - - Gets flag indicating whether the field is readonly - - - - - Gets flag indicating whether the field is literal - - - - - Gets flag indicating whether the field has associated marshaling spec - - - - - Gets flag indicating whether the field must not be serialized - - - - - Represents a generic type argument - - - - - Gets generic argument kind: whether it is owned by a type or by a method - - - - - Gets argument name - - - - - Gets generic argument index - - - - - Gets type owner, if the parameter belongs to a type - - - - - Gets method owner, if the parameter belongs to a method - - - - - Gets argument type constraints, if specified - - - - - Gets argument attributes - - - - - A type which is unbound reference to a generic parameter - - - - - Gets referenced generic argument - - - - - Represents a metadata method - - - - - Get the return value (which is encoded as zero-index parameter) - - - - - Gets method parameters - - - - - Gets array of generic arguments of this type - - - - - Gets array of explicitly implemented methods - - - - - Gets method signature - - - - - PInvoke mapping if IsPInvokeImpl AND signature was successfully decoded - - - - - Gets all impl method flags in one call - - - - - Gets flag indicating whether the method has PInvoke implementation - - - - - Returns method implementation platform (IL, native code or runtime embedded) - - - - - - Indicates method sig is not to be mangled to do HRESULT conversion. - - - - - Method is implemented in runtime (?) - - - - - Method is single threaded through the body. - - - - - Method may not be inlined - - - - - Method may not be optimized - - - - - Gets flag indicating whether the method has assembly visibility - - - - - Gets flag indicating whether the method is private - - - - - Gets flag indicating whether the method is public - - - - - Gets flag indicating whether the method has family visibility - - - - - Gets flag indicating whether the method has family-and-assembly visibility - - - - - Gets flag indicating whether the method has family-or-assembly visibility - - - - - Gets flag indicating whether the method is static - - - - - Gets flag indicating whether the method is abstract - - - - - Gets flag indicating whether the method is virtual - - - - - Gets flad indicating whether the method can be overriden - - - - - Gets flag indicating whether the method hides by name and signature - - - - - Gets flag indicating whether the method is newslot - - - - - Gets flag indicating whether the method is vararg - - - - - Gets flag indicating whether the method is unmanaged - - - - - Represents a method parameter - - - - - Gets default field value - - - - - Gets default field value - - - - - Gets parameter name - - - - - Gets parameter type - - - - - Gets method which declares this parameter - - - - - Gets a marshalling specification if HasMarshalSpec - - - - - Gets flag indicating whether the parameter is input - - - - - Gets flag indicating whether the parameter is output - - - - - Gets flag indicating whether the parameter is parameter array - - - - - Gets flag indicating whether the parameter is optional - - - - - Gets flag indicating whether the parameter has associated marshaling spec - - - - - Gets flag indicating whether the parameter has associated default value - - - - - Unmanaged pointer to a type - - - - - Gets nested type - - - - - Represents a property metadata - - - - - Gets property type - - - - - Gets getter method - - - - - Gets setter method - - - - - Gets all property accessors - - - - - Managed pointer to a type - - - - - Gets nested type - - - - - Represents a method return value (which is encoded as zero-index parameter) - - - - - Gets method which declares this parameter - - - - - Gets parameter type - - - - - Gets a marshalling specification if HasMarshalSpec - - - - - Gets flag indicating whether the parameter has associated marshaling spec - - - - - Unified information about type member - - - - - Name of the type member - - - - - Member token - - - - - Manages metadata loading. - Note: loading assembly into metadata loader holds assembly metadata - for loader lifetime. It's a bad idea to hold loader for your product lifetime. - - - - - Load assembly with the specified name - - - - - Returns type size in memory or 0 if can't be calculated for sure - - - - - Returns field defs or refs that corresponds to in this assembly - - Array of field defs or refs tokens - - - - Returns type defs, refs or specs that corresponds to in this assembly - - Array of type defs, refs or specs tokens - - - - Find a token that corresponds to in this assembly - - TypeDef or TypeRef or Nil - - - - Returns method specs, defs or refs that corresponds to in this assembly - - Array of method specs, defs, refs tokens - - - - Resolves to the assemblies in the currently loaded appdomain. - Not threadsafe. - - - - - Gets "pointer" to the resource location, independent of ImageBodyReader - - - - - Managed-code class which incorporates assembly display name and it's parts. - Use it instead of the because AssemblyName - relies on reflection and other unmanaged code to store and read name. - Call to get AssemblyNameInfo - of an assembly file. - - - - - Assembly name reader in managed code. - No .NET framework or Fusion API used. - Opens files in non-blocking mode. - - - - - Assembly name reader in managed code. - No .NET framework or Fusion API used. - Opens files in non-blocking mode. - - - - use false to skip file existence checking to improve performance - - - - - - - - - The ASM_NAME enumeration property ID describes the valid names of the name-value pairs in an assembly name. - See the .NET Framework SDK for a description of these properties. - - - - - - - - - - - - - - - - - - - - The CREATE_ASM_NAME_OBJ_FLAGS enumeration contains the following values: - CANOF_PARSE_DISPLAY_NAME - If this flag is specified, the szAssemblyName parameter is a full assembly name and is parsed to - the individual properties. If the flag is not specified, szAssemblyName is the "Name" portion of the assembly name. - CANOF_SET_DEFAULT_VALUES - If this flag is specified, certain properties, such as processor architecture, are set to - their default values. - - - - - - The ASM_CACHE_FLAGS enumeration contains the following values: - ASM_CACHE_ZAP - Enumerates the cache of precompiled assemblies by using Ngen.exe. - ASM_CACHE_GAC - Enumerates the GAC. - ASM_CACHE_DOWNLOAD - Enumerates the assemblies that have been downloaded on-demand or that have been shadow-copied. - - - - - The FUSION_INSTALL_REFERENCE structure represents a reference that is made when an application has installed an - assembly in the GAC. - The fields of the structure are defined as follows: - cbSize - The size of the structure in bytes. - dwFlags - Reserved, must be zero. - guidScheme - The entity that adds the reference. - szIdentifier - A unique string that identifies the application that installed the assembly. - szNonCannonicalData - A string that is only understood by the entity that adds the reference. - The GAC only stores this string. - Possible values for the guidScheme field can be one of the following: - FUSION_REFCOUNT_MSI_GUID - The assembly is referenced by an application that has been installed by using - Windows Installer. The szIdentifier field is set to MSI, and szNonCannonicalData is set to Windows Installer. - This scheme must only be used by Windows Installer itself. - FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID - The assembly is referenced by an application that appears in Add/Remove - Programs. The szIdentifier field is the token that is used to register the application with Add/Remove programs. - FUSION_REFCOUNT_FILEPATH_GUID - The assembly is referenced by an application that is represented by a file in - the file system. The szIdentifier field is the path to this file. - FUSION_REFCOUNT_OPAQUE_STRING_GUID - The assembly is referenced by an application that is only represented - by an opaque string. The szIdentifier is this opaque string. The GAC does not perform existence checking - for opaque references when you remove this. - - - - - The ASSEMBLY_INFO structure represents information about an assembly in the assembly cache. - The fields of the structure are defined as follows: - cbAssemblyInfo - Size of the structure in bytes. Permits additions to the structure in future version of the .NET Framework. - dwAssemblyFlags - Indicates one or more of the ASSEMBLYINFO_FLAG_* bits. - uliAssemblySizeInKB - The size of the files that make up the assembly in kilobytes (KB). - pszCurrentAssemblyPathBuf - A pointer to a string buffer that holds the current path of the directory that contains the - files that make up the assembly. The path must end with a zero. - cchBuf - Size of the buffer that the pszCurrentAssemblyPathBug field points to. - dwAssemblyFlags can have one of the following values: - ASSEMBLYINFO_FLAG__INSTALLED - Indicates that the assembly is actually installed. Always set in current version of the - .NET Framework. - ASSEMBLYINFO_FLAG__PAYLOADRESIDENT - Never set in the current version of the .NET Framework. - - - - - The key entry point for reading the assembly cache. - - Pointer to return IAssemblyCache - must be 0 - - - - An instance of IAssemblyName is obtained by calling the CreateAssemblyNameObject API. - - Pointer to a memory location that receives the IAssemblyName pointer that is created. - A string representation of the assembly name or of a full assembly reference that is - determined by dwFlags. The string representation can be null. - Zero or more of the bits that are defined in the CREATE_ASM_NAME_OBJ_FLAGS enumeration. - Must be null. - - - - To obtain an instance of the CreateAssemblyEnum API, call the CreateAssemblyNameObject API. - - Pointer to a memory location that contains the IAssemblyEnum pointer. - Must be null. - An assembly name that is used to filter the enumeration. Can be null to enumerate all assemblies in the GAC. - Exactly one bit from the ASM_CACHE_FLAGS enumeration. - Must be NULL. - - - - To obtain an instance of the CreateInstallReferenceEnum API, call the CreateInstallReferenceEnum API. - - A pointer to a memory location that receives the IInstallReferenceEnum pointer. - The assembly name for which the references are enumerated. - Must be zero. - Must be null. - - - - The GetCachePath API returns the storage location of the GAC. - - Exactly one of the bits defined in the ASM_CACHE_FLAGS enumeration. - Pointer to a buffer that is to receive the path of the GAC as a Unicode string. - Length of the pwszCachePath buffer, in Unicode characters. - - - - Use this method as a start for the GAC API - - IAssemblyCache COM interface - - - - Get the next assembly name in the current enumerator or fail - - - - 0 if the enumeration is not at its end - - - - GUID value for element guidScheme in the struct FUSION_INSTALL_REFERENCE - The assembly is referenced by an application that has been installed by using Windows Installer. - The szIdentifier field is set to MSI, and szNonCannonicalData is set to Windows Installer. - This scheme must only be used by Windows Installer itself. - - - - - GUID value for element guidScheme in the struct FUSION_INSTALL_REFERENCE - - - - - - GUID value for element guidScheme in the struct FUSION_INSTALL_REFERENCE - - - - - - GUID value for element guidScheme in the struct FUSION_INSTALL_REFERENCE - - - - - - The IAssemblyCache interface is the top-level interface that provides access to the GAC. - - - - - The IAssemblyCache::UninstallAssembly method removes a reference to an assembly from the GAC. - If other applications hold no other references to the assembly, the files that make up the assembly are removed from the GAC. - - No flags defined. Must be zero. - The name of the assembly. A zero-ended Unicode string. - A pointer to a FUSION_INSTALL_REFERENCE structure. Although this is not recommended, - this parameter can be null. The assembly is installed without an application reference, or all existing application - references are gone. - Pointer to an integer that indicates the action that is performed by the function. - The return values are defined as follows: - S_OK - The assembly has been uninstalled. - S_FALSE - The operation succeeded, but the assembly was not removed from the GAC. - The reason is described in pulDisposition. - - NOTE: If pulDisposition is not null, pulDisposition contains one of the following values: - IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED - The assembly files have been removed from the GAC. - IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE - An application is using the assembly. - This value is returned on Microsoft Windows 95 and Microsoft Windows 98. - IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED - The assembly does not exist in the GAC. - IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING - Not used. - IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES - The assembly has not been removed from the GAC because - another application reference exists. - IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND - The reference that is specified in pRefData is not found - in the GAC. - - - - - The IAssemblyCache::QueryAssemblyInfo method retrieves information about an assembly from the GAC. - - One of QUERYASMINFO_FLAG_VALIDATE or QUERYASMINFO_FLAG_GETSIZE: - *_VALIDATE - Performs validation of the files in the GAC against the assembly manifest, including hash verification - and strong name signature verification. - *_GETSIZE - Returns the size of all files in the assembly (disk footprint). If this is not specified, the - ASSEMBLY_INFO::uliAssemblySizeInKB field is not modified. - - - - - - - Undocumented - - - - - - - - - - Undocumented - - - - - - - The IAssemblyCache::InstallAssembly method adds a new assembly to the GAC. The assembly must be persisted in the file - system and is copied to the GAC. - - At most, one of the bits of the IASSEMBLYCACHE_INSTALL_FLAG_* values can be specified: - *_REFRESH - If the assembly is already installed in the GAC and the file version numbers of the assembly being - installed are the same or later, the files are replaced. - *_FORCE_REFRESH - The files of an existing assembly are overwritten regardless of their version number. - A string pointing to the dynamic-linked library (DLL) that contains the assembly manifest. - Other assembly files must reside in the same directory as the DLL that contains the assembly manifest. - A pointer to a FUSION_INSTALL_REFERENCE that indicates the application on whose behalf the - assembly is being installed. Although this is not recommended, this parameter can be null, but this leaves the assembly - without any application reference. - - - - - The IAssemblyName interface represents an assembly name. An assembly name includes a predetermined set of name-value pairs. - The assembly name is described in detail in the .NET Framework SDK. - - - - - The IAssemblyName::SetProperty method adds a name-value pair to the assembly name, or, if a name-value pair - with the same name already exists, modifies or deletes the value of a name-value pair. - - The ID that represents the name part of the name-value pair that is to be - added or to be modified. Valid property IDs are defined in the ASM_NAME enumeration. - A pointer to a buffer that contains the value of the property. - The length of the pvProperty buffer in bytes. If cbProperty is zero, the name-value pair - is removed from the assembly name. - - - - - The IAssemblyName::GetProperty method retrieves the value of a name-value pair in the assembly name that specifies the name. - - The ID that represents the name of the name-value pair whose value is to be retrieved. - Specified property IDs are defined in the ASM_NAME enumeration. - A pointer to a buffer that is to contain the value of the property. - The length of the pvProperty buffer, in bytes. - - - - - The IAssemblyName::Finalize method freezes an assembly name. Additional calls to IAssemblyName::SetProperty are - unsuccessful after this method has been called. - - - - - - - Undocumented - - - - - - - - - - - - - - The IAssemblyName::GetName method returns the name part of the assembly name. - - Size of the pwszName buffer (on input). Length of the name (on return). - Pointer to the buffer that is to contain the name part of the assembly name. - - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondefaultmarshalingforstrings.asp - - - - The IAssemblyName::GetVersion method returns the version part of the assembly name. - - Pointer to a DWORD that contains the upper 32 bits of the version number. - Pointer to a DWORD that contain the lower 32 bits of the version number. - - - - - The IAssemblyName::IsEqual method compares the assembly name to another assembly names. - - The assembly name to compare to. - Indicates which part of the assembly name to use in the comparison. - Values are one or more of the bits defined in the ASM_CMP_FLAGS enumeration. - - - - - The IAssemblyName::Clone method creates a copy of an assembly name. - - - - - - - The IAssemblyEnum interface enumerates the assemblies in the GAC. - - - - - The IAssemblyEnum::GetNextAssembly method enumerates the assemblies in the GAC. - - Must be null. - Pointer to a memory location that is to receive the interface pointer to the assembly - name of the next assembly that is enumerated. - Must be zero. - - - - - Undocumented. Best guess: reset the enumeration to the first assembly. - - - - - - Undocumented. Create a copy of the assembly enum that is independently enumerable. - - - - - - - The IInstallReferenceItem interface represents a reference that has been set on an assembly in the GAC. - Instances of IInstallReferenceIteam are returned by the IInstallReferenceEnum interface. - - - - - The IInstallReferenceItem::GetReference method returns a FUSION_INSTALL_REFERENCE structure. - - A pointer to a FUSION_INSTALL_REFERENCE structure. The memory is allocated by the GetReference - method and is freed when IInstallReferenceItem is released. Callers must not hold a reference to this buffer after the - IInstallReferenceItem object is released. - Must be zero. - Must be null. - - - - - The IInstallReferenceEnum interface enumerates all references that are set on an assembly in the GAC. - NOTE: References that belong to the assembly are locked for changes while those references are being enumerated. - - - - - IInstallReferenceEnum::GetNextInstallReferenceItem returns the next reference information for an assembly. - - Pointer to a memory location that receives the IInstallReferenceItem pointer. - Must be zero. - Must be null. - - - - - Undocumented. Probably only for internal use. - - - - - - Undocumented. - - - - - - - - - - - Undocumented. - - - - - - - Undocumented. - - - - - A list of the valid assembly file extensions. - - - - - Checks for the existing files and choses the assembly extension from the list, eg “exe” or “dll”. - Throws if not found. - - - - - Helps with looking up the referenced assemblies. - - - - - The list of base directories to be probed for the assembly being resolved. - - - - - The list of appdomains we've been installed onto. - - - - - Creates the instance. Call to attach, don't forget to call or to detach on shutdown. - - The list of base directories to be probed for the assembly being resolved. - - - - Creates a resolver over the single probing directory that is the home directory of the . - - - - - Starts listening for failed assembly loads on the given appdomain. - - - - - Stops listening for failed assembly loads on the given appdomain. - It is not an error to uninstall from a non-installed appdomain. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Base class for PE directory - - - - - Read directory - - reader - Size of directory - - - - data class to be used to create SdkModule from it. - - - - - Path to SDKManifest.xml file - - - - - Those content files which are assemblies (not included in ContentFiles hash set) - - - - - Content files to be processed (i.e. css, js) - - - - - All items including folders - - - - - Data class which represents an info about a hardware platform, the selected project is applicable to. - I.e.'Windows, 8.0' - Is necessary to determine which sdk modules might be applicable to the selected project. - - - - - Enumerates sdk content roots. Can return nulls. The first enumerated not null value will be the most specific content root. - - path to a directory containing sdkManifest.xml file - commonConfiguration, retail, debug - x64, x86, ARM, neutral - Nullable paths. The first enumerated not null value will be the most specific contnet root. Results may be not distinct. - - - - Reads sdkmanfest file and fills SdkModuleInfo with sdk content files - see http://msdn.microsoft.com/en-us/library/hh768146(v=vs.110).aspx for more information - - most specific path to sdk content files - path to a directory with sdkManifest file - - - - - creates the new instance of SdkModuleInfo - - The content root path. Sometimes need to resolve relative path references to js files from html - - - - PDB 7.0 file header info - - - - - Signature - - - - - Size of the file blocks - - - - - Count of debug info pages - - - - - Size of the Table of Contents - - - - - Index of the TOC Pointers Page - - - - - First page in PDB - - - - - Root record of the PDB info - - - - - Ctor - - - - - Symbolic info version - - - - - TimeStamp - - - - - Symbolic info ID - - - - - PDB stream descriptor - - - - - ctor - - - - - - - Stream size - - - - - Stream blocks - - - - - PDB (v 2.0) stream information stored in the Table of the Contents - - - - - ctor - - - - - - Stream size - - - - - Stream for reading sub range of the underlayed stream - - - - - PDB File table of the contents - - - - - Streams existed in the PDB File - - - - - COFF file characteristics - - - - - Relocation info stripped from file. - - - - - File is executable - (i.e. file is neither object file nor library file, - so there are no unresolved external references). - - - - - Line numbers stripped from file. - - - - - Local symbols stripped from file. - - - - - Aggressively trim working set - - - - - Application can handle >2gb addresses - - - - - Bytes of machine word are reversed. - - - - - 32 bit word machine. - - - - - Debugging info stripped from file in .DBG file - - - - - If Image is on removable media, copy and run from the swap file. - - - - - If Image is on Net, copy and run from the swap file. - - - - - This flag is used to indicate that the file - is a system file, such as device driver. - - - - - This flag indicates that the file - is a dynamic library (DLL). - - - - - File should only be run on a uniprocessor (UP) machine. - - - - - Bytes of machine word are reversed. - - - - - CLI header - - - - - ctor - - - - - - - COFF header - - - - - PE section information record - - - - - Data RVA - - - - - Data size - - - - - Debug information headers in PE FILE. - - - - - Read directory - - reader - Size of directory - - - - Debug info entries located in directory - - - - - Debug Directory entry - - - - - ctor - - Binary reader - - - - Returns actual info stored in the referencied PE block - - - - - - Entry params - - - - - Seconds from 1970 - - - - - Major version - - - - - Minor version - - - - - Debug info type - - - - - Data size - - - - - Address in PE file - - - - - Pointer to the data in PE File - - - - - Base information about debug entry - - - - - PDB 2.0 debugging info - - - - - PDB 7.0 Debugging info - - - - - Summary description for DebugType. - - - - - Image signatures - - - - - "MZ" - - - - - "NE" - - - - - "LE" - - - - - "LE" - - - - - "PE", the complete signature is "PE\0\0" - - - - - second part of the PE FULL sig - - - - - Machine ID in the COFF header - - - - - - - - - Intel 386. - - - - - Intel 486. - - - - - Intel Pentium. - - - - - MIPS 3K big-endian - - - - - MIPS 3K little-endian, 0x160 big-endian - - - - - MIPS 4K little-endian - - - - - MIPS little-endian - - - - - MIPS little-endian WCE v2 - - - - - Alpha_AXP - - - - - SH3 little-endian - - - - - - - - - SH3E little-endian - - - - - SH4 little-endian - - - - - SH5 - - - - - ARM Little-Endian - - - - - - - - - - IBM PowerPC Little-Endian - - - - - - - - - Intel 64 - - - - - MIPS - - - - - ALPHA64 - - - - - MIPS - - - - - MIPS - - - - - - - - - Infineon - - - - - Common Executable Format (Windows CE). - - - - - EFI Byte Code - - - - - AMD64 (K8) - - - - - M32R little-endian - - - - - - - - - Netadata header signature - - - - - Major version - - - - - Minor version - - - - - Reserved - - - - - Metadata version - - - - - Metadat flags - - - - - Metadata streams information - - - - - Exceptions raised during module IL reading - - - - - Ctor - - - - - Ctor - - Exception reason - - - - Ctor - - Exception reason - Inner exception - - - - Special ctor for deserialization - - - - - - - Standard HT optional header sizes - - - - - - - - - - - - - - - - - - - - - - - - - NT header - - - - - NT header - - - - - PE File dictionary entry - - - - - Portable Executable file - - - - - ctor - - PE file native image reader - - - - Read directory from PE File - - - - - - - Translate Relative Virtual Address (RVA) to the actual Virtual Address (VA) - - RVA to translate - - - - - Create PE directory according its Index - - Directory index - Size of directory - Craeted object or null if: - - - Directory type not implemented yet - - - Passed Size of directory less then required - - - Unknown directory index passsed - - - - - - - PE File DOS stub header - - - - - PE File COFF header - - - - - PE File PE header - - - - - PE File Optional NT header - - - - - PE File directory infos - - - - - PE file sections dictionary - - - - - PE File CLI data header - - - - - CLI Metadata Header - - - - - PE file section header - - - - - PE Header magic numbers - - - - - PE Is 32 bit executable - - - - - PE is 64 bit executable - - - - - PE File section header - - - - - Metadata stream information - - - - - ctor - - - - - - Stream offset in PE file from metadata header - - - - - Stream size - - - - - Stream name - - - - - COFF header subsystem entry meanings - - - - - Unknown subsystem. - - - - - Image doesn't require a subsystem. - - - - - Image runs in the Windows GUI subsystem. - - - - - Image runs in the Windows character subsystem. - - - - - Image runs in the OS/2 character subsystem. - - - - - Image runs in the Posix character subsystem. - - - - - Image is a native Win9x driver. - - - - - Image runs in the Windows CE subsystem. - - - - - - - - - - - - - - - - - - - - - - - - - Ctor - - Error Message - - - - Ctor - - Error Message - Exception that cause PE loading error - - - - Token Value - - - - - Token Range - - - - - - Start state - - - - - - Assembly qualified name - - - - /* empty */ - FULLNAME ',' ASSEMSPEC - FULLNAME - - - - - Assembly specification - - - - - - Type fullName - - - - NAME GENPARAMS QUALIFIER - - - - - Generic parameters - - - - *empty* - '[' GENARGS ']' - - - - - Generic argument - - - - GENARG - GENARG ',' GENARGS - - - - - - - - - '[' EAQN ']' - FULLNAME - - - - - - - - - - '[' RANK ']' - '[' '*' ']' - - - - - - - - - *empty* - ',' RANK - - - - - - - - - id - - - - - Parsing result; - - - - - Name of the underlaying type - - - - diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.Platform.Symbols.Metadata.dll Binary file tools/JetSymbols/JetBrains.Platform.Symbols.Metadata.dll has changed diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.Platform.Symbols.Util.Xml --- a/tools/JetSymbols/JetBrains.Platform.Symbols.Util.Xml Mon May 16 19:45:25 2016 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22460 +0,0 @@ - - - - JetBrains.Platform.Symbols.Util - - - - - Indicates that this class/method is safe for multithreaded usage. If class marked with thread-safety is implicit. - If certain methods of class are thread-unsafe (e.g. iterators in synchronized dictionaries), you can annotate this methods with - - - - - Indicates that class/method requires additional external synchronization - - - - - Indicates that this class/property is immutable (you can't change its inner state with field assignments, setters, indexers, method calls an so on) an therefore safe for multithreaded usage. - If certain methods of class are thread-unsafe (e.g. iterators in synchronized dictionaries), you can annotate this methods with - - - - - Indicates that this method returns object that can be safely used is multithreaded way without external synchronization. - - - - - Inspired by http://graphics.stanford.edu/~seander/bithacks.html - - - - - Avoid boxing boolean by reusing the boxes for readonly purposes. - - - - - Implementation of that holds value forever until method is called. - - - - - - - Cached value with nonparameterized producer - - type of object - - - - Wrapper over object. Typical usage is . - - type of object - - - - Set object's value - - - - - - Resets object's value to default - - - - - Get current value in wrapper. If it's null (e.g. weak reference evicted) returns null - - - - - - Get current value and if it's null then produce value (using producer func) - - - - - - Cached value with parameterized producer. Use it in case you don't want to create tons of closure. - - type of object - type of addtitional paramater to producer function - - - - Get current value and if it's null then produce value (using producer func with parameter) - - - - - - - Version of GetOrCreate that returns boolean value which designates whether value was created by producer or obtained from cache - - - gotten or created result - true if value was created by producer, false - value was in cache already - - - - Get current value, waiting if current value is being created by "GetOrCreate" method - - - - - - Base class for both and - - - - - - - Implementation of that hold value on weak reference. Additionally, value is put into . - So weak reference will survive garbage collections until it's value is evicted from cache. Cache is being touched not every time you invoke - but every [cacheTouchFrequency] time. This allows to mix LRU and LFU policies together and inrease performance. - - type of value - Cache can contains more general type than - Type of producer function's parameter - - - - Implementation of that hold value on weak reference. Additionally, value is put into . - So weak reference will survive garbage collections until it's value is evicted from cache. Cache is being touched not every time you invoke - but every [cacheTouchFrequency] time. This allows to mix LRU and LFU policies together and inrease performance. - - - Cache can contains more general type than - - - - Internal helper class for cache statistics gathering. To collect statictics, compile with JET_MODE_STATISTICS #define. - - - - - Creates wrapper that contains weak object inside. To prevent fast weakref eviction, newly created objects are placed into . Cache - is touched after each invocation of . - If weak reference is evicted (that means object is evicted from cache too) and one invokes , producer function is used - to create object. - - object's type - type of objects in cache, can be more general than - function that creates object - cache that enlarges weakref lifetime - Optional. If present, object is set to this value. Otherwise, object is set to null and will be initialized by producer after first use of - - Newly created wrapper with weak reference - - - - Creates wrapper that contains weak object inside. To prevent fast weakref eviction, newly created objects are placed into . Cache - is touched after each invocation of . - If weak reference is evicted (that means object is evicted from cache too) and one invokes , producer function is used - to create object. - - object's type - producer parameter's type - type of objects in cache, can be more general than - function that creates object - cache that enlarges weakref lifetime - Optional. If present, object is set to this value. Otherwise, object is set to null and will be initialized by producer after first use of - - Newly created wrapper with weak reference - - - - Creates wrapper around object with hard reference. - - - Optional. Initial value of hard reference. Null by default. - Newly created wrapper with hard reference - - - - Creates wrapper around object with hard reference. - - - - Optional. Initial value of hard reference. Null by default. - Newly created wrapper with hard reference - - - - Returns true if cached object has value "right now" (no need to invoke producer). - - type of cached object - object's wrapper - true if return true - - - - Sets value of object via functor only in case it's null ( returns false). This method is thread-safe. - - type of cached object - type of functor - inheritor of object's type (to support functor's covariance) - object's caching wrapper - value producer, is invoked only when current value is null - - - - Sets value of object via functor only in case it's null ( returns false). This method is thread-safe. - Functor is parametrized with additional parameter to avoid construction of closure (like it would have been with ) - - type of cached object - functor's additional parameter type - type of functor - inheritor of object's type (to support functor's covariance) - object's caching wrapper - value producer, is invoked only when current value is null - functor's additional param - - - - Cache represented by fixed-size dictionary. The behavior is the same as but dictionary doesn't grow infinitely. - When cache is full, newest elements is put into it, evicting old one (latest or least freaquently used, depending on policy). - - - - - - - Cache that has sole purpose to increase the lifetime of weak reference. Used in pair with . - You MUST dispose it by lifetime or other way - - - - - - Notify this cache that item was accessed somehow. Cache can react to this event by relocating item is LRU queue, set last access time, increase use count, etc. - - - - - - - Remove item from cache - - - - - - - Clear cache, remove all item. - - - - - Returns true if cache contains given item. - - - - - - - Manually starts eviction procedure. Cache could evict entities by its own rules, (e.g. evict all items with last access time more than 30 sec) - - Number of elements evicted - - - - Returns current number of elements in cache - - - - - Writes code in any case, even if it is the same (touches the file date, used in normal build that looks at input/output dates). - - - - - Implementation detail for . - Originally were known as a separate SafeEnumerable class, but then was turned into a LINQ-style method. - - - - - Multiset, each element can be included into set multiple times. Internally implemented as Dictionary : [Element] -> [Number of equal elements in this set] - Each time we execute counter for given element is increased. On counter is decreased (if it becomes zero, element is removed from set). - You can check the number of element occurences in this set by invoking - - Type of set's element - - - - Class contains classic methods of for . One of purposes is to suport "struct enumerators" - all theese - methods works with "struct enumerators" without allocating any object in the heap. - - - - - Fixed-size cache for clients which use to store values. Every time outer WeakReference accessed , client must invoke method. - This promotes given value to the head of the LRU queue. If queue is full and promoting element is new (queue hasn't cointain it before), least recently used element - is getting removed from the queue and number of hard links to this value is decreased by one. User can start timer thread that will evict entries with too old last - access time. - WARNING!!! You MUST dispose this object, because it has reference on itself by Timer thread. - - Object's type. lifetime is going to be increased by this cache - - - - Creates new cache. Timer is started only when is positive. - - Maximum number of elements in cache - Optional. - Optional (default is zero). After given number of milliseconds, items in cache are concidered outdated and can be replaced - either by timer thread or manual invocation of method - Number of items that will survive eviction even if they are outdated - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Element of set - - - - - Makes sure you have quick hash-access to items and proper sorting order on items. - This is fulfilled by maintaining an add-only regular hashset where all of the adds are in the correct order. This way the hashset operates right in the desired fashion. - This wrapper only validates that there're no removes and all additions are properly sorted. - - - - - - Valid if is nonempty. - - - - - A node in a red black tree can have one of the following two colors. - - - - - The JetBinaryTreeEnumerator class returns the keys or data objects of the treap in sorted order. - - - - - Determine order, walk the tree and push the nodes onto the stack - - - - - - - - Use depth-first traversal to push nodes into stack the lowest node will be at the top of the stack. - - - - - - Next element. - - - - - Has more elements. - - - - - Move next. - - - - - Key. - - - - - The data or value associated with the key. - - - - - The data or value associated with the key. - - - - - A single node that is encapsulated in a red black tree data structure. - - - - - Creates an instance of this class. - - - - - Color - used to balance the tree. - - - - - Left node. - - - - - Right node. - - - - - Parent node. - - - - - Key provided by the calling class. - - - - - Data available in this node - - - - - Red-black tree implementation. Not thread-safe - Sorted map, can be used for imprecise search - - - - - Creates an instance of this class. - - - - - Clears the tree. - - - - - Returns true if the tree is empty. - - - - - - Removes the node with the minimum key. - - - - - Removes the node with the maximum key. - - - - - Returns the minimum key value. - - - - - - Returns the maximum key value. - - - - - - Returns the object having the minimum key value. - - - - - - Returns the object having the maximum key. - - - - - - Gets node for the specified key. - WARNING: This is hackish. Use it only when you really need it and understand all side-effects. - - - - - Gets the data object associated with the specified key. - - - - - This method updates key and value for existing node. - WARNING: It doesn't check that replaced key is in correct place! Use this method only if you are shifting keys and you're sure that this won't cause any corruption to the tree! - - - - - Adds data to the tree. - - - - - Rebalance the tree by rotating the nodes to the left. - - - - - Rebalance the tree by rotating the nodes to the right. - - - - - Removes the key and data object (delete). - - - - - - Returns an enumerator that returns nodes in order. - - - - - - Returns an enumerator that returns the key-value pairs in order. - - - - - - Returns keys in order as specified in parameter. - - - - - - - Returns all the values in the tree in order as specifed in the parameter. - - - - - - - Returns an enumerator that iterates through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - - - Returns an enumeration of the data objects in order as specifed in the parameter. - - - - - - - RestoreAfterInsert - Additions to red-black trees usually destroy the red-black - properties. Examine the tree and restore. Rotations are normally - required to restore it - - - - - - Deletions from red-black trees may destroy the red-black - properties. Examine the tree and restore. Rotations are normally - required to restore it. - - - - - - Deletes a node from the tree and restores red black properties. - - - - - - Creates a new object that is a copy of the current instance. - - - A new object that is a copy of this instance. - - 2 - - - - The number of nodes contained in the tree. - - - - - Provides support for several common patterns of lazy initialization, including the ability to initialize value types and to use null values. - This is a frugal version of that does not create any objects until the lazy value is initialized to a reference type. - Note that if you're passing a factory function and it's a closure, a new reference object is created for it per each instance. To avoid this, you can use . - - Specifies the type of element being laziliy initialized. - - - - Mode and state data packed into a single int for less space. - LazyExecutionMode values and Flag* fields. - - - - - Provides support for several common patterns of lazy initialization, including the ability to initialize value types and to use null values. - This is a frugal version of that does not create any objects until the lazy value is initialized to a reference type. - The difference from is that you don't have to create a new closure for the factory function with each call. Instead, you can pre-cache a function taking a parameter and pass the parameter into this struct separately. This way no reference types are created per instance until it's time to instantiate your object. - - Specifies the type of element being laziliy initialized. - Type of the parameter passed to the factory function. - - - - Mode and state data packed into a single int for less space. - LazyExecutionMode values and Flag* fields. - - - - - Represents L*a*b* color space - - - - - Gets an empty CIELab structure. - - - - - Gets or sets L component (0..100). - - - - - Gets or sets a component (-100..+100). - - - - - Gets or sets a component (-100..+100). - - - - - Represents CIE XYZ color space - - - - - Gets an empty CIEXYZ structure. - - - - - Gets the CIE D65 (white) structure. - - - - - Gets or sets X component. - - - - - Gets or sets Y component. - - - - - Gets or sets Z component. - - - - - Represents CMYK color space. - - - - - Gets an empty CMYK structure; - - - - - Creates an instance of a CMYK structure. - - - - - Provides methods to convert from a color space to an other. - - - - - Gets the "distance" between two colors. - RGB colors must be normalized (eg. values in [0.0, 1.0]). - - First color red component. - First color green component. - First color blue component. - Second color red component. - Second color green component. - Second color blue component. - - - - Gets the "distance" between two colors. - RGB colors must be normalized (eg. values in [0.0, 1.0]). - - First color [r,g,b] - Second color [r,g,b] - - - - Gets the "distance" between two colors. - - First color. - Second color. - - - - Gets the int equivalent for a hexadecimal value. - - - - - Converts a Hex color to a .net Color. - - The desired hexadecimal color to convert. - - - - Converts a RGB color format to an hexadecimal color. - - The Red value. - The Green value. - The Blue value. - - - - Converts a RGB color format to an hexadecimal color. - - The color to convert. - - - - Converts HSB to RGB. - - The HSB structure to convert. - - - - Converts HSB to RGB. - - Hue value. - Saturation value. - Brigthness value. - - - - Converts HSB to Color. - - the HSB structure to convert. - - - - Converts HSB to a .net Color. - - Hue value (must be between 0 and 360). - Saturation value (must be between 0 and 1). - Brightness value (must be between 0 and 1). - - - - Converts HSB to Color. - - Hue value. - Saturation value. - Brightness value. - - - - Converts HSB to HSL. - - - - - Converts HSB to CMYK. - - - - - Converts HSB to CMYK. - - - - - Converts HSL to RGB. - - Hue, must be in [0, 360]. - Saturation, must be in [0, 1]. - Luminance, must be in [0, 1]. - - - - Converts HSL to RGB. - - The HSL structure to convert. - - - - Converts HSL to .net Color. - - The HSL structure to convert. - - - - Converts HSL to .net Color. - - The HSL structure to convert. - - - - Converts HSL to HSB. - - - - - Converts HSL to CMYK. - - - - - Converts HSL to YUV. - - - - - Converts RGB to HSL. - - Red value, must be in [0,255]. - Green value, must be in [0,255]. - Blue value, must be in [0,255]. - - - - Converts RGB to HSL. - - - - - Converts Color to HSL. - - - - - Converts RGB to HSB. - - - - - Converts RGB to HSB. - - - - - Converts RGB to HSB. - - - - - Converts RGB to CMYK - - Red vaue must be in [0, 255]. - Green vaue must be in [0, 255]. - Blue vaue must be in [0, 255]. - - - - Converts RGB to CMYK - - - - - Converts RGB to CMYK - - - - - Converts RGB to YUV. - - red must be in [0, 255]. - green must be in [0, 255]. - blue must be in [0, 255]. - - - - Converts RGB to YUV. - - - - - Converts RGB to YUV. - - - - - Converts RGB to CIE XYZ (CIE 1931 color space) - - Red must be in [0, 255]. - Green must be in [0, 255]. - Blue must be in [0, 255]. - - - - Converts RGB to CIEXYZ. - - - - - Converts RGB to CIEXYZ. - - - - - Converts RGB to CIELab. - - - - - Converts RGB to CIELab. - - - - - Converts RGB to CIELab. - - - - - Converts CMYK to RGB. - - Cyan value (must be between 0 and 1). - Magenta value (must be between 0 and 1). - Yellow value (must be between 0 and 1). - Black value (must be between 0 and 1). - - - - Converts CMYK to RGB. - - Cyan value (must be between 0 and 1). - Magenta value (must be between 0 and 1). - Yellow value (must be between 0 and 1). - Black value (must be between 0 and 1). - - - - Converts CMYK to RGB. - - - - - - Converts CMYK to RGB. - - Cyan value (must be between 0 and 1). - Magenta value (must be between 0 and 1). - Yellow value (must be between 0 and 1). - Black value (must be between 0 and 1). - - - - Converts CMYK to RGB. - - - - - - Converts CMYK to HSL. - - - - - Converts CMYK to HSB. - - - - - Converts CMYK to YUV. - - - - - Converts YUV to RGB. - - Y must be in [0, 1]. - U must be in [-0.436, +0.436]. - V must be in [-0.615, +0.615]. - - - - Converts YUV to RGB. - - - - - Converts YUV to a .net Color. - - Y must be in [0, 1]. - U must be in [-0.436, +0.436]. - V must be in [-0.615, +0.615]. - - - - Converts YUV to a .net Color. - - - - - Converts YUV to HSL. - - Y must be in [0, 1]. - U must be in [-0.436, +0.436]. - V must be in [-0.615, +0.615]. - - - - Converts YUV to HSB. - - Y must be in [0, 1]. - U must be in [-0.436, +0.436]. - V must be in [-0.615, +0.615]. - - - - Converts YUV to CMYK. - - Y must be in [0, 1]. - U must be in [-0.436, +0.436]. - V must be in [-0.615, +0.615]. - - - - Converts CIEXYZ to RGB structure. - - - - - Converts CIEXYZ to RGB structure. - - - - - XYZ to L*a*b* transformation function. - - - - - - - Converts CIEXYZ to CIELab structure. - - - - - Converts CIEXYZ to CIELab structure. - - - - - Converts CIELab to CIEXYZ. - - - - - Converts CIELab to CIEXYZ. - - - - - Converts CIELab to RGB. - - - - - Converts CIELab to RGB. - - - - - Structure to define HSB. - - - - - Gets an empty HSB structure; - - - - - Creates an instance of a HSB structure. - - Hue value. - Saturation value. - Brightness value. - - - - Gets or sets the hue component. - - - - - Gets or sets saturation component. - - - - - Gets or sets the brightness component. - - - - - Structure to define HSL. - - - - - Gets an empty HSL structure; - - - - - Creates an instance of a HSL structure. - - Hue value. - Saturation value. - Lightness value. - - - - Gets or sets the hue component. - - - - - Gets or sets saturation component. - - - - - Gets or sets the luminance component. - - - - - Structure to define RGB. - - - - - Gets an empty RGB structure; - - - - - Structure to define YUV. - - - - - Gets an empty YUV structure. - - - - - Creates an instance of a YUV structure. - - - - - A subset of the interface with which you cannot “bind” actions to a lifetime. - It's “outer” in the sense that it's not your lifetime, but of some parent object potentially more long-lived than yours. You cannot schedule anything to its termination because it will happen way after your object goes off scope. - The only thing you can know is that it's an “outer”, it's limiting the life of your object, and if it's terminated — so are you. Checking for is one of the allowed option. - Another option is to define a nested lifetime, in which case you MUST ensure it's terminated explicitly, without relying on the outer lifetime. The outer lifetime is only a safety catch to make sure it does not live too long. - - - - - Gets whether this lifetime has already been terminated. - It's an error to continue scheduling on a terminated lifetime. - - - - - Formats the stack frames. - - - - - Captures the current stack trace, based on the setting. - When the setting is False, a faster shortcut method with less info is used. - If is False, the stack trace is always fully-captured. - - - - - Captures the current stack trace, based on the setting. - When the setting is False, a faster shortcut method with less info is used. - - - - - Whether to capture stack traces, or not. - - - - - Effective replace of for sparse and almost filled set. Effective for density of 1-s between 0 and 0.1, and beween 0.9 and 1. - Inspired by http://ricerca.mat.uniroma3.it/users/colanton/docs/concise.pdf - Non thread-safe - - - - - By extending this class you ensures that object will be disposed by finalizer. If one forget to invoke , - resources will be released by finalizer but is called in this case. If one invoked dispose second time error would be logger too - (this behavior could be suppressed by overriding in inheritors). The finalizer works only in Development mode (JET_MODE_ASSERT). In - Production mode this class is much like with checks for second dispose. - - - - - Dispose object only if its class implements - - object to dispose - - - - Slow implementation, no memoization - - - - - Represents a thread-safe collection of keys and values. - - The type of the keys in the dictionary. - The type of the values in the dictionary. - - All public and protected members of are thread-safe and may be used - concurrently from multiple threads. - - - - - Initializes a new instance of the - class that is empty, has the default concurrency level, has the default initial capacity, and - uses the default comparer for the key type. - - - - - Initializes a new instance of the - class that is empty, has the specified concurrency level and capacity, and uses the default - comparer for the key type. - - The estimated number of threads that will update the - concurrently. - The initial number of elements that the - can contain. - is - less than 1. - is less than - 0. - - - - Initializes a new instance of the - class that contains elements copied from the specified , has the default concurrency - level, has the default initial capacity, and uses the default comparer for the key type. - - The whose elements are copied to - the new - . - is a null reference - (Nothing in Visual Basic). - contains one or more - duplicate keys. - - - - Initializes a new instance of the - class that is empty, has the specified concurrency level and capacity, and uses the specified - . - - The - implementation to use when comparing keys. - is a null reference - (Nothing in Visual Basic). - - - - Initializes a new instance of the - class that contains elements copied from the specified , has the default concurrency level, has the default - initial capacity, and uses the specified - . - - The whose elements are copied to - the new - . - The - implementation to use when comparing keys. - is a null reference - (Nothing in Visual Basic). -or- - is a null reference (Nothing in Visual Basic). - - - - - Initializes a new instance of the - class that contains elements copied from the specified , - has the specified concurrency level, has the specified initial capacity, and uses the specified - . - - The estimated number of threads that will update the - concurrently. - The whose elements are copied to the new - . - The implementation to use - when comparing keys. - - is a null reference (Nothing in Visual Basic). - -or- - is a null reference (Nothing in Visual Basic). - - - is less than 1. - - contains one or more duplicate keys. - - - - Initializes a new instance of the - class that is empty, has the specified concurrency level, has the specified initial capacity, and - uses the specified . - - The estimated number of threads that will update the - concurrently. - The initial number of elements that the - can contain. - The - implementation to use when comparing keys. - - is less than 1. -or- - is less than 0. - - is a null reference - (Nothing in Visual Basic). - - - - Attempts to add the specified key and value to the . - - The key of the element to add. - The value of the element to add. The value can be a null reference (Nothing - in Visual Basic) for reference types. - true if the key/value pair was added to the - successfully; otherwise, false. - is null reference - (Nothing in Visual Basic). - The - contains too many elements. - - - - Determines whether the contains the specified - key. - - The key to locate in the . - true if the contains an element with - the specified key; otherwise, false. - is a null reference - (Nothing in Visual Basic). - - - - Attempts to remove and return the the value with the specified key from the - . - - The key of the element to remove and return. - When this method returns, contains the object removed from the - or the default value of - if the operation failed. - true if an object was removed successfully; otherwise, false. - is a null reference - (Nothing in Visual Basic). - - - - Removes the specified key from the dictionary if it exists and returns its associated value. - If matchValue flag is set, the key will be removed only if is associated with a particular - value. - - The key to search for and remove if it exists. - The variable into which the removed value, if found, is stored. - Whether removal of the key is conditional on its value. - The conditional value to compare against if is true - - - - - Attempts to get the value associated with the specified key from the . - - The key of the value to get. - When this method returns, contains the object from - the - with the spedified key or the default value of - , if the operation failed. - true if the key was found in the ; - otherwise, false. - is a null reference - (Nothing in Visual Basic). - - - - Compares the existing value for the specified key with a specified value, and if they’re equal, - updates the key with a third value. - - The key whose value is compared with and - possibly replaced. - The value that replaces the value of the element with if the comparison results in equality. - The value that is compared to the value of the element with - . - true if the value with was equal to and replaced with ; otherwise, - false. - is a null - reference. - - - - Removes all keys and values from the . - - - - - Copies the elements of the to an array of - type , starting at the - specified array index. - - The one-dimensional array of type - that is the destination of the elements copied from the . The array must have zero-based indexing. - The zero-based index in at which copying - begins. - is a null reference - (Nothing in Visual Basic). - is less than - 0. - is equal to or greater than - the length of the . -or- The number of elements in the source - is greater than the available space from to the end of the destination - . - - - - Copies the key and value pairs stored in the to a - new array. - - A new array containing a snapshot of key and value pairs copied from the . - - - - Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. - - Important: the caller must hold all locks in m_locks before calling CopyToPairs. - - - - - Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. - - Important: the caller must hold all locks in m_locks before calling CopyToEntries. - - - - - Copy dictionary contents to an array - shared implementation between ToArray and CopyTo. - - Important: the caller must hold all locks in m_locks before calling CopyToObjects. - - - - Returns an enumerator that iterates through the . - An enumerator for the . - - The enumerator returned from the dictionary is safe to use concurrently with - reads and writes to the dictionary, however it does not represent a moment-in-time snapshot - of the dictionary. The contents exposed through the enumerator may contain modifications - made to the dictionary after was called. - - - - - Shared internal implementation for inserts and updates. - If key exists, we always return false; and if updateIfExists == true we force update with value; - If key doesn't exist, we always add value and return true; - - - - - Adds a key/value pair to the - if the key does not already exist. - - The key of the element to add. - The function used to generate a value for the key - is a null reference - (Nothing in Visual Basic). - is a null reference - (Nothing in Visual Basic). - The dictionary contains too many - elements. - The value for the key. This will be either the existing value for the key if the - key is already in the dictionary, or the new value for the key as returned by valueFactory - if the key was not in the dictionary. - - - - Adds a key/value pair to the - if the key does not already exist. - - The key of the element to add. - the value to be added, if the key does not already exist - is a null reference - (Nothing in Visual Basic). - The dictionary contains too many - elements. - The value for the key. This will be either the existing value for the key if the - key is already in the dictionary, or the new value if the key was not in the dictionary. - - - - Adds a key/value pair to the if the key does not already - exist, or updates a key/value pair in the if the key - already exists. - - The key to be added or whose value should be updated - The function used to generate a value for an absent key - The function used to generate a new value for an existing key - based on the key's existing value - is a null reference - (Nothing in Visual Basic). - is a null reference - (Nothing in Visual Basic). - is a null reference - (Nothing in Visual Basic). - The dictionary contains too many - elements. - The new value for the key. This will be either be the result of addValueFactory (if the key was - absent) or the result of updateValueFactory (if the key was present). - - - - Adds a key/value pair to the if the key does not already - exist, or updates a key/value pair in the if the key - already exists. - - The key to be added or whose value should be updated - The value to be added for an absent key - The function used to generate a new value for an existing key based on - the key's existing value - is a null reference - (Nothing in Visual Basic). - is a null reference - (Nothing in Visual Basic). - The dictionary contains too many - elements. - The new value for the key. This will be either be the result of addValueFactory (if the key was - absent) or the result of updateValueFactory (if the key was present). - - - - Adds the specified key and value to the . - - The object to use as the key of the element to add. - The object to use as the value of the element to add. - is a null reference - (Nothing in Visual Basic). - The dictionary contains too many - elements. - - An element with the same key already exists in the . - - - - Removes the element with the specified key from the . - - The key of the element to remove. - true if the element is successfully remove; otherwise false. This method also returns - false if - was not found in the original . - - is a null reference - (Nothing in Visual Basic). - - - - Adds the specified value to the - with the specified key. - - The - structure representing the key and value to add to the . - The of is null. - The - contains too many elements. - An element with the same key already exists in the - - - - - Determines whether the - contains a specific key and value. - - The - structure to locate in the . - true if the is found in the ; otherwise, false. - - - - Removes a key and value from the dictionary. - - The - structure representing the key and value to remove from the . - true if the key and value represented by is successfully - found and removed; otherwise, false. - The Key property of is a null reference (Nothing in Visual Basic). - - - Returns an enumerator that iterates through the . - An enumerator for the . - - The enumerator returned from the dictionary is safe to use concurrently with - reads and writes to the dictionary, however it does not represent a moment-in-time snapshot - of the dictionary. The contents exposed through the enumerator may contain modifications - made to the dictionary after was called. - - - - - Adds the specified key and value to the dictionary. - - The object to use as the key. - The object to use as the value. - is a null reference - (Nothing in Visual Basic). - The dictionary contains too many - elements. - - is of a type that is not assignable to the key type of the . -or- - is of a type that is not assignable to , - the type of values in the . - -or- A value with the same key already exists in the . - - - - - Gets whether the contains an - element with the specified key. - - The key to locate in the . - true if the contains - an element with the specified key; otherwise, false. - is a null reference - (Nothing in Visual Basic). - - - Provides an for the - . - An for the . - - - - Removes the element with the specified key from the . - - The key of the element to remove. - is a null reference - (Nothing in Visual Basic). - - - - Copies the elements of the to an array, starting - at the specified array index. - - The one-dimensional array that is the destination of the elements copied from - the . The array must have zero-based - indexing. - The zero-based index in at which copying - begins. - is a null reference - (Nothing in Visual Basic). - is less than - 0. - is equal to or greater than - the length of the . -or- The number of elements in the source - is greater than the available space from to the end of the destination - . - - - - Replaces the internal table with a larger one. To prevent multiple threads from resizing the - table as a result of ----s, the table of buckets that was deemed too small is passed in as - an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket - table has been replaced in the meantime or not. - - Reference to the bucket table that was deemed too small. - - - - Computes the bucket and lock number for a particular key. - - - - - Acquires all locks for this hash table, and increments locksAcquired by the number - of locks that were successfully acquired. The locks are acquired in an increasing - order. - - - - - Acquires a contiguous range of locks for this hash table, and increments locksAcquired - by the number of locks that were successfully acquired. The locks are acquired in an - increasing order. - - - - - Releases a contiguous range of locks. - - - - - Gets a collection containing the keys in the dictionary. - - - - - Gets a collection containing the values in the dictionary. - - - - - A helper method for asserts. - - - - - A helper function to obtain the string for a particular resource key. - - - - - - - Get the data array to be serialized - - - - - Construct the dictionary from a previously seiralized one - - - - - Gets or sets the value associated with the specified key. - - The key of the value to get or set. - The value associated with the specified key. If the specified key is not found, a get - operation throws a - , and a set operation creates a new - element with the specified key. - is a null reference - (Nothing in Visual Basic). - The property is retrieved and - - does not exist in the collection. - - - - Gets the number of key/value pairs contained in the . - - The dictionary contains too many - elements. - The number of key/value paris contained in the . - Count has snapshot semantics and represents the number of items in the - at the moment when Count was accessed. - - - - Gets a value that indicates whether the is empty. - - true if the is empty; otherwise, - false. - - - - Gets a collection containing the keys in the . - - An containing the keys in the - . - - - - Gets a collection containing the values in the . - - An containing the values in - the - . - - - - Gets a value indicating whether the dictionary is read-only. - - true if the is - read-only; otherwise, false. For , this property always returns - false. - - - - Gets a value indicating whether the has a fixed size. - - true if the has a - fixed size; otherwise, false. For , this property always - returns false. - - - - Gets a value indicating whether the is read-only. - - true if the is - read-only; otherwise, false. For , this property always - returns false. - - - - Gets an containing the keys of the . - - An containing the keys of the . - - - - Gets an containing the values in the . - - An containing the values in the . - - - - Gets or sets the value associated with the specified key. - - The key of the value to get or set. - The value associated with the specified key, or a null reference (Nothing in Visual Basic) - if is not in the dictionary or is of a type that is - not assignable to the key type of the . - is a null reference - (Nothing in Visual Basic). - - A value is being assigned, and is of a type that is not assignable to the - key type of the . -or- A value is being - assigned, and is of a type that is not assignable to the value type - of the - - - - - Gets a value indicating whether access to the is - synchronized with the SyncRoot. - - true if access to the is synchronized - (thread safe); otherwise, false. For , this property always - returns false. - - - - Gets an object that can be used to synchronize access to the . This property is not supported. - - The SyncRoot property is not supported. - - - - The number of concurrent writes for which to optimize by default. - - - - - A node in a singly-linked list representing a particular hash table bucket. - - - - - A private class to represent enumeration over the dictionary that implements the - IDictionaryEnumerator interface. - - - - - Fixed-size cache with only one element for bucket (hashcode % length) retained. - - - - - - - Trying to get element from cache. If nothing found, creates from provider. - - Any inheritor of or itself - Key in cache - Function that generates value in case when key isn't in cache - Value either from cache or generater by producer - - - - Trying to get element from cache. If nothing found, creates from provider. - This method is useful in case when you don't want to produce additional closure and lambda for functions with 2 parameters - - Additional producer's parameter type - Any inheritor of or itself - Key in cache - Additional producer's parameter - Function that generates value in case when key isn't in cache - Value either from cache or generater by producer - - - - Utility for fibbonacci number - - - - - Find minimal fib number larger or equal to give - - lowest fibbonaci number greater or equal to given - - - - Searches index idx in array such as idx - lowest possible number that satisfies [idx] >= x. - - Input value - Index in - - - - Hash set for ints. Internally contains a single array so memory usage is low (but loadfactor is 0.75 to provide high speed for Add, Contains and Remove operations). - The set is initialized with so-called marker element (0 by default) which is always contained in this set (you can't remove it). So set minimum size () is 1. - - - - - Not equal to any number obtained by - - - - - 26 bits for size means we one key can hold from 0 to 67,108,864 values exclusively. - - - - - Capacity for a given key is a log2 for #fibbonacci_number (0 is reserved for exact fit capacity). So maximum capacity is fib(64) which is - far larger than maximum count (as per ). - - - - - Analogous to but correctly handles with index bigger than current capacity. Also includes some additional - facilities like which is used in enclosing map's compaction procedure. - - - - - - Struct enumerator to reduce memory traffic - - - - - - Not equal to any number obtained by - - - - - Compacts and returns number of compacted entries. - - - - - - Compacts if CompactionPolicy is met. - - Number of compacted entries or -1 if CompactionPolicy is not met - - - - Gets or sets the element with the specified key. - - - The element with the specified key. - - The key of the element to get or set. is null.The property is retrieved and is not found.The property is set and the is read-only. - - - - Implements a raw circular buffer which is attached to an existing memory pointer (e.g. to work on some shared memory). - - - Strategy: manages allocation of sequential memory chunks called messages. - is the total available space of the buffer. bytes in the beginning are occupied by this header structure. - The remaining memory is either empty, or occupied by a single contiguous used block of messages ( - - ), or by two contiguous blocks after the content wraps over the buffer end. - Possible layouts: - [header] {head} -empty- // just started writing - [header] -empty1- {head} -empty2- // read some first messages of the written - [header] {head} -empty1- {tail} -empty2- // attempted writing new messafe after {head}, there were not enough space till the end of the buffer, so we wrapped head to the beginning (there's small -empty2- because we do not break messages when wrapping around the buffer, message memory is always contiguous) - and then it goes all around - - - - - Reads the message, if any present, and invokes the callback. Returns whether there was any message to invoke the callback with. - - - - - Reads the message, if any present. If not, yields Null. - - - - - Tries to write message, returns False if there's no space left. - - - - - The available free space at this moment. - - - - - Maximum payload size (that's max free space minus the message header). - - - - - Unmanaged piece of memory that MUST be taken by using (var mem = SafeUnmanagedMemory.Alloc(sizeInBytes) {...} construct. - Works faster then because doesn't use utility inside. - - - - - A trie which stores hierarchically nodes whose keys are lists of . - - - - - Synthetic root. - - - - - Removes all nodes on any possible prefixes of . - - - - - Cache of most recently used items. - No position update on access. - - - - - Aggregates multiple exceptions. - - - - - Creates and returns a string representation of the current exception. - - - A string representation of the current exception. - - 1 - - - - - Gets a message that describes the current exception. - - - The error message that explains the reason for the exception, or an empty string(""). - - 1 - - - - Queues the action to execute once on the .. thread when the timeout elapses. - Handles intervals smaller than only. - Returns a token that cancels the action execution. The token disposal is optional. - The execution will be either guarded or not, depending on the presence of property value. - - this - - The name for the task. - The action to execute. Exceptions will be trapped. - A non-negative time interval. - - - - When you need to create an instance of some object to lock against it (), use this class. - It has an additional method for entering the lock with a timeout (throwing an exception if failed). - - - - - Takes a lock. If the timeout expires before the lock can be acquired, throws an exception. - - - - - Enters the writer lock. If the time limit expires, throws an exception. - - - - - Enters the writer lock. If the time limit expires, throws an exception. - Exits the writer lock when you dispose of the return value. - - - - - For high performance code. No lambda and heap allocation. - - - - - Enters the reader lock. If the time limit expires, throws an exception. - - - - - Enters the reader lock. If the time limit expires, throws an exception. - NOTE: this overload takes milliseconds for perf because it's what the library method uses internally. - - - - - Enters the reader lock. If the time limit expires, throws an exception. - Exits the reader lock when you dispose of the return value. - - - - - For high performance code. No lambda and heap allocation. - - - - - Enters the reader lock upgradeable to writer lock (by a nested request). If the time limit expires, throws an exception. - - - - - Enters the reader lock upgradeable to writer lock (by a nested request). If the time limit expires, throws an exception. - Exits the reader lock when you dispose of the return value. - - - - - Queues the action to execute asynchronously on the thread in a guarded context, as soon as possible. Reclaims the queueing and cancels the action from executing when the lifetime ends. - The reentrancy between guarded actions is prevented. - - - - The name for the task. - The action to execute. Exceptions will be trapped. - - - - Executes an action on the thread in a guarded context. - If called on a foreign thread, executes the action asynchronously, like . - If called on the guarded thread, checks for reentrancy. If there are no guarded executions on the stack yet, executes the action immediately and synchronously, like . Otherwise, postpones the action for asynchronous execution, like does. - - - - The name for the task. - The action to execute. Exceptions will be trapped. - True if executed immediately, False if queued (-compatible behavior). - - - - Executes an action on the thread in a guarded context. - If called on a foreign thread, executes the action asynchronously, like . - If called on the guarded thread, checks for reentrancy. If there are no guarded executions on the stack yet, executes the action immediately and synchronously, like . Otherwise, postpones the action for asynchronous execution, like does. - If Async behavior is prohibited, like in test environment, always executes synchronously. - - - - The name for the task. - The action to execute. Exceptions will be trapped. - True if executed immediately, False if queued (-compatible behavior). - - - - Executes an action on the thread in a guarded context. - If called on a foreign thread, executes the action asynchronously, like . - If called on the guarded thread, checks for reentrancy. If there are no guarded executions on the stack yet, executes the action immediately and synchronously, like . Otherwise, postpones the action for asynchronous execution, like does. - If Async behavior is prohibited, like in test environment, always executes synchronously. - - - The name for the task. - The action to execute. Exceptions will be trapped. - True if executed immediately, False if queued (-compatible behavior). - - - - Defines whether the action is or . - - - - - Adding. - - - - - Removing. - - - - - Notifies that the item is being added to or removed from an event-equipped collection. - - Collection values type. - - - - An event arguments class with one typed value. - - Type of the value. - - - - Constructs the universal event args. - - - - - Gets the value. - - - - - Creates the arguments specifically suited for acknowledgement, with the specific flag set and an ability to change the value in order to reuse the arguments object. - - - - - Gets the action (either or ). - - - - - Gets the owning event-equipped collection. - - - - - An optional cookie specified with the operation. - - - - - Gets whether the handler is being called in the Acknowledgement mode, that is, the items appear/disappear in the handler's view not because they're being put/removed into the collection, but because the collection itself comes/goes into view of the handler, with all of its items. This happens when you sink/unsink the signal. - - - - - Gets whether is actually . - Exactly one of and is guaranteed to be True. - - - - - Gets whether is actually . - Exactly one of and is guaranteed to be True. - - - - - Notifies that the item is being added to or removed from an event-equipped list. - - Collection values type. - - - - Creates the arguments specifically suited for acknowledgement, with the specific flag set and an ability to change the value in order to reuse the arguments object. - - - - - Gets the index at which the change is happening. - - - - - Notifies that the item will be added to or removed from an event-equipped collection, and allows to cancel this action. - - Collection values type. - - - - Creates the arguments specifically suited for acknowledgement, with the specific flag set and an ability to change the value in order to reuse the arguments object. - - - - - Gets or sets whether the change will be cancelled. - - - - - Notifies that the item will be added to or removed from an event-equipped list, and allows to cancel this action. - - Collection values type. - - - - Creates the arguments specifically suited for acknowledgement, with the specific flag set and an ability to change the value in order to reuse the arguments object. - - - - - Gets the index at which the change is happening. - - - - - Notifies of the intended property change. - Comes before the and the actual property change, and allows to cancel the change. - Acknowledges the fact that the property change can be either from “no value” to something, or from something to “no value”. - - Type of the value. - - - - Notifies of the property change. - Acknowledges the fact that the property change can be either from “no value” to something, or from something to “no value”. - - Type of the value. - - - - Creates an instance that has both values defined. - - - - - Creates an instance that has only the new value defined. - - - - - Creates an instance that has only the old value defined. - - - - - Gets the property modification cookie (a freehand parameter). - - - - - Gets whether the property will have a new value, ie is defined. - - - - - Gets whether the property had an old value, ie is defined. - - - - - Gets whether the handler is being called in the acknowledgement mode, that is, because the property is coming into view or going off the view, and its value effectively changes either from “not known yet” to some value, or the other way. - - - - - Gets the new value of the property. - It's an error to request the value if not . - - - - - Gets the old value of the property. - It's an error to request the value if not . - - - - - Gets the property that has changed. - You should use the and properties on this object instead of quering values from the property directly. - You should not set new values to the property, unless you're sure you know what you're doing. - - - - - Creates an instance that has both values defined. - - - - - Creates an instance that has only the new value defined. - - - - - Creates an instance that has only the old value defined. - - - - - Gets or sets whether the change will be cancelled. - - - - - An event arguments class with one typed value and the Cancel functionality. - - Type of the value. - - - - Gets or sets whether the change will be cancelled. - - - - - Bridges two unordered collection of items. - The items flow from the first collection to the second one. Conversion and filtering is supported on the items. - - Type of the source collection items. - Type of the target collection items. - - - - Two-way map, non-Null only in two-way mode. - - - - - One-way map, non-Null only in one-way mode. - - - - - Wires up the bridge. - - Lifetime for the bridge. - Specifies which mapping information is maintained by the bridge — source-to-target only, or both ways. one-way is cheaper. - The source collection. - The target collection. - The conversion operator. - An otpional cookie to be passed to the collection when performing modification operations on it. - - - - Whether the bridged items could be removed from the target collection by a foreign actor, and the bridge should ignore such occurences. - When True, does nothing when the target item is already not there. This is the default. - When False, throws when about to remove a nonexistent item. - - - - - Gets which mapping information is maintained by the bridge — source-to-target only, or both ways. - - - - - Gets the read-only source-to-target mapping info. This one is always available. - - - - - Gets the read-only target-to-source mapping. Available only if is set to ; in other cases, throws a . - - - - - Gets the source collection. - - - - - Gets the target collection. - - - - - Supplimentary class for the utility. - - - - - Mirrors one collection into another thru a converter. - - - - - Kind of info about collections mapping to be maintained by the bridge. - - - - - There's only data for translating from the source collection to the target one. - - - - - There's data for translating both from source to target and from target to source collection items. - - - - - A collection that fires events when items are added or removed. - - Collection values type. - - - - A collection that fires events when items are added or removed. - - Collection values type. - - - - A viewable collection of items - - - - - Attempts to add the item to the collection. - - The value to be added. - An optional cookie that comes along with the notification events data. - Whether the item was added to the collection. An addition can be cancelled by the duplicates merger or the before-added handlers. - - - - Executes the operation for all the elements in the given collection. - - The collection whose elements should be added. - - - - A universal method for modifications on the collection. Useful for data flow between the collections, when signal handler is pumping into another collection. - - Whether to add or remove the item. - The item to add or remove. - The optional modification cookie. - Success code. - - - - Attempts to remove a value from the collection. - - The value to be removed. - An optional cookie that comes along with the notification events data. - Whether the item was removed from the collection. A removal may fail either if the item is missing from the collection, or the before-removed handlers have cancelled the operation. - - - - A thread-save version of the LINQ call. - - - The regular version for collections takes the and then calls , which is race condition prone. - - - - - A thread-save version of the LINQ call. - - - The regular version for collections takes the and then calls , which is race condition prone. - - - - - Fires when an item is added or removed to your view on the collection. - Throwing an exception does not prevent the item from being added or other handlers from being called. - The event supports acknowledgement, which means that when you sink the event, all of the items currently in collection come into your view on the collection, so the add is fired for each. Similarly, remove is fired when you unsink and all of the elements go away from your view on the collection. - - - - - Fires before an item is added or removed. - To prevent the add/remove operation, set to True (decline the operation silently) or throw an exception (the exception is let out to the caller). - After the first handler to cancel the operation, the remaining handlers may not be called. - No are guaranteed to be executed if the operation is cancelled. - - - - - Gets the number of elements contained in the collection. - - - - - Gets the identification for this list. - - - - - Sync thru . - - - - - The universal constructor. - Initializes the collection by giving the underlying storage that also implements the collection interface. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - Whether the method should abort silently if the collection already the item being added. - Logging facility optional override. - - - - Initializes the collection by giving the underlying storage that also implements the collection interface. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - Whether the method should abort silently if the collection already the item being added. - - - - Initializes the collection by giving the underlying storage that also implements the collection interface. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - Whether the method should abort silently if the collection already the item being added. - - - - Creates a collection that is based on a and merges duplicate items. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Creates a collection that is based on a and merges duplicate items. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Helper to throw an annotated exception whenever a collection fails the readonly lock precondition. - - - - - Helper to throw an annotated exception whenever a collection fails the threading affinity precondition. - - - - - Fires the event. - - - - - Fires the event. - Returns whether the operation has been cancelled. - - - - - Fires the event in case the index is not known. - - - - - Fires the event in case the index is known. - - - - - Fires the event. - - - - - One of the core methods that implement the actual functionality. - - - - - One of the core methods that implement the actual functionality. - - - - - Ackhowledges the handler. - - - - - Called when someone attempts to sink the signal. Acknowledges the handler. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Attempts to add the item to the collection. - - The value to be added. - An optional cookie that comes along with the notification events data. - Whether the item was added to the collection. An addition can be cancelled by the duplicates merger or the before-added handlers. - - - - Adds an item to the . - - - The object to add to the . - The is read-only. - - - - Executes the operation for all the elements in the given collection. - - The collection whose elements should be added. - - - - Removes all items from the . - - - The is read-only. - - - - Determines whether the contains a specific value. - - - - true if item is found in the ; otherwise, false. - - - The object to locate in the . - - - - Copies the elements of the to an , starting at a particular index. - - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in array at which copying begins. - arrayIndex is less than 0. - array is null. - array is multidimensional.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source is greater than the available space from arrayIndex to the end of the destination array.-or-Type T cannot be cast automatically to the type of the destination array. - - - - Returns an enumerator that iterates through the collection. - - - - A that can be used to iterate through the collection. - - 1 - - - - A universal method for modifications on the collection. Useful for data flow between the collections, when signal handler is pumping into another collection. - - Whether to add or remove the item. - The item to add or remove. - The optional modification cookie. - Success code. - - - - Attempts to remove a value from the collection. - - The value to be removed. - An optional cookie that comes along with the notification events data. - Whether the item was removed from the collection. A removal may fail either if the item is missing from the collection, or the before-removed handlers have cancelled the operation. - - - - Removes the first occurrence of a specific object from the . - - - - true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . - - - The object to remove from the . - The is read-only. - - - - Copies the elements of the to an , starting at a particular index. - - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in array at which copying begins. - array is null. - The type of the source cannot be cast automatically to the type of the destination array. - index is less than zero. - array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. 2 - - - - Returns an enumerator that iterates through a collection. - - - - An object that can be used to iterate through the collection. - - 2 - - - - Gets whether the Null values are allowed to be added to the collection. - - - - - Gets whether all of the items in the collection should be unique. - Behavior of the collection in case of duplicates found depends on the - - - - - Gets whether the errors when adding/removing items should be suppressed, and just false returned, when appropriate. - The errors include “item already added” (when ) or “cannot remove nonexistent item”. - - - - - Occurs when the collection changes. - - - - - - Occurs when a property value changes. - - - - - - Fires when an item is added ( is defined) or removed ( is defined). - Throwing an exception does not prevent the item from being added, and other handlers from being called. - The event supports acquaintance, which means that when you sink it, all the items currently in collection are “added”, and when you unsink, they are “removed” for the particular eventhandler you're adding or removing. - - - - - Fires before an item is added ( is defined) or removed ( is defined). - Setting to True or throwing an exception prevents the item from being added. - Note that even though the number of before-handlers called is undefined in such a case, no handlers are guaranteed to execute if you cancel the operation on the event. - - - - - Gets the number of elements contained in the . - - - - The number of elements contained in the . - - - - - - Gets the identification for this list. - - - - - Gets a value indicating whether the is read-only. - - - - true if the is read-only; otherwise, false. - - - - - - Gets a value indicating whether access to the is synchronized (thread safe). - - - - true if access to the is synchronized (thread safe); otherwise, false. - - 2 - - - - Gets an object that can be used to synchronize access to the . - - - - An object that can be used to synchronize access to the . - - 2 - - - - Defines the direction of the data flow between two properties. - - - - - No synchronization is performed automatically. - Both bindings can still be invoked manually. - - - - - A one-way forward data flow from the to the . - The back-way binding can still be invoked manually. - - - - - A one-way backward data flow from the to the . - The forward-way binding can still be invoked manually. - - - - - A two-way data flow from the to the , and then back to the . - - - - - A dictionary that fires events when items are added or removed. - - - - - A dictionary that fires events when items are added or removed. - - - - - Attempts to look up a value by its in the dictionary. - In case there is no such key-value pair present, uses the function to create a new value, and then places it into the dictionary under the . - - Key to the value we're trying to look up. - In case there is no in the dictionary, produces a new value to be stored in the dictionary and returned to the caller. - - - - - Stores the dictionary entries. - Sync thru . - - - The storage must be passed to the base class in ctor, for the collection operations to work on the same data. - - - - - This is the universal constructor. - Specifies whether Null keys or values are allowed or not. - Take caution with value types, for them the default value is used. - Note: the Null-checks are enforced only by those operations that add to the dictionary. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - Whether Null values are allowed for keys (take caution with value types). - Whether Null values are allowed for values (take caution with value types). - Logging facility optional override. - - - - Creates a dictionary that allows storing Null values. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Creates a dictionary that allows storing Null values. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Specifies whether Null keys or values are allowed or not. - Take caution with value types, for them the default value is used. - Note: the Null-checks are enforced only by those operations that add to the dictionary. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - Whether Null values are allowed for keys (take caution with value types). - Whether Null values are allowed for values (take caution with value types). - - - - Specifies whether Null keys or values are allowed or not. - Take caution with value types, for them the default value is used. - Note: the Null-checks are enforced only by those operations that add to the dictionary. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - Whether Null values are allowed for keys (take caution with value types). - Whether Null values are allowed for values (take caution with value types). - - - - One of the core methods that implement the actual functionality. - - - - - One of the core methods that implement the actual functionality. - - - - - Adds an element with the provided key and value to the . - - - The object to use as the value of the element to add. - The object to use as the key of the element to add. - The is read-only. - An element with the same key already exists in the . - key is null. - - - - Determines whether the contains an element with the specified key. - - - - true if the contains an element with the key; otherwise, false. - - - The key to locate in the . - key is null. - - - - Removes the element with the specified key from the . - - - - true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the original . - - - The key of the element to remove. - The is read-only. - key is null. - - - - Attempts to look up a value by its in the dictionary. - In case there is no such key-value pair present, uses the function to create a new value, and then places it into the dictionary under the . - - Key to the value we're trying to look up. - In case there is no in the dictionary, produces a new value to be stored in the dictionary and returned to the caller. - - - - - Sets the element with the specified key. - An overload of the method which allows to specify the modification cookie for both removal and addition operation events which might be fired as a result of this assignment. - - - - - - - - Gets whether Null keys are allowed or not. - Note: the Null-checks are enforced only by those operations that add to the dictionary. - - - - - Gets whether Null values are allowed or not. - Note: the Null-checks are enforced only by those operations that add to the dictionary. - - - - - Gets or sets the element with the specified key. - - - - The element with the specified key. - - - The key of the element to get or set. - The property is set and the is read-only. - key is null. - The property is retrieved and key is not found. - - - - Gets an containing the keys of the . - - - - An containing the keys of the object that implements . - - - - - - Gets an containing the values in the . - - - - An containing the values in the object that implements . - - - - - - Validates collections by preventing certain values from being added or removed. - Note that for the validator to attach, the original values must all pass the validation. - - - - - Makes a readonly collection. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Ensures the is modified only on the given . - - - - - Makes a readonly collection. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly collection. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly collection. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly collection. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly list. All the legitimate modifiers must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Extension method helpers for the data flow classes. - - - - - Sets up the binding to update when the fires. - - - - - Allows to bind the lifetime to a Windows Form. - - - - - Defines a lifetime that terminates when the control or form is disposed of. - - - - - Extension method helpers for the data flow classes. - - - - - Asynchronously adds a new item to the collection. - - Item type. - Collection. - The lifetime for the async operation of adding the item, NOT for the item's presence in the collection! If the lifetime expires while the deferred operation is still pending, the operation will be dropped. - Identifies the thread the modification should happen on. - The item to be added. - - - - Creates a property that tells the numer of items in the collection. - - - - - Creates a property that tells whether the collection is empty. - - - - - Creates a property that tells whether the collection has some items in it. - - - - - Logs the collection modifications. - - The collection. - ILifetime for the logging set-up. - The optional prefix to be prepended in square brackets to each log message. - - - - Logs the collection modifications. - - The collection. - ILifetime for the logging set-up. - The object whose local name will be used as a logging prefix, ie prepended in square brackets to each log message, or a whose short name will be used. - - - - Binds a lifetime to each item in the collection. - Your handler is called for each item when it's added to the collection (and initially for all the items already in the collection), and is given the lifetime object for that item. This per-item lifetime is terminated whenever that item is removed from the collection, or when the you define for this method terminates. - Using the per-item lifetime, you can define a pair of actions (after-item-comes — before-item-goes) to be executed for each item, or spawn some activity for the duration of each item, etc. - - - ILifetime of the construct. All of the open per-item lifetimes will be terminated when it terminates. - Handler, called for each item when you first see it in the collection. The first param is the lifetime of the item, the second one is the item value itself. - - - - Binds a lifetime to each item in the collection. - Your handler is called for each item when it's added to the collection (and initially for all the items already in the collection), and is given the lifetime object for that item. This per-item lifetime is terminated whenever that item is removed from the collection, or when the you define for this method terminates. - Using the per-item lifetime, you can define a pair of actions (after-item-comes — before-item-goes) to be executed for each item, or spawn some activity for the duration of each item, etc. - - - ILifetime of the construct. All of the open per-item lifetimes will be terminated when it terminates. - Handler, called for each item when you first see it in the collection. The first param is the lifetime of the item, the second one is the item value itself, the third param is the cookie with which the item has been added. - - - - Core impl for both ForEachItem functions. - - - - - Attempts to add the item to the collection. - - ILifetime for the item to be present in the collection. Upon termination, the item is removed. - The value to be added. - An optional cookie that comes along with the notification events data. - Collection. - If the item was added to the collection (not cancelled by the duplicates merger or the before-added handlers), returns an object that removes the item from the collection on . Otherwise, returns a dummy . - - - - Mirrors one collection into another. - - Type of the source collection items. - Type of the target collection items. - The source collection. - ILifetime of the collection flow. - The target collection. - If the collection types differ and are unrelated, a converter that produces items for the second collection from the items of the first collection. Note that for the operation to be mirrored successfully, the converter product must return for to projections of the same source item. May be Null if the types could be converted by a simple cast. - Allows to exclude certain items from being converted and added to the target collection. - An optional cookie for the modifiction operation on the collection. - - - - - Mirrors one collection into another. - It is an error to modify the target collection directly while this method is in effect. - - Type of the source collection items. - Type of the target collection items. - ILifetime of the flow. - The source collection. - The target collection. - - If the collection types differ and are unrelated, a converter that produces items for the second collection from the items of the first collection. Note that the converter is only used for the - - operation, and there are no limitations on of the conversion products. May be Null if the types could be converted by a simple cast. - - Allows to exclude certain items from being converted and added to the target collection. - - An optional cookie for the modifiction operation on the collection. - - - - - Mirrors one collection into another. - It is an error to modify the target collection directly while this method is in effect. - - Type of the source collection items. - Type of the target collection items. - ILifetime of the flow. - The source collection. - The target collection. - - If the collection types differ and are unrelated, a converter that produces items for the second collection from the items of the first collection. Note that the converter is only used for the - - operation, and there are no limitations on of the conversion products. May be Null if the types could be converted by a simple cast. - - - Same as , but with a lifetime. It's an error to specify both at the same time. - - Allows to exclude certain items from being converted and added to the target collection. - - An optional cookie for the modifiction operation on the collection. - - - - - Mirrors one list into another with the same item order. - It is an error to modify the target collection directly while this method is in effect. - - Type of the source collection items. - Type of the target collection items. - The source collection. - ILifetime of the flow. - The target collection. - If the collection types differ and are unrelated, a converter that produces items for the second collection from the items of the first collection. Note that the converter is only used for the operation, and there are no limitations on of the conversion products. May be Null if the types could be converted by a simple cast. - An optional cookie for the modifiction operation on the collection. - - - - Mirrors one list into another with the same item order. - It is an error to modify the target collection directly while this method is in effect. - - Type of the source collection items. - Type of the target collection items. - The source collection. - ILifetime of the flow. - The target collection. - If the collection types differ and are unrelated, a converter that produces items for the second collection from the items of the first collection. Note that the converter is only used for the operation, and there are no limitations on of the conversion products. May be Null if the types could be converted by a simple cast. - An optional cookie for the modifiction operation on the collection. - - - - Mirrors one list into another with the same item order. - It is an error to modify the target collection directly while this method is in effect. - - Type of the source collection items. - Type of the target collection items. - The source collection. - ILifetime of the flow. - The target collection. - - - - Mirrors one list into another with the same item order. - It is an error to modify the target collection directly while this method is in effect. - - Type of the source collection items. - Type of the target collection items. - ILifetime of the flow. - The source collection. - The target collection. - If the collection types differ and are unrelated, a converter that produces items for the second collection from the items of the first collection. Note that the converter is only used for the operation, and there are no limitations on of the conversion products. May be Null if the types could be converted by a simple cast. - Same as , but with a lifetime. It's an error to specify both at the same time. - An optional cookie for the modifiction operation on the collection. - - - - Makes sure each item of the collection is disposed of when it exits the collection view (just after the item is removed from the collection). - When the terminates, all of the items currently in the collection are also disposed of. - - - - - Updates the second collection as the first one is modified, but in a guarded context. - After the guarded context gets acquired, does not replay all additions and removals, but instead replicates the current collection state (hence "no replay"). Can be thus slow on large collections, so hashsets are recommended as backing store. - - - - - Updates the second collection as the first one is modified, but at a rarer intervals, as limited by the grouping event (could be guarded or guard-invariant). - After the timeout expires, does not replay all additions and removals, but instead replicates the current collection state (hence "no replay"). Can be thus slow on large collections, so hashsets are recommended as backing store. - - - - - Updates the second collection as the first one is modified, but at a rarer intervals, as defined by the grouping function (eg or ). - When the grouping function manages to execute, does not replay all additions and removals, but instead replicates the current collection state (hence "no replay"). Can be thus slow on large collections, so hashsets are recommended as backing store. - - - - - For a collection of arbitrary items, maintains a list (= collection with linear order on the items) of the same items sorted in the order as defined by the . - - Item type. - Collection of items without any order implied. - Time to work. - Target collection of ordered items. - Comparer setting up the order. - - - - Returns an ordered representation of the collection, the order defined by the . - - Item type. - Collection of items without any order implied. - Time to work. - Comparer setting up the order. - - - - For an item in the collection, creates a lifetime that will be terminated when the item leaves the collection (or the passed-in lifetime terminates, or the collection lifetime terminates). - - Item type. - Collection. - The limiting lifetime. The returned lifetime will be nested within this lifetime (as well as within the collection's). - The item whose lifetime should be created. It's an error if the item is currently not present within the collection. - The lifetime of the item's presence in the collection. - - - - Creates a new item to be added to the collection. - The item lifetime terminates when either the input lifetime is terminated, or when the item is removed from the collection by some other collection client. - If you terminate the item's definition, it will be removed from the collection. - - - - - Extension method helpers for the data flow classes. - - - - - Asynchronously adds a new item to the collection. - - Item type. - Collection. - Identifies the thread the modification should happen on. - The item to be added. - - - - Bridges first collection modifications into the second collection, in the guarded context. - Slow. Not suitable for large collections. Better use hashsets (both). - - - - - Executes a pair of actions for each of the items in the collection. - When a new items comes into view, executes the for it. The return value of the is the closing bracket and will be executed when the collection item goes off the view. - - Type of the collection items. - The collection. - The handler that executes the opening bracket and returns an that executes the closing bracket when disposed of. - - - - Executes a pair of actions for each of the items in the collection. - When a new items comes into view, executes the for it. The return value of the is the closing bracket and will be executed when the collection item goes off the view. - - Type of the collection items. - The collection. - The handler that executes the opening bracket and returns an that executes the closing bracket when disposed of. - - - - Advises the collection's operation selectively. - - - - - Advises the collection's operation selectively. - - - - - Advises the collection's operation selectively. - - - - - Advises the collection's operation selectively. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the items initially in the collection) and at the end of the lifetime (to acknowledge the final items of the collection and unbind from them correctly as from any other items leaving the collection view). - During an acknowledgement change, is True. When using this method, only real changes are let through. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the items initially in the collection) and at the end of the lifetime (to acknowledge the final items of the collection and unbind from them correctly as from any other items leaving the collection view). - During an acknowledgement change, is True. When using this method, only real changes are let through. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the items initially in the collection) and at the end of the lifetime (to acknowledge the final items of the collection and unbind from them correctly as from any other items leaving your view on the collection). - During an acknowledgement change, is True. When using this method, only real changes are let through. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the items initially in the collection) and at the end of the lifetime (to acknowledge the final items of the collection and unbind from them correctly as from any other items leaving your view on the collection). - During an acknowledgement change, is True. When using this method, only real changes are let through. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the items initially in the collection) and at the end of the lifetime (to acknowledge the final items of the collection and unbind from them correctly as from any other items leaving your view on the collection). - During an acknowledgement change, is True. When using this method, only real changes are let through. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the items initially in the collection) and at the end of the lifetime (to acknowledge the final items of the collection and unbind from them correctly as from any other items leaving your view on the collection). - During an acknowledgement change, is True. When using this method, only real changes are let through. - - - - - Sinks the collection's operation selectively. - - - - - Sinks the collection's operation selectively. - - - - - Sinks the collection's operation selectively. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Logs the changes to the bag property set and the bag property values. - - The property. - Lifetime for the logging set-up. - The optional prefix to be prepended in square brackets to each log message. - - - - Extension method helpers for the data flow classes. - - - - - Asynhronously assigns a new value to the property. - - - - - Casts the property value to the given type by creating a new property of that type. - If the type of the value in the source property is wrong, an exception will be reported, and Null will be assigned to the target property for that period. - - Target type. - Source property of the source type. - Lifetime of the newly-created property. - A newly-created target property of the target type. - - - - Creates a one-way from-source binding between two properties, deferring the new value until execution gets off stack and collecting all the assignments that happen within that time span. The intermediate values are lost, assignments are not replayed, just the last one is applied. The assignment goes on the same thread with the change. - - The source property. - Lifetime of the binding. - The target property. - - - - Creates a one-way from-source binding between two properties, deferring the new value until execution gets off stack and collecting all the assignments that happen within that time span. The intermediate values are lost, assignments are not replayed, just the last one is applied. The assignment occurs on the thread. - - The source property. - Lifetime of the binding. - The dispatcher on which the assignment should occur. - The target property. - - - - Establishes a data flow between two properties. - Creates a of the type. - - - - - Establishes a data flow between two properties of different types, thru a converter. - Creates a of the type. - - - - - Establishes a data flow between two properties of different types, thru a converter. - - - - - Establishes a data flow between two properties. - - - - - Establishes one-way frequency-limited data flow between two properties. - The target update occurs no more often than allowed by the grouping event. - - - - - Establishes one-way frequency-limited data flow between two properties. - The target update occurs no more often than allowed by the grouping event. - - - - - Creates a boolean property with an inverter value. - - - - - Logs the changes to the property value. - - The property. - Duration of the logging. - The optional prefix to be prepended in square brackets to each log message. - - - - Logs the changes to the property value and appends change stacktrace - - The property. - Duration of the logging. - - - - Logs the changes to the property value. - - The property. - Duration of the logging. - The object whose local name will be used as a logging prefix, ie prepended in square brackets to each log message, or a whose short name will be used. - - - - Logs the changes to the property value. - - The property. - Duration of the logging. - The logger which serves as the logging context. Property name is added to each logged message. - - - - Creates a flag property out of an arbitrary property which is either True or False, based on the evaluated on the live value of the . - - Type of the source property. - The source property. - Lifetime for the created property and its binding to the original property. - The condition to be evaluated on each new value of the property. - The name of the condition. This name is appended to the 's to form the new for the resulting flag. - - - - Creates a flag property that indicates whether the currently has a non-Null value. - - - - - Softly casts the property value to the given type by creating a new property of that type. - If the type of the value in the source property is wrong, a Null will be assigned to the target property for that period. - - Target type. - Source property of the source type. - Lifetime synchronization policy for the two properties. - A newly-created target property of the target type. - - - - Binds a lifetime to each new value of the property. - Your handler is called for each new value of the property and is given the lifetime object for that value. This per-value lifetime is terminated whenever a new value is assigned to the property, or when the you define for this method terminates. - Using the per-value lifetime, you can define a pair of actions (after-value-comes — before-value-goes) to be executed for each value, or spawn some activity for the duration of this value, etc. - - - - - Binds a lifetime to each new value of the property. - Your handler is called for each new value of the property (if it passes the filter) and is given the lifetime object for that value. This per-value lifetime is terminated whenever a new value is assigned to the property, or when the you define for this method terminates. - Using the per-value lifetime, you can define a pair of actions (after-value-comes — before-value-goes) to be executed for each value, or spawn some activity for the duration of this value, etc. - - - - - Makes sure each value of the property is disposed of when it exits the property (just after the property is set to some other value). - When the terminates, the current value of the property is also disposed of. - - - - - Binds a lifetime to each new value of the property. - Your handler is called for each new non-Null value of the property and is given the lifetime object for that value. This per-value lifetime is terminated whenever a new value is assigned to the property, or when the you define for this method terminates. - Using the per-value lifetime, you can define a pair of actions (after-value-comes — before-value-goes) to be executed for each value, or spawn some activity for the duration of this value, etc. - - - - - Temporarily sets the value to the property, for the duration of the . When the ends, the original value (by the moment of the method call) is restored. - Prevents all writes to the property while this method holds. - - The property to process. - Defines the value duration. - The property value to set. - An optional readonly cookie. - - - - Creates a lifetime (and calls your handler) whenever the property value gets True. Closes the lifetime when the property value changes to False, or the lifetime of this method ends. - - The property whose value is to be monitored. - Duration for the rules defined by this method. - The handler that is executed when the value raises. - - - - Creates a lifetime (and calls your handler) whenever the property value gets False. Closes the lifetime when the property value changes to True, or the lifetime of this method ends. - - The property whose value is to be monitored. - Duration for the rules defined by this method. - The handler that is executed when the value raises. - - - - Creates a new property whose value is produced from the source property value. - Analogous to the LINQ Select functionality. - - Source type. - Target type. - Source value. - Adds a comment suffix to the Property ID. - Selector. - Lifetime control. - A newly-created target property of the target type. - - - - Creates a new property whose value is produced from the source property value (allows to create lifetimed values). - Analogous to the LINQ Select functionality. - - Source type. - Target type. - Source value. - Adds a comment suffix to the Property ID. - Selector. - Lifetime control. - A newly-created target property of the target type. - - - - When given a of a CLR field or property that has the type wrapping some other type, unwraps and returns the underlying type of the property (generic argument, the same as its ). If the is not a property type, returns Null. - - - - - Creates a one-way from-source binding between two properties, deferring the new value until execution gets off stack and collecting all the assignments that happen within that time span. The intermediate values are lost, assignments are not replayed, just the last one is applied. The thread to run the assignment on is determined by the function . - - The source property. - Lifetime of the binding. - Determines the thread to use. - The target property. - - - - Creates an instance of the class in a context where you cannot have generic specialization to its type and have to operate the interface. - For help on parameters, see the ctor parameters. - - - - - Sets a value to the property. The value has a lifetime until it's removed from the property. - You're called a function with the prospected value lifetime, to produce the value object. - - - - - Executes a pair of actions for each new value of the . - For each new value of the property, the is executed. - Its return value is disposed of when the property looses the value for each it were executed. - - - - - Pushes the given value into the property when entering the try-finally brackets, pops (restores the former value) when exiting, which happens when the return value gets disposed of. - The in-brackets writes are not handled. - - The property to process. - In-brackets property value. - An optional readonly cookie. - An instance to dispose of when leaving the brackets. - - - - Pushes the given value into the property when entering the try-finally brackets, pops (restores the former value) when exiting, which happens when the return value gets disposed of. - The in-brackets writes are not handled. - - The property to process. - In-brackets property value. - An instance to dispose of when leaving the brackets. - - - - Establishes a data flow between two properties. - Creates a of the type. - Returns a cookie for terminating the flow. - - - - - Establishes a data flow between two properties of different types, thru a converter. - Creates a of the type. - Returns a cookie for terminating the flow. - - - - - Logs the changes to the property value. - - The property. - The optional prefix to be prepended in square brackets to each log message. - - - - Logs the changes to the property value. - - The property. - The object whose local name will be used as a logging prefix, ie prepended in square brackets to each log message, or a whose short name will be used. - - - - Extension methods to specific to the signals of the . - - - - - Executes the handler whenever the property value falls. - A high value is a non-Null value. A low value is a Null or “unknown” (outside of lifetime). - This means that the handler will be called when property value changes to Null, or when the lifetime ends while a property value is non-Null. - For example, in the handler you could deactivate something if an option is turned off or the lifetime of your component ends. - - - - - Executes the handler whenever the property value falls. - A high value is a non-Null value. A low value is a Null or “unknown” (outside of lifetime). - This means that the handler will be called when property value changes to Null, or when the lifetime ends while a property value is non-Null. - For example, in the handler you could deactivate something if an option is turned off or the lifetime of your component ends. - - - - - Executes the handler whenever the property value falls (excluding the case when we're acknowleding the last value when unadvising the property change signal). - A high value is a non-Null value. A low value is a Null or “unknown” (outside of lifetime). - This means that the handler will be called when property value changes to Null (but not when the lifetime ends while a property value is non-Null). - - - - - Filters property change events. Only calls the handler when the change has a new value for the property. - This filter only skips the acknowledgement change at the end of the lifetime, when there's only the old value of the property, but no new one. - - - - - Filters property change events. Only calls the handler when the change has a new value for the property. - This filter only skips the acknowledgement change at the end of the lifetime, when there's only the old value of the property, but no new one. - - - - - Filters property change events. Only calls the handler when the change has an old value for the property. - This filter only skips the acknowledgement change at the beginning of the lifetime, when there's only the new value of the property, but no old one. - - - - - Filters property change events. Only calls the handler when the change has an old value for the property. - This filter only skips the acknowledgement change at the beginning of the lifetime, when there's only the new value of the property, but no old one. - - - - - Filters property change events. Only calls the handler when the change has a new value for the property, and it is non-Null. - This filter skips the acknowledgement change at the end of the lifetime, when there's only the old value of the property, but no new one; plus any change whose new value is Null. - - - - - Filters property change events. Only calls the handler when the change has a new value for the property, and it is non-Null. - This filter skips the acknowledgement change at the end of the lifetime, when there's only the old value of the property, but no new one; plus any change whose new value is Null. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the initial value of the property; the old value in the change arguments is undefined) and at the end of the lifetime (to acknowledge the final value of the property and unbind from it correctly as from any other value; the new value in the change arguments is undefined). - During an acknowledgement change, is True; either or is False; getting the corresponding value throws an exception. When using this method, only real & changes are let through. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the initial value of the property; the old value in the change arguments is undefined) and at the end of the lifetime (to acknowledge the final value of the property and unbind from it correctly as from any other value; the new value in the change arguments is undefined). - During an acknowledgement change, is True; either or is False; getting the corresponding value throws an exception. When using this method, only real & changes are let through. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the initial value of the property; the old value in the change arguments is undefined) and at the end of the lifetime (to acknowledge the final value of the property and unbind from it correctly as from any other value; the new value in the change arguments is undefined). - During an acknowledgement change, is True; either or is False; getting the corresponding value throws an exception. When using this method, only real & changes are let through. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the value already in the property. - - - - - Advises the so that the handler is not acknwledged. - Acknowledgement changes are fired in the beginning of the lifetime (for the event sink to acknowledge the initial value of the property; the old value in the change arguments is undefined) and at the end of the lifetime (to acknowledge the final value of the property and unbind from it correctly as from any other value; the new value in the change arguments is undefined). - During an acknowledgement change, is True; either or is False; getting the corresponding value throws an exception. When using this method, only real & changes are let through. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the value already in the property. - - - - - Executes the handler whenever the property value raises. - A high value is a non-Null value. A low value is a Null or “unknown” (outside of lifetime). - This means that the handler will be called when property value changes from Null, or when the lifetime starts while a property value is non-Null. - For example, in the handler you could activate something if an option is turned on or the lifetime of your component begins. - - - - - Executes the handler whenever the property value raises. - A high value is a non-Null value. A low value is a Null or “unknown” (outside of lifetime). - This means that the handler will be called when property value changes from Null, or when the lifetime starts while a property value is non-Null. - For example, in the handler you could activate something if an option is turned on or the lifetime of your component begins. - - - - - Invokes the handler for specific property values only. Filters down the invocations to only those whose new-value is . - - - - - Invokes the handler for specific property values only. Filters down the invocations to only those whose new-value fits the . - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Sinks the so that the handler is not acknwledged. - Useful for user-restricting rather than data-restricting handlers, as those would not pass the data already in the collection. - - - - - Invokes the handler on the raising front of the boolean property value, that is, when anything changes to True. - - - - - Invokes the handler on the raising front of the boolean property value, that is, when anything changes to True. - - - - - Invokes the handler for specific property values only. Filters down the invocations to only those whose new-value passes the . - - - - - Extension method helpers for the data flow classes related to signals. - - - - - Advises the signal event for the duration of the so that the is called when the signal fires. - This is an overload for a handler that does not need event arguments. - - - - - A helper for sinking IN-OUT events. Gets just the IN-argument for input, returns the OUT-argument. - - - - - For a signal that has an in-out value, fires the signal and collects the out-value. - - Method name is not Fire because otherwise the overload conflicts with . - - - - Asynhronously fires the signal on the thread identified by the dispatcher. - The deferred firing is canceled if the lifetime terminates before it is invoked. - - - - - Asynhronously fires the signal on the thread identified by the dispatcher. - The deferred firing is canceled if the lifetime terminates before it is invoked. - - - - - Asynhronously fires the signal on the thread identified by the dispatcher. - The deferred firing is canceled if the lifetime terminates before it is invoked. - - - - - For a signal that has an out-value only, fires the signal and collects the out-value. - - - - - For a signal that has an in-out value, fires the signal and collects the out-value. - - Method name is not Fire because otherwise the overload conflicts with . - - - - Creates a one-way binding between two signals, deferring the action until execution gets off stack and collecting all the signals that happen within that time span. - - The source signal. - Lifetime for the flow set-up. If there're any pending firings to flow to the target when the lifetime terminates, such firings are dropped. - The target signal. - - - - Creates a -binding for two signals, the second one a reduced simple signal. - - The originating signal. - Lifetime for the flow set-up. - The dependent simple signal. - - - - Creates a -binding for two signals, the second one a reduced simple signal. - - The originating signal. - Lifetime for the flow set-up. - The dependent simple signal. - - - - Creates a -binding for two signals, the second one a reduced simple signal. - - The originating signal. - Lifetime for the flow set-up. - The dependent signal. - Function that converts the high value of the source signal to value for the target signal. - - - - Creates a -binding for two simple signals. - - The originating signal. - Lifetime for the flow set-up. - The dependent simple signal. - - - - Logs the event firings and the payload of the event. - - The event. - Lifetime for the logging set-up. - The optional prefix to be prepended in square brackets to each log message. - - - - Logs the event firings and the payload of the event. - - The event. - Lifetime for the logging set-up. - The object whose local name will be used as a logging prefix, ie prepended in square brackets to each log message, or a whose short name will be used. - - - - Logs the event firings and the payload of the event. - - The event. - Lifetime for the logging set-up. - The logger which serves as the logging context. Signal name is added to each logged message. - - - - Advises the signal event so that the is called when the signal fires. - Unadvises when the return value is disposed of. - - - - - A helper for sinking IN-OUT events. Gets just the IN-argument for input, returns the OUT-argument. - - - - - Advises the signal event so that the is called when the signal fires. - Unadvises when the return value is disposed of. - - - - - Asynhronously fires the signal. - - - - - Asynhronously fires the signal. - - - - - Asynhronously fires the signal. - - - - - Creates a one-way binding between two signals, deferring the action until execution gets off stack and collecting all the signals that happen within that time span. - - The source signal. - The target signal. - - - - Creates a -binding for two signals, the second one a reduced simple signal. - - The originating signal. - The dependent simple signal. - - - - Creates a -binding for two signals, the second one a reduced simple signal. - - The originating signal. - The dependent simple signal. - - - - Creates a -binding for two signals, the second one a reduced simple signal. - - The originating signal. - The dependent signal. - Function that converts the high value of the source signal to value for the target signal. - - - - Creates a -binding for two simple signals. - - The originating signal. - The dependent simple signal. - - - - Extension method helpers for the data flow classes. - - - - - If there's the new value in the change (), returns it. - Otherwise, returns Null. - When the lifetime is terminated, an acknowledgement change is fired to acknowledge your event sink that it's being disconnected from the last value of the property. In this case there's no new value in the change. - - - - - If there's the old value in the change (), returns it. - Otherwise, returns Null. - When you start sinking the property change events, an acknowledgement change is fired to acknowledge your event sink with the current value of the property, as if it's just being set. In this case there's no old value in the change. - - - - - Gets whether the boolean property value is raising (changing from False or “unknown” to True). - - - - - Thrown when a suggested property value fails to pass the validation. - - - - - Thrown when a suggested value fails to pass the validation. - - - - - The property that was attempted to be changed. - - - - - The attempted new value. - - - - - Validates properties by preventing certain values from being assigned to the property. - Note that for the validator to attach, the original value must pass validation. - - - - - Creates the validtor. It's held by a reference from the property ever since. - Attaches a validator to the property whose type is an . - Ensures that the value belongs to the enum values list. - - The proeprty to validate. Must be of an enum-based type. - The lifetime for the validation constraint. - - - - Compares the suggested property values with the maximum, which is inclusive. - - - - - Compares the suggested property values with the minimum, which is inclusive. - - - - - Enforces non-empty values for the string property. - - - - - Makes a readonly property. All the legitimate setters must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Ensures the is modified only on the given . - - - - - Ensures the is modified only on the 's thread. - - - - - Makes the property “Frozen”, which means its value cannot be changed from now on. - Allows to specify a custom message. - - - - - Makes the property “Frozen”, which means its value cannot be changed from now on. - Allows to specify a custom message. - - - - - Fluent-Api property validators from . - - - - - Coerces the property values so that they fall into the given range, inclusive. No exceptions are thrown. The soft version of . - - - - - . - - - - - . - - - - - Ensures that only one assignment to the property is allowed. - - - - - Compares the suggested property values with the maximum, which is inclusive. - - - - - Compares the suggested property values with the minimum, which is inclusive. - - - - - Ensures that property values fall into the given range, inclusive. Throws if values out of range. The hard version of . - - - - - Makes a readonly property. All the legitimate setters must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly property. All the legitimate setters must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Ensures the is modified only on the thread this function was called on. - - - - - Creates that passively reflect the Registry values. Note that currently they do not track Registry changes. - - - - - Creates a property that's passively mirrored into Registry (does not listen to Registry changes). - Note that the Registry key is not kept open between the read/write sessions. - - Value type. - The root key, eg . - The relative path from the root key to the key that contains the data we're binding to. - Name of the data. Null for the default value of the key. - Default value for the data when reading it from Registry initially, in case it's missing. - - - - Validations for signal firings. - - - - - Makes a readonly signal. All the legitimate calls must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Makes a readonly signal. All the legitimate calls must pass the as an argument. - If the is invalid, an exception is thrown. - - - - - Ensures the is fired only on the current thread. - - - - - Ensures the is fired only on the thread this function was called on. - - - - - An interface for getting from a in an untyped manner. - Allows to get the property value in a nongeneric method (e.g. in property value serializer). - - - - - Gets the nongeneric version of the API to this object. - - - - - A list that fires events when items are added or removed. - - List values type. - - - - A universal method for modifications on the collection. Useful for data flow between the collections, when signal handler is pumping into another collection. - - Whether to add or remove the item. - The item to add or remove. When doing the remove operation, this parameter is ignored and the index is used instead. - The index at which the modification should occur. - The optional modification cookie. - Success code. - - - - A universal method for modifications on the collection. Useful for data flow between the collections, when signal handler is pumping into another collection. - - Whether to add or remove the item. - A function that is called only when doing the operation and produces the new item to be added to the list. This allows to create a new item when pumping from one collection to another with creating the wrappers simultaneousely. - The index at which the modification should occur. - The optional modification cookie. - Success code. - - - - Fires when an item is added or removed to your view on the collection. - Throwing an exception does not prevent the item from being added or other handlers from being called. - The event supports acknowledgement, which means that when you advise the event, all of the items currently in collection come into your view on the collection, so the add is fired for each. Similarly, remove is fired when you unadvise and all of the elements go away from your view on the collection. - - - - - Fires before an item is added or removed. - To prevent the add/remove operation, set to True (decline the operation silently) or throw an exception (the exception is let out to the caller). - After the first handler to cancel the operation, the remaining handlers may not be called. - No are guaranteed to be executed if the operation is cancelled. - - - - - A signal-inheritor that exposes the signal's virtual methods as delegates. - The signal has virtual methods instead of delegates because it's cheaper to call the virtual method, which is essential for the property case, for example. Less performance-critical scenarios (like collections) would use delegates instead of inheriting custom classes. - - - - - - An event-like signal that can be advised by any number of event sinks, fired by any number of external callers, and takes part in the data flow infrastructure. - Suitable for use in MVC's codebehind, when the event should be fireable by the views. - - The type of the payload, should a signal have any. is the simplest default. - - - - An event-like signal that can be sinked by any number of listeners, fired by any number of external callers, and takes part in the data flow infrastructure. - Suitable for use in MVC's codebehind, when the event should be fireable by the views. - - The type of the payload, should a signal have any. is the simplest default. - - The signal uses an as its underlying transport. - The signal is considered to be fired when the property value changes, - has both and , - and the value is falling (changes to default(TValue)). - For the signal to take part in the data flow, use its underlying property in the bindings. - - - - - Advises the signal event for the duration of the so that the is called when the signal fires. - - - - - Fires the signal. - - The payload of the signal. Must not be default(TValue). - - - - Fires the signal. - - The payload of the signal. Must not be default(TValue). - A cookie for the of the underlying . - - - - Gets the identifier of this signal. - Getting the ID from the underlying property will lazy-create the property, while this getter is cheap. - - - - - Gets the underlying property of the signal. - Initially, the signal has no underlying property attached (unless you explicitly give it in the constructor). - When the getter is accessed, an underlying property is created. - - - - - Gets the nongeneric version of the API to this object. - - - - - A type-invariant interface to the . - - - - - Advises the signal event for the duration of the so that the is called when the signal fires. - - - - - Fires the signal. - - The payload of the signal. Must not be default(TValue). - A cookie for the of the underlying . - - - - Gets the identifier of this signal. - Getting the ID from the underlying property will lazy-create the property, while this getter is cheap. - - - - - Gets the underlying property of the signal. - Initially, the signal has no underlying property attached (unless you explicitly give it in the constructor). - When the getter is accessed, an underlying property is created. - - - - - Gets the type of the signal arguments object. This is the type parameter of the typed . - - - - - Makes the object operable for writing/firing on the given thread only. - - - - - Base interface for standard preconditions. - These exist to allow fast implementations for standard preconditions on signals and properties, such as thread affinity and readonly validators. - When implemented as custom preconditions on a property, handlers are attached to 's event. In case of a or , the handlers are attached to of the underlying of the signal, which causes the property to be created in the first place and cause all the firings routed thru it. Standard preconditions are implemented in the object core and do not cause any external handlers called or underlying properties created. - - - - - Makes the object operable for writing/firing on the given thread only. - It's an error to call this method more than once (without disposing of the previous result first). - - Lifetime of the validator. - The thread to which the object should be affined for writing/firing from now on. - Undo token. - - - - Locks writes/firings on the object by requiring all the modification attempts to provide a valid token equal to the given one. - - - - - Locks writes/firings on the object by requiring all the modification attempts to provide a valid token equal to the given one. - It's an error to call this method more than once (without disposing of the previous result first). - - Lifetime for the readonly lock. - A token that must be provided by all the parties trying to change the object state. - Null - is ignored and no precondition is set. - Undo token. - A Null value for is allowed only to support temporary [debug] conditions where some component has a readonly token data field set to Null for use in both preconditions and callers, to temporarily allow foreign writers/firers. - - - - Stores the identifier of the signal. This is always not Null. - Used for lazy-creating the with this ID. - - - - - The underlying property useful for data flow bindings. - Lazy-created at the moment when it's first requested externally via . - Until that moment, is Null unless passed into the ctor. - This is done to break the property-signal-property chain and allow for using both signals in the property and properties in the signal. - Access must be synchronized via . - - - - - Non-Null when the object has a standard precondition on read-only lock set thru . - - - - - Stores the event sinks. - Write access must be synchronized with and should do copy-on-write. - Read access is free-threaded. - - - - - Non-Null when the object has a standard precondition on thread affinity set thru . - - - - - Helps with propagating to the underlying property, if it exists. - - - - - Helps with propagating to the underlying property, if it exists. - - - - Creates the signal. - - ID for the signal. Allows to tell signals apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when signal is fired. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - Creates the signal. - - Defines the lifetime for the signal. - When lifetime terminates, all of the handlers are forcibly detached, which helps with preventing memory leaks. - - - ID for the signal. Allows to tell signals apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when signal is fired. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - Creates the signal. - - Defines the lifetime for the signal. - When lifetime terminates, all of the handlers are forcibly detached, which helps with preventing memory leaks. - - - ID for the signal. Allows to tell signals apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when signal is fired. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - Optional logging engine override. - - - - Creates the signal on the existing underlying property. - - - - - Called after a new sink is attached. - - - - - Called after a sink is detached. - - - - - Called before a new sink is attached. - Returns whether the attachment is allowed. - Throwing an exception will effectively cancel the attachment. - - - - - Core implementation of the Advise methods family - - - - - Attaches to the underlying property, either in ctor or upon lazy-creation. - It's assumed that a lock is taken externally by the caller, as appropriate. - - - - - Shared part of the ctor. - - - - - Iterates on the sinks registered for handling the signal. - Invokes each in turn, maintaining the exception isolation. - - - - - When working over a property, checks for its changes, whether to notify the sinks of the event happening. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Locks writes/firings on the object by requiring all the modification attempts to provide a valid token equal to the given one. - It's an error to call this method more than once (without disposing of the previous result first). - - - A token that must be provided by all the parties trying to change the object state. - Null - is ignored and no precondition is set. - Undo token. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Fires the signal. - - The payload of the signal. Must not be default(TValue). - - - - Fires the signal. - - The payload of the signal. Must not be default(TValue). - A cookie for the of the underlying . - - - - Makes the object operable for writing/firing on the given thread only. - It's an error to call this method more than once (without disposing of the previous result first). - - - The thread to which the object should be affined for writing/firing from now on. - Undo token. - - - - Gets the identifier of this signal. - Getting the ID from the underlying property will lazy-create the property, while this getter is cheap. - - - - - Gets the underlying property of the signal. - - - - - Called after a new sink is attached. - - - - - Called after a sink is detached. - - - - - Called before a new sink is attached. - Returns whether the attachment is allowed. - Throwing an exception will effectively cancel the attachment. - - - - - Called after a new sink is attached. - - - - - Called after a sink is detached. - - - - - Called before a new sink is attached. - Returns whether the attachment is allowed. - Throwing an exception will effectively cancel the attachment. - - - - - An event arguments class with one typed constant value, plus one typed mutable value that can be changed by any consumer. - - Type of the incoming value that is constant and cannot be changed. - Type of the outgoing value that is intended to be set by the event sink. - - - - Constructs the universal event args with the parameter set to its predefined value. - - - - - Constructs the universal event args with the parameter set to Null. - - - - - Gets the event data specified by the event source. - Generally, it specifies which/how the data should be filled. - - - - - Data to be provided by the event sink, based on the event semantics and the value. - - - - - Allows to know when a dependency property value changes. - This is required for a two-way bridge between the Data Flow Properties and Dependency Properties. - We cannot easily get events for changes in dependency objects, but if we implement our own dependency object, we can bind it to the object of interest and get events when it changes. - - - - - Ensures that the property is of type . - - - - - Creates a new Data Flow Property ID, based on the dependency property identity. - - - - - Gets the Data Flow Property that mirrors the outer dependency property. - - - - - An infrastructure property that exposes the bridging dependency property. - - - - - Wraps a into an . - - - - - Creates an that is synchronized to an Avalon property. - - Type of the property value. Must coincide to the dependency property type. - - The owning instance for the dependency property. - The property identifier. - Whether to sink the events from the owning object about the updates of the requested property. - The wrapping property. - - - - Creates an that is synchronized to an Avalon property. - - Type of the property value. Must coincide to the dependency property type. - - The owning instance for the dependency property. - The property identifier. - If not Null, the specified event will be sinked from the object. - The wrapping property. - - - - Flows DataFlow property values into a dependency property. - - The source DataFlow property. - The dependency object that owns the property container. - The target property identifier for the property container. - Undo token for the binding. - - - - Flows DataFlow property values into a dependency property. - - The source DataFlow property. - Lifetime for the flow. - The dependency object that owns the property container. - The target property identifier for the property container. - Undo token for the binding. - - - - Flows DataFlow property values into a dependency property. - - The source DataFlow property. - Lifetime for the flow. - The dependency object that owns the property container. - The target property identifier for the property container. - Applies conversion. - Undo token for the binding. - - - - Binds two properties in the forward direction. - - - - - Binds two properties in the backward direction. - - - - - A property that tracks the changes, validates new values being assigned, and notifies of the change. - - Type of the property. - - - - Gets the property value. - - The current property value, whose nullability depends on . - - - - Gets the property value. - - An optional cookie that comes along with the notification events data. - The current property value, whose nullability depends on . - - - - Sets the property value, validates, notifies the sinks. - - The desired value of the property, whose nullability depends on . - Whether the value has actually been set (was not cancelled by the handlers). - - - - Sets the property value, validates, notifies the sinks. - - The desired value of the property, whose nullability depends on . - An optional cookie that comes along with the notification events data. - Whether the value has actually been set (was not cancelled by the handlers). - - - - Gets the signal that fires when someone attempts to change the property value. - Allows to cancel the change, either silently (by setting to True) or by throwing an exception from the handler. - The handler is first called when sinking, and sinking is cancelled if the handler fails to pass the current value of the property. - - - - - Gets the signal that fires when the sink's view on the property value changes. - Note that the view changes from N/A to whatever value upon sinking, and back upon unsinking. - - - - - Gets the identifier of this property. - - - - - Gets or sets the value by wrapping the and calls. - - - - - Gets whether the property can store NULL values of reference types and zero values of value types. - - - - - Creates a property in the bag, or picks an existing one. - - An identifier for the property. - Default value to assign to the property initially. - Whether Null values are accepted by the property. - The newly-created property, or an existing one, if available. - - - - Tries to remove an existing property from the bag, returns whether successful (ie there really was such a property in the bag). - - - - - Gets the nongeneric version of the API to this object. - - - - - Binds together two s. - - - - - Executes the binding by copying the source value to the target value. - - - - - Executes the binding by copying the source value to the target value. - - - - - Gets the binding source. - - - - - Gets the binding target. - - - - - Gets the nongeneric version of the API to this object. - - - - - Gets the binding direction. - - - - - A non-generic version of the interface for automated bulk processing. - - - - - Executes the binding by copying the source value to the target value. - - - - - Executes the binding by copying the source value to the target value. - - - - - Gets the binding direction. - - - - - Gets the binding source. - - - - - Gets the binding target. - - - - - A simple that has no payload. - Stands for the simple -based event, but encapsulates the firing method, can take part in data flow, can be fired by an external user. - Suitable for use in MVC's codebehind, when the event should be fireable by the views. - - - - - Fires the signal. - - - - - A non-generic version of the interface for automated bulk processing. - - - - - Gets the property value. - - An optional cookie that comes along with the notification events data. - The current property value, whose nullability depends on . - - - - Sets the property value, validates, notifies the sinks. - - The desired value of the property, whose nullability depends on . - An optional cookie that comes along with the notification events data. - Whether the value has actually been set (was not cancelled by the handlers). - - - - Gets the signal that fires when someone attempts to change the property value. - Allows to cancel the change, either silently (by setting to True) or by throwing an exception from the handler. - The handler is first called when sinking, and sinking is cancelled if the handler fails to pass the current value of the property. - - - - - Gets the signal that fires when the sink's view on the property value changes. - Note that the view changes from N/A to whatever value upon sinking, and back upon unsinking. - - - - - Gets the identifier of this property. - - - - - Gets whether the property can store NULL values of reference types and zero values of value types. - - - - - Gets the type of the generic property. - - - - - Gets the generic version of the API to this object ( specialized with ). - - - - - Fires when the property disposes. - This event does not acknowlegde subscriptions. - - - - - Creates a property in the bag, or picks an existing one. - The type is inferred from the generic data constant type . - - An identifier for the property. - Default value to assign to the property initially. - - The newly-created property, or an existing one, if available. - - - - Tries to remove an existing property from the bag, returns whether successful (ie there really was such a property in the bag). - - - - - Serves two things: converts an into an , and allows to replace a try…finally construct with a using, which keeps the opening/closing actions together. - - - - - A disposable class that does nothing on . - - - - - Enters the TryFinally bracket. - The action is executed immediately, the one is executed when the return value is disposed of. - The disposal is optional, the action will not be executed unless you explicitly call . - Exceptions in actions are trapped. - - An action that opens the two-action bracket. Executes immediately on enter. - An action that closes the two-action bracket. Executes when you dispose of the return value. - Whethe we must catch exceptions in and and log them or throw futher - A token that executes the action when you dispose of it. Disposal is optional. - - - - Emulates behavior of nested disposables with proper exception throwing, so - - using (CreateCompositeDisposable(() => Cookie1(), () => Cookie2())) - { - ... - } - - - is analogous to - - - using (Cookie1()) - { - using (Cookie2()) - { - ... - } - } - - - - inheritor of disposable for client code simplification - functions that returns disposables - Disposable that is analogous to nesting disposables in arguments - - - - Enters the TryFinally bracket. - The action is executed when the return value is disposed of. - The disposal is optional, the action will not be executed unless you explicitly call . - Exceptions in actions are trapped. - - An action that closes the two-action bracket. Executes when you dispose of the return value. - A token that executes the action when you dispose of it. Disposal is optional. - - - - Enters the TryFinally bracket. - The action is executed when the return value is disposed of. - The disposal is mandatory, an exception is reported if the action is executed by the finalizer. - Exceptions in actions are trapped. - - Identifies the activity or its owner in case it fails or gets into the finalizer. - An action that closes the two-action bracket. Executes when you dispose of the return value. - Optional message to throw out as an exception in case of a missed dispose. If omitted, the default exception will be issued, including the object in its text. If you replace the message, it's up to you whether to include the identifier with the message text. - A token that executes the action when you dispose of it. Must be disposed of. - - - - Enters the TryFinally bracket. - The action is executed immediately, the one is executed when the return value is disposed of, or when the finalizer for the object is called. - The disposal is mandatory, an exception is reported if the action is executed by the finalizer. - Exceptions in actions are trapped. - - Identifies the activity or its owner in case it fails or gets into the finalizer. - An action that opens the two-action bracket. Executes immediately on enter. - An action that closes the two-action bracket. Executes when you dispose of the return value. - Optional message to throw out as an exception in case of a missed dispose. If omitted, the default exception will be issued, including the object in its text. If you replace the message, it's up to you whether to include the identifier with the message text. - A token that executes the action when you dispose of it. Must be disposed of. - - - - Enters the TryFinally bracket. - The action is executed immediately, the one is executed when the return value is disposed of, or when the finalizer for the object is called. - The disposal is mandatory, an exception is reported if the action is executed by the finalizer, on the same thread as the opening action, if possible. - Exceptions in actions are trapped. - - Identifies the activity or its owner in case it fails or gets into the finalizer. - An action that opens the two-action bracket. Executes immediately on enter. - An action that closes the two-action bracket. Executes when you dispose of the return value. - Optional message to throw out as an exception in case of a missed dispose. If omitted, the default exception will be issued, including the object in its text. If you replace the message, it's up to you whether to include the identifier with the message text. - A token that executes the action when you dispose of it. Must be disposed of. - - - - An stub. - - - - - An adapter for an (or a pair of actions) that supports finalization. - Must be disposed of, otherwise, the finalizer will report an error and invoke the closing action. - - - - - An adapter for an (or a pair of actions) that does not support finalization. - Nothing happens if the object is not disposed of. - - - - - Identifies the owner of a finalizable object. - For non-finalizables this is optional (reverts to the default name). - - - - - Optionally, captures the originating stack trace for the debugging needs. - - - - - Defines the opening and closing bracket actions. - - - - - Exec the closing part. - - - - - Exec the opening part. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Non-Null if need to marshal from dtor. - - - - - Defines the opening and closing bracket actions. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - An exception thrown from the class, or any other finalizer representing a missed or some other problem in dispose. - - - - - ID of the object that caused the exception. - - - - - Logs the error of a missed or failed dispose into the with . - - The failed object identity. - The failure explanation message. - The stack trace where the object were created, if available. - - - - Logs the error of a missed or failed dispose into the with . - - The failed object identity. - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - 2 - - - - A lifetime that never ends. Scheduling actions on such a lifetime has no effect. - Do not call on such a lifetime, because it will not hold your object forever. - As requires a parent lifetime, the lifetime that has no parent is rooted under . Thus, this eternal lifetime is the parent of all the other lifetimes. - - - - - A lifetime that never ends. Scheduling actions on such a lifetime has no effect. Its always yields False. - Do not call on such a lifetime, because it will not hold your object forever. - As requires a parent lifetime, the lifetime that has no parent is rooted under . Thus, this eternal lifetime is the parent of all the other lifetimes. - - - - - The definition of the eternal lifetime. - Calling on such a definition is allowed, but has no effect. Its always yields False. - - - - - Represents the lifetime of the objects which have an explicit span of life and have actions to be executed upon termination. In that, replaces the pattern. - Objects get their lifetime in constructor and schedule termination actions on it. Instead of calling , the owner of the object terminates the lifetime it has given to the object with . - If a function gets lifetime in parameters, the lifetime defines the duration of the effect of the function. For instance, adding an item to the collection under a lifetime means the item should be reclaimed from the collection when the lifetime ends. It is highly recommended to introduce lifetimed functions to APIs instead of pairing Register-Unregister methods, because this has far better guarantees on proper pairing of the activities on part of API users. - To create a lifetime, use or its overloads. Usually you should have a parent lifetime (component lifetime, etc) to pass in. You get the object which means that you own this lifetime and can terminate it at your discretion. Take the lifetime itself out of it and pass to owned objects so that they were bound to your lifetime, but could not end it prematurely. In the rare cases when the child object might have its own lifetime considerations (i. e. a user-closeable non-modal dialog), pass the lifetime definition and be ready to handle its termination by the child object. - If you need a function-scoped lifetime, like the using{} construct for , use the method. - - - - - Whether to throw if something it being scheduled on a terminated lifetime. - - - - - If the actions scheduled on a terminated lifetime should be executed immediately (for actions; brackets are just ignored; disposes are disposed; etc). - - - - - Stores the items to execute upon termination. - Access must be synchronized thru . - - - - - Logging facility for issues reported by this lifetime. - For example, exceptions in lifetime termination activities should not prevent the rest of activities from being executed; such exceptions are reported to the logging facility. - - - - - Schedules an object to be disposed of when the lifetime gets terminated. - Upon termination, scheduled activities are executed in the reverse order (LIFO). - Fluent. - - - - - Throws an exception reporting that we're attempting to schedule on an already-terminated lifetime. - Adds lifetime ID if available. - - - - - Schedules an to be executed of when the lifetime gets terminated. - Upon termination, scheduled activities are executed in the reverse order (LIFO). - Fluent. - - - - - Opens a bracket of actions on the lifetime. The opening one is executed immediately, and the closing one executes when the lifetime gets terminated. - All of the brackets added on the same lifetime are properly nested, as if on a stack (LIFO). - Fluent. - - - This method is roughly equivalent to writing an opening action contents in the code and doing for the closing one. - Its use is to visually highlight two groups of statements, one being an “undo sequence” for another, which helps with treating them as a solid group when reading or refactoring the code. - - - - - Keeps the alive and prevents it from being garbage collected for the duration of the lifetime. - Fluent. - - - - - Nests one lifetime within another. - The difference with just adding an action for terminating the nested lifetime to the parent lifetime is that with repeated use of short-lived nested lifetimes such actions will grow limitlessly within the parent lifetime. - This method cleans up the parent lifetime's schedule for terminating the nested lifetime whenever the nested lifetime terminates prematurely. - Internal: use methods like to define lifetimes nested in other ones. - - The nested lifetime to be attached to this lifetime. - Whether the nested lifetime could be expected to be terminated by smb. Possible cases: in whose atomic action the nested lifetime is scheduled for termination on another thread. In such a case the caller check if the nested has been terminated doesn't help because the termination occurs async. Without this flag, it's an error to pass in a terminated lifetime. With this flag, it's silently ignored. Anyway, the behavior is thread-safe. - - - - Terminates this lifetime. For calling by only. - Only an owner of is allowed to terminate a lifetime. - - 2 - - - - The instance of the eternal lifetime object. Get thru . - - - - - Gets whether this lifetime has already been terminated. - It's an error to continue scheduling on a terminated lifetime. - - - - - An interface to the lifetime that only lifetime owner has. Allows to terminate the lifetime. - Take the property value to pass to methods or child objects that need the lifetime, or schedule any actions on it. - - - The interface itself allows to schedule actions on the lifetime, but does not allow to terminate it, because it has been defined by the owner and only owner knows when to end the lifetime. - - - - - Terminates the lifetime. All of the actions and disposes scheduled on this lifetime are executed, and all nested lifetimes are terminated. These activities are performed in the reverse scheduled order, so that the last entry scheduled is executed first (LIFO). - - - - - Gets whether this lifetime has already been terminated. - It's an error to continue scheduling on a terminated lifetime. - - - - - Gets the lifetime defined by this instance. - - - - - Adds an object that will be disposed of when the enclosing object is disposed of. - Returns self to allow queueing the additions. - - - - - Adds an object that will be disposed of when the enclosing object is disposed of. - Returns self to allow queueing the additions. - - - - - Adds a series of objects to be schedulled for disposal upon termination of the lifetime. - It is preferrable to pass the lifetime object in the constructor of the object to be terminated rather than to dispose the object explicitly. If this is your own object, it should usually be refactored to take a lifetime instead of exposing an interface. - Fluent. - - - - - If this lifetime never gets terminated (and all the references to it get lost), reports an exception to the logger. - The lifetime will not be terminated automatically, because this is not a lifetime definition. See Remarks for options. - Note that this method means certain load on the finalization queue, and can degrade performance if used in large amounts. - Fluent. - - - As this method operates on a object you do not own, it cannot terminate the lifetime automatically when a missed termination is detected. - If you need to ensure the lifetime is terminated, get a and call or on it. - If you only have a lifetime and no definition, for example you have been given a lifetime in the component constructor, define a new lifetime (within the lifetime you got, with ). Now you have a definitions to call the Ensure… methods on. Schedulle all of the termination-critical actions on this newly-defined lifetime. - - - - - If this lifetime never gets terminated (and all the references to it get lost), reports an exception to the logger and terminates the lifetime on the same thread this method was called. - Note that this method means certain load on the finalization queue, and can degrade performance if used in large amounts. - Fluent. - - - The calling thread must have a for which async operations are not prohibited (see ). - Also, if the shutdown is already in progress, the thread might not have a chance to process the request. - These limitations result from schedulling the request with . - Use this method if it's critical for you to terminate on the same thread (e.g. with COM Interop). Otherwise, prefer . - - - - - - - If this lifetime never gets terminated (and all the references to it get lost), reports an exception to the logger and terminates the lifetime on the finalizer thread. - Note that this method means certain load on the finalization queue, and can degrade performance if used in large amounts. - Fluent. - - This method might not be suitable if you're guarding COM Interop termination or similar things because of their thread affinity. Consider using if this is the case. - - - - - - Throws an exception if the lifetime has already been terminated ( is True). - - - - - Logs an exception if the lifetime has already been terminated ( is True), and continues execution. - - - - - Throws an exception if the lifetime has already been terminated ( is True). - - - - - Logs an exception if the lifetime has already been terminated ( is True), and continues execution. - - - - - Throws an exception if the lifetime has already been terminated ( is True). - - - - - Logs an exception if the lifetime has already been terminated ( is True), and continues execution. - - - - - Opens the nested lifetime. It will be terminated whenever this lifetime is terminated. - Note: unlike adding a new lifetime to this one, the nested lifetime will be forgotten upon termination. This allows to open short-lived nested lifetimes repeatedly without overpolluting the parent lifetime. - - - - - s factory. - - - - - Scopes your code in with a lifetime that is terminated automatically when completes execution, or when its execution is aborted by an exception. - Analogous to the using statement of the C# language on everything that is added to the lifetime. - - The code to execute with a temporary lifetime. - - - - Scopes your code in with a lifetime that is terminated automatically when completes execution, or when its execution is aborted by an exception. - Analogous to the using statement of the C# language on everything that is added to the lifetime. - - The code to execute with a temporary lifetime. - - - - Executes the in the transactional manner: if an exception is thrown, all of the added during the execution are rolled back, and the exception is let out; in case of no exception, the produced by the are returned. - The created for the are of the optional sort. - - - - - Defines a new lifetime nested within the you pass in. - - - In most cases, you should have some lifetime to use as a parent, such as the lifetime of your component. If this is not the case, and you just need a function-scoped lifetime, call instead. It is terminated automatically when your action ends and thus does not need a parent. - If the lifetime you're created is really not parented by any other lifetime, use the as a parent. - - - The parent lifetime. - The newly-created lifetime will be nested within the parent lifetime and thus terminated automatically when the parent lifetime ends (unless the nested lifetime is terminated first). - Nested lifetimes are listed within the parent lifetime, but as they're terminated, the records are removed. There will be no memory leak on the parent lifetime if the nested lifetimes are terminated. - - - Optional. The ID of the lifetime. - Used for tracking and debugging. If the call stack annotations feature is ON, this ID will appear on the call stack when the lifetime object starts executing schedulled actions upon termination. - In case of nested lifetimes and if schedulled actions are anonimous in their nature, it might be hard to tell what's happening from exception stack traces without this annotation. You're encouraged to specify IDs wherever such situations are suspected, but the IDs should better be statically defined (to avoid memory leaks on part of the call stacks annotation engine). - If omitted, the default or the should type name is used, depending on the context. - - - Optional. The code to be executed atomically on the newly-created lifetime. - If this code succeeds (or is not specified), the definition of the new lifetime is returned from the method. - If this code fails with an exception, the newly-created lifetime is terminated, all of the schedulled actions are executed (rolling back any activities already bound to the lifetime), the nested lifetime is not registered no the parent, and the exception is let out of this method. - - Optional logging facility override for the new lifetime.For example, exceptions in lifetime termination activities should not prevent the rest of activities from being executed; such exceptions are reported to the logging facility. - - The definition to the new lifetime. - As you own the lifetime, you can terminate it through this defintion at any time. - To pass the lifetime to objects&functions or schedulle termination actions on it, get it from the property. Do not pass the definition itself to child objects, unless this is the intended scenario to allow them to terminate the lifetime upon their discretion (e. g. a user-cancelable non-modal dialog). - - - - - - Creates an intersection of some lifetimes — a lifetime to terminate when either one terminates. - - - - - Creates an intersection of some lifetimes — a lifetime to terminate when either one terminates. - - - - - Synchronizes termination of two lifetime definitions. - Whenever any one is terminated, the other will be terminated also. - - - - - Creates a simple lifetime. - - - - - Creates a disposable container that either requires that it is disposed at some moment ( = True) or just functions as a one-time composite without any obligations ( = False). - - False. - - - - Creates a disposable container that must be disposed of. - If the method is never called, an exception is reported from the finalizer. - - An arbitrary string tag that helps to identify the origin of a particular disposables container that never gotten disposed of. - - - - Creates a disposable container that either requires that it is disposed at some moment ( = True) or just functions as a one-time composite without any obligations ( = False). - - An arbitrary string tag that helps to identify the origin of a particular disposables container that never gotten disposed of. - Whether the disposal is mandatory for the container. If yes, a finalizer is created that will report an exception. If no, the object does not add a strain to the finalization queue and does not do any implicit dispose on finalization. - - - - Adds an object that will be disposed of when the enclosing object is disposed of. - Returns self to allow queueing the additions. - - - - - Adds an action to be executed when the container is disposed of. - - - - - Adds a bracket of actions. The opening one is executed immediately, and the closing one — when the enclosing object is disposed of. - - - - - Holds a reference to the given object until the container is disposed of. - - - - - Gets whether the container is empty of any disposable items. - This means that the object is in either non-initialized or already-disposed state. - The container is not eligible for finalization in this state. - - - - - TODO: implement live hashset with multiple occurrenceos of elements. - - - - - Similar to on , but live: as you have a live collection of providers each giving a live collection of items, builds a live flat collection of items from all the providers. - - Provider type (has a collection of items inside). - Item type. - Live collection of providers. - - How to get the live collection of items out of each provider. - The live flat collection of items from all the providers. - - - - Bridges two ordered lists of items. - The items flow from the first collection to the second one. Conversion and filtering is supported on the items. - The order of projected items in the target list is kept in sync with the original items order. - - Type of the source collection items. - Type of the target collection items. - - - - Stores the mapping from indices in the list to those in the list. - Indices in correspond to those in , values — to those in . - A value -1 means that the source item is missing from the target list (has been filtered out). - Items of the target collection missing from the source one (like those manually added) are just missing from the map. - - - - - An optional map, can be Null if item-mapping is not needed. - - - - - Wires up the bridge. - - Lifetime for the bridge. - The source collection. - The target collection. - The conversion operator. - The mapping filter to exclude selected items from the target collection. - Specifies whether the projection mapping information is maintained by the bridge. - An otpional cookie to be passed to the collection when performing modification operations on it. - - - - Gets whether the projection mapping information is maintained by the bridge. - - - - - Gets the read-only source-to-target mapping. - Available only if . Otherwise, throws a . - - - - - Gets the read-only target-to-source mapping. - Available only if . Otherwise, throws a . - - - - - Gets the source list. - - - - - Gets the target list. - - - - - Supplimentary class for the utility. - - - - - Mirrors one list into another thru a converter. - - - - - Specifies which mapping info should be collected by the bridge. - The mapping allows to translate source items into target ones and vice versa. - - - - - No mapping information collected. No translation possible. - Wastes less memory. - - - - - Full mapping information collected. - Self-checks for consistency are also made on the mapping. - - - - - A list that fires events when items are added or removed. - - List values type. - (yes, nongeneric) was added to support WPF scenarios eg XAML [de]serialization. is also here for WPF support. - - - - Sync thru . - - - The storage must be passed to the base class in ctor, for the collection operations to work on the same data. - - - - - The universal constructor. - Constructs the list over some list-like backing storage. - Specifies whether items in the list must be unique (note: this option is performance-costly). - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - Logging facility optional override. - - - - Constructs the list over some list-like backing storage. - Specifies whether items in the list must be unique (note: this option is performance-costly). - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - - - - Constructs the list over some list-like backing storage. - Specifies whether items in the list must be unique (note: this option is performance-costly). - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - - - - Constructs the list over some list-like backing storage. - Specifies whether items in the list must be unique (note: this option is performance-costly). - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - The underlying collection, all the operations will be relayed to it. - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - - - - Creates a new list that does not allow duplicate items, with a simple list storage inside. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Creates a new list that does not allow duplicate items, with a simple list storage inside. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Creates a new list with a simple list storage inside. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - - - - Creates a new list with a simple list storage inside. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - - - - Creates a new list with a simple list storage inside. - - - Defines the lifetime for the collection. - When lifetime terminates, all of the handlers of the collection events are forcibly detached, which helps with preventing memory leaks. - - - An unique identifier for the list, to tell it apart in data flow chains. - If callstack annotation is on, will appear on callstacks when collection is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - If True, adding an item that is already present in the list is not allowed (unless , an exception is thrown). If False, the duplicate item is just added to the list. - - - - Fires the event. - - - - - Fires the event. - Returns whether the operation has been cancelled. - - - - - One of the core methods that implement the actual List functionality. - - - - - One of the core methods that implement the actual List functionality. - - - - - Ackhowledges the handler. - - - - - Ackhowledges the handler. - Cannot be merged with because the iteration should go in the reverse order. - - - - - Called when someone attempts to sink the signal. Acknowledges the handler. - - - - - One of the core methods that implement the actual functionality. - - - - - One of the core methods that implement the actual functionality. - - - - - Determines the index of a specific item in the . - - - - The index of item if found in the list; otherwise, -1. - - - The object to locate in the . - - - - Inserts an item to the at the specified index. - - - The object to insert into the . - The zero-based index at which item should be inserted. - The is read-only. - index is not a valid index in the . - - - - A universal method for modifications on the collection. Useful for data flow between the collections, when signal handler is pumping into another collection. - - Whether to add or remove the item. - The item to add or remove. - The index at which the modification should occur. - The optional modification cookie. - Success code. - - - - A universal method for modifications on the collection. Useful for data flow between the collections, when signal handler is pumping into another collection. - - Whether to add or remove the item. - A function that is called only when doing the operation and produces the new item to be added to the list. This allows to create a new item when pumping from one collection to another with creating the wrappers simultaneousely. - The index at which the modification should occur. - The optional modification cookie. - Success code. - - - - Removes the item at the specified index. - - - The zero-based index of the item to remove. - The is read-only. - index is not a valid index in the . - - - - Gets or sets the element at the specified index. - - - - The element at the specified index. - - - The zero-based index of the element to get or set. - index is not a valid index in the . - The property is set and the is read-only. - - - - Fires when an item is added or removed to your view on the collection. - Throwing an exception does not prevent the item from being added or other handlers from being called. - The event supports acknowledgement, which means that when you sink the event, all of the items currently in collection come into your view on the collection, so the add is fired for each. Similarly, remove is fired when you unsink and all of the elements go away from your view on the collection. - - - - - Fires before an item is added or removed. - To prevent the add/remove operation, set to True (decline the operation silently) or throw an exception (the exception is let out to the caller). - After the first handler to cancel the operation, the remaining handlers may not be called. - No are guaranteed to be executed if the operation is cancelled. - - - - - Creates properties bound to simple .NET properties or other manual data sources. - - - - - Creates a set-only property manually-bound to some external source via delegates. - A set-only property is useful for placing at the end of the data flow. - - Type of the property. - An identifier to tell the property apart. - External value setter. - - - - Creates a set-only property manually-bound to some external source via delegates. - A set-only property is useful for placing at the end of the data flow. - - Type of the property. - Lifetime for the property. - An identifier to tell the property apart. - External value setter. - - - - Creates a property manually-bound to some external source via delegates. - - Type of the property. - An identifier to tell the property apart. - The initial value for the property. - External value setter. - - - - Creates a property manually-bound to some external source via delegates. - - Type of the property. - Lifetime for the property. - An identifier to tell the property apart. - The initial value for the property. - External value setter. - - - - Creates a property manually-bound to some external source via delegates. - - Type of the property. - An identifier to tell the property apart. - External value getter. - External value setter. - - - - Creates a property manually-bound to some external source via delegates. - - Type of the property. - Lifetime for the property. - An identifier to tell the property apart. - External value getter. - External value setter. - - - - Defines how the data flow is marshalled to another thread. - - - - - Any data flow occurs asynchronously, even within a single thread. - - - - - Only cross-thread data flow is async, within a single thread it works just like a simple . - - - - - A property binding that marshals all of the updates to the primary thread. - - - - - Binds together two s. - - - - - The convertor implementation. - - - - - The convertor implementation. - - - - - Data flow direction, set to None initially to allow for initialization of the properties from their Null values. - - - - - Stores the source property in yet another property, to allow for changing it later. - - - - - Stores the target property in yet another property, to allow for changing it later. - - - - - Prevents recursion. - - - - - Creates a one-way binding. - - - - - Creates a one-way binding. - - - - - Creates a two-way binding. - - - - - Creates a two-way binding. - - - - - Creates a binding. - - - - - Creates a binding. - - - - - Creates a binding. - - - - - Creates a binding. - - - - - Creates a binding. - - - - - The ultimate ctor. - - - - - The default converter. - - - - - The default converter. - - - - - Executes the binding by copying the source value to the target value. - - - - - Executes the binding by copying the source value to the target value. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - An optional readonly cookie for reading and writing the source property values. - Null by default. - - - - - A freehand tag for marking the instance, mostly for the debugging needs. - - - - - An optional readonly cookie for reading and writing the target property values. - Null by default. - - - - - Gets or sets the binding direction. - - - - - Gets or sets the binding source. - - - - - Gets or sets the binding target. - - - - - Gets the binding source. - - - - - Gets the binding target. - - - - - The ultimate ctor. - - - - - Executes the binding by copying the source value to the target value. - - - - - Executes the binding by copying the source value to the target value. - - - - - Gets the dispatcher that defines the thread into which the operations are marshalled. - - - - - Gets or sets how the marshaller should behave, see for details. - - - - - The single instance of a Property whose value is always Null. - - - - - The single instance of a Property whose value is always Null. - - - - - Creates a new composite property that composes the values of two source ones. - - - - - Creates a new composite property that composes the values of two source ones. - - The source property. - The source property. - The composer that produces the target from the sources. - - - - - Creates a new composite property that composes the values of two source ones. - - - The source property. - The source property. - The composer that produces the target from the sources. - - - - - Composes a target value from two source ones. - - - - - When something changes, presents the details about the change. - - The identity of the item that changes. - The old and new values for the item. - - - - Gets the name of the entity that has changed, eg property name. - - - - - Gets the new value. - - - - - Gets the old value. - - - - - An event arguments class with one typed mutable value that can be changed by any consumer. - - Type of the outgoing value that is intended to be set by the event sink. - - - - Constructs the universal event args with the parameter set to its predefined value. - - - - - Constructs the universal event args with the parameter set to Null. - - - - - Data to be provided by the event sink, based on the event semantics. - - - - - A property that tracks the changes, validates new values being assigned, and notifies of the change. - - Type of the property. - - - - Stores the handlers. - Synth thru . - - - - - ID. - - - - - Determines whether the property can store NULL values. - - - - - The signal for the BeforeChange on the property. - - - - - The signal for the Change on the property. - - - - - Stores the value of the property. - Sync thru . - - - - - Initializes the roperty with the default initial value for its type. - The property will have Null values allowed, because it's required by the initial value of the property. - - - ID for the property. Allows to tell properties apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when property is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Initializes the roperty with the default initial value for its type. - The property will have Null values allowed, because it's required by the initial value of the property. - - - Defines the lifetime for the property. - When lifetime terminates, all of the handlers of the property events are forcibly detached, which helps with preventing memory leaks. - - - ID for the property. Allows to tell properties apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when property is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - - Initializes the roperty with the initial value. - The property allows Null values if it's of a value type, and does not allow Null values if it's a reference type (unless explicitly initialized with Null). - - - ID for the property. Allows to tell properties apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when property is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - The initial value of the property. - If set to a non-Null value (of a reference type), the property will not allow setting Null values at runtime ( = False). - - - - - Initializes the roperty with the initial value. - The property allows Null values if it's of a value type, and does not allow Null values if it's a reference type (unless explicitly initialized with Null). - - - ID for the property. Allows to tell properties apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when property is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - The initial value of the property. - If set to a non-Null value (of a reference type), the property will not allow setting Null values at runtime ( = False). - - - - - Initializes the roperty with the initial value. - The property allows Null values if it's of a value type, and does not allow Null values if it's a reference type (unless explicitly initialized with Null). - - - Defines the lifetime for the property. - When lifetime terminates, all of the handlers of the property events are forcibly detached, which helps with preventing memory leaks. - - - ID for the property. Allows to tell properties apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when property is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - The initial value of the property. - If set to a non-Null value (of a reference type), the property will not allow setting Null values at runtime ( = False). - - - - - The ultimate ctor. - Initializes the roperty with the initial value. - The property allows Null values if it's of a value type, and does not allow Null values if it's a reference type (unless explicitly initialized with Null). - - - Defines the lifetime for the property. - When lifetime terminates, all of the handlers of the property events are forcibly detached, which helps with preventing memory leaks. - - - ID for the property. Allows to tell properties apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when property is modified. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - Initial value for the property. Must agree to . - - Specifies whether Null values can be assigned to the property. Note that this applies to value types also; a Null-disallowing property will not allow assigning values of 0. - Overloads without this parameter use the Null value which means the default strategy: value types are allowed any values, and reference types are allowed Null values only if the initial is Null. - This fits nearly all the cases, and you're encouraged to use overloads which do not set this parameter explicitly. - - Logging facility optional override. - - - - Helper to throw an annotated exception whenever a property fails the readonly lock precondition. - - - - - Helper to throw an annotated exception whenever a property fails the threading affinity precondition. - - - - - Fires the event, in course of assigning a new value to the property. - If False, the transaction has been cancelled. - - - - - Fires the event, in course of assigning a new value to the property. - - - - - Fires the event to the pre-stored list of handlers. - - - - - Fires the event. - - - - - Fires the event. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Creates a new object that is a copy of the current instance. - - - - A new object that is a copy of this instance. - - 2 - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the property value. - - - - - Gets the property value. - - An optional cookie that comes along with the notification events data. - The current property value, whose nullability depends on . - - - - Sets the property value, validates, notifies the sinks. - - - - - Sets the property value, validates, notifies the sinks. - - The desired value of the property, whose nullability depends on . - An optional cookie that comes along with the notification events data. - Whether the value has actually been set (was not cancelled by the handlers). - - - - Gets the property value. - - An optional cookie that comes along with the notification events data. - The current property value, whose nullability depends on . - - - - Sets the property value, validates, notifies the sinks. - - The desired value of the property, whose nullability depends on . - An optional cookie that comes along with the notification events data. - Whether the value has actually been set (was not cancelled by the handlers). - - - - Fires when the property disposes. - - - - - Occurs when a property value changes. - - - - - Gets the signal that fires when someone attempts to change the property value. - Allows to cancel the change, either silently (by setting to True) or by throwing an exception from the handler. - The handler is first called when sinking, and sinking is cancelled if the handler fails to pass the current value of the property. - - - - - Gets the signal that fires when the sink's view on the property value changes. - Note that the view changes from N/A to whatever value upon sinking, and back upon unsinking. - - - - - Gets the identifier of this property. - - - - - Gets whether the property can store NULL values of reference types and zero values of value types. - - - - - Gets or sets the value by wrapping the and calls. - - - - - Gets the signal that fires when someone attempts to change the property value. - Allows to cancel the change, either silently (by setting to True) or by throwing an exception from the handler. - The handler is first called when sinking, and sinking is cancelled if the handler fails to pass the current value of the property. - - - - - Gets the signal that fires when the sink's view on the property value changes. - Note that the view changes from N/A to whatever value upon sinking, and back upon unsinking. - - - - - Gets the identifier of this property. - - - - - Gets the type of the generic property. - - - - - Handles the signals on the property events. - - - - - Acknowledges the sinks. - Returns whether the change is allowed. - - - - - Called before a new sink is attached. - Returns whether the attachment is allowed. - Throwing an exception will effectively cancel the attachment. - - - - - Handles the signals on the property events. - - - - - Acknowledges the given handler with the property value, either on add or remove of the handler. - - - - - Called after a new sink is attached. - - - - - Called after a sink is detached. - - - - - Tries to remove an existing property from the bag, returns whether successful (ie there really was such a property in the bag). - - - - - Tries to remove an existing property from the bag, returns whether successful (ie there really was such a property in the bag). - - - - - Creates a property in the bag, or picks an existing one. - The type is inferred from the generic data constant type . - - An identifier for the property. - Default value to assign to the property initially. - Whether Null values are accepted by the property. - The newly-created property, or an existing one, if available. - - - - A non-generic static class that helps creating specific property bindings. - - - - - Gets a cached instance of a property that always has the same value. - - - - - Gets a cached instance of a property that always has the same value. - - - - - Gets a cached instance of a property that always has the same value. - - - - - Creates a two-way property binding. - Initially, will be assighned the value of . - - - - - Creates a two-way property binding. - Initially, will be assighned the value of . - - - - - Creates a two-way property binding. - Initially, will be assighned the value of . - - - - - Creates a two-way property binding. - Initially, will be assighned the value of . - - - - - Creates a two-way property binding. - Initially, will be assighned the value of . - - - - - Creates a simple many-to-one binding. - - - - - Creates a simple many-to-one binding. - - - - - Creates a simple many-to-one binding. - - - - - ANDs two boolean properties. - - - - - ANDs two boolean properties. - - - - - Binds two properties to a third by ANDing their values. - - - - - Creates a cascading binding, Owner.Source ↔ Target, where Source is a property inside the Owner. Owner may change, and each time the Source is taken from the new Owner, and its changes are tracked. - - Lifetime for the binding. - The owner object that may change with time, from which the Source for the binding is extracted by the means of the converter. Its value may become Null. - A function that knows how to find a source for the binding in each new . The owner object passed to it is always non-Null, because the value is used automatically when 's value gets Null. - When the 's gets Null, this property is used for the binding source instead. - The target property for the binding. - Binding direction. - - - - Creates a bool property that is bound to whether is not Null. - - - - - Creates a bool property that is bound to whether is Null. - - - - - Creates a binding that negates a value of the boolean property. - The negated property is created inplace, and returned as a result. - - - - - ORs two boolean properties. - - - - - Binds two properties to a third by ORing their values. - - - - - Gets the single instance of a Property whose value is always Null. - - - - - Establishes a one-way property binding that defers application of the changes for some grace period. - If a new change occurs within the grace period, the period is prolongated. - - - - - The ultimate ctor. - Wires up the binding. - - Lifetime of the binding. Recommended, but not 100% necessary, as the timer is held on weak ref. - The source property. - The target property. - The grace period for the changes to be withheld and accumulated. - An optional cookie for the 's write access. - - - - Gets or sets the grace period in which the changes to the are accumulated. - - - - - Immediately applies the pending changes, if there are any. Otherwise, does nothing. - - - - - Gets whether there currently are any pending changes. - - - - - Gets the binding source. - - - - - Gets the binding target. - - - - - A typed identifier for a that specifies the property name and sets its type. - Works as a typesafe accessor. - - - - - The untyped base class for a property identifier. - - - - - Creates a new strongly-typed property ID. - - - - - Gets the non-empty identifier text. - - - - - Creates the identifier. - - A non-empty string identifier. - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets the non-empty identifier text. - - - - - Maintains a sequence of lifetimes, so that the previous lifetime is closed before the new one is opened. - Good for implementing a sequence of non-simultaneous activities when it's nice to guarantee only one is active at a time. - - - - - Creates and binds to the lifetime. - - When this lifetime is closed, the last of the sequential lifetimes is closed too. - - - - Terminates the current lifetime and calls your handler with the new lifetime. - - - - - Terminates the current lifetime and calls your handler with the new lifetime. - The lifetime definition allows to terminate it as desired. Also, the lifetime will be terminated when either parent lifetime is terminated, or is called, or / is called. - - - - - Terminates the current lifetime. - - - - - Atomically, assigns the new lifetime and terminates the old one. - - - - - Pulled out to avoid swarming separate instances for different generic params. - - - - - A simple that has no payload. - Stands for the simple -based event, but encapsulates the firing method, can take part in data flow, can be fired by an external user. - Suitable for use in MVC's codebehind, when the event should be fireable by the views. - - - - Creates the signal. - - ID for the signal. Allows to tell signals apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when signal is fired. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - Creates the signal. - - Defines the lifetime for the signal. - When lifetime terminates, all of the handlers are forcibly detached, which helps with preventing memory leaks. - - - ID for the signal. Allows to tell signals apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when signal is fired. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - - - Creates the signal. - - Defines the lifetime for the signal. - When lifetime terminates, all of the handlers are forcibly detached, which helps with preventing memory leaks. - - - ID for the signal. Allows to tell signals apart at runtime and when debugging. - If callstack annotation is on, will appear on callstacks when signal is fired. Thus, only compile-time-defined values should be used, to avoid spawning too many dynamic methods at runtime. - - Optional logging engine override. - - - - Fires the signal. - - - - - Holds one disposable at most. When a new one is assigned, the old one goes away. - - - - - The current value. - - - - - Disposes of the current contained value, if any. - If you'd like to make sure the old value is disposed of BEFORE you evaluate the new one, either use or pipe a call before the call. This might be necessary for sequencing the disposables brackets, to close the previous bracked before opening the new one. - - - - - Disposes of the old contained value, and places a new one instead. - If you'd like to make sure the old value is disposed of BEFORE you evaluate the new one, either use or pipe a call before the call. This might be necessary for sequencing the disposables brackets, to close the previous bracked before opening the new one. - - - - - Disposes of the old contained value, and places a new one instead. - Guarantees that the old value is disposed of BEFORE the new value is evaluated by . - If you'd like to make sure the old value is disposed of BEFORE you evaluate the new one, either use or pipe a call before the call. This might be necessary for sequencing the disposables brackets, to close the previous bracked before opening the new one. - - - - - Disposes of the old contained value first. Then executes the action and schedulles for execution when the contained value is disposed of. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - A special object that locks property writes to the authorized owner, one who can provide the correct token. - Even though the token has a comment string, it's used for failure diagnostic only and does not affect tokens equality. Each new token instance is unique, regardless of the comment string. - - - - - Creates a special object that locks property writes to the authorized owner, one who can provide the correct token. - - Provides information about the readonly lock: who the owner of the lock is (usually, the owner of the locked object), and why the object is locked. - Even though the token has a comment string, it's used for failure diagnostic only and does not affect tokens equality. Each new token instance is unique, regardless of the comment string. - - - - Provides information about the readonly lock: who the owner of the lock is (usually, the owner of the locked object), and why the object is locked. - - Even though the token has a comment string, it's used for failure diagnostic only and does not affect tokens equality. Each new token instance is unique, regardless of the comment string. - - - - Some options related to entities, mostly for tests/debug. - - - - - Whether helper extension methods should use standard preconditions whenever possible. - True: production setting. Hard-coded standard preconditions are used wherever possible for speed. - False: test environment settings. Slower, but allows to test the code paths not available with standard preconditions. - - - - - Wraps a property with an event into an . - - - - - Returns a data flow property bound to a WinForms standard property (one usually coupled with an event). - - Source object type. - Property value type. - - The source winforms property owner. - Expression to retrieve property - Whether to sink the events from the WinForms property about its updates. Looks for an event with the {PropertyName}+“Changed” name. - - - - Returns a data flow property bound to a WinForms standard property (one usually coupled with an event). - - Source object type. - Property value type. - The source winforms property owner. - Expression to retrieve property - Whether to sink the events from the WinForms property about its updates. Looks for an event with the {PropertyName}+“Changed” name. - - - - Returns a data flow property bound to a WinForms standard property (one usually coupled with an event). - - Property value type. - The source winforms property owner. - The source winforms property name. - Whether to sink the events from the WinForms property about its updates. Looks for an event with the {PropertyName}+“Changed” name. - - - - Turns a value type into a reference type — similarly to , but the resulting type is a reference type not a value type. - - - - - Supports , mostly taken from . - - - - - A stream that resides in memory and allocates more chunks of data instead of reallocating the large continuous chunk. - - - - - Chunk buffers (non-zero-length only — required for index two-way translation). - - - - - The buffer from the is currently in. "Before first byte" is preferred to "After last byte" (even if at end of stream). Could be equal to number of buffers (eg pointing beyond the end of list of buffers) — when exactly at the end of the stream. - - - - - Offset of the from the beginning of its current buffer (). - Shouldn't be equal to current buffer length (should be zero in the next buffer instead). - - - - - Whether we're running on user buffers (as passed to ctor) and should not be modifying them. - - - - - Works similarly to . - Frees the unused buffers, but does not free the unused leftovers of the last buffer. - - - - - Gets the buffer and offset in it where the falls. - Offset can be zero and never can be equal to the length of the buffer. At the very end, the buffer index is equal to the number of buffers. - Returns -1 of OK and the total max length of the buffers-allocated space (including start offset) if the position does not fall within the allocated space. - - - - - Gets the buffer and offset in it where the falls. - Offset can be zero and never can be equal to the length of the buffer. At the very end, the buffer index is equal to the number of buffers. - Throws when the length is outside the buffers span. - - - - - Create chunk array with pre-allocated given size - - - - - - A frugal version of a generic variable-size list. - Properties: - • Is a value type (non-POD though), thus merges into the memory of the owning type. - • Stores first items within own memory. - • Stores the remaining items, if any, in a dynamic list. If there aren't any more items, the dynamic list is not created. - • Does not create any new objects when there are just 0,1... items in the list. - Memory: pointers for first items, plus one pointer for the lazily-created list of remaining items items. - - - - - Clones the list. - We're a value type, but not a POD. Unlike assignment, cloning also clones the tail list correctly. - Does NOT clone the items (unless they're PODs of course). - - - - - Collection which optmized to store single item without allocating array. - The collection cannot contain null elements! - - - - - Represents string that consists from other strings. The way of avoiding string concatenation and high memory traffic. - Works fast for small number of parts. Typical replace for: namespace + "." + typeName - - - - - Buffer that allows retrieval of contents by position - - - - - Logs disposable activities to a temporary file (%TEMP%\ReSharper_ActivityCollector-[time-and-random-stuff].txt) - Activity is with name. Basic usage pattern: - - var activity = ActivityCollector.GetEndpoint().StartActivity(new Key("activity name")) - [do some stuff] - activity.Dispose() - - After dispose call thread id, activity name, start time and end time will be written to log. - - - - - - - Linear anchoring constants. - - - - - Left or top, anchored outside the area. - - - - - Left or top, anchored inside the area. - - - - - Center or middle, anchored inside the area. Preferrably, in the center. - - - - - Right or bottom, anchored inside the area. - - - - - Right or bottom, anchored outside the area. - - - - - Describes the anchoring in two dimensions. - - - - - Backup for . - - - - - Backup for . - - - - - Backup for . - - - - - Backup for . - - - - - Backup for . - - - - - The raw value combining both vertical and horizontal anchoring. - - - - - Initializes from a raw value. - - - - - Initializes the instance. - - - - - Checks whether the given is one of the Far— anchorings, namely, or . - - - - - Checks whether the given is one of the Near— anchorings, namely, or . - - - - - Creates an array consisting of just one item. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets the list of anchoring to place the entity aside the anchor, preferrably, left, right, then bottom and top. - - - - - Gets the list of side-anchoring dispositions in descending order of preferrability. - The preferred side is bottom, then top, then right and left. - - - - - Gets the list of side-anchoring dispositions in descending order of preferrability. - The preferred side is right, then left. That's all. - - - - - Gets the list of side-anchoring dispositions in descending order of preferrability. - The preferred side is top, sides top to bottom, then bottom. - - - - - Gets the list of side-anchoring dispositions in descending order of preferrability. - The preferred side is top, then bottom, then left and right. - - - - - Gets or sets the hotizontal component of the anchoring. - - - - - Gets whether the anchoring is inside the rect against both dimensions. - - - - - Gets or sets the hotizontal component of the anchoring. - - - - - Murmur Hash, which is a public domain algorithm. - - - - - Murmur Hash, which is a public domain algorithm. - This version works on a buffer split into two parts. - - - - - Allows to negate a boolean expression when your caret is at the end, and then a Replace Pattern turns it into a simple "!" negation. - - - - - This class adapts to read-only involving count of items. Methods - and are not supported. - Used to optimize getting count of items only. Count is specified in constructor - it IS NOT counted automatically by enumerable. - - The type of the elements in the collection. - - - - Extension methods that mimic or extend the standard methods, sharing the same names. - Thus, this class MUST be in the same namespace, so that there were no problems when importing one of them at random. - - - - - Returns the first element of a sequence. - - The type of the elements of . - The to return the first element of. - The message for an exception to be thrown if the is empty. - The first element in the specified sequence. - - - - Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. - - The type of the elements of . - An to return a single element from. - The message for an exception to be thrown if the is empty. - The message for an exception to be thrown if the contains more than one element. - The single element of the input sequence that satisfies a condition. - - - - Reimplementation of Dictionary. - - - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Index of previous entry in the chain of keys with the same hashcodes (modulo size), -1 means first - - - - - Dictionary with for each operation. Can be serialized/deserialized seamlessly. - - - - - - Represents the exception that is thrown when you try to change the value of a read-only entity. - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Index of previous entry in the chain of keys with the same hashcodes (modulo size), -1 means first - - - - - Caches instances for popular types. - - - - - Implements the fibers (non-preemptive multitasking). - - - - - Common interface for various fiber incarnations. - - - - - Yields execution to this fiber. - - - - - Whether the fiber coroutine has started running and completed its run successfully. - A primary fiber is never considered completed, as its code has no specific end. - - - - - Whether this is the primary fiber, a wrapper over the thread's main execution flow, rather than a specifically created coroutine. - - - - - Creates a new secondary fiber. - - - - - Wraps the primary fiber. - - - - - Creates a new fiber to execute the in. - To start execution, this fiber. - - - - - Gets the primary fiber for this thread. It represents the main execution path of the thread. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Yields execution to this fiber. - - - - - Whether the fiber coroutine has started running and completed its run successfully. - A primary fiber is never considered completed, as its code has no specific end. - - - - - Whether this is the primary fiber, a wrapper over the thread's main execution flow (), rather than a specifically created coroutine (). - - - - - Fiber proc prototype. Cannot use a generic for marshalling. - - - - - Manages multiple threads of execution via fiber-like API. - - - - - The current fiber for this thread, or Null if no active one available. - - - - - Primary. - - - - - Secondary. - - - - - Creates a new fiber to execute the in. - To start execution, this fiber. - - - - - Gets the primary fiber for this thread. It represents the main execution path of the thread. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Yields execution to this fiber. - - - - - Whether the fiber coroutine has started running and completed its run successfully. - A primary fiber is never considered completed, as its code has no specific end. - - - - - Whether this is the primary fiber, a wrapper over the thread's main execution flow, rather than a specifically created coroutine. - - - - - Provides support for several common patterns of lazy initialization, including the ability to initialize value types and to use null values. - This is a frugal version of and that does not create any objects until the lazy value is initialized to a reference type. - This class only supports creating reference types with default constructors in a thread-unsafe manner, but its added memory usage is exactly zero (it takes as much space in the containing class as a field with a reference to the lazily-created value would do). - For use in private fields only. Do not expose! Assigning this object to any variables breaks the pattern. - - Specifies the type of element being laziliy initialized. - - - - Defines the guarded context affinity of the method: whether it expects to be always executed in a guarded context, or is considered an “outer world” method. - - - - - Defines the guarded context affinity of the method: whether it expects to be always executed in a guarded context, or is considered an “outer world” method. - - - - - ReentrancyGuardContext - Defines the guarded context affinity of the method: whether it expects to be always executed in a guarded context, or is considered an “outer world” method. - - - - - There is no information regarding guarded context affinity yet. - - - - - Must be guarded from reentrancy. Make sure to either take a or call it from the guarded context. - - - - - Assumed to be executed in the “outer world” and must tage a before calling any things. - - - - - Does not deal with entities and can thus be used both in guarded and unguarded contexts. - - - - - Neither nor nor . - - - - - In the local scope, prevents reentrancy with own methods only. - Thread-safe. - - - - - Executes the action, if not yet executing another one. - - Action. - Whether the action were executed. - - - - Executes the action, if not yet executing another one. - - Action. - - - - Allows to join expected callbacks from unguarded context into the current guarded context. - When running in the guarded context, nest the actions that might cause callbacks from unguarded context within a call. will come True. - In the callback handler, use . If , it will be merged into the current guarded context (this is considered a reentrant-safe activity). Otherwise, will be used. - Can be reused. - - - - - Init. - - - Identifies the thread. - Behavior flags & options. - - - - Executes the in the guarded context. - If (ie running inside ), merges the call into the current guarded context. Otherwise, does the regular . - Executes sync or async. Must be run on the thread. - Catches all exceptions. - The lifetime of this schedulled request is limited by the lifetime of this unguarded callbacks merger. - - - - - Executes the in the guarded context. - If (ie running inside ), merges the call into the current guarded context. Otherwise, does the regular . - Executes sync or async. Must be run on the thread. - Catches all exceptions. - True if executed immediately, False if queued (-compatible behavior). - - - - - Says that we're expecting callbacks from the unguarded context, and they should be allowed into the current context if they use . - - - - - Whether we're inside . - - - - - behavior aspects. - - - - - Use the default behavior: if the callbacks were queued for execution with , they're not reclaimed after the owning object is disposed of, and will still have a chance to execute. - This is the default. - - - - - If there're any pending callbacks queued for execution with at the moment the owning object is disposed of, they're dropped. - No code submitted through this object will execute after it is disposed of. - - - - - When running inside , nested calls to are prohibited. An attempt to place such a call will result in an exception. - This is the default. - - - - - When running inside , nested calls to are allowed. - - - - - Creates array that can exceed 2Gb per object limit of .NET - - The length of the array - The length of the one chunk. Must be pow of 2 - - - - Creates array with guarantee that data will not be allocated in LOH - - The count of array elements - - - - A cyclic buffer, like a queue for bytes, but optimized for byte block operations. For reading and writing, use the provided interface. - - - - - End of used data range in , non-inclusive (points after the last used byte, might be equal to storage length). Might be below , in which case the data loops around the buffer end. - - - - - Starts of used data range in . - - - - - The cyclic storage. - - - - - Implements reading from the stream (and also peeking at the data without spending the stored bytes). - - Target for reading (as in ). - Target for reading (as in ). - Target for reading (as in ). - Behavior when running out of buffer. - Spend the read bytes and decrease the number of bytes available in the storage. If False, just peeks at the stored data without modifying the storage. - The number of bytes actually read. - - - - Implements writing to the stream. - - Source for writing (as in ). - Source for writing (as in ). - Source for writing (as in ). - Behavior when running out of buffer. - The number of bytes actually written. - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - - true if is found in the ; otherwise, false. - - The object to locate in the . - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in at which copying begins. - is null. - is less than 0. - is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source is greater than the available space from to the end of the destination .-or-Type T cannot be cast automatically to the type of the destination . - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - 1 - - - - Removes the first occurrence of a specific object from the . - - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The object to remove from the . - The is read-only. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - 2 - - - - Gets or sets the capacity of the buffer storage, which is the maximum it can hold without growing, which growing could be prohibited by setting the . - - - - - Gets the stream for writing to the buffer. - - - - - Gets the stream for reading from the buffer. - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Gets a value indicating whether the is read-only. - - - true if the is read-only; otherwise, false. - - - - - for the . - - - - - When overridden in a derived class, clears all buffers for this stream and causes any buffered data to be written to the underlying device. - - An I/O error occurs. 2 - - - - When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - - The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - - An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source. - The zero-based byte offset in at which to begin storing the data read from the current stream. - The maximum number of bytes to be read from the current stream. - The sum of and is larger than the buffer length. - is null. - or is negative. - An I/O error occurs. - The stream does not support reading. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, sets the position within the current stream. - - - The new position within the current stream. - - A byte offset relative to the parameter. - A value of type indicating the reference point used to obtain the new position. - An I/O error occurs. - The stream does not support seeking, such as if the stream is constructed from a pipe or console output. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, sets the length of the current stream. - - The desired length of the current stream in bytes. - An I/O error occurs. - The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. - Methods were called after the stream was closed. 2 - - - - When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - - An array of bytes. This method copies bytes from to the current stream. - The zero-based byte offset in at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - The sum of and is greater than the buffer length. - is null. - or is negative. - An I/O error occurs. - The stream does not support writing. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports reading. - - - true if the stream supports reading; otherwise, false. - - 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports seeking. - - - true if the stream supports seeking; otherwise, false. - - 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports writing. - - - true if the stream supports writing; otherwise, false. - - 1 - - - - When overridden in a derived class, gets the length in bytes of the stream. - - - A long value representing the length of the stream in bytes. - - A class derived from Stream does not support seeking. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, gets or sets the position within the current stream. - - - The current position within the stream. - - An I/O error occurs. - The stream does not support seeking. - Methods were called after the stream was closed. 1 - - - - When there is no more room for writing, grows the storage. - - - - - When there is no more room for writing, throws an exception. - - - - - for the . - - - - - When overridden in a derived class, clears all buffers for this stream and causes any buffered data to be written to the underlying device. - - An I/O error occurs. 2 - - - - When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - - The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - - An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source. - The zero-based byte offset in at which to begin storing the data read from the current stream. - The maximum number of bytes to be read from the current stream. - The sum of and is larger than the buffer length. - is null. - or is negative. - An I/O error occurs. - The stream does not support reading. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, sets the position within the current stream. - - - The new position within the current stream. - - A byte offset relative to the parameter. - A value of type indicating the reference point used to obtain the new position. - An I/O error occurs. - The stream does not support seeking, such as if the stream is constructed from a pipe or console output. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, sets the length of the current stream. - - The desired length of the current stream in bytes. - An I/O error occurs. - The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. - Methods were called after the stream was closed. 2 - - - - When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - - An array of bytes. This method copies bytes from to the current stream. - The zero-based byte offset in at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - The sum of and is greater than the buffer length. - is null. - or is negative. - An I/O error occurs. - The stream does not support writing. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports reading. - - - true if the stream supports reading; otherwise, false. - - 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports seeking. - - - true if the stream supports seeking; otherwise, false. - - 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports writing. - - - true if the stream supports writing; otherwise, false. - - 1 - - - - When overridden in a derived class, gets the length in bytes of the stream. - - - A long value representing the length of the stream in bytes. - - A class derived from Stream does not support seeking. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, gets or sets the position within the current stream. - - - The current position within the stream. - - An I/O error occurs. - The stream does not support seeking. - Methods were called after the stream was closed. 1 - - - - When there are no more bytes to read, returns the reduced read-bytes count. - - - - - When there are no more bytes to read, throws an exception. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Reimplementation of Dictionary. - - - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Sightly optimized version where the count of the data is known before hand - - - - - - - Pipes a stream-for-writing into a stream-for-reading. - Allows to pipe an output from some into a directly, without storing the full stream contents in memory. - The pipe executes two functions, one for writing and one for reading. The execution terminates when both routines exit. After the writing routine exits, the reading has nothing more to read ( always returns zero), and should exit too. - - - - - Runs the writing and reading, synchronously, thru the pipe. - - This function is given the stream it should write to. Try to use reasonably sized blocks, if possible. - This function is given the stream it should read from. - - - - plus some events. - - - - - When overridden in a derived class, clears all buffers for this stream and causes any buffered data to be written to the underlying device. - - An I/O error occurs. 2 - - - - When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - - The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. - - An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source. - The zero-based byte offset in at which to begin storing the data read from the current stream. - The maximum number of bytes to be read from the current stream. - The sum of and is larger than the buffer length. - is null. - or is negative. - An I/O error occurs. - The stream does not support reading. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, sets the position within the current stream. - - - The new position within the current stream. - - A byte offset relative to the parameter. - A value of type indicating the reference point used to obtain the new position. - An I/O error occurs. - The stream does not support seeking, such as if the stream is constructed from a pipe or console output. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, sets the length of the current stream. - - The desired length of the current stream in bytes. - An I/O error occurs. - The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. - Methods were called after the stream was closed. 2 - - - - When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - - An array of bytes. This method copies bytes from to the current stream. - The zero-based byte offset in at which to begin copying bytes to the current stream. - The number of bytes to be written to the current stream. - The sum of and is greater than the buffer length. - is null. - or is negative. - An I/O error occurs. - The stream does not support writing. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports reading. - - - true if the stream supports reading; otherwise, false. - - 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports seeking. - - - true if the stream supports seeking; otherwise, false. - - 1 - - - - When overridden in a derived class, gets a value indicating whether the current stream supports writing. - - - true if the stream supports writing; otherwise, false. - - 1 - - - - When overridden in a derived class, gets the length in bytes of the stream. - - - A long value representing the length of the stream in bytes. - - A class derived from Stream does not support seeking. - Methods were called after the stream was closed. 1 - - - - When overridden in a derived class, gets or sets the position within the current stream. - - - The current position within the stream. - - An I/O error occurs. - The stream does not support seeking. - Methods were called after the stream was closed. 1 - - - - The object for the run. - - - - - Default value for . - - - - - The buffer that caches writer's output until there's enough data for the reader to read the next block (more specifically, until is met). - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - When the reader exhaust the buffer, it claims the demand on minimum buffer size required to proceed (usually, the number of bytes requested in the read command), and yields to the writer to fulfill the demand. - The value limits the minimum reasonable demand so that to prevent the reader and the writer from yielding to each other too often, for example, if they are reading and writing byte-by-byte. - Set to 0 to suppress min-demand and operate on actual demands. - - - - - When the reader needs more bytes that avail, it publishes the demand and yields to the writer. - - - - - Pipes an into an . - Allows to pipe an output from some into a directly, without storing the full stream contents in memory. - The pipe executes two functions, one for writing and one for reading. The execution terminates when both routines exit. After the writing routine exits, the reading has nothing more to read ( always returns zero), and should exit too. - - - - - Runs the writing and reading, synchronously, thru the pipe. - - This function is given the stream it should write to. Try to use reasonably sized blocks, if possible. - This function is given the stream it should read from. - - - - Runs the writing and reading, synchronously, thru the pipe. - - This function is given the stream it should write to. Try to use reasonably sized blocks, if possible. - This function sits in the middle of the pipe. - This function is given the stream it should read from. - - - - Represents an integer value with specific semantics that cannot be freely assigned to/from other ints. - - This type is not used for storing data values. It it solely used for distinguishing between typed intrinsics. - - - - Limits the current value. Returns a copy that's guaranteed to be in the [, ) limits. - - - - - Adds one to the current value. - Does not modify the original object. - - - - - Adds one to the current value. - Does not modify the original object. - - - - - Indicates whether this instance and a specified object are equal. - - - true if and this instance are the same type and represent the same value; otherwise, false. - - Another object to compare to. 2 - - - - Returns the hash code for this instance. - - - A 32-bit signed integer that is the hash code for this instance. - - 2 - - - - Compares the current instance with another object of the same type. - - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . - - An object to compare with this instance. is not the same type as this instance. 2 - - - - Compares the current object with another object of the same type. - - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . - - An object to compare with this object. - - - - Returns the for this instance. - - - The enumerated constant that is the of the class or value type that implements this interface. - - 2 - - - - Converts the value of this instance to an equivalent Boolean value using the specified culture-specific formatting information. - - - A Boolean value equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 8-bit unsigned integer using the specified culture-specific formatting information. - - - An 8-bit unsigned integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent Unicode character using the specified culture-specific formatting information. - - - A Unicode character equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent using the specified culture-specific formatting information. - - - A instance equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent number using the specified culture-specific formatting information. - - - A number equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent double-precision floating-point number using the specified culture-specific formatting information. - - - A double-precision floating-point number equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 16-bit signed integer using the specified culture-specific formatting information. - - - An 16-bit signed integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 32-bit signed integer using the specified culture-specific formatting information. - - - An 32-bit signed integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 64-bit signed integer using the specified culture-specific formatting information. - - - An 64-bit signed integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 8-bit signed integer using the specified culture-specific formatting information. - - - An 8-bit signed integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent single-precision floating-point number using the specified culture-specific formatting information. - - - A single-precision floating-point number equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent using the specified culture-specific formatting information. - - - A instance equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an of the specified that has an equivalent value, using the specified culture-specific formatting information. - - - An instance of type whose value is equivalent to the value of this instance. - - The to which the value of this instance is converted. An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 16-bit unsigned integer using the specified culture-specific formatting information. - - - An 16-bit unsigned integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 32-bit unsigned integer using the specified culture-specific formatting information. - - - An 32-bit unsigned integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Converts the value of this instance to an equivalent 64-bit unsigned integer using the specified culture-specific formatting information. - - - An 64-bit unsigned integer equivalent to the value of this instance. - - An interface implementation that supplies culture-specific formatting information. 2 - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Formats the value of the current instance using the specified format. - - - A containing the value of the current instance in the specified format. - - The specifying the format to use.-or- null to use the default format defined for the type of the implementation. The to use to format the value.-or- null to obtain the numeric format information from the current locale setting of the operating system. 2 - - - - Adds an element with the provided key and value to the , for a limited lifetime. - - - The type of keys in the dictionary. - The type of values in the dictionary. - 1 - Lifetime for the item to be present in the dictionary. - The object to use as the key of the element to add. - The object to use as the value of the element to add. - - Dictionary. - is null. - An element with the same key already exists in the . - The is read-only. - - - - - Checks that two dictionaries contain the same values under the same keys. - (Equals in default Dictionary uses Object.Equals) - - - - - - - - - - Computes hash code for Dictionary. - - - Requires Dictionary implementation because in others may have for example different order. - - - - - - - - - Nant-syntax wildcard matcher on file system trees - - - - - Mode how to treat ExpectedBackgroundColorHint property - - - - - (Legacy mode) Render will tune foreground slightly to preserve original color as far as possible. - Use it when you need to preserve your foregound color primarily but you need to be able to read it. - Other words hint for the engine to just makes sure the foreground color is visible over the background color - - - - - Render will try to obey maximum contrast. - Use it when you need good text experience (perception) no matter where it will render - - - - - Helper for reading and writing throw-away binary files (if the content is corrupted or there's an error reading it, it can be safely dropped and re-created (False result reported to caller). - - - - - Returns the path of the current system's temporary folder. - - - - - Old path for rename event, relative to watched directory - - - - - Error message if Type is WatcherError - - - - - JetFileSystemWatcher is automatically disposed right after delivering this event - - - - - JetFileSystemWatcher is automatically disposed right after delivering this event - - - - - JetFileSystemWatcher is automatically disposed right after delivering this event - - - - - JetFileSystemWatcher is automatically disposed right after delivering this event - - - - - A base class for quickly implementing a for some class (attached thru ). - - - - - An overload which gets the full into the methods. - - - - - An overload which supplies the logger into the methods, either the obtained from the , or the default logger dumping into the static otherwise. - - - - - A base class for quickly implementing a for some class (attached thru ). - - - - - Extension methods. - - - - - Gets the parent directories. - - - - - Gets the child directories. - - - - - Gets the child files. - - - - - Returns the full path, quoted if it contains spaces. - - - - - Opens a stream on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream on this file system path for reading, preventing all other parties from writing to the stream at the same time. - - - - - Opens a stream on this file system path for reading, preventing all other parties from writing to the stream at the same time. - - - - - Opens a stream on this file system path for writing, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream on this file system path for writing, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream on this file system path for writing, preventing all other parties from reading or writing the stream at the same time. - - - - - Opens a stream on this file system path for writing, preventing all other parties from reading or writing the stream at the same time. - - - - - Opens a stream-writer on this file system path for writing, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream-writer on this file system path for writing, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream-reader on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream-writer on this file system path for writing, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream-reader on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream-reader on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Opens a stream-reader on this file system path for reading, requesting minimum permissions and trying to be as non-blocking as possible. - - - - - Returns an absolute path. - If the given path is already absolute (), leaves it as is. - If the given path is relative, - - - - - Deletes the item. - In case of directory deletes recursively - Does not fail if there is no such file or directory. - - - - - On a folder, deletes its children. - Does not fail if there is no such file or directory. - - - - - On a folder, deletes its children. - Does not fail if some file directory or file is failed to be removed (method return 'false' in this case) - In case of all directories/files were removed, returns 'true' - - - - - Before writing a file, make sure its directory actually exists. - - - - - - This class represents a path in the file system. It provides necessary methods for - dealing with paths, and is more convenient for clients than raw strings, since it handles - different separator characters, case etc - - - - - Does not fail if there is no such file. - - - - - Remove NTFS stream with sandboxing data. - - - - - Does not fail if there is no such file. - - return true if it is a directory - - - - Deletes just an empty directory. - Does not fail if there is no such file or directory. - - - - - Expands short name components in existing path - - - - - Shrinks name components to their short form in existing path - - - - - Creates new FileSystemObject. - The constructor is left for backward compatibility only. Use or instead. - - String that represents path - Throws invalid path exception in case of invalid characters found. - - - - Should be used with care, in special cases only. - - - - - Creates from string or if fails - - - Created path ot - - - - Create new from string. Throws exceptions if fails. - - Path string - Created - Throws ArgumentNullException if is Null - Thrwos InvalidPathException if input string contains invalid characters. See for details - - - - Combines a path with one or more path components. Throws on failure. - - - Returns itself if component is null. - - - - - Creates a system object from this instance, making sure it ends in a slash. - - - - - Creates a system object from this instance. - - - - - Does not throw on failure, just silently returns . - - - - - Gets the canonical path, returns "" in case of a failure. - - - - - Gets the parent directory of the current file or directory. - - - - - Gets whether this path exists in the file system, and whether it is a directory or a file. - - - - - Gets various information about file or directory in one system call. Throws on I/O errors. - - File/directory information if entity exists, null if not - - - - Gets whether this instance points to a directory, and that directory exists on disk. - - - - - Gets whether this instance points to a file, and that file exists on disk. - - - - - Gets the file extension, without the leading dot. - - C:\autoexec.bat -> bat - - - - Gets the file extension, including the leading dot. - - C:\autoexec.bat -> .bat - - - - Gets the last write time of the file represented by this instance. Throws if there is no such file. - - - - - Special path for passing to Windows API functions - - - - - Gets whether this file system path is a hidden file or folder. - Returns False for nonexistent paths. - - - - - Gets whether this file system path is a system file or folder. - Returns False for nonexistent paths. - - - - - Gets the local name of the file/directory (the component after the last separator). - - - - - Determines whether the file system entity exists as a file or as a directory (if it does not exist at all, we cannot tell whether it's a file or a directory). - You can check for “any existence” by comparing the value to zero (missing value is 0). - - - - - The file system entity represented by this does not exist in the file system, or is invalid (e.g. ). - This is the zero value of the enum. - - - - - This is a file that actually exists in the file system. - - - - - This is a directory that actually exists in the file system. - - - - - Identity function that always returns the same value that was used as its argument. - - - - - Specifies the DPI resolution of some device, or device-independent 96 DPI. - - - - - Gets the current device-dependent DPI value of the screen device. - - - - - Gets the WPF-standard device-independent resolution of 96x96 DPI. - - - - - Use this as a temporary placeholder when you're not sure which resolution is in effect. Such cases should be adressed later. - - - - - Gets the resolution along the X-axis. - Note that for an uninitialized structure this returns the device-independent DPI of 96. - - - - - Gets the resolution along the X-axis. - Note that for an uninitialized structure this returns the device-independent DPI of 96. - - - - - It is DpiX / 96. (96 is default value of DPI in Windows) - This factor can be used to multiply your size to scale it to user DPI settings - - - - - It is DpiY / 96. (96 is default value of DPI in Windows) - This factor can be used to multiply your size to scale it to user DPI settings - - - - - Gets the screen DPI along X and Y axes. - - - - - A Windows Forms control for hosting Avalon elements. - As compared to the standard one, does not support WinForms transparency and backcolor inheritance, and thus does not waste memory on background color buffers. - - - - - The user-defined Avalon element in this host. - - - - - Hook for the HwndSource.WndProc. - - - - - Catch WM_CHAR messages which weren't handled by Avalon - (including mnemonics which were typed without the "Alt" key) - - - - - Ensures that all WM_CHAR key messages are forwarded to the hosted element. - - - Grab all WM_CHAR messages as text input to ensure they're sent to - Avalon. If Avalon doesn't handle the message, we will call - ProcessDialogChar later on. - - - - - Raises the GotFocus event. - - - - - Raises the Leave event. - - - - - Processes a command key, ensuring that the hosted element has an opportunity to handle the command before normal Windows Forms processing. - - - - - Processes a mnemonic character, ensuring that the hosted element has an opportunity to handle the mnemonic before normal Windows Forms processing. - - - - - Activates the hosted element. - - - - - Processes Windows messages. - - - - - - The top-level Avalon element over the HWND. - - - - - Gets the default size of the control. - - - - - The root element in this host. - - - - - (DK) A copy-paste of JetBrains.UI.Behavior.HierarchicalFocusScopeRootBehavior. - We need it badly but cannot refer JetBrains.Platform.ReSharper.UI from here. - - - - - Service property to support lifetiming of the view. - - - - - Call from code if you'd like to turn a focus scope into a focus scope root. - Note that multiple owners are supported for the same element, identified by tokens, served till the last one goes. - - - - - Stores the tokens collection on the element. - Binds the activity to happen when (there're request tokens present). - NOTE: we don't check when the element is loaded because we're attaching to an event which is quite safe to listen forever. - - - - - Attaches to events, does the thing when the events are fired. - - - - - (DK) Copy-pasted. See JetBrains.UI.Avalon.AvalonTreeHelpers.GetLogicalOrVisualParent. - - - - - (DK) Copy-pasted. See JetBrains.UI.Avalon.AvalonEx.PushHandler. - - - - - Encapsulates a native DLL module. Use to get instances of this class. - - - - - The DLL module handle. - - - - - The DLL module base name and extension. - - - - - The path to the DLL file on disk. - - - - - Internal constructor. Used by . - - - - - The table of loaded DLL entry points. - - - - - Gets a delegate instance for the specified DLL entry point. - - The delegate type a DLL entry point to be converted to. - The name of a DLL entry point. - - - - Creates an instance of a COM object without the Registry information, by invoking its class factory. - - CLSID of the object to create. - - - - Creates an instance of a COM object without the Registry information, by invoking its class factory. - - The type of the object to create. - - - - A delegate for the DllGetClassObject function. - - - - - A wrapper for an instance of a COM object created by . - - - - - The instance of a COM object. - - - - - CLSID of the object. - - - - - Casts the object to the specified interface type. - - - - - Helps to load and work with native DLL modules. - - - Calling LoadLibrary increments the reference count. - Calling the FreeLibrary or FreeLibraryAndExitThread function decrements the reference count. - The system unloads a module when its reference count reaches zero or when the process terminates (regardless of the reference count). - - - - - Loads the DLL module and returns an instance of class. - - Lifetime. - The name of a DLL to load. - Some dlls have external dependancies, setting the search path to its location should assist with this. - - - - If the DLL name contains no path information (consists of file name only), returns the path to the DLL according to the current processor architecture. - Otherwise returns the source path. - - - - - Static constructor gets the current processor architecture and corresponding DLL subdirectory. - - - - - Returns the full path for DLLs of the specified processor architecture ("current assembly directory"\"processor architecture subdirectory"). - - - - - Extensions for accessing Registry in an explicitly-defined view on 64-bit systems, regardless of the architecture of the currently running process. - - - - - Flag to access virtualized WOW6432 hive on x64 regardless of the running process architecture (N/A on NT versions below 5.1). - - - - - Flag to access native Registry hive on x64 regardless of the running process architecture (N/A on NT versions below 5.1). - - - - - Follows the system policy for Registry virtualization: in 64-bit processes, sees the native Registry, and in 32-bit processes sees the emulated one. This works the same as default .NET Registry accessor methods. - On a 32-bit system, all of the readers read the same. - - - - - Operates on the system-native Registry view (64-bit on 64-bit systems), regardless of the current process architecture. - This means that in a 32-bit process on a 64-bit system this reader won't be tricked into the WoW-64-32 emulation Registry branch, but will read the system-real value. - On a 32-bit system, all of the readers read the same. - - - - - Operates on the 32-bit Registry view (WoW-64-32 emulation view on 64-bit systems). - This means that in a 64-bit process on a 64-bit system this reader will still read the same value as any 32-bit process running in the WoW-64-32 emulation will do. - On a 32-bit system, all of the readers read the same. - - - - - Creates a key. - - Subkey under the hive root key. - Error handling. In case of any errors, an exception is reported and False is returned. - Whether the key was successfully created. - - - - Deletes a key. - - Subkey under the hive root key. - Error handling. In case of any errors, an exception is reported and False is returned. - Whether the key was successfully deleted. - - - - Deletes a value. - - Subkey under the hive root key. - Name of the Registry data, or “” for the default value. - Error handling. In case of any errors, an exception is reported and False is returned. - Whether the value was successfully deleted. - - - - Reads a DWORD value. - - Subkey under the hive root key. - Name of the Registry data, or “” for the default value. - Error handling. If the Registry value is missing, but everything else is OK, a Null is silently returned. In case of any errors, an exception is reported and Null is returned. - If is throwing, returns Null only if the value is missing. In non-throwing case, returns Null if the value cannot be read due to any reason. - - - - Reads a string value. - - Subkey under the hive root key. - Name of the Registry data, or “” for the default value. - Error handling. If the Registry value is missing, but everything else is OK, a Null is silently returned. In case of any errors, an exception is reported and Null is returned. - If is throwing, returns Null only if the value is missing. In non-throwing case, returns Null if the value cannot be read due to any reason. - - - - Writes a DWORD value. - - Subkey under the hive root key. - Name of the Registry data, or “” for the default value. - DWORD value. - Error handling. In case of any errors, an exception is reported and False is returned. - Whether the value was successfully written. - - - - Writes a string value. - - Subkey under the hive root key. - Name of the Registry data, or “” for the default value. - String value, non-Null. - Error handling. In case of any errors, an exception is reported and False is returned. - Whether the value was successfully written. - - - - Shell link file extension. - - - - - Shell link file extension. - - - - - Creates a new Shell Link. - - The location of the newly-created .LNK file. - The target this .LNK file will be pointing to. - - - - Given a path to an .LNK file, reads the target path of the shell link. - - - - - - - Given to a lengthy task that knows its progress, used to enable the UI indications of the task progress. - You should read all of the member summaries before using this class. - - - - - - Advances the progress within the range, as defined by the call. - MUST be called first. - - A whole or fractional number of units from the [0..totalWorkUnits] range, as defined by the method. - - - - Starts the progress to run through the [0..totalWorkUnits] range. You MUST call at the end. Use to move the progress across the range. - Generally, you SHOULD set the to identify the current execution span, once per -, and change the when doing to comment on the progress. - If you would like to delegate a sub-range to a nested routine, you SHOULD create a and pass the resulting to the routine, so that it ran a whole range from its point of view, which would then map to a sub-range of this progress indicator. - - The inclusive upper limit of the progress range. - - - - Completes the progress run. You MUST call if you previously called . - Generally, you SHOULD always call the - pair on the given indicator, even if gotten no items to process, so that a could use up the parent range consistently. - - - - - A title of the current item being processed by the activity which the progress is visualizing. - You SHOULD set once per - run, and once per , if applicable. - - - - - Whether the activity which the progress is visualizing has been canceled externally. This could be user's clicking on the "Cancel" button of the UI the progress is bound to. - You should check this property periodically and cut off the remaining activity if True. You MIGHT throw for that, still it's recommended not to use exceptions for flow control, but check on all of the levels of nesting. - - - - - A title of the whole activity which the progress is visualizing. - You SHOULD set once per - run, and once per , if applicable. - - - - - A data-only presentation of the state. - While is producer-oriented, the is intended for consumers. - - - - - The current position of the progress, in the [0..1] range, inclusive. - - - - - Whether the activity which the progress is visualizing has been canceled externally. This could be user's clicking on the "Cancel" button of the UI the progress is bound to. - You should check this property periodically and cut off the remaining activity if True. You MIGHT throw for that, still it's recommended not to use exceptions for flow control, but check on all of the levels of nesting. - - - - - Whether the producer thinks it's currently running. SHOULD be at 1 when done running. - - - - - A title of the whole activity which the progress is visualizing. - You SHOULD set once per run, and once per step, if applicable. - - - - - A title of the current item being processed by the activity which the progress is visualizing. - You SHOULD set once per run, and once per step, if applicable. - - - - - Function that always returns True - - - - - Function that always returns False - - - - - Function that always returns True - - - - - Function that always returns False - - - - - Identity function that always returns the same value that was used as its argument. - - - - - Identity converter that always returns the same value that was used as its argument. - - - - - Identity function that always returns the same value that was used as its argument. - - - - - Identity converter that always returns the same value that was used as its argument. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Interface to the logger which can be passed to subsystems to replace the default logger in them. - - - - - Writes the exception to the log and notifies the listeners about it. - The executing stack trace is also written. - - - - - Either logs the exception or throws it out, depending on the behavior specified by the implementor. - The executing stack trace is also written. - - - - - Logs a message. - The message is prepended with a timestamp and written to the log. The listeners are notified. - - - - - Consumes the activities reported to the . - - - - - An error has occured and was reported to the method, or / methods were called. - The error text is also reported to prefixed with , and to with an exception whose message is . - - - - - An exception has occured and were reported to one of the -family methods. - Of its text, only the message is automatically supplied to , prefixed with . - - - - - A text message of a specific importance level. - - - - - Logs the same message twice, with “Opening” and “Closing” prefix, when entering and leaving the lifetime. - NOTE: the closing bracket message won't be logged if the logger were not enabled at the time of the opening one. - - - - - - - - - Logs the same message twice, with “Opening” and “Closing” prefix, when entering and leaving the lifetime. - NOTE: the closing bracket message won't be logged if the logger were not enabled at the time of the opening one. - - - - - - - - - - Logs a pair of messages (no prefix added) when entering and leaving the lifetime. - NOTE: the closing bracket message won't be logged if the logger were not enabled at the time of the opening one. - - - - - Writes the exception to the log and notifies the listeners about it. - - - - - Writes the exception to the log and notifies the listeners about it. - - - - - Writes the exception to the log and notifies the listeners about it. - - - - - Writes the exception to the log and notifies the listeners about it. - - - - - Logs the exception without notifying the registered listeners about it. - - - - - Executes the . Catches all of the exceptions, reports them, and ensures guaranteed return. - - - - - Executes the . Catches all of the exceptions, reports them, and ensures guaranteed return. - - - - - Exception from the consistency-checking code, such as Argument Null checks or state validation checks. - - - - - An outer world failure, such as a Visual Studio problem or file system access error. - ; - - - - Exception coming from the code you call which is not logically owned by your code. - For example, if you're firing an event, normally the event sink should handle its own exceptions. As it lets them to you, you cannot tell assertion exceptions from outer world exceptions and use this flag. - In absence of any additional knowledge, these are treated as exceptions. - - - - - Forwards logged data to the main logger conditionally. Allows to record what'ss being forwarded. - - - - - For any , does the throw thing. All other stuff is forwarded to the underlying logger. - - - - - Counts the number of processed events (forwarded to the underlying logger) without storing a copy of them. - - - - - Intercepts all of the logger submissions, does not escalate them to any outer loggers. - - - - - Records all of the exceptions, throws them out when object lifetime is terminated. - Messages are dropped. - - - - - Lifetime version. Throws when the lifetime terminates. Must not be disposed of. - - - - - Disposable version. Throws when disposed of. Must be disposed of eventually. - - - - * - Conversion Character Effect - c Used to output the category of the logging event. The category conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets. - If a precision specifier is given, then only the corresponding number of right most components of the category name will be printed. By default the category name is printed in full. - - For example, for the category name "a.b.c" the pattern %c{2} will output "b.c". - - C Used to output the fully qualified class name of the caller issuing the logging request. This conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets. - If a precision specifier is given, then only the corresponding number of right most components of the class name will be printed. By default the class name is output in fully qualified form. - - For example, for the class name "org.apache.xyz.SomeClass", the pattern %C{1} will output "SomeClass". - - WARNING Generating the caller class information is slow. Thus, use should be avoided unless execution speed is not an issue. - - d Used to output the date of the logging event. The date conversion specifier may be followed by a date format specifier enclosed between braces. For example, %d{HH:mm:ss,SSS} or %d{dd MMM yyyy HH:mm:ss,SSS}. If no date format specifier is given then ISO8601 format is assumed. - The date format specifier admits the same syntax as the time pattern string of the SimpleDateFormat. Although part of the standard JDK, the performance of SimpleDateFormat is quite poor. - - For better results it is recommended to use the log4j date formatters. These can be specified using one of the strings "ABSOLUTE", "DATE" and "ISO8601" for specifying AbsoluteTimeDateFormat, DateTimeDateFormat and respectively ISO8601DateFormat. For example, %d{ISO8601} or %d{ABSOLUTE}. - - These dedicated date formatters perform significantly better than SimpleDateFormat. - - F Used to output the file name where the logging request was issued. - WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue. - - l Used to output location information of the caller which generated the logging event. - The location information depends on the JVM implementation but usually consists of the fully qualified name of the calling method followed by the callers source the file name and line number between parentheses. - - The location information can be very useful. However, its generation is extremely slow and should be avoided unless execution speed is not an issue. - - L Used to output the line number from where the logging request was issued. - WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue. - - m Used to output the application supplied message associated with the logging event. - M Used to output the method name where the logging request was issued. - WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue. - - n Outputs the platform dependent line separator character or characters. - This conversion character offers practically the same performance as using non-portable line separator strings such as "\n", or "\r\n". Thus, it is the preferred way of specifying a line separator. - - p Used to output the priority of the logging event. - r Used to output the number of milliseconds elapsed from the construction of the layout until the creation of the logging event. - t Used to output the name of the thread that generated the logging event. - x Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event. - X - Used to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event. The X conversion character must be followed by the key for the map placed between braces, as in %X{clientNumber} where clientNumber is the key. The value in the MDC corresponding to the key will be output. - - See MDC class for more details. - - % The sequence %% outputs a single percent sign. - - - - Better managed API for watching file system changes - - - - - Reads packs of bytes from the stream, exactly as they were - - - - - The active read buffer. - The only buffer for single-chunk messages (that fit under buffer size). - Each chunk in order for multi-chunk messages. - - - - - Inits. - - - The stream to read messages from. - As we've read a chunk of bytes from the stream, tells if this chunk represents a complete message (otherwise, the next chunk[s] should be appended to compose the complete message). For example, on a , this is , which is available on its , but somehow not exposed to the general public. - Default size of the buffer. - - - - There's a new pack of bytes. - Fires for each received pack. - - - - - Initiates async reading. - - - - - Reads packs of bytes from a pipe async. - Wraps , but adds a wait for the pipe to be connected before actually starting any reads. - - - - - Initiates async reading. - - - - - There's a new pack of bytes. - Fires for each received pack. - - - - - Deserializes objects from a pipe working in the message mode. - Extends by adding a deserializer. - - - - - There's a new object. - Fires for each received object. - - - - - Initiates async reading. - - - - - Class is used for getting a name of the property of the object in type safely way. - - - string s = "example"; - var lengthPropertyName = nameof.Property( () => s.Length ); - - - - - Class is used for getting a name of the property of the type in type safely way without having an instance. - - Type where interesting property declared. - var lengthPropertyName = nameof{ string }.Property( o => o.Length ); - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - Checks the given HRESULT, and throws an exception if it's a failure one (). - The comment is used in case of the failure only. - - - - - The FAILED WinAPI Macro. - - - - - The SUCCEEDED WinAPI Macro. - - - - - Finds maximal matching in bipartite graph using Hopcroft Karp algorithm - - - - - - Result of rendering an exception. - - - - - Initializes a new instance of the class. - - - - - String representation of the exception rendered by collecting all of the data about the original exception and all of the inner/related exceptions in the tree. - A more detailed and well-organized counterpart for 's method. - - - - - Message of the exception, into which all of the inner exceptions' messages are also included. - A more detailed counterpart for 's property. - - - - - Listens for events, reports them to the consumer. - Prevents reentrancy in handlers. - - - - - Identity. - ACHTUNG ACHTUNG! Special handling in Equals. - - - - - Reentrancy in these handler methods most probably means infinite recursion. - - - - - Creates a new unique listener. - - - - - Creates a listener that could be matched by its identity which prevents adding more than one instance with the same identity to the logger. - An empty string is considered to be the unique identity. - - - - - Determines whether the specified is equal to the current . - - - true if the specified is equal to the current ; otherwise, false. - - The to compare with the current . The parameter is null.2 - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - 2 - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - A listener that could be matched by its identity which prevents adding more than one instance with the same identity to the logger. - An empty string is considered to be the unique identity. - - - - - . - - - - - . - - - - - . - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gives out the progress value as a floating point number in the [0…1] range. - - - - - Option for the functions that serve as a [NotNull] or [CanBeNull] implementation, depending on the settings. - - - - - Initializes with the handler to be called on . Name is for reviewing the onerror kind in the debugger. - - - - - A handler that ignores failures. - Provides for silent-[CanBeNull] behavior. - - - - - A handler that reports the exceptions and then continues execution. - Provides for [CanBeNull] behavior. - - - - - A handler that reports the exceptions and then continues execution. - Provides for [CanBeNull] behavior. - - - - - A handler that always throws an exception. - When the calling function is properly implemented, provides for [NotNull] behavior. - - - - - A handler that always throws an exception. - When the calling function is properly implemented, provides for [NotNull] behavior. - - - - - A handler that logs the exception as an assertion to that logger. - Provides for [CanBeNull] behavior. - - - - - A handler that logs the exception as an algorithm error to that logger. - Provides for [CanBeNull] behavior. - - - - - Called by a not-null-or-can-be-null function when an exception-worth error occurs. Could throw, store, or ignore the failure. - The calling code must be ready that an exception might be thrown out ([NotNull] case). - The calling code must be ready that execution might continue ([CanBeNull] case should return Null if so). - Typical usage: - - if(isFailed) - { - onerror.Handle(new InvalidOperationException("FAIL").AddData("More", () => "Info")); // Throws in [NotNull] case - return null; // Executes in [CanBeNull] case - } - - - - - - Creates a new object which wraps the handled exception with a given message exception before passing control to the current . - - - - - A special Platform exception that fires when an interruptible activity is aborted. - - - - - A self-container progress indicator implementations. - should be given to producers, and the consumers make use of this instance thru its . - By default, no special threading model is implied on the members. They could be modified on any thread and fire changes on any thread. - - - - - The factor to be applied to the units to make them units. - - - - - Epsilon for the parameters of the progress. - - - - - Model item. - - - - - Model item. - - - - - Model item. - - - - - Model item. - - - - - Model item. - - - - - Advances the progress within the range, as defined by the call. - MUST be called first. - - A whole or fractional number of units from the [0..totalWorkUnits] range, as defined by the method. - - - - Starts the progress to run through the [0..range] range. You MUST call at the end. Use to move the progress across the range. - Generally, you SHOULD set the to identify the current execution span, once per -, and change the when doing to comment on the progress. - If you would like to delegate a sub-range to a nested routine, you SHOULD create a and pass the resulting to the routine, so that it ran a whole range from its point of view, which would then map to a sub-range of this progress indicator. - - The inclusive upper limit of the progress range. - - - - Completes the progress run. You MUST call if you previously called . - Generally, you SHOULD always call the - pair on the given indicator, even if gotten no items to process, so that a could use up the parent range consistently. - - - - - An optional readonly token used by this object for accessing the part. - - - - - A title of the current item being processed by the activity which the progress is visualizing. - You SHOULD set once per - run, and once per , if applicable. - - - - - Whether the activity which the progress is visualizing has been canceled externally. This could be user's clicking on the "Cancel" button of the UI the progress is bound to. - You should check this property periodically and cut off the remaining activity if True. You MIGHT throw for that, still it's recommended not to use exceptions for flow control, but check on all of the levels of nesting. - - - - - A title of the whole activity which the progress is visualizing. - You SHOULD set once per - run, and once per , if applicable. - - - - - The current position of the progress, in the [0..1] range, inclusive. - - - - - Whether the activity which the progress is visualizing has been canceled externally. This could be user's clicking on the "Cancel" button of the UI the progress is bound to. - You should check this property periodically and cut off the remaining activity if True. You MIGHT throw for that, still it's recommended not to use exceptions for flow control, but check on all of the levels of nesting. - - - - - Whether the producer thinks it's currently running. SHOULD be at 1 when done running. - - - - - A title of the whole activity which the progress is visualizing. - You SHOULD set once per run, and once per step, if applicable. - - - - - A title of the current item being processed by the activity which the progress is visualizing. - You SHOULD set once per run, and once per step, if applicable. - - - - - Advances the progress by default fraction (1.0) within the range, as defined by the call. - MUST be called first. - - - - - Advances the by units, while running the task. - Unlike the core method, the increment goes gradually, as the calls -- on the it is given as a parameter. Note that its units are totally indipendent of the in the . Any range it chooses in its will result in advance of the parent. - - The parent progress. - The number of units used up from the , in terms of its parent , when you do - on this subprogress with any units of your liking. - The subtask that gets its own subprogress. - - - - A sub-routine runs the whole - run on the subprogress, with units of its own choice in and on the subprogress, which uses up only in the parent , in terms of its parent . - This way, a few tasks could share the full progress range without knowing that they're using it together, each one running the whole length of its subprogress. - - The parent progress. - The number of units used up from the , in terms of its parent , when you do - on this subprogress with any units of your liking. - - - - - A sub-routine runs the whole - - run on the subprogress, with units of its own choice in and - on the subprogress, in terms of its parent - . - - - This way, a few tasks could share the full progress range without knowing that they're using it together, - each one running the whole length of its subprogress. - - - The parent progress. - - - - Returns slowed down progress indicator that is useful to test progress and cancellation support. - Total progress duration is 10 seconds. - - The parent progress to wrap. - - - - Returns slowed down progress indicator that is useful to test progress and cancellation support. - - The parent progress to wrap. - Total progress duration. - - - - A LINQ-like FOREACH with progress. - - - - - A LINQ-like FOREACH with progress. - - - - - A LINQ-like FOREACH with progress. - - - - - A LINQ-like FOREACH with progress. - - - - - A LINQ-like FOREACH with progress. - - - - - Wraps sequence such that iteration over returned enumerable increases progress indicator. - - - - - Wraps sequence such that iteration over returned enumerable increases progress indicator. - - - - - Wraps sequence such that iteration over returned enumerable increases progress indicator. - - - - - A LINQ-like SELECT statement with progress. - Works on , returns a committed . - - Source item types. - Resulting item types. - Source items. - The progress to track the source items iteration. - Name for the progress run. - Selector function. - The resulting items. - - - - Starts the progress to run through the [0..totalWorkUnits] range. You MUST call at the end. Use to move the progress across the range. - Generally, you SHOULD set the to identify the current execution span, once per -, and change the when doing to comment on the progress. - If you would like to delegate a sub-range to a nested routine, you SHOULD create a and pass the resulting to the routine, so that it ran a whole range from its point of view, which would then map to a sub-range of this progress indicator. - - Progress indicator. - The inclusive upper limit of the progress range. - The value to be set for the run. You SHOULD NOT leave it unmodified, unless you are running a subprogress. - - - - Just call and - return the same instance of . - See for details. - - Progress indicator. - The inclusive upper limit of the progress range. - The same instance of IProgressIndicator in order to use fluent interface. - - - - Just call and return the same instance of . See for details. - - Progress indicator. - The value to be set for the run. You SHOULD NOT leave it unmodified, unless you are running a subprogress. - The inclusive upper limit of the progress range. - The same instance of IProgressIndicator in order to use fluent interface. - - - - Starts the progress to run through the [0..totalWorkUnits] range, executes , and then stops the progress. Use to move the progress across the range. - Generally, you SHOULD set the to identify the current execution span, once per -, and change the when doing to comment on the progress. - If you would like to delegate a sub-range to a nested routine, you SHOULD create a and pass the resulting to the routine, so that it ran a whole range from its point of view, which would then map to a sub-range of this progress indicator. - - Progress indicator. - The inclusive upper limit of the progress range. - The value to be set for the run. You SHOULD NOT leave it unmodified, unless you are running a subprogress. - The task to execute in between and . - - - - Emits a wrapper with a user-chosen name to appear in the call stacks at runtime when the wrapped functionality is called. - - Object whose instance method is to be annotated. It should be passed as the first parameter to the delegate returned. - Name of the method to be annotated. - Text to appear on the stack trace (the emitted method name). - Types of instance method parameters (the implicit “this” parameter is not included). - Return value type (or Null for void methods). - An Action or Func, first param is the instance type, then parameter types, then return value type (if any). - - - - Emits a wrapper with a user-chosen name to appear in the call stacks at runtime when the wrapped functionality is called. - - Text to appear on the stack trace (the emitted method name). - An that takes an . - - - - Emits a wrapper with a user-chosen name to appear in the call stacks at runtime when the wrapped functionality is called. - - - - - Loags the given number of arguments on the stack, starting with #0 (“this” on an instance method). - - - - - Loags the given number of arguments on the stack, starting with #0 (“this” on an instance method). - - - - - Helps with converting arbitrary types to and from strings. - Calls into 's , and WPF's , and handles some trivial cases on its own. - - - - - Wraps the . - - Value to be converted to a string. - Optional. The logger to be passed to the converter. - - - - Wraps the . - - String representation. - Desired type of the object to be restored from the string representation. - Optional. The logger to be passed to the converter. - - - - Wraps the . - - Desired type of the object to be restored from the string representation. - String representation. - Optional. The logger to be passed to the converter. - - - - Either the obtained from the , or the default logger dumping into the static otherwise. - - - - - Caches results because it seems to walk the attributes every time, which takes considerable amount of times when doing repeated serializations in Settings. - - - - - Looks up a serializer. Does not construct a fake serializer for wrapping the type converter (like does) if not found, but returns NULL. - This is because a type-descriptor-converter wrapped into a value-converter would operate in the en-US locale while all previous calls of type-descriptor-converters operated in an invariant locale. We want all data previously written with an invariant type-converter to be now readable from persistent media, so we'd be calling type-descriptor-converters manually at the next stage. - NOTE: logic for finding a , as implemented at , is really this simple. That's why we can do it ourselves. On the contrary, getting a is a hell of a work for the whole subsystem, that's why we're not reimplementing it. Also, refers to a type when given a , while commits it into a string and sometimes has problems getting it back as a type. - - - - - - - - - - Controls how looks for its sub-paths. - - - - - If set, includes items in subfolders with the search. Otherwise looks among immediate children only. - - - - - Excludes items that have attribute set. - In recursive mode will not exclude files in hidden directories. - - - - - Does not return paths that point to files. - - - - - Does not return paths that point to directories. - - - - - Äåëåãàò äëÿ ñîçäàíèÿ ýëåìåíòà êåøà. - - - - - Êåø ýëåìåíòîâ. Äëÿ ñîçäàíèÿ íåîáõîäèì ïàðàìåòð. - - - - - Èíèöèàëèçèðóåò ýêçåìïëÿð. - - - - - Èçâëåêàåò ýëåìåíò èç êåøà. - - - - - Âûçûâàåòñÿ ïîñëå ñîçäàíèÿ íîâîãî ýëåìåíòà. - - - - - Ïðîèçâîäèò ïîïûòêó èçâëå÷åíèÿ ýëåìåíòà. - - - - - Âîçâðàùàåò, ñîäåðæèò ëè êåø ýëåìåíò ñ óêàçàííûì êëþ÷åì. - - - - - Óäàëÿåò ýëåìåíò êåøà ïî çàäàííîìó êëþ÷ó. - - - - - Ñáðîñèòü êåø. - - - - - Ñîçäàòåëü ýëåìåíòîâ. - - - - - Êîëëåêöèÿ âñåõ êëþ÷åé. - - - - - The object is live and running. - - - - - The object is still valid, but has entered the disposal routine. Used to prevent the from reentrancy. - - - - - The object has been disposed of. - - - - - Universal equality comparer. - - - - - Determines whether the specified objects are equal. - - - true if the specified objects are equal; otherwise, false. - - The first object of type to compare. - The second object of type to compare. - - - - Returns a hash code for the specified object. - - - A hash code for the specified object. - - The for which a hash code is to be returned. - The type of is a reference type and is null. - - - - Factory for . - - - - - For an attribute provider that has exactly one custom attribute of the given type, returns that attribute. - Otherwise, throws. - Inherited attributes are ignored. - - - - - For an attribute provider that has zero or one custom attribute of the given type, returns whether it's one not zero. - Otherwise, throws. - Inherited attributes are ignored. - - - - - For an attribute provider that has zero or one custom attribute of the given type, returns that attribute, or Null if none. - Otherwise, throws. - Inherited attributes are ignored. - - - - - Checks that the window has a non-Null handle and that it represents a valid Win32 window. - - - - - Disables the given window temporarily. - - - - - Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - - - - Creates a stream reader over a stream. - - - - - Creates a stream writer over a stream. - - - - - Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. - - - - - Rewinds the stream to the beginning so that it could be reused for reading. - For example, this should be done to a after writing and before each reading. - Fluent. - - - - - Rewinds the stream to the beginning and removes its content so that it could be reused for writing. - For example, this should be done to a before reusing it for writing. - Fluent. - - - - - Extension methods for . - - - - - Gets the default value for this reference or value type. - - - - - Gets whether the is the default value for this reference or value type. - - - - - Gets whether the is the default value for this reference or value type. - - - - - Gets whether the is the default value for this reference or value type, or an empty string. - - - - - Gets whether the is the default value for its reference or value type, or an empty string. - - - - - Takes the type presentation, surrounds it with quotes if it contains spaces. - - - - - When a value has to be specified on an attribute, its type is limited to primitive types. Also, the primitive types might not match if an integer is specified where a floating-point type is expected. - This method tries the following coersions: - (*) NULL value: means the default value of the expected type. Also works for value types. - (*) Exact type match: the given value is exactly of the expected type. Returns the value transparently. - (*) Given a string value (the expected type is not a string): applies to parse the invariant string into an object of the expected type. - (*) Enum special case: if the expected type is an enum, and we're given its underlying type (maybe non-exact underlying type), cannot handle that on its own. - (*) System coersion ( in invariant culture). Works for similar yet different primitive types, eg and . - - - - - Takes the type local name out of the full name. - Accepted formats: generic parameters number denoted with “`” or “<>”, generic parameters recusrively specified inside “<>”, nested classes delimited with “.” or “+”. - - - - - Allows to pass a return value thru a void-result . - Suppose the following piece of code that should be surrounded with some pre- and post-activity: - - int GetResult() - { - return 5; - } - - If the activity is available as an , the code is surrounded with using without any problem with return statement: - - int GetResult() - { - using(EnterScope()) - { - return 5; - } - } - - Suppose that the surrounding activity is implemented as a function that takes an to execute in the scope (e.g. ): - - int GetResult() - { - ExecuteInScope(delegate - { - return 5; // Compilation error - }); - } - - This won't compile, because ExecuteInScope is void and the action that it takes to execute is also void. - A temp local variable could be an option to use it for assignment, but it's hard to maintain in case the inner action has multiple returns against various code paths. - This function wraps the ExecuteInScope call and gives you a functor that turns your int-returning inner code into a void action suitable for the executor: - - int GetResult() - { - return FEx.Return<int>(FR => ExecuteInScope(FR(() => - { - return 5; - }))); - } - - - - - - Adds some data to be reported with the exception. - Note that the data is added as an object by default, and is not committed to text until the exception is. - - The exception to enrich with data. - Data entry name. Must be unique with the exception. - Data entry value. For calculated values consider passing as a function for exception safety. - The same exception object, for fluent usages. - - - - Adds some data to be reported with the exception. - Note that the data is added as an object by default, and is not committed to text until the exception is. - - The exception to enrich with data. - Data entry name. Must be unique with the exception. - Data entry value, passed as a func so that it were executed in a safe context (meaning that all of the exceptions in the data value retrieval are suppressed altogether). - The same exception object, for fluent usages. - - - - Adds some data to be reported with the exception. - Allows to call a data-adding function on some object that bears the exception context. - The call is executed in a safe manner. - - - - - “Flattens” the data value by converting all of the objects to their string representation. Understands some kinds of collections. - This is needed for safe marshalling of exceptions containing data values across appdomain boundaries. Keeping original object values might fail unmarshalling their custom types. - // TODO: maybe use some parts of exception renderer for walking the value trees - - - - - - - Renders exceptions by extracting as much data as possible (including inner exceptions in nonstandard properties, like , and special parameters like ), and presents them in human-readable and machine-readable format and in a reasonable order of inner exceptions. - - - - - Looks up all of the exceptions in the exception tree. Checks for the , other possible exception properties (eg ), and data bag. The original exception is too included with the collection. - - The exception to look into. - The plus all of the nested exceptions. - This method is slow somewhat and does not cache the results. - - - - Renders a string representation of the exception by collecting all of the data about the original exception and all of the inner/related exceptions in the tree. - Explicitly outlines the relation between the exceptions, like which is whose inner and where they're coming from in the inner-exception tree. - Note that plus might miss the custom fields of the exception, and ignores related exceptions that are not exactly inners (eg ). - - The exception to render. - - A string containing all of the meaningful messages of all the inner exceptions. - A string with the above message plus stack traces and any other associated data. - - This method might be slow, but it caches the rendered data on the exception after the first call. - - - - Renders the exception message that includes all of the additional data fields, but of the outermost exception only. - - - - - Traverses the inner exceptions tree and extracts atomic datas ready for printing out. - - - - - Gets the value cached on the exception object. - Calculates and caches if missing. - - - - - All of the data is collected, entries are atomic, render them (just resolve the exception index references). - - - - - Extracts the exception message out of the exceptions. In case the inner exceptions message is omitted from the outer exception, tries to collect all such messages too. - - - - - Starts rendering an exception object, delegates to . - - - - - Parent, for simplicity just an array. - - - - - Exception data lines in the Name=Value form. - In case an exception is encountered among data values, a new is created and a reference to it is written in a special form into the data lines (). - - - - - Uniquely identifies the exception, allows to reference it from parent exceptions (ref inner from outer). - - - - - Reports an inner exception of the current exception. - - Path relative to the current object. - The inner exception to register. - - - - For every entry in the , adds a line to the head of the list. - - - - - Moves a line with the given name to be the last in the list. - - - - - Moves a line with the given name to be the first in the list. - - - - - Find the line, exec if OK. - - - - - A version of the Internal Error Exception that was created within the logger. - - - - - Creates a new logger exception. - - Optional. Exception message. If omitted, 's message will be used. If both are omitted, the default message will be used. - Optional. An inner exception. If the explicit is not defined, the message of this exception will be used. - Null to use the exception-default stack trace capture behavior (from throw-point to catch-point). A non-negative number to capture the full stack trace at exception consturction point (usually same as throw-point). This is useful for the outermost exception to have the full stack traces from the thread entry point, as opposed to the default .NET behavior, which does not give us the context. A non-zero number skips top stack frames. - How to render on this exception instance. - - - - When overridden in a derived class, sets the with information about the exception. - - - - - Creates and returns a string representation of the current exception. - - - A string representation of the current exception. - - 1 - - - - Uses to yield the full formatted text. - - - - - Just calls default exception string formatting. - - - - - HTML-encodes a string and returns the encoded string. - - The text string to encode. - The HTML-encoded text. - - - - Gets whether the rich text object is empty (Null or has no text). - - - - - Gets the real runtime size for instances of the specified type, the same size that applies to array elements as they sum up to the array size. Works for intrinsic types, value types, reference types, whatever. - Uses the sizeof CIL instruction to get the actual size. Note that C#'s sizeof() does not work for all types, and gets the marshalling size, which is a 4x error for a boolean. - - - - - Gets the real runtime size for instances of the specified type, the same size that applies to array elements as they sum up to the array size. Works for intrinsic types, value types, reference types, whatever. - Uses the sizeof CIL instruction to get the actual size. Note that C#'s sizeof() does not work for all types, and gets the marshalling size, which is a 4x error for a boolean. - - - - - Usefull to testing indicators progress and cancellation. - - - - - Parse string to enum without any checking - - - - - Parse string to enum with returning specified default value if parameter is null - - - - - Parse string to enum with returning specified default value if parameter is null or invalid - - - - - Parse string to nullable enum with returning null if parameter is null - - - - - Parse string to nullable enum with returning specified default value if parameter is null or invalid - - - - - - Replaces the format item in a specified - with the text equivalent of the value of a corresponding - instance in a specified array. - - - This method just call - but can be used in more cool way: - - - "Hello, {0}!".FormatEx("World") - - - A composite format string. - An array containing zero or more objects to format. - - A copy of in which the format items have been replaced by the - equivalent of the corresponding instances of in . - - - or is null. - - - is invalid.-or- The number indicating an argument to format is less than zero, - or greater than or equal to the length of the array. - - - - - Allows for a few tasks to share the full progress range without knowing that they're using it together, each one running the whole length of its subprogress. - See for details. - - - - - A sub-routine runs the whole - run on the subprogress, with units of its own choice in and on the subprogress, which uses up only in the parent , in terms of its parent . - This way, a few tasks could share the full progress range without knowing that they're using it together, each one running the whole length of its subprogress. - - The parent progress. - The number of units used up from the , in terms of its parent , when you do - on this subprogress with any units of your liking. - - - - Uses methods from base class for equality comparison: the object equality is checked bitwise on the reference value (or value type body), and the hash code is produced from the sync table entry. The object contents is not inspected (on reference types), and object's methods are not called (in either case). - Extremely recommended for delegates, because normally they should only match themselves, and comparing or hashing a delegate is an expensive operation in modern NetFX. - - - - - - Wraps a value known at the time of construction, but which must be passed into a Lazy interface. Skips the Func{} business (which gives us a bit of speed). - - - - - Adapts a generic collection so that it can be handled as a non-generic collection. - - Type of the generic collection. - - - - Copies the elements of the to an , starting at a particular index. - - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in array at which copying begins. - array is null. - index is less than zero. - array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. - The type of the source cannot be cast automatically to the type of the destination array. 2 - - - - Returns an enumerator that iterates through a collection. - - - - An object that can be used to iterate through the collection. - - 2 - - - - Gets the number of elements contained in the . - - - - The number of elements contained in the . - - 2 - - - - Gets an object that can be used to synchronize access to the . - - - - An object that can be used to synchronize access to the . - - 2 - - - - Gets a value indicating whether access to the is synchronized (thread safe). - - - - true if access to the is synchronized (thread safe); otherwise, false. - - 2 - - - - Represents collection of items that doesn't create heap objects unless items are added - List is presented as array with capacity increasing as fibonacci numbers. To obtain IList invoke ResultingList() - - - - - Adds an weak reference to item to the . - - The object to add to the . - - - - Removes the first occurrence of a specific object from the . - - - true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . - - The object to remove from the . - The is read-only. - - - - Determines whether the contains a specific value. - - - true if item is found in the ; otherwise, false. - - The object to locate in the . - - - - Gets the number of elements contained in the . - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Index of previous entry in the chain of keys with the same hashcodes (modulo size), -1 means first - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Index of previous entry in the chain of keys with the same hashcodes (modulo size), -1 means first - - - - - In the Registry, name of the key that's shared by all of the Platform-based products (under the company name key). - Things like InstanceId that are used by usage statistics of all the products are stored there. - - HKEY_CURRENT_USER\Software\JetBrains\Platform - - - - A generic method-based comparer. - - - - - Factory for . - - - - - An event that groups multiple incoming signals within a time span and issues only one outgoing signal for them. - This allows to accomodate for external events firing at a high rate and execute the handler only when their activity suspends. - The object is thread-safe: the incoming event may fire on any thread, the outgoing activity always happens on the primary thread, identified by ->->. - If the owning has on, then the outgoing activity is executed under the . - The maximum grouping interval is limited by . - - - - - The deadline, in -UTC format, if waiting for execution. Null, otherwise. - Interlocked access required. - - - - - The outgoing event handler, as passed from ctor, if available. - Null when: - (1) Not given to ctor (user relies on ). - (2) After . - - - - - Lazy-created backing for . - - - - - Lazy-created backing for . - - - - - True while we're inside the user handler execution, to avoid reentrancy. - Primary-thread only. - - - - - Lazy-created by . - - - - - Ensures thread safety of . - SWL wouldn't create system table entries for the object's monitor handle and allows zero impact for the case we do not use the signals/locks on a shortlived grouping-event. - - - - - Lazy-created backing for . - - - - - Creates a new grouping event. Must be executed on the primary thread. - - - - - Limit for an interval of a . - To avoid the overhead, events with intervals exceeding this value are not supported. - - - - - If there were incoming firings for which there was no outgoing firing yet, cancels that outgoing firing. - - - - - Creates a property that tells whether the event is currently waiting for grouped execution. - This method is not thread-safe. - The property firings are free-threaded. - - Lazy-creates the property so that the event resources are not spent if it's not needed. - - - - Fires the incoming event. May be called on any thread. - Causes the action to execute on the primary thread (if , then under the ) after the elapses. Calling this function again within the prolongates the wait by the . - - - - - Fires the incoming event. May be called on any thread. - Causes the action to execute on the primary thread (if , then under the ) after the elapses. Calling this function again within the does not change the initial deadline, unlike . - - - - - Checks whether the event has incoming firings for which there were no outgoing firings yet, ie is waiting for the to elapse or for the reentrancy guard to allow the execution (if ) after it elapses. - When the user action starts executing, gets False until there's the next icoming firing. - - - - - Called by the host on the primary thread to fire the action. - Must be already guarded, if needed by . - Must not throw out. - - - - - Gets whether the event has expired waiting for the outgoing firing. - This means there were no outgoing firings after the incoming firing, and at least an has elapsed since the last incoming firing. - - Caches the value, to avoid re-quering it in the loops. A 64bit integer in the format. Must be UTC! - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets the owning host for this object. - - - - - Fires the incoming event. May be called on any thread. - Causes the action to execute on the primary thread under the reentrancy guard after the elapses. Calling this function again within the prolongates the wait by the . - - - - - Fires the incoming event. May be called on any thread. - Causes the action to execute on the primary thread under the reentrancy guard after the elapses. Calling this function again within the does not change the initial deadline, unlike . - - - - - The interval within which the incoming events are grouped before the outgoing event fires and the action is executed. - - - - - Identifier for this event. - - - - - The outgoing event. Executed on the primary thread (if , then under a ). - - - - - Manages the schedulling. - Is affined to the thread thru (even if not ), by making the events fire on that thread only. All of the manipulations over this class () or the events are free-threaded. - - - - - Clocks the checks for expired events. - - - - - In debug mode, counts the total number of events this instance met. - - - - - In debug mode, counts the total number of event state changes, like incoming firings, outgoing firings, and cancellings. - - - - - The events handled by this instance, both waiting and not. - Free-threaded, must be synced with . - - - - - If not and we're not using , event execution becomes reentrancy prone. Protect the func locally in this case. - Not used when . - - - - - When timeout expires on any of the events, we try taking the reentrancy guard to execute it. - This is True while we're waiting for the async or sync reega call. - Primary-thread only. - N/a if not . - - - - - Protects the access. - - - - - A dummy event of the maximum inteval. - The event is incoming-fired whenever any other live event fires, and keeps the clock alive until expires. - This makes sure the timer is not constantly switched on and off (which means marshalling). - - - - - Creates the new host for the groping events that group multiple incoming signals into one outgoing signal that occurs with a limited frequency. - - Host lifetime. - Whether the outgoing action executions should be guarded by the . - - - - Identifies the hosts's primary thread. - If non-Null, guards the execution of all the outgoing actions. - - - - - Identifies the hosts's primary thread. - - - - - Creates and registers a new grouping event. - - Lifetime for the event object. - A name to identify the event. - The grouping interval. The incoming events are grouped until there's a pause of the length, and after that the outgoing event is fired. The interval must be not above . - Optional. The first handler for the signal. Others could be advised on the signal object proper. Using this param avoids creating the signal object, and is preferrable in simple cases. - The event on which the incoming events can be fired. Must be disposed of. - - - - Registers a new event on the host. - Free-threaded. - Must not be called on already-added events. - - - - - There was an incoming firing on one of the events, or a waiting event has been cancelled. - Anyway, its deadline has changed and we must accomodate the schedulle. - Free-threaded. - - - - - Unregisters an event from the host. - Free-threaded. - Safe to call more than once (on unregistered events). - - - - - Executes any events that are currently in the expired state. - Must be run under the , if . - - - - - The clock signal has fired. - Check if there's anything to execute. - Primary thread. - Safe to throw. - - - - - The timer that clocks the checks-for-execution. - Supports free-threaded IsEnabled. - - - - - Default clock period. - A value less than 50ms approx means we will be called each time the Thread Message Queue gets empty. - - - - - We use this to track whether we've been disposed of. - - - - - What we want to do to the timer. The immediate value set by from any thread. - After marshalling to the UI thread, applies to the timer. - - - - - True while there's a pending running. - We should avoid posting multiple simultaneous marshalling requests. - The is not enough an indication, as it might be changed back and forth while a marshalling is in progress. - - - - - The internal timer has ticked. Tick the clock. - Primary thread. - - - - - Controls the enabled state of the timer. - Free-threaded. - Will not pump. - - - - - Exposes grouping event hosts for various possible guarding modes. - - - - - Creates and registers a new grouping event. - - Lifetime for the event object. - A name to identify the event. - The grouping interval. The incoming events are grouped until there's a pause of the length, and after that the outgoing event is fired. The interval must be not above . - Whether the execution of the event's output signal should be guarded. Currently, only and options are supported. - Optional. The first handler for the signal. Others could be advised on the signal object proper. Using this param avoids creating the signal object, and is preferrable in simple cases. - The event on which the incoming events can be fired. Must be disposed of. - - - - Retrieves the host for a particular guarding option. - - Currently, only and options are supported. - - - - Manages the recurrent actions. Wraps execution into the . - Makes sure that the action can be cancelled even if it's pending on the queue. - Works on the primary thread only. - - - - - Action can be executed as much time before the deadline. - - - - - Timer deadline is set up with this precision. - - - - - Gets or sets whether the application that owns the alarm is currently active. - Recurring actions are executed once at most when the application is inactive. - This property must be set by the external owner in the UI applications. - - - - - A generation is increased each time the application is deactivated. After deactivation, each action can be executed at most once until the app is activated again. - Whenever an action is executed, its generation is set to the generation of the alarm. - - - - - . - - - - - The nearest deadline for which the timer is set up, or default value if not waiting for any actions. - - - - - List of all the actions known to the alarm, those waiting for deadline, and waiting on reentrancy guard, and running. - - - - - Identifies the primary thread. - Guards actions execution. - - - - - Timer that is set to tick when the elapses. - - - - - Creates the instance. - Attaches to the primary thread. - - - - - Schedulles a new timed action that executes the at recurring s. - The new interval starts when the previous action completes exection, so the total interval depends on the execution time. - This class can be used on the main thread only. - - Name to identify the action. - Interval between the execution (end-to-start). The interval must be positive and not below 50 milliseconds. - The action to execute. - A token that MUST be disposed to stop the recurrence. - - - - When the deadline comes, executes the actions. - - - - - Queue manipulation. Affects deadline. - - - - - Queue manipulation. Affects deadline. - - - - - Scans thru the queue. - Calculates the nearest deadline. - Sets up the timer to point to that deadline. - - - - - If decided that the deadline should be changed, applies the deadline and adjusts the timer. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Skips those actions already in the execution queue and, if the app is inactive, those that have already executed within this inactivity period. - Returns only those actions that are eligible for execution at some later moment, from the current point of view. - - - - - Dummy. - - - - - The deadline date/time, if we're currently waiting for the deadline. - Null, if we've reached the deadline and are now waiting for execution/executing/etc. - - - - - When the action executes, this is set to the current generation of the alarm. - Allows to track whether the action has executed since the last application deactivation, or not. - - - - - After waiting on the alarm timer queue, starts waiting on the reentrancy guard. - Called by the alarm queue when the comes. - Places self on the . Must not exec the action on this stack, must . - - Allows to execute reentrant-safe. - Generation we should get upon execution. - Notify parent when we reschedulle. - Check if still alive after waiting on reega. - - - - Schedulles the deadline for the action. - - - - - Compares by the deadline. - - - - - The deadline date/time, if we're currently waiting for the deadline. - Default value if we've reached the deadline and are now waiting for execution, or executing. - - - - - When the action executes, this is set to the current generation of the alarm. - Allows to track whether the action has executed since the last application deactivation, or not. - - - - - Manages the timed deferred actions, optionally protecting their execution with the . - Makes sure that the action can be canceled even if it's pending on the queue. - - - - - A generation is increased each time the application is deactivated. After deactivation, each action can be executed at most once until the app is activated again. - Whenever an action is executed, its generation is set to the generation of the alarm. - - - - - . - - - - - The list of timed actions that are waiting for their deadline to come, and the actions already in the execution queue, whose deadline is Null. - Main thread access only. - - - - - Timer that is set to tick when the elapses. - - - - - Nearest deadline of all those deadlines of the timed actions in that are eligible for execution under the current conditions (application inactivity etc). - Or 0, if there are no eligible timed actions to execute. - Changes to this property start/stop and edit the . - UTC! - - - - - Means the has to be recalculated. - - - - - Gets or sets whether the application that owns the alarm is currently active. - Recurring actions are executed once at most when the application is inactive. - This property must be set by the external owner in the UI applications. - - - - - Queues a timed action. - May be called on any thread. - - Limiting lifetime of the action. After the lifetime terminates, no subsequent execution is performed. - Name of the action. - Action executor. - Timeout/interval. - Whether to repeat. - Whether to guard timed actions or not. Currently, only and options are supported. - A token to cancel the activity. - - - - When the timer ticks, the action whose deadline was reached are executed. - - - - - Gets the reentrancy guard for the thread this scheduller is working on. - - - - - Gets the dispatcher for the thread this scheduller is working on. - - - - - Skips those actions already in the execution queue and, if the app is inactive, those that have already executed within this inactivity period. - Returns only those actions that are eligible for execution at some later moment, from the current point of view. - - - - - Tells apart one-time and recurring actions. - - - - - The schedulling unit of the alarm. - - - - - The deadline date/time, if we're currently waiting for the deadline. - Null, if we've reached the deadline and are now waiting for execution/executing/etc. - UTC! - - - - - When the action executes, this is set to the current generation of the alarm. - Allows to track whether the action has executed since the last application deactivation, or not. - - - - - Protects non-atomic -related operations, as they might be executed from different threads. - - - - - A token of the membership in the alarm's queue, or a dummy. - - - - - The current state of the timed action, see for details. - First states might be set on a foreign thread. - - - - - Fires when the timed-action state changes and the common deadline timer has to be recalculated. - - - - - After waiting on the alarm timer queue in , starts waiting on the reentrancy guard. - Called by the alarm queue when the comes. - Places self on the . Must not exec the action on this stack, must . - - - - - Called on the guarded thread as soon as possible after creating the action. - Transitions from to . - Adds itself to the alarm queue, if not cancelled yet (atomically). - - - - - After waiting on the reentrancy guard in , executes the action actually. - - - - - Schedulles the deadline for the action. - Free-threaded. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Compares the current object with another object of the same type. - - - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other. - - - An object to compare with this object. - - - - Cancels the timed action. - Might be called on any thread - - - - - The deadline date/time, if we're currently waiting for the deadline. - Null, if we've reached the deadline and are now waiting for execution/executing/etc. - UTC! - - - - - When the action executes, this is set to the current generation of the alarm. - Allows to track whether the action has executed since the last application deactivation, or not. - - - - - The user-supplied action name. - - - - - The action has just been created. It has not been returned to the user or added to the queue. - Transites into . - - - - - The action has been fully created, but has not been added to the queue. - If created on the guarded thread, this immediately transitions into by the method. - If created on a foreign thread, the action is returned to the user and can be either cancelled (with , transitions to ) or added to the queue (by , transitions to ). - - - - - Waiting for the to come on the alarm queue. Accepts (transitions to ) or (to ). - - - - - Deadline has come. Waiting when the allows us to run. - transitions to . - transitions to . - - - - - The action is running. Too late to cancel. - When thru, transitions either to (one-time) or (recurring). - - - - - Either the action has been cancelled, or a one-time action has executed. Terminal state. - Removes itself from the queue, if any. - - - - - A reentrancy guard that prevents controlled actions from running one on top of another. - - - - - The number of actions to be executed in a row in response to the external driver call to , unless overridden in the function arguments. - - - - - The per-thread guard instance. - - - - - A dispatcher that identifies the guarded thread. - - - - - While executing an action, the reentrancy constraint can be lifted and another action executed. - The executions and liftings thus form a stack. - - - - - Actions that are coming through the method. - Added from any thread, peeked/removed from the UI thread. - - - - - - See . - - - - - Constructs an instance for the current thread, on first request to . - - - - - When under an reentrancy guard, temporarily lifts the reentrancy constraints and allows other to be called, as if there were no executions on the stack. - This function can be called under execution only. - - A name that identifies this constraint lifting. - The activity to be executed with the constraint lifted. - - - - Checks that the activity is executed on the proper thread and is being guarded from reentrancy. - - - - - If called on the guarded thread and , executes the immediately and synchronously. - Otherwise, throws an exception and doesn't execute or queue the action. - Throws exceptions on fatal errors, traps exceptions from the proper. - - Identifies the action being executed. - The action to execute. Exceptions will be trapped. - - - - Executes an action on the guarded thread in a reentrant-safe manner. - If called on a foreign thread, executes the action asynchronously, like . - If called on the guarded thread, checks for reentrancy. If there are no guarded executions on the stack yet, executes the action immediately and synchronously. Otherwise, postpones the action for asynchronous execution, like does. - - Identifies the action in the queue. - The action to execute. Exceptions will be trapped. - True if executed immediately, False if queued (-compatible behavior). - - - - Causes the internal guard actions queue to pump, and actions to execute. - The function must be called under good conditions (). - - The maximum number of actions to execute, or 0 for the default internal value. - The number of actions actually executed. - - - - Queues the action to execute asynchronously on the guarded thread, as soon as possible. - The reentrancy between guarded actions is prevented. - - Identifies the action in the queue. - The action to execute. Exceptions will be trapped. - - - - If called on the guarded thread and , executes the immediately and synchronously and returns True. - Otherwise, immediately returns False and doesn't execute or queue the action. - - Identifies the action being executed. - The action to execute. Exceptions will be trapped. - - - - Dumps state for an exception. - - - - - Check that thread-affinity and reentrancy conditions allow us to execute an action right now. - - Action name, for error-reporting. - - - - A method that schedulles execution of the actions queue. - Called when comes true or from within . - Can be called on any thread. - - - - - wrapper for the case when we get out of the Executing state. - Only schedulle such an invocation once. - - - - - Executes the pending actions on the guarded thread, if possible. - - - - - Gets or creates a reentrancy guard for the current thread. - Take caution if your code might execute on other threads. In these cases you might want to explicitly take the Guard for the desired thread instead of using . - - - - - Tells whether the guard can execute actions at this moment, which means there's no action currently executing. Readonly. - - - - - - Gets a readonly property that tells the name of the current action (an execution or a lifting of the reentrancy constraint, see ), or Null if neither is present. - This is always non-Null when , but could be also non-Null when not (if was called). - - - - - Gets the dispatcher for the thread guarded by this instance. - - - - - Gets whether there are no pending actions on the Reentrancy Guard queue. - All of the deferred actions go through this queue. - - - - - Gets whether a reentrant-safe execution is currently in progress. - If True, then is False. - As the method that “lifts” the guard, this flag falls and only becomes True when an execution, not lifting, is on top of the executions stack. - - - - - Encapsulates the stack of executions and reentrancy liftings. - Supposed number of items: less than 10. - Main-thread-only. - - - - - Backend for . - - - - - Backend for . - - - - - Storage for executions and liftings. - An execution is added with , and a lifting with . An execution prevents other executions, and a lifting allows them. - An execution can only be added into an empty stack or on top of a lifting, and a lifting can only be added on top of an execution. - Thus, the bottom of the stack and every even-indexed item is an execution, and every odd-indexed item is a lifting. - Thread safety: changes only on the home thread (remember, this is the execution stack, not the actions queue). Safe to read on the home thread only. Lock-free. - - - - - Event. - - - - - Removes a recorded execution from the stack. - Home thread only. - - Item name. - - - - Records an execution on the stack. - Home thread only. - - Item name. - - - - Records a reentrancy constraint lifting on the stack, removes upon retval disposal. - Home thread only. - - Item name. - Note: PushExecution has been broken into Push/Pop to avoid creating the disposable object. A lifting is a much rarer thing, let's keep the safer code here. - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - The name of the execution or lifting currently active (on top of the execution stack), or Null if there's none such. - - - This property could be evaluated on demand, but this is not thread-safe, so we make a copy in a thread-safe context (execution stack is only modified on the home thread). - - - - - Tells whether an execution is currently in progress. - This means that the stack is not empty (an is running), and the execution guard has not been lifted with since the last . - - - Technically, tells whether the number of items in the stack is even. - This property could be evaluated on demand, but this is not thread-safe, so we make a copy in a thread-safe context (execution stack is only modified on the home thread). - - - - - A stack data structure with events, lite version (compared to and others), without interlocking. - - - - - Fires when an add/remove operation is performed on the storage. - - - - - Adds an item to the stack. Updates the properties. - - - - - An - pair of actions. - - - - - Removes an item from the stack. Updates the properties. - - Ensures that we removed exactly the same name we added (valid bracket structure). - - - - Peeks the item on top of the stack. Null if empty. - - - - - Returns an enumerator that iterates through the collection. - - - - A that can be used to iterate through the collection. - - 1 - - - - Returns an enumerator that iterates through a collection. - - - - An object that can be used to iterate through the collection. - - 2 - - - - Gets the number of items in the stack. - - - - - Encapsulates the queue in a thread-safe manner. - - - - - Lock for protecting the data structure. - - - - - The internal storage. Must be protected by . - - - - - Adds an item to the end of the queue. - Thread-safe. - - - - - Removes the first item in the queue. Does not throw if the queue is empty. - Thread-safe. - A handler that will be executed on the removed item, in case there were any items in the queue. - - Whether the queue was not empty and anything were executed. - - - - Diagnostics. Dumps the RG queue. - - - - - Gets whether the queue currently has no items in it. - Thread-safe. - - - - - A synchro-context to be set on the thread while executing the no-reentrancy action. - - - - - Attaches to the current thread. - - - - - Attaches to some given thread (needed for ). - - - - - Pushes/pops the context on the current thread. - - - - - Interop. - - - - - Clone. - - - - - Use the dispatcher. - - - - - Use the dispatcher. - - - - - Implements a data item that waits on the queue. - - - - - The method to execute. - - - - - User-assigned name of the action. - - - - - Returns the fully qualified type name of this instance. - - - - A containing a fully qualified type name. - - 2 - - - - A timer that executes its activities under a reentrancy guard and (optionally) suspends the activity when the application is inactive, after executing the action once. - This class must be disposed of. - Can be used on the primary thread only. - - - - - When the event is about to fire, is set to if the app is inactive, or to a Null value if the app is active. - Helps with the app-inactivity execution conditions: stop after first time inactive, fire if missed an execution when get active. - - - - - Raised when we're not waiting for the timer event, but sitting on the queue or executing. - In this state, the new timer events are ignored to avoid parallel execution. - - - - - Tells whether the underlying WinForms should be ON. Applied to the timer offstack to avoid pumping on . - Is composed from all the states: , , . - - - - - Identifies the owning thread. - - - - - The timer implementation. - - - - - Gets or sets the timer interval. - - - - - Allows to suspend the timer execution when application gets inactive. - It's different from in that after falls, the action executes once more until the timer is suspended. When the application gets back active, if the action execution was missed, it's executed immediately. - - - - - Gets or sets whether the timer is currently enabled. - - - - - Fires when the timer ticks, under a reentrancy guard. - - - - - Tick of the underlying winforms timer. Unguarded. - - - - - Executes on the timer tick, but under the reentrancy guard. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - The name of this instance. - - - - - A reference wrapper for the for those usages that don't mind creating a new object. - - - - - Locks. - - - - - Unlocks. - - - - - Pushes an / bracket. - - - - - Reports a thread access inconsistency. - - - - - Gets the thread the action was expected to execute on. Optional. - - - - - Gets the thread on which the action was prevented from being executed. - - - - - A timer that is not held on a strong reference by the system. - If there are no more root paths to your class that owns the timer, the ticks stop automatically. - - - - - Gets or sets the timer ticks interval. - - - - - Gets or sets whether the timer is currently running. - - - - - Fires when the timer ticks. - Sinking this event does not hold you on a permanent GC root. - - - - - This timer is held on a strong reference, but it does not hold us. - - - - - Creates the timer. If you got the lifetime, pass it in. Otherwise, could be the eternal lifetime, because the timer is held on weak ref and won't be keeping this object alive. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Returns false if the expected key does not exist in the registry - or exceprion is thrown - - - - - Extension methods for enums. - - - - - Caches the results, as they use reflection and are thus very slow. - Copy-on-write, non-locked (the values are expendable and can be regenerated in case of a race). - - - - - If the enum value does not fall into the list of valid enum values, coerce it to be the first available enum value. - This is silent, no exception is thrown. - Note: this operation is slow, do not use often. - - - - - Gets all of the alternative names for the value of an enum. - The value is not required to be coerced to the enum type, it must be of any integral type. - - Enum type. - Enum value to be named, must be of an integral type. - - - - Unboxes an object of an integral type (intXXX, bool, byte, char, enum, etc) as a QWORD integer value. - - - - - - Mimics the MSBuild's GetDirectoryNameOfFileAbove property function. - - Looks for the given file in the containing folders, starting with the current one. - Possible use is to locate the product home directory starting with any unspecified point within its directory structure. - - The folder or file to start looking from (moving up). - Name of the file to look for. - The folder which has the file. Throws an exception if not found. - - - - - Mimics the MSBuild's GetDirectoryNameOfFileAbove property function. - - Looks for the given file in the containing folders, starting with the current one. - Possible use is to locate the product home directory starting with any unspecified point within its directory structure. - - The folder or file to start looking from (moving up). - Name of the file to look for. - The folder which has the file. Null if not found. - - - - Represents an IPv6 IP Address - - - This struct is used by various classes in - the namespace to represent - IPv6 addresses. - - - - - IP fragment 1 - - - IP fragment 1 - - - - - IP fragment 2 - - - IP fragment 2 - - - - - IP fragment 3 - - - IP fragment 3 - - - - - IP fragment 4 - - - IP fragment 4 - - - - - IP fragment 5 - - - IP fragment 5 - - - - - IP fragment 6 - - - IP fragment 6 - - - - - IP fragment 7 - - - IP fragment 7 - - - - - IP fragment 8 - - - IP fragment 8 - - - - - returns a string representation of the IP address v6 - - a human readable ipv6 address - - Used to display a human readable IPv6 address. - - - - - Represents an array of IP addresses - - - This struct is used by the DnsQuery API to hold the selected - DNS servers to query. - - - - - Gets or sets the number of element in the - array. - - - - - Gets or sets the array of IP addresses - - - - - Represents a complete DNS record (DNS_RECORD) - - - This structure is used to hold a complete DNS record - as returned from the DnsQuery API. - - - - - Gets or sets the next record. - - - - - Gets or sets the name of the record. - - - - - Gets or sets the type. - - - - - Gets or sets the data length. - - - - - Gets or sets the flags. - - - - - Gets or sets the TTL count - - - - - Reserved. - - - - - Represents the flags of a . - - - - - Reserved. - - - - - Reserved. - - - - - DNS query types - - - This enum is used by the DnsQuery API call to describe the - options to be given to a DNS server along with a query. - - - - - Standard - - - - - Accept truncated response - - - - - Use TCP only - - - - - No recursion - - - - - Bypass cache - - - - - Cache only - - - - - Directs DNS to ignore the local name. - - - - - Prevents the DNS query from consulting the HOSTS file. - - - - - Prevents the DNS query from using NetBT for resolution. - - - - - Directs DNS to perform a query using the network only, - bypassing local information. - - - - - Treat as FQDN - - - - - Allow empty auth response - - - - - Don't reset TTL values - - - - - Reserved. - - - - - obsolete. - - - - - Directs DNS to return the entire DNS response message. - - - - - The possible return codes of the DNS API call. This enum can - be used to decypher the - property's return value. - - - This enum is used to describe a failed return code by the - DnsQuery API used in the class. - - - - - Successful query - - - - - Base DNS error code - - - - - Base DNS error code - - - - - DNS server unable to interpret format. - - - - - DNS server failure. - - - - - DNS name does not exist. - - - - - DNS request not supported by name server. - - - - - DNS operation refused. - - - - - DNS name that ought not exist, does exist. - - - - - DNS RR set that ought not exist, does exist. - - - - - DNS RR set that ought to exist, does not exist. - - - - - DNS server not authoritative for zone. - - - - - DNS name in update or prereq is not in zone. - - - - - DNS signature failed to verify. - - - - - DNS bad key. - - - - - DNS signature validity expired. - - - - - Packet format - - - - - No records found for given DNS query. - - - - - Bad DNS packet. - - - - - No DNS packet. - - - - - DNS error, check rcode. - - - - - Unsecured DNS packet. - - - - - Possible arguments for the DnsRecordListFree api - - - This enum is used by the DnsRecordListFree API. - - - - - Reserved. - - - - - Frees the record list returned by the DnsQuery API - - - - - Represents the exception that occurs when a - fails. - - - - The exception that occurs when a DNS request fails at any level. - - - This class is used to represent two broad types of exceptions: - - Win32 API Exceptions that occurred when calling the DnsQuery API - Exceptions of other types that occurred when working with - the and - classes. - - - - Win32 errors that are DNS specific are specified in the - enumeration but if the - returned is not defined in that - enum then the number returned will be defined in WinError.h. - - - Exceptions of other types are available through the - InnerException property. - - - - - - Initializes a new instance of - - - Used to raise a with all the default - properties. The message property will return: Unspecified - DNS exception. - - - - - Initializes a new instance of - - the human readable description of the problem - - Used to raise a where the only important - information is a description about the error. The - property will return 0 or SUCCESS indicating that the DNS API calls - succeeded, regardless of whether they did or did not. - - - - - Initializes a new instance of - - the human readable description of the problem - the error code () - if the DnsQuery api failed - - Used to raise a where the underlying DNS - API call fails. In this case, the property - is the most important information about the exception. In most cases, - the number returned is a value in the - enum however, if it is not, the error is defined in WinError.h. - - - - - Initializes a new instance of - - the human readable description of the - problem - the exception that caused the - underlying error - - Used to raise a where the exception is - some other type but a typeof(DnsException) is desired to be raised - instead. In this case, the property - always returns 0 or SUCCESS and is a useless property. - - - - - Initializes a new instance of for - - the serialization information - the context - - Used by the interface. - - - - - Gets the error code () - if the DnsQuery api failed. Will be set to success (0) if the API - didn't fail but another part of the code did. - - - Win32 errors that are DNS specific are specified in the - enumeration but if the - returned is not defined in that - enum then the number returned will be defined in WinError.h. - - Value will be defined in WinError.h if not defined in the - enum. - - This example shows how to decypher the return of the - ErrorCode property. - - try - { - ... - } - catch(DnsException dnsEx) - { - int errcode = dnsEx.ErrorCode; - if (! Enum.IsDefined(typeof(DnsQueryReturnCode), errcode)) - { - //defined in winerror.h - Console.WriteLine("WIN32 Error: {0}", errcode); - return; - } - - DnsQueryReturnCode errretcode = (DnsQueryReturnCode) errcode; - if (errretcode == DnsQueryReturnCode.SUCCESS) - { - //inner exception contains the goodies - Console.WriteLine(dnsEx.InnerException.ToString()); - return; - } - - //dns error - Console.WriteLine("DNS Error: {0}", errretcode.ToString("g")); - } - - - - - - DNS record types - - - This enum represents all possible DNS record types that - could be returned by the DnsQuery API. - - - - - Address record - - - - - Name Server record - - - - - Obsolete - - - - - Obsolete - - - - - Canonical Name record - - - - - Start Of Authority record - - - - - Mailbox record - - - - - Reserved. - - - - - Reserved. - - - - - NULL data for a DNS resource record. - - - - - Well-Known Service record - - - - - Pointer record - - - - - Host Information record - - - - - mail information (MINFO) record - - - - - Mail Exchange record - - - - - Text record - - - - - Responsible Person record - - - - - AFS Data Base location record - - - - - X25 - - - - - ISDN - - - - - Route Through - - - - - Network service access point address record - - - - - Obsolete - - - - - Cryptographic signature record - - - - - Public key record - - - - - Pointer to X.400/RFC822 information record - - - - - Geographical position record - - - - - IPv6 address record - - - - - Location record - - - - - Next record - - - - - Server record - - - - - ATM address (ATMA) record - - - - - TKEY resource record - - - - - secret key transaction authentication (TSIG) record - - - - - Reserved. - - - - - Reserved. - - - - - Reserved. - - - - - Reserved. - - - - - All records - - - - - Any records - - - - - WINS record - - - - - Windows Internet Name Service reverse-lookup record - - - - - Windows Internet Name Service reverse-lookup record - - - - - Represents a collection of servers by hostname or ip address. - - - Represents a collection of DNS servers that were specified as - hostnames or ip addresses. Regardless of the way the server - was entered, it is resolved to an object - internally. - - - - - Creates a new instance of the collection. - - - This initializer creates an instance of the collection. - The collection will be empty and contain 0 items. - - - - - Adds a new hostname or ip address representing a DNS server - to the collection. - - The ip address or hostname of a DNS server - to add to the collection - - Adds a DNS server to the collection. The hostname or ip address - is first resolved to one or more instances - and then added to the collection. If a given hostname resolves - to 10 ip addresses, those 10 addresses will be added to the collection. - - - - - Gets the instance found at the current - index of the collection. - - - Gets the at the specified index of the - collection. - - The index of the to - retrieve from the collection. - The at the specified index. - - - - Represents a container for a DNS record of any type - - - The property's value - helps determine what type real type of the - property returns as - noted in this chart: - - - RecordType - RecordData - - - A - - - - CNAME - - - - MB - - - - MD - - - - MF - - - - MG - - - - MR - - - - NS - - - - PTR - - - - HINFO - - - - ISDN - - - - X25 - - - - MINFO - - - - RP - - - - MX - - - - AFSDB - - - - RT - - - - NULL - - - - SOA - - - - WKS - - - - AAAA - - - - ATMA - - - - NBSTAT - - - - SRV - - - - TKEY - - - - TSIG - - - - WINS - - - - LOC - - - - AXFR - null - - - GPOS - null - - - IXFR - null - - - KEY - null - - - MAILA - null - - - MAILB - null - - - NSAP - null - - - NSAPPTR - null - - - NXT - null - - - PX - null - - - SIG - null - - - TEXT - null - - - - - - - Gets or sets the type of DNS record contained in the - property. - - - This property indicates the type of DNS record - that the property is - holding. - - - - - Gets or sets the DNS record object as denoted in the - field. - - - This property holds the actual DNS record. - - - - - Determines whether or not this - instance is equal to a specific - by comparing the property of the - current against the - argument. - - The to compare to. - A boolean indicating whether or not this - object contains a DNS record matching the entered type. - - Determines if this is of a specific - . The comparison does not test the - field. - - - - - Determines whether or not this instance - is equal to another or to a - instance. - - The object to compare to this instance. - A boolean indicating whether or not this - object equals the entered object. - - Determines if this instance is equal to - an object. If the object is a , the - method is used to determine - equality based on the record type. If the object is a - object, the method is used to determine - equality. If the object is any other type, the - class's Equal method is used for comparison. - - - - - Serves as a hash function for a particular type, suitable - for use in hashing algorithms and data structures like a - hash table. - - Integer value representing the hashcode of this - instance of . - - The GetHashCode method uses the hash codes of the - and properties to generate a unique code - for this particular record type/data combination. - - - - - Compares the current instance with another object of the same type. - - The object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the - comparands. The return value has these meanings: - - - Value - Meaning - - - Less than zero - This instance is less than obj. The - types do not match. - - - Zero - This instance is equal to obj. - - - Greater than zero - This instance is greater than obj. The - do not match. - - - - - Compares a to this instance by its - and properties. - - - obj is not the same type as this instance. - - - - - Represents a collection of objects. - - - The DnsWrapperCollection is a collection of - objects. The resultant collection represents all of the DNS records - for the given domain that was looked up. This class cannot be directly - created - it is created by the and - classes to hold the returned DNS - records for the given domain. - - - - - Gets the at the specified - ordinal in the collection - - - Gets the at the specified - index of the collection. - - The index to retrieve from the collection. - The at the specified index of - the collection. - - - - Represents one DNS request. Allows for a complete DNS record lookup - on a given domain using the Windows API. - - - - The DnsRequest class represents a complete DNS request for a given - domain on a specified DNS server, including all options. The - DnsRequest class uses the Windows API to do the query and the dlls - used are only found on Windows 2000 or higher machines. The class - will throw a exception if run - on an machine not capable of using the APIs that are required. - - - Version Information - - - 3/8/2003 v1.1 (C#) - Released on 5/31/2003 - - - Created by: Bill Gearhart. Based on code by Patrik Lundin. - See version 1.0 remarks below. Specific attention was given - to the exposed interface which got a 110% overhaul. - - - Notable changes from the previous version: - - - - structs filled with constants were changed to enums - - - - - .net datatypes were changed to c# datatypes - - - - - every object is now in it's own *.cs file - - - - - custom collections and exceptions added - - - - - better object orientation - request and response classes - created for the dns query request/response session so that - it follows the .NET model - - - - - eliminated duplicate recs returned by an ALL query - - - - - bad api return code enumeration added - - - - - ToString() overridden to provide meaningful info for many - of the dns data structs - - - - - documentation and notes were created for all classes - - - - - added check to ensure code only runs on w2k or better - - - - - obsolete DNS record types are now marked as such - - - - - newer enum values added to DnsQueryType enum - - - - - compiled html documentation was written which always takes - 20 times longer than writing the code does. - - - - - this list of changes was compiled by your's truly... - - - - - smoothed out object and member names so they were more - intuitive - for instance: DNS_MX_DATA became MXRecord - - - - - added call to DnsRecordListFree API to free resources after - DnsQuery call - - - - - altered DnsQuery API call to allow for servers other than the - local DNS server from being queried - - - - - - 4/15/2002 v1.0 (C#) - - - Created by: Patrik Lundin - - - Based on code found at: - http://www.c-sharpcorner.com/Code/2002/April/DnsResolver.asp - - - - - Initial implementation. - - - - - - - Use the and objects - together to get DNS information for aspemporium.com from the nameserver - where the site is hosted. - - using System; - using netlib.Dns; - using netlib.Dns.Records; - - namespace ClassLibrary1 - { - class __loader - { - static void Main() - { - try - { - DnsRequest request = new DnsRequest(); - request.TreatAsFQDN=true; - request.BypassCache=true; - request.Servers.Add("dns.compresolve.com"); - request.Domain = "aspemporium.com"; - DnsResponse response = request.GetResponse(); - - Console.WriteLine("Addresses"); - Console.WriteLine("--------------------------"); - foreach(ARecord addr in response.ARecords) - Console.WriteLine("\t{0}", addr.ToString()); - Console.WriteLine(); - - Console.WriteLine("Name Servers"); - Console.WriteLine("--------------------------"); - foreach(PTRRecord ns in response.NSRecords) - Console.WriteLine("\t{0}", ns.ToString()); - Console.WriteLine(); - - Console.WriteLine("Mail Exchanges"); - Console.WriteLine("--------------------------"); - foreach(MXRecord exchange in response.MXRecords) - Console.WriteLine("\t{0}", exchange.ToString()); - Console.WriteLine(); - - Console.WriteLine("Canonical Names"); - Console.WriteLine("--------------------------"); - foreach(PTRRecord cname in response.GetRecords(DnsRecordType.CNAME)) - Console.WriteLine("\t{0}", cname.ToString()); - Console.WriteLine(); - - Console.WriteLine("Start of Authority Records"); - Console.WriteLine("--------------------------"); - foreach(SOARecord soa in response.GetRecords(DnsRecordType.SOA)) - Console.WriteLine("\t{0}", soa.ToString()); - Console.WriteLine(); - - //foreach(DnsWrapper wrap in response.RawRecords) - //{ - // Console.WriteLine(wrap.RecordType); - //} - - response = null; - request = null; - } - catch(DnsException ex) - { - Console.WriteLine("EXCEPTION DOING DNS QUERY:"); - Console.WriteLine("\t{0}", ((DnsQueryReturnCode) ex.ErrorCode).ToString("g")); - - if (ex.InnerException != null) - Console.WriteLine(ex.InnerException.ToString()); - } - } - } - } - - - - - - - - http://msdn.microsoft.com/library/en-us/dns/dns/dnsquery.asp - - - - - http://msdn.microsoft.com/library/en-us/dns/dns/dnsrecordlistfree.asp - - - - - Creates a new instance of - - - The property is set to null - and all other properties have their default value - of false, except for which has a value - of true. The system is set to use the local DNS - server for all queries. - - - - - Creates a new instance of - - - The property is set to the domain - argument and all other properties have their default value - of false, except for which has a value - of true. The system is set to use the local DNS - server for all queries. - - The hostname that DNS information is desired for. - This should not be an ip address. For example: yahoo.com - - - - Queries the local DNS server for information about - this instance of and returns - the response as a - - A object containing the response - from the DNS server. - - The code is running on a machine lesser than Windows 2000 - - - The property is null - - - The DNS query itself failed or parsing of the returned - response failed - - - Returns a representing the response - from the DNS server or one of the exceptions noted in the - exceptions area, the most common of which is the - . - - - - - Gets a collection of DNS servers to use for the current request. - If the collection contains no items, the local DNS servers are used. - - - If the collection contains 0 references, - the default DNS servers are used. Otherwise, servers are used in a - decending order from their ordinal position in the collection. - You can add as many DNS Servers as you need to the collection by - host name or IP address. - - A that can be used to - manage the DNS servers that will be used for the query. - - - - Gets or sets whether or not to use TCP only for the query. - - Boolean indicating whether or not to use TCP instead of UDP for the query - - If set to true, the DNS query will be done via TCP rather than UDP. This - is useful if the DNS service you are trying to reach is running on - TCP but not on UDP. - - - - - Gets or sets whether or not to accept truncated results — - does not retry under TCP. - - Boolean indicating whether or not to accept truncated results. - - Determines wherher or not the server will be re-queried in the event - that a response was truncated. - - - - - Gets or sets whether or not to perform an iterative query - - Boolean indicating whether or not to use recursion - to resolve the query. - - Specifically directs the DNS server not to perform - recursive resolution to resolve the query. - - - - - Gets or sets whether or not to bypass the resolver cache - on the lookup. This must be set to true if you specified - a server in the collection. - - Boolean indicating whether or not to bypass the cache - and use the list of servers in the - collection. - - - Setting this to true allows you to specify one or more DNS servers - to query instead of querying the local DNS cache and server. - If false is set, the list of servers is ignored and the local DNS - cache and server is used to resolve the query. - - - - - Gets or sets whether or not to direct DNS to perform a - query on the local cache only - - Boolean indicating whether or not to only use the - DNS cache to resolve a query. - - This option allows you to query the local DNS cache only instead - of making a DNS request over either UDP or TCP. - This property represents the logical opposite of the - property. - - - - - Gets or sets whether or not to direct DNS to perform a - query using the network only, bypassing local information. - - Boolean indicating whether or not to use the - network only instead of local information. - - This property represents the logical opposite of the - property. - - - - - Gets or sets whether or not to direct DNS to ignore the - local name. - - Boolean indicating whether or not to ignore the local name. - - Determines how the DNS query handles local names. - - - - - Gets or sets whether or not to prevent the DNS query from - consulting the HOSTS file. - - Boolean indicating whether or not to deny access to - the HOSTS file when querying. - - Determines how the DNS query handles accessing the HOSTS file when - querying for DNS information. - - - - - Gets or sets whether or not to prevent the DNS query from - using NetBT for resolution. - - Boolean indicating whether or not to deny access to - NetBT during the query. - - Determines how the DNS query handles accessing NetBT when - querying for DNS information. - - - - - Gets or sets whether or not to direct DNS to return - the entire DNS response message. - - Boolean indicating whether or not to return the entire - response. - - Determines how the DNS query expects the response to be - received from the server. - - - - - Gets or sets whether or not to prevent the DNS - response from attaching suffixes to the submitted - name in a name resolution process. - - Boolean indicating whether or not to allow - suffix attachment during resolution. - - Determines how the DNS server handles suffix appending - to the submitted name during name resolution. - - - - - Gets or sets whether or not to store records - with the TTL corresponding to the minimum value - TTL from among all records - - Boolean indicating whether or not to - use TTL values from all records. - - Determines how the DNS query handles TTL values. - - - - - Gets or sets the domain to query. The domain must be a hostname, - not an IP address. - - - This method is expecting a hostname, not an IP address. The - system will fail with a when - is called if Domain is an IP address. - - String representing the domain that DNS information - is desired for. This should be set to a hostname and not an - IP Address. - - - - Represents one DNS response. This class cannot be directly created - - it is returned by the method. - - - The DnsResponse class represents the information returned by a DNS - server in response to a . The DnsResponse - class offers easy access to all of the returned DNS records for a given - domain. - - - - - Returns a collection of DNS records of a specified - . The collection's data type - is determined by the type of record being sought in the - type argument. - - A enumeration - value indicating the type of DNS record to get from the list of - all DNS records (available in the - property. - an of one of the types - specified in the namespace based - on the argument representing the - type of DNS record desired. - - - It is recommended that you loop through the results of this - method as follows for maximum convenience: - - foreach ( record in obj.GetRecords()) - { - string s = record.ToString(); - } - - The following table indicates the DNS record type you can expect to get - back based on the requested. Any items returning - null are not currently supported. - - - DnsRecordType enumeration value - GetRecords() returns - - - A - - - - CNAME - - - - MB - - - - MD - - - - MF - - - - MG - - - - MR - - - - NS - - - - PTR - - - - HINFO - - - - ISDN - - - - X25 - - - - MINFO - - - - RP - - - - MX - - - - AFSDB - - - - RT - - - - NULL - - - - SOA - - - - WKS - - - - AAAA - - - - ATMA - - - - NBSTAT - - - - SRV - - - - TKEY - - - - TSIG - - - - WINS - - - - LOC - - - - AXFR - null - - - GPOS - null - - - IXFR - null - - - KEY - null - - - MAILA - null - - - MAILB - null - - - NSAP - null - - - NSAPPTR - null - - - NXT - null - - - PX - null - - - SIG - null - - - TEXT - null - - - - - - - Gets a containing - all of the DNS information that the server returned about - the queried domain. - - - Returns all of the DNS records retrieved about the domain - as a . This property - is wrapped by the method, the - , , and - properties. - - Gets a collection of objects. - - - - Gets all the for the queried domain. - - - Uses the method to retrieve an - array of s representing all the Address - records for the domain. - - An array of objects. - - - - Gets all the for the queried domain. - - - Uses the method to retrieve an - array of s representing all the Mail Exchanger - records for the domain. - - An array of objects. - - - - Gets all the DNS name servers for the queried domain as an - array of s. - - - Uses the method to retrieve an - array of s representing all the Name Server - records for the domain. - - An array of objects. - - - - Represents a DNS Well Known Service record (DNS_WKS_DATA) - - - The WKSRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the IP address - - - IP address, in the form of an IP4_ADDRESS structure. - - - - - Gets or sets the protocol - - - IP protocol for this record. Valid values are UDP or TCP. - - - - - Gets or sets the bitmask - - - Mask representing well known service being represented in the RR. - - - - - Returns a string representation of the service record - - - - The string returned looks like: - - IP Address: [IPADDR] Protocol: [PROTO] BitMask: [BITMASK] - where [IPADDR] = string representation of as specified here - and [PROTO] = string representation of - and [BITMASK] = hexadecimal representation of - - - - - - Represents a DNS Windows Internet Name Service reverse-lookup - (WINSR) record (DNS_WINSR_DATA) - - - The WINSRRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the mapping flag - - - WINS mapping flag that specifies whether the record must be included - into the zone replication. It may have only two values: 0x80000000 - and 0x00010000 corresponding to the replication and no-replication - (local record) flags, respectively. - - - - - Gets or sets the lookup timeout - - - Time, in seconds, that a DNS Server attempts resolution using WINS - lookup. - - - - - Gets or sets the cache timeout - - - Time, in seconds, that a DNS Server using WINS lookup may cache the - WINS Server's response. - - - - - Gets or sets the result domain name - - - Pointer to a string representing the domain name to append to the - returned NetBIOS name. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - mapping flag: [FLAG] lookup timeout: [LOOKUP] cache timeout: [CACHE] result domain: [DOMAIN] - where [FLAG] = string representation of - and [LOOKUP] = string representation of - and [CACHE] = string representation of - and [DOMAIN] = hexadecimal representation of - - - - - - Represents a DNS Windows Internet Name Service (WINS) record (DNS_WINS_DATA) - - - The WINSRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the mapping flag - - - WINS mapping flag that specifies whether the record must be - included into the zone replication. It may have only two values: - 0x80000000 and 0x00010000 corresponding to the replication and - no-replication (local record) flags, respectively. - - - - - Gets or sets the lookup timeout - - - Time, in seconds, that a DNS Server attempts resolution using - WINS lookup. - - - - - Gets or sets the cache timeout - - - Time, in seconds, that a DNS Server using WINS lookup may cache - the WINS Server's response. - - - - - Gets or sets the count of WINS servers - - - Number of WINS Servers listed in the WinsServers member. - - - - - Gets or sets the WINS server array pointer - - - Array of WINS Servers, each of type int . - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - mapping flag: [FLAG] lookup timeout: [LOOKUP] cache timeout: [CACHE] server count: [SERVERCT] server ptr: [SERVERS] - where [FLAG] = string representation of - and [LOOKUP] = string representation of - and [CACHE] = string representation of - and [SERVERCT] = string representation of - and [SERVERS] = string representation of - - - - - - Represents a DNS Text record (DNS_TXT_DATA) - - - The TXTRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the string count - - - Number of strings represented in pStringArray. - - - - - Gets or sets the string array - - - Array of strings representing the descriptive text of the - TXT resource record. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - string count: [COUNT] string array: [ARR] - where [COUNT] = string representation of - and [ARR] = string representation of - - - - - - represents a secret key transaction authentication (TSIG) record (DNS_TSIG_DATA) - - - The TSIGRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the name algorithm - - - Name of the key used in the domain name syntax. - - - - - Gets or sets the algorithm packet - - - Pointer to the packet containing the algorithm. - - - - - Gets or sets the key - - - Pointer to the signature. - - - - - Gets or sets the other data - - - Pointer to other data. This member is empty unless a BADTIME error is returned. - - - - - Gets or sets the create time - - - Time the key transaction authentication was created, expressed in seconds since the beginning of January 1, 1970, Greenwich Mean Time (GMT), excluding leap seconds. - - - - - Gets or sets the fudge time - - - Time, in seconds, from which the i64CreateTime may be in error. - - - - - Gets or sets the original XID - - - Original message identifier. - - - - - Gets or sets the error - - - Error, expressed in expanded RCODE that covers TSIG processing. See Remarks for more information about the TSIG resource record. - - - - - Gets or sets the key length - - - Length, in bytes, of the pSignature member. - - - - - Gets or sets the other length - - - Length, in bytes, of the pOtherData member. - - - - - Gets or sets the algorithm length - - - Length, in bytes, of the pNameAlgorithm member. - - - - - Gets or sets whether or not to use packet pointers - - - Reserved for future use. - - - - - Represents a DNS TKEY resource record, used to - establish and delete shared-secret keys between - a DNS resolver and server. (DNS_TKEY_DATA) - - - The TKEYRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the name algorithm - - - Pointer to a string representing the name of the algorithm - used with the key. - - - - - Gets or sets the algorithm packet. - - - Pointer to the packet containing the algorithm. - - - - - Gets or sets the key - - - Pointer to the key. - - - - - Gets or sets the other data - - - Reserved for future use. - - - - - Gets or sets the create time - - - Date and time at which the key was created, expressed in seconds - since the beginning of January 1, 1970, Greenwich Mean Time (GMT), - excluding leap seconds. - - - - - Gets or sets the expire time - - - Expiration date of the key, expressed in seconds since the beginning - of January 1, 1970, Greenwich Mean Time (GMT), excluding leap seconds. - - - - - Gets or sets the mode - - - Scheme used for key agreement or the purpose of the TKEY DNS Message. - - - - - Gets or sets the error - - - Error, expressed in expanded RCODE that covers TSIG processing and - TKEY processing. See Remarks. - - - - - Gets or sets the key length - - - Length, in bytes, of the pSignature member. - - - - - Gets or sets the other length - - - Length, in bytes, of the pOtherData member. - - - - - Gets or sets the name algorithm's length - - - Length, in bytes, of the pNameAlgorithm member. - - - - - Gets or sets whether or not to use packet pointers - - - Reserved for future use. - - - - - Represents a DNS Server record. (DNS_SRV_DATA) - - - The SRVRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the name - - - Pointer to a string representing the target host. - - - - - Gets or sets the priority - - - Priority of the target host specified in the owner name. Lower numbers imply higher priority. - - - - - Gets or sets the weight - - - Weight of the target host. Useful when selecting among hosts with the same priority. The chances of using this host should be proportional to its weight. - - - - - Gets or sets the port - - - Port used on the target host for the service. - - - - - Reserved. - - - Reserved. Used to keep pointers DWORD aligned. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - name next: [SERVER] priority: [PRIOR] weight: [WEIGHT] port: [PORT] - where [SERVER] = string representation of - and [PRIOR] = string representation of - and [WEIGHT] = string representation of - and [PORT] = string representation of - - - - - - Represents a DNS Start Of Authority record (DNS_SOA_DATA) - - - The SOARecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the primary server - - - Pointer to a string representing the name of the authoritative - DNS server for the zone to which the record belongs. - - - - - Gets or sets the name of the administrator - - - Pointer to a string representing the name of the responsible party - for the zone to which the record belongs. - - - - - Gets or sets the serial number - - - Serial number of the SOA record. - - - - - Gets or sets the refresh - - - Time, in seconds, before the zone containing this record should be - refreshed. - - - - - Gets or sets the retry count - - - Time, in seconds, before retrying a failed refresh of the zone to - which this record belongs - - - - - Gets or sets the expiration - - - Time, in seconds, before an unresponsive zone is no longer authoritative. - - - - - Gets or sets the default ttl - - - Lower limit on the time, in seconds, that a DNS server or caching - resolver are allowed to cache any RRs from the zone to which this - record belongs. - - - - - Returns a string representation of the Start Of Authority record. - - - - The string returned looks like: - - administrator: [ADMIN] TTL: [TTL] primary server: [SERVER] refresh: [REFRESH] retry: [RETRY] serial number: [SERIAL] - where [ADMIN] = string representation of - and [TTL] = string representation of - and [SERVER] = string representation of - and [REFRESH] = string representation of - and [RETRY] = string representation of - and [SERIAL] = string representation of - - - - - - Represents a DNS Cryptographic signature record. (DNS_SIG_DATA) - - - The SIGRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the signer. - - - Pointer to a string representing the name of the signer that - generated the record - - - - - Gets or sets the type covered - - - Type of RR covered by the signature - - - - - Gets or sets the algorithm - - - Algorithm used with the key specified in the RR. The assigned values are shown in the following table. - - - - Value - Meaning - - - 1 - RSA/MD5 (RFC 2537) - - - 2 - Diffie-Hellman (RFC 2539) - - - 3 - DSA (RFC 2536) - - - 4 - Elliptic curve cryptography - - - - - - - Gets or sets the label count - - - Number of labels in the original signature RR owner name. The count does not include the NULL label for the root, nor any initial wildcards. - - - - - Gets or sets the original ttl - - - TTL value of the RR set signed by the signature RR. - - - - - Gets or sets the expiration - - - Expiration date, expressed in seconds since the beginning of January 1, 1970, Greenwich Mean Time (GMT), excluding leap seconds. - - - - - Gets or sets the time signed - - - Date and time at which the signature becomes valid, expressed in seconds since the beginning of January 1, 1970, Greenwich Mean Time (GMT), excluding leap seconds. - - - - - Gets or sets the key tag - - - Method used to choose a key that verifies a signature. See RFC 2535, Appendix C for the method used to calculate a KeyTag. - - - - - Reserved. - - - Reserved. Used to keep byte field aligned. - - - - - Gets or sets the signature - - - Signature, represented in base 64, formatted as defined in RFC 2535, Appendix A. - - - - - Represents the DNS pointer record (DNS_PTR_DATA) - - - The PTRRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the hostname of the record. - - - Pointer to a string representing the pointer (PTR) record data. - - - - - Returns a string representation of the pointer record. - - - - The string returned looks like: - - Hostname: [HOST] - where [HOST] = string representation of - - - - - - Represents the DNS Next record. (DNS_NXT_DATA) - - - The NXTRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the name. - - - Pointer to a string representing the name of the next domain. - - - - - Gets or sets the type bit map - - - Number of elements in the wTypes array. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - next: [NAME] type bitmap: [BITMAP] - where [NAME] = string representation of - and [BITMAP] = hexadecimal representation of - - - - - - Represents NULL data for a DNS resource record. (DNS_NULL_DATA) - - - The NULLRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the byte count. - - - Number of bytes represented in Data. - - - - - Gets or sets the data. - - - Null data. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - byte count: [BYTECT] data: [DATA] - where [BYTECT] = string representation of - and [DATA] = hexadecimal representation of - - - - - - Represents a DNS Mail Exchange record (DNS_MX_DATA). - - - The MXRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the exchange's host name - - - Pointer to a string representing the fully qualified domain name - (FQDN) of the host willing to act as a mail exchange. - - - - - Gets or sets the preference of the exchange. - - - Preference given to this resource record among others at the same - owner. Lower values are preferred. - - - - - Reserved. - - - Reserved. Used to keep pointers DWORD aligned. - - - - - Returns a string representation of this mail exchange. - - - - The string returned looks like: - - exchange (preference): [EXCH] ([PREF]) - where [EXCH] = string representation of - and [PREF] = hexadecimal representation of - - - - - - Represents a DNS mail information (MINFO) record (DNS_MINFO_DATA) - - - The MINFORecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the mailbox name - - - Pointer to a string representing the fully qualified domain name - (FQDN) of the mailbox responsible for the mailing list or mailbox - specified in the record's owner name. - - - - - Gets or sets the error mailbox name - - - Pointer to a string representing the FQDN of the mailbox to receive - error messages related to the mailing list. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - mailbox: [MAILBOX] error mailbox: [ERRMAILBOX] - where [MAILBOX] = string representation of - and [ERRMAILBOX] = hexadecimal representation of - - - - - - Represents a DNS Location record (DNS_LOC_DATA) - - - - The LOCRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - For , altitude above or - below sea level may be used as an approximation of altitude - relative to the [WGS 84] spheroid, however, there will be - differences due to the Earth's surface not being a perfect - spheroid. For example, the geoid (which sea level approximates) - for the continental US ranges from 10 meters to 50 meters below - the [WGS 84] spheroid. Adjustments to - and/or will be necessary in most cases. - The Defense Mapping Agency publishes geoid height values relative - to the [WGS 84] ellipsoid. - - - For more information about the LOC RR, see RFC 1876. - - - - - - Gets or sets the version - - - Version number of the representation. Must be zero. - - - - - Gets or sets the size - - - Diameter of a sphere enclosing the described entity, in centimeters, - expressed as a pair of four-bit unsigned integers, each ranging from - zero to nine, with the most significant four bits representing the base - and the second number representing the power of ten by which to multiply - the base. This format allows sizes from 0e0 (<1cm) to 9e9 (90,000km) - to be expressed. - - - - - Gets or sets the horizontal precision - - - Horizontal precision of the data, in centimeters, expressed using the - same representation as wSize. This is the diameter of the horizontal - circle of error, rather than a plus or minus value. Matches the - interpretation of wSize; to get a plus or minus value, divide by 2. - - - - - Gets or sets the vertical precision - - - Vertical precision of the data, in centimeters, expressed using the - same representation as wSize. This value represents the total potential - vertical error, rather than a plus or minus value. Matches the - interpretation of wSize; to get a plus or minus value, divide by 2. - If altitude above or below sea level is used as an approximation for - altitude relative to the [WGS 84] ellipsoid, the precision value should - be adjusted. - - - - - Gets or sets the latitude of the location - - - Latitude of the center of the sphere described by wSize, expressed as a - 32-bit integer, with the most significant octet first (network standard - byte order), in thousandths of a second of arc. 2^31 represents the - equator, larger numbers are north latitude. - - - - - Gets or sets the longitude of the location - - - Longitude of the center of the sphere described by wSize, expressed as a - 32-bit integer, most significant octet first (network standard byte order), - in thousandths of a second of arc, rounded away from the prime meridian. - 2^31 represents the prime meridian, larger numbers are east longitude.. - - - - - Gets or sets the altitude of the location - - - Altitude of the center of the sphere described by wSize, expressed as a - 32-bit integer, most significant octet first (network standard byte order), - in centimeters, from a base of 100,000m below the [WGS 84] reference - spheroid used by GPS (semimajor axis a=6378137.0, reciprocal flattening - rf=298.257223563). See Remarks for more information. - - - - - Represents a Public key DNS record (DNS_KEY_DATA) - - - The KEYRecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the flags - - - Flags used to specify mapping, as described in IETF RFC 2535. - - - - - Gets or sets the protocol - - - Protocol for which the key specified in the resource record can be used. The assigned values are shown in the following table. - - - - Value - Meaning - - - 1 - TLS - - - 2 - E-Mail - - - 3 - DNSSEC - - - 4 - IPSec - - - 255 - All protocols - - - - - - - Gets or sets the algorithm - - - Algorithm used with the key specified in the resource record. The assigned values are shown in the following table. - - - - Value - Meaning - - - 1 - RSA/MD5 (RFC 2537) - - - 2 - Diffie-Hellman (RFC 2539) - - - 3 - DSA (RFC 2536) - - - 4 - Elliptic curve cryptography - - - - - - - Gets or sets the key - - - Public key, represented in base 64 as described in Appendix A of RFC 2535. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - flags: [FLAGS] protocol: [PROTO] algorithm: [ALGOR] key: [KEY] - where [FLAGS] = string representation of - and [PROTO] = hexadecimal representation of - and [ALGOR] = string representation of - and [KEY] = hexadecimal representation of - - - - - - Represents a DNS Address record (DNS_A_DATA) - - - The ARecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the ip address. - - - IPv4 address, in the form of an uint datatype. - could be - used to fill this property. - - - - - Returns a string representation of the A Record - - - - The string returned looks like: - - ip address: [ADDRESS] - where [ADDRESS] = - - - - - - Represents a IPv6 Address record (DNS_AAAA_DATA) - - - The AAAARecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the ip6 address - - - IPv6 address, in the form of an structure. - - - - - returns a string representation of this AAAA record. - - - - The string returned looks like: - - Address: [ADDRESS] - where [ADDRESS] = - - - - - - Represents a DNS ATM address (ATMA) record (DNS_ATMA_DATA) - - - The ATMARecord structure is used in conjunction with - the and - classes to programmatically manage DNS entries. - - - - - Gets or sets the address type - - - ATM address format. Two possible values are DNS_ATMA_FORMAT_E164 or DNS_ATMA_FORMAT_AESA. - - - - - Gets or sets the address - - - ATM address. For E164, represents a NULL-terminated string of less than DNS_ATMA_MAX_ADDR_LENGTH. For AESA, its length is exactly DNS_ATMA_AESA_ADDR_LENGTH. - - - - - Returns a string representation of this record. - - - - The string returned looks like: - - address type: [TYPE] address: [ADDRESS] - where [TYPE] = hexadecimal representation of - and [ADDRESS] = string representation of - - - - - - If the string contains spaces, surrounds it with quotes. - - - - - Executes on the , if the is not Null. - - - - - Represents a typed weak reference which can be compared by target - - - - - Interface for a buffer supporting efficient editing of content in arbitrary positions - - - - - Static overload to prevent runtime type checks. - - - - - Cached hash code of the key, -1 means entry is free - - - - - Index of next entry in the chain of keys with the same hashcodes (modulo size), -1 means last - - - - - Index of previous entry in the chain of keys with the same hashcodes (modulo size), -1 means first - - - - - Manages an unmanaged buffer with a fixed address in the memory. - - - - - GC can add to final-queue more than once, so track the state. - - - - - Constructs the object without any allocated memory. - - - - - Constructs the object and allocates the desired length. - The object must then be disposed of, to free the memory. - - - - - Allocates or reallocates the buffer to fit the length specified. - No attempts are currently made to minimize the number of resizes. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the fixed address of the allocated buffer (safe for passing into unmanaged funcs), throws if not allocated yet. - - - - - Gets whether the buffer has been allocated, and its and properties can be accessed. - - - - - Gets the length of the allocated buffer, throws if not allocated yet. - - - - - Provides for hooking into the Import Address Table (IAT) of a DLL. - - - - - Limits the number or items in the list to guard off infinite loops. - - - - - Installs an Import Address Table (IAT) hook. - You choose a function (, ) whose entry will be replaced in the IAT of the specified module () to point to your own implementation () instead. - - Name of the module in which the function-to-be-hooked is defined. Example: USER32.DLL. - Name of the function to be hooked. Example: SystemParametersInfoW. Note that for the functions that have separate ANSI and Wide versions you must include a suffix in the function name. Must have the stdcall (WINAPI, PASCAL) calling convention. - The module whose IAT is to be patched. Its calls to the Function will be intercepted. - The new implementation to replace the Function, in view of . The hook will hold a reference on the delegate. Note that it's up to you to provide the appropriate signature of the delegate, which must match the one of the Function. Pay attention to the charset and bitness issues. - - - - Installs an Import Address Table (IAT) hook. - You choose a function (, ) whose entry will be replaced in the IAT of the specified module () to point to your own implementation () instead. - - Name of the module in which the function-to-be-hooked is defined. Example: USER32.DLL. - Name of the function to be hooked. Example: SystemParametersInfoW. Note that for the functions that have separate ANSI and Wide versions you must include a suffix in the function name. Must have the stdcall (WINAPI, PASCAL) calling convention. - The module whose IAT is to be patched. Its calls to the Function will be intercepted. Must be loadable with LoadLibrary (or already loaded). - The new implementation to replace the Function, in view of . The hook will hold a reference on the delegate. Note that it's up to you to provide the appropriate signature of the delegate, which must match the one of the Function. Pay attention to the charset and bitness issues. - - - - Impl for the Install family functions. MUST be specified, while its name is optional (for diag). - - - - - Throw on GetLastError. - - - - - Ensures the delegate would not be ever collected. - - - - - Personal declarations for the WinAPI calls. - Not shared with WinAPI.Interop, as there're pointers where applicable instead of intptrs. - Was written to be compatible with ANSI/Wide charsets and 32/64 bit systems. - - - - - It's DWORD in 32bit and ULONGLONG in 64bit, so use void* for both. - Yes, there's only one field unioned in there. - - - - - Encapsulates the utility classes for painting the controls. - - - - - Listens for the events and reports them into the Debug stream. - - - - - Constructs the listener. - - A prefix that will be prepended to each of the output lines. - - - - Helper flag to prevent the logger messages from being emitted as traces when it's known that the message will get into the traces with some other means. - Eg when capturing Trace::WriteLine into the Logger, the logger should be prevented from emitting it to the Debug stream, as it will be a duplicate. - - - - - Writes a string to the Debug output stream. - Appends the to the beginning of each line for the filtering needs. - - - - - Attempts to extract the prefix out of the message string, so that it could be appended to each of the message lines, and each of the lines were filterable by the prefix. - The message is considered to contain the prefix if it starts with a “[” and has a “]” after that. - If the default prefix is not empty, it's prepended to the message prefix, separated by a space. - - - - - Combines the predefined object prefix with the given prefix. Both might be empty. - - - - - Writer lock for . - - - - - Listeners added with . - Copy-on-write, lock when modifying only. Calls are fast, (un)advising is slow (could be rewritten with array ops instead of LINQ), but the latter ops are rare, not worth bothering. - - - - - Prefix of the log file name, in case it's generated automatically. - - - - - Subfolder inside the user's temp where the log files are stored. - - - - - Executes the nested action. - If the action fails with an exception, allows to annotate the exception with additional context info in . - The choices for the annotation are: - - To refine the context information, call the fluent method on the exception object you're given. - To add one more level of context, throw a new exception nesting the orignial one as an . - - - The worker code whose exceptions will be annotated. - Called only when the worker code throws an exception. Allows to add context-related information to the exception. - - - - Adds a listener. Checks for duplicates automatically. - - A token for removing the listener. - - - - Invokes if the is False. - Without is guaranteed to return. - - - - - Invokes if the is False. - Without is guaranteed to return. - - - - - Executes the . Catches all of the exceptions, reports them, and ensures guaranteed return (unless ). - - - - - Executes the . Catches all of the exceptions, reports them, and ensures guaranteed return (unless ). - - - - - Executes the . Catches all of the exceptions, reports them, and ensures guaranteed return (unless ). - - - - - Executes the . Catches all of the exceptions, suppresses them without logging, and ensures guaranteed return. - - - - - Executes the . Catches all of the exceptions, suppresses them (logs silently), and ensures guaranteed return. - - - - - Executes the . Catches all of the exceptions, reports them, and ensures guaranteed return (unless ). - - - - - Executes the . Catches all exceptions except the ones that should be ignored (ProcessCancelledException for instance), logs them and ensures guaranteed return. - - - - - Executes the . Catches all exceptions except the ones that should be ignored (ProcessCancelledException for instance), logs them and ensures guaranteed return. - - - - - Logs are stored for a week. Old log files are deleted by this function. - - - - - Drops the exception by doing nothing with it, not even logging it silently (unlike ). - Use it to: - (1) Stub catch-alls to avoid "empty general catch clause" warnings. - (2) Explicitly mark such exception-hiding places for the later reviewing. - - - - - Logs the exception made from , as would do. - Without is guaranteed to return. - - - - - Logs the exception made from , as would do. - Without is guaranteed to return. - - - - - Flushes the toilet to reduce the scent. - - - - - Invokes , if it throws, falls back to appending the args as strings. - - - - - Invokes all the listeners for logging the message as an error. - Then constructs an exception and logs it (again invoking the listeners, but for logging an exception this time). - - - - - Invokes all the listeners for logging the message as an error. - Then constructs an exception and logs it (again invoking the listeners, but for logging an exception this time). - - - - - Writes the exception to the log and notifies the listeners about it. - The executing stack trace is also written (see for suppressing). - - - - - Writes the exception to the log and notifies the listeners about it. - The executing stack trace is also written (see for suppressing). - - - - - Logs an exception together with a comment, optionally dumping the current stack. - - The exception to log. - A comment to the exception; ignored if is False. - Whether to dump the current executing stack in addition to the exception's stack. - This is done by constructing a new exception and supplying as its inner. - - - - Logs the exception without notifying the registered listeners about it. - - - - - Logs a message if it is not too verbose. - The message is prepended with a timestamp and written to the log. The listeners are notified. - - - - - Logs a message if it is not too verbose. - The message is prepended with a timestamp and written to the log. The listeners are notified. - - - - - Logs a message if it is not . - The message is prepended with a timestamp and written to the log. The listeners are notified. - - - - - Logs a message if it is not . - The message is prepended with a timestamp and written to the log. The listeners are notified. - - - - - The logging implementation. Logs the object's string representation. - - - - - A simpler function for logging non-formatted strings that does not create an array. - - - - - Implements full logging of a single exception by first doing to it and then invoking the listeners. - - - - - Subroutine to write each exception to the log output. - Renders the exception message and text. - - - - - Gets this logger as an interface. - - - - - Gets or sets whether the exceptions raised by the exception and log listeners will be allowed out of the logger methods marked as safe for exceptions. - Needed for running tests. - - - - - Defines the minimum level for the messages from -family to be logged into the log file. - - - - - The exception will be written to the log file. - - - - - s are notified of the exception. - - - - - is used for extracting exception data instead of just ToString(), which is slower but gives much more details. - - - - - Listens to the Logger events and writes them down into a . - - - - - Creates a logger that logs to a file. Starts listening to the events immediately, dispose of to stop. - - Helps distinguish the file name. Should be filename-friendly. - - - - Adds self to the logger, removes when retval or this object is disposed of. - - - - - The logging implementation. Logs the object's string representation. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Emulates the System.Windows.Threading.Dispatcher class on top of netfx20. - - - - - Timeout for method's waiting for messages. - If non-infinite, wakes the thread from time to time, which is nice for the tests (but not essential). - - - - - There're static methods that require a control this. - - - - - Dispatchers by their owning threads. - Copy-on-write: instances are readonly, reads are lock-free, writes are lock-and-replace (). - - - - - Syncs write access to . - - - - - Syncs write access to . - - - - - Means the method should abort. - - - - - System implementation of the entity actually deferring the execution. - - - - - Default implementation of all the known marshallers ( in WinForms and in Avalon) would post a new Windows message on the queue on every BeginInvoke call. This poses a problem because we might really have lots and lots of BeginInvoke calls (some of them canceled later), and the Windows messages queue is of a finite size. - We only post one (or a few) requests on the , and the actual actions to process reside on the queue here. - - - - - Calculates the items added to since the last time those items were processed by the executor. - This is needed to post to the underlying marshaller only so rarely, and to make sure we post one more marshaller request when we start queueing nested items for execution (BeginInvoke from within another BeginInvoke execution which pumps messages). - Also reset when the queue gets empty. - Accessed under only. - - - - - To increase reliability, the system marshaller will be called for these first items added to the queue. - - - - - To increase reliability, the system marshaller will be additionally called when a multiple of this number is reached on the queue (if the first marshaller calls are lost due to some accident (e.g. system marshaller silently ignoring message postings when the Windows messages queue is full), we might never ever process the queue). - - - - - Report an exception when the queue reaches this limit. Shouldn't be stacking these many actions on the queue. - - - - - Caches delegate to . - - - - - Creates an instance, for use only from . - Must be called under the . - - - - - Gets the thread the dispatcher is running on. - - - - - Provides the generation number for . - Can be read free-threaded (because in absence of synchronization you cannot prove violation of invariants). - Incremented under the . - Must not be zero. - - - - - Asserts that the calling method is free-threaded. A marker function that does not do anything. - - - - - Creates a new that is controlled by a . - To stop the thread, use . - - - Arbitrary name for the new thread. - - - - Tries to get a dispatcher for the specified , if already created. - Returns Null if no dispatcher is running on that thread. To create a new dispatcher, use the property on the desired thread. - - The thread to get a dispatcher for. - The existing dispatcher for that thread, or Null. - - - - Pumps all the Windows messages (and async actions) currently on the queue, and terminates. - - The number of messages actually pumped. - - - - Pumps the Windows messages on the current thread (which includes all of the async operations and marshallings) while the given is true, but for at most period of time. - Returns whether the wait succeeded (timeout was not reached), unless is True, in which case an exception is thrown. - - - - - Pumps the Windows messages on the current thread (which includes all of the async operations and marshallings) while the given is true, but for at most period of time. - Returns whether the wait succeeded (timeout was not reached), unless is True, in which case an exception is thrown. - - - - - Pumps the Windows messages on the current thread (which includes all of the async operations and marshallings) for the period of time. - - - - - Employs the current thread. - Pumps the Windows messages on the current thread (which includes all of the async operations and marshallings) until is invoked for this dispatcher. - - - - - Throws if the current thread is not the thread associated with this dispatcher. - - - - - Throws if asynchronous operations are not supported on the dispatcher thread. - - - - - - Invokes an action on the dispatcher thread, asynchronously. - - - - - Invokes an action on the dispatcher thread, asynchronously. - - Limiting lifetime. If the lifetime ends before the action is executed, the execution is canceled. - Name of the action to execute. Used for debugging, logging, and exceptions identification. - The action to execute. Its exceptions will be intercepted and reported to the . - - - - Shuts down a dispatcher on its thread, asynchronously. - Breaks the , if any. - - - - - Invokes an action on the dispatcher thread, synchronously, if called on the same thread, or asynchronously, if called on another thread. - - - - - Invokes an action on the dispatcher thread, asynchronously, if called on the same thread, or asynchronously, if called on another thread. - - Limiting lifetime. If the lifetime ends before the action is executed, the execution is canceled. - Name of the action to execute. Used for debugging, logging, and exceptions identification. - The action to execute. Its exceptions will be intercepted and reported to the . - - - - Returns whether the calling thread is the thread associated with this dispatcher. - - - - - Invokes an action on the dispatcher thread, synchronously. - - - - - Implements a custom message pump for pumping all of the messages currently in the queue. - - The number of messages pumped. - - - - Waits until there are messages in the queue, for the milliseconds at most (-1 to wait infinitely). - - - - - Init the instance (activities not related to the registration of this instance). - - - - - Actually schedules deferred invocation of the action. - - - - - Called indirectly from by executing thru the marshaller asynchronously. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets or creates a dispatcher for the current thread. - - - - - Gets or sets whether posting messages to the dispatcher thread is allowed or not. - If the thread has no message pump, or is not pumping currently, you can prohibit queueing the deferred actions thru this dispatcher by raising this flag. - - - - - Gets whether this dispatcher has been shut down and will not any more requests. - - - - - Implements a method that runs on another thread. - - - - - Action to execute, Nulled if the lifetime is terminated (execution is canceled). - - - - - Execution generation to which this schedulled action closure belongs. See usage for details. - - - - - Executes the marshalled action. - - - - - An exception that reports a failure in the inner (deferred) task. - - - - - Ctor. - - The dispatcher that tried to execute the faulty action. - Dispatcher action name, included in the exception message. - Original exception message, included in the exception message, passed to the base. - - - - Gets the dispatcher that tried to execute the faulty action. - - - - - Gets the name of the action that failed. - - - - - Shows a system Message Box. - Supplies it automatically with icons, main window ownership, and product name in the title. - Note: you should be using this class wherever possible instead of the system one, as it provides for consistent look. - - - - - Holds the stack of the message box handlers, the last one is executed when a message box is attempted to be shown. - A handler has the same prototype as , but returns Null if it does not want to handle the message. - By default, the message is displayed in a system message box. - Should be modified in the Primary thread only. - - - - - Shows a message box, owned by the specific window. - - Handle to the message box owner window, or Null to use the main window of the current application, if available. - Body text. - Optional message box caption, an empty string to use the product name by default. Otherwise, the product name will be prepended to the provided caption text. - Flags. - - - - Shows a message box with an error message. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - - - - Shows a message box with an error message. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Not recommended. Owner window for the message box. Use only in dialogs when the default (app main window) could be inappropriate. - - - - Shows a message box with an exclamation message. - Product name is used for the title. - - - - - Shows a message box with an exclamation message. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - - - - Shows a message box with an exclamation message. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Not recommended. Owner window for the message box. Use only in dialogs when the default (app main window) could be inappropriate. - - - - Shows a message box with an information message. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - - - - Shows a message box with an information message. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Not recommended. Owner window for the message box. Use only in dialogs when the default (app main window) could be inappropriate. - - - - Shows a message box, owned by the main window. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Not recommended. Owner window for the message box. Use only in dialogs when the default (app main window) could be inappropriate. - Buttons to use. - Icon to use. - - - - Shows a message box, owned by the main window. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Buttons to use. - Icon to use. - - - - Shows a message box, owned by the main window. - Product name is used for the title. - - Message body text. - Buttons to use. - Icon to use. - - - - Shows a Yes/No question message box. Returns whether the answer was Yes. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - - - - Shows a Yes/No question message box. Returns whether the answer was Yes. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Not recommended. Owner window for the message box. Use only in dialogs when the default (app main window) could be inappropriate. - - - - Shows a Yes/No/Cancel question message box. Returns whether the answer was Yes or No, Null for Cancel. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - - - - Shows a Yes/No/Cancel question message box. Returns whether the answer was Yes or No, Null for Cancel. - - Message body text. - Not recommended. Text to append to the default caption, which is the product name. In most cases, keep empty to have just the product name. - Not recommended. Owner window for the message box. Use only in dialogs when the default (app main window) could be inappropriate. - - - - Default implementation. - Displays the system MessageBox, cannot provide main window ownership and product name. - - - - - Buttons layout selection for the message box. - - - Note: we're not using either WinForms or Avalon constants for this thing, because they're causing conflicting namespace imports into the code that calls the message box. For instance, importing the System.Windows.Forms namespace in an Avalon component brings much of similarly-named constants into visibility, with the need to qualify names. - - - - - Icon selection for the message box. - - - Note: we're not using either WinForms or Avalon constants for this thing, because they're causing conflicting namespace imports into the code that calls the message box. For instance, importing the System.Windows.Forms namespace in an Avalon component brings much of similarly-named constants into visibility, with the need to qualify names. - - - - - Converts the value to a string. - If it's of a floating-point format, applies round-trip conversion to avoid losing precision. - - - - - Tries to get all of the child processes for a given process. - Might accidentally mix processes up if the parent process terminates and its ID is reused. - - - - - Tries to get the parent process for a given process. - Might accidentally mix processes up if the parent process terminates and its ID is reused. - - - - - Initiates the process graceful shutdown by closing its main window. - Optionally, kills the process abruptly if the shutdown fails to complete as the timeout expires. - - The process to kill. Could be own process. - Behavior flags. - The timeout to wait for the process to shutdown gracefully (before exiting or killing the process). Ignored in some combinations. - Whether the process has exited. - - - - Gets whether the process is currently running elevated, i.e. with full administrator privileges. A False return value means either a LUA or an admin-approval mode. - - - - - - flags. - - - - - After sending the shutdown control, does not return from the method until either the timeout expires or the process exits. - - - - - If the process fails to exit within the timeout, the process is killed. - If , this method performs a non-pumping wait; otherwise, a timer is used to wait async. - - - - - Prevents the Member Reordering feature from tossing members of the marked class. - - - The attribute must be mentioned in your member reordering patterns. - - - - - Color Management routines. - Contains a few simple static functions for working with RGB, BGR and HLS colors. - Based in parts on ancient MSDN C++ samples (HLS-RGB conversion). - - - - - Grayscale coefficients for HDTV luma from ITU-R BT.709: 0.2126, 0.7152, and 0.0722 - - - - - Grayscale coefficients for HDTV luma from ITU-R BT.709: 0.2126, 0.7152, and 0.0722 - - - - - Grayscale coefficients for HDTV luma from ITU-R BT.709: 0.2126, 0.7152, and 0.0722 - - - - - Background for MaxHLS. - - - - - Background for MaxRGB. - - - - - Background for UndefinedHue. - - - - - RGBtoHLS() takes a DWORD RGB value and translates it to HLS BYTEs. - - A point of reference for the algorithms is Foley and Van Dam, "Fundamentals of Interactive Computer Graphics," Pages 618-19. Their algorithm is in floating point. CHART implements a less general (hardwired ranges) integral algorithm. - - There are potential round-off errors throughout this sample. ((0.5 + x)/y) without floating point is phrased ((x + (y/2))/y), yielding a very small round-off error. This makes many of the following divisions look strange. - - The source RGB color. - Resulting Hue value. - Resulting Luminance value. - Resulting Saturation value. - - - - Utility routine for HLStoRGB. - - - - - Converts an HLS color to an RGB color and returns three byte components. - - - - - Converts HLS to a object. - - - - - Works just like HLStoRGB, but reverses the return value (BGR DWORD instead of an RGB one). - This is useful in case of Windows bitmaps which use BGR colors. - - - - - Mixes two colors together in the proportion specified. - - - - - Mixes two colors together in the proportion specified. - - First color. - Second color. - A number in between 0.0 and 1.0. - The new color. - - - - Mixes two colors together in the proportion specified. - - First color. - Second color. - A number in between 0.0 and 1.0. - The new color. - - - - Converts a DWORD RGB color to BGR, or vice versa as it's symmetrical. - - - - - Mixes two colors - Does the same as Mix but for a fixed 1:1 proportion. - - - - - - - - Blends two colors. - - Device context to get the nearest color from. May be Null, in which case the exact color is returned. - The first color. - The second color. - The alpha value in the [0…FF] range. - The blended color, constrained to the device context or not. - - - - Extracts the R value from the RGB color (R is less significant). - - - - - Extracts the G value from the RGB color (R is less significant). - - - - - Extracts the B value from the RGB color (R is less significant). - - - - - Produces an RGB color out of R, G and B values (R is less significant). - - - - - Produces an RGB color out of R, G and B values (R is less significant). - - - - - Produces an RGB color out of R, G and B values (R is less significant). - - - - - Constrains the integer value to the range of valid HLS values. - - - - - Makes contrast foreground color (tries to preserve color and make well read foreground)) - - Currently used background - Currently used foreground - Desired contrast, difference in lightness between background and foreground (value in range [0..1]) - Margin of lightness to avoid color missing, result's lightness will be in range [margin, 1-margin] - Determine when we make darker and when lighter (must be in range from margin to 1 - margin) - - - - - Makes a color similar to the pattern color in terms of brightness - - Base color - Pattern color - Differences [0..1] which is appropriate, base color returns in case of difference between base color and pattern less than the threshold - Offset, required difference [0..1] from pattern lightness - - - - Tries to correct suggested foreground color according to good one - - - - - - - - H, L, and S vary over 0-c_nMaxHLS. - Best if divisible by 6. - Must fit in a System.Byte. - - - - - R, G, and B vary over 0-c_nMaxRGB. - Must fit in a . - - - - - Hue is undefined if Saturation is 0 (grey-scale). This value determines where the Hue scrollbar is initially set for achromatic colors. - Set tot 2/3 of MaxHLS by default. - - - - - Creates a closed flag. - - - - - Summary description for ConsoleWriter. - - - - - - List splitted to chunks to avoid LOH - - - - - - Create chunk array with pre-allocated given size - - - - - - Resize last chunk to fit exact element number - - - - found index. Less than 0 if not found - - - - Presents uint[] (this) packed into uint[][] (myChunks). Each chunk is UncheckedPackedIntArray which supplies compression. - Chunks are used to avoid LOH. - - To take i-th element of 'this', invoke GetItem(i, valueBits, 0). You can also use this[ith] to get/set values with array of one element (in case - of valueBits less than '32'. - - One can increase or reduce size of elem by invocation of IncreaseValueBits(ChunkPackedIntArray oldArray, int newValueBits) - - - - - Returns the first element of array - - - - - Base for all space-optimized hash-maps with only 2 bits overhead for each entry. Implements so called "open-addressing" hash-maps. - - key class - value class - Class of internal storage. Can be plain array of TData or e.g. packed array for memory optimization. - Entry in storage. - - - - Collection of distinct (as per ) elements with O(1+maxLoadFactor) asymptotic time for item's addition, removal and searching - and O(1/maxLoadfactor) space usage. - Actual number of additional heap space for each element (not considering loadFactor's reseve) is 2 bits (comparing to 64 bits in ). - So for each element stores 32 bits for item's reference and 2 bits for state (OCCUPIED, FREE, REMOVED). This set is little bit slower than - , so main use case is when you need to retain big set with small items (relative to number of bytes held by item) in memory for a long time - (e.g. caches) and you want to economize memory usage. - - - Type of item - - - - Removes all specified values for given key. Effectivenes of removal depends of implementation of - for hashset, time-complexity will be linear - O(n), where n - number of values in map, corresponding to . - - - - - - - A delegate for a -like method, but with the right side of the comparison assumed to be already known by the method. The item you get is the left side of the comparison. - - - - - A delegate for a -like method. - - - - - Subtracts the from the , the difference is written into the , inplace, so that the original list is destoryed. - - The difference, in the instance. - - - - Searches a one-dimensional sorted for a value using the binary search algorithm. - The desired item is identified by its so-called key given in , and a transformation is defined as for getting a key out of each list item. The comparison (and list sorting requirement) applies to these keys derived from the items. - Optionally, the comparer could be overridden. This is recommended for custom value types to avoid boxing, unless they're . - The advantage of this method over the one using a locator, , is that it can work on cached delegates/comparers and does not require creating a closure for each new location session. Also, there's no locator left-right argument confusion. - - Type of the actual items in the list. - Type of the so-called key by which the items are sorted and located in the list. This could be either an actual field/property of the item, or a completely synthetic value calculated on the item. - The list of items to search. Must be sorted by their keys. - Key we're looking for. If it is equal to a key of some item in the list, that item is returned as a search result. If no items correspond to the key, the result points “in between” array items, see return value members for telling this cases apart or using the found location, for example, . - Starting index of the list range to search in. 0 is the default. - Length of the list range to search in. -1 is the default and means that the whole list must be searched. - - A transformation which produces a key for any of the list items. Items are sorted by these keys, and keys are used for locating items. This could be either an actual field/property of the item, or a completely synthetic value calculated on the item. - In performance-critical scenarios, cache this delegate. Normally it's a static method and thus does not require a new closure each time. - - A custom comparer over item keys, if needed. If omitted, the standard comparer is used. - The search result which can tell you if any item was hit, at which index to insert the new item, what's the closest index before/after the search target, and so on. - - - - Searches a one-dimensional sorted for a value using the binary search algorithm. - This overload does comparison right on the items. If the list is sorted by just one property of the item, use the overload with item-key metaphor. - Optionally, the comparer could be overridden. This is recommended for custom value types to avoid boxing, unless they're . - The advantage of this method over the one using a locator, , is that it can work on cached delegates/comparers and does not require creating a closure for each new location session. Also, there's no locator left-right argument confusion. - - Type of the actual items in the list. They're the sorting keys of the list as well. - The list of items to search. Must be sorted by their keys. - Item we're looking for, which itself is also the sorting/search key. If it is equal to some item in the list, that item is returned as a search result. If no items are hit, the result points “in between” array items, see return value members for telling this cases apart or using the found location, for example, . - Starting index of the list range to search in. 0 is the default. - Length of the list range to search in. -1 is the default and means that the whole list must be searched. - A custom comparer over items, if needed. If omitted, the standard comparer is used. - The search result which can tell you if any item was hit, at which index to insert the new item, what's the closest index before/after the search target, and so on. - - - - Looks up an item in a binary-search-ready (sorted) list which is being used as a dictionary (values stored in the list are associated with some kind of keys which you use for comparing items in the list). - Returns the found item. - If not found, creates a new item, insers into the list on the proper position to maintain sorting, and returns this new item. - - - - Sorted list. - The transformation for getting a key ot of an item stored in the list. - If the item is not found, this functor is called to create a new item. - The key whose item you would like to find in the list. - - - - - Looks up an item in a binary-search-ready (sorted) list which is being used as a dictionary (values stored in the list are associated with some kind of keys which you use for comparing items in the list). - Returns the found item. - If not found, returns Null coerced to the item type. - - - - Sorted list. - The transformation for getting a key ot of an item stored in the list. - The key whose item you would like to find in the list. - - - - - Looks up an item in a binary-search-ready (sorted) list which is being used as a dictionary (values stored in the list are associated with some kind of keys which you use for comparing items in the list), and removes it. - Returns whether the item was found. - If not found, creates a new item, insers into the list on the proper position to maintain sorting, and returns this new item. - - - - Sorted list. - The transformation for getting a key ot of an item stored in the list. - The key whose item you would like to find in the list. - - - - - Searches an entire one-dimensional sorted for the index of a specific value. - - The type of the elements of the list. - The sorted list to search. - The item to find. - - - - Searches an entire one-dimensional sorted for a value using the specified comparer. - - The type of the elements of the list. - The sorted list to search. - The comparer to use when comparing elements. Delegate should compare its parameter to the item you're looking for. - - - - Searches an entire one-dimensional sorted for a value using the specified comparer. - - The type of the elements of the list. - The sorted list to search. - - - The comparer to use when comparing elements. - The index of the specified value in the specified array, if value is found. If value is not found and value is less than one or more elements in array, a negative number which is the bitwise complement of the index of the first element that is larger than value. If value is not found and value is greater than any of the elements in array, a negative number which is the bitwise complement of (the index of the last element plus 1). - - - - Searches an entire one-dimensional sorted for a value using the specified comparer. - - The type of the elements of the list. - The sorted list to search. - The comparer to use when comparing elements. - The index of the specified value in the specified array, if value is found. If value is not found and value is less than one or more elements in array, a negative number which is the bitwise complement of the index of the first element that is larger than value. If value is not found and value is greater than any of the elements in array, a negative number which is the bitwise complement of (the index of the last element plus 1). - - - - Typed wrapper for delegate - - Type of item to present - - - - Gets the collection of values contained in all of the keys. - Duplicates are preserved. - All the operations are slow on this collection, especially including the property. - - - - - Exposes all of the values as a single collection. - If some value is held by more than one key, it's returned twice. - - - - - Adds an item to the . - - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - - The is read-only. - - - - Determines whether the contains a specific value. - - - - true if item is found in the ; otherwise, false. - - - The object to locate in the . - - - - Copies the elements of the to an , starting at a particular index. - - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in array at which copying begins. - arrayIndex is less than 0. - array is null. - array is multidimensional.-or-arrayIndex is equal to or greater than the length of array.-or-The number of elements in the source is greater than the available space from arrayIndex to the end of the destination array.-or-Type T cannot be cast automatically to the type of the destination array. - - - - Removes the first occurrence of a specific object from the . - - - - true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . - - - The object to remove from the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - - A that can be used to iterate through the collection. - - 1 - - - - Returns an enumerator that iterates through a collection. - - - - An object that can be used to iterate through the collection. - - 2 - - - - Gets the number of elements contained in the . - - - - The number of elements contained in the . - - - - - - Gets a value indicating whether the is read-only. - - - - true if the is read-only; otherwise, false. - - - - - Returns a prime number which is >= desiredCapacity - and very close to desiredCapacity (within 11% if - desiredCapacity >= 1000). - - @param desiredCapacity the capacity desired by the user. - @return the capacity which should be used for a hashtable. - - - - Table of prime numbers from 2 to 10000 - - - - - Wraps the . - - String representation. - Desired type of the object to be restored from the string representation. - Optional. The logger to be passed to the converter. - - - - Wraps the . - - Desired type of the object to be restored from the string representation. - String representation. - Optional. The logger to be passed to the converter. - - - - Wraps the . - - Value to be converted to a string. - Optional. The logger to be passed to the converter. - - - - Performs a BFS for base classes and interfaces of a type, self not included. - - - - - Performs a BFS for base classes and interfaces of a type, self included. - - - - - Pass in a simple field/property access expression, or method call expression, and its name will get parsed and returned to you. - - - Class field declaration: - - public class Class { public string Field; } - - Getting its name (“Field”): - ReflectionExtensions.GetInstanceMemberName<Class>(c=>c.Field) - - - - - Pass in a simple field/property access expression, or method call expression, and its name will get parsed and returned to you. - - - Class field declaration: - - public class Class { public static string Field; } - - Getting its name (“Field”): - ReflectionExtensions.GetStaticMemberName(()=>Class.Field) - - - - - Pass in a simple field/property access expression, or method call expression, and you'll get the member it's pointing to. - - - See . - - - - - Pass in a simple field/property access expression, or method call expression, and its name will get parsed and returned to you. - This overload has the member return value strongly typed, for use in accessor APIs where an expression returning is not applicable. - - - Class field declaration: - - public class Class { public string Field; } - - Getting its name (“Field”): - ReflectionExtensions.GetInstanceMemberName<Class>(c=>c.Field) - - - - - Pass in a simple field/property access expression, or method call expression, and its name will get parsed and returned to you. - This overload has the member return value strongly typed, for use in accessor APIs where an expression returning is not applicable. - - - - - Pass in a simple field/property access expression, or method call expression, and you'll get the member it's pointing to. - - - See . - - - - - Gets the chain of member access based on the expression passed in, from outermost to innermost members. - Could be used e.g. for creating Avalon early-bound data binding property path. - - - - - Creates temporary folder in specified parent folder. Parent folder must exist. - If parent folder is omitted %temp% is used - - - - - Use folder as temporary and clean-up on dispose - - - - - ReaderWriter lock for relatively small critical sections. Uses spinwait locks and interlocked internally, so CPU do meanless job before lock acquiring (not event-based). - - In JET_MODE_ASSERT: - If thread acquires write lock it can aquire this lock read and write fashion any number of times recursively afterwards. If thread acquires readlock - it can't acquire recursively read and write lock (on this lock) any more, - so readlock isn't reenterable. - - In production configuration: breach of abovementioned items can lead to deadlock. - - Also, locks must be released in reversed order to order they were acquired (is controlled by assertions). - UsingReadLock() and UsingWriteLock() methods helps to follow this pattern. - - - - - - State of this RWLock. Can be presented as sum of following: - 1) * WriterThread.ManagedThreadId - if some writer've took write lock - 2) - * number_of_times_this_writer_lock_was_taken_recursively_either_in_write_or_read_mode - for reentrancy, excludes the first acquiring (it is counted in 1.) - 3) - number_of_threads_acquired_read_lock (sometimes in writer mode this parameter is still present, it introduced by readers that tried to acquire read lock but were overtaken by writer) - - So if state is lower than zero it means that RWLock in Read mode - If state is greater than zero - RWLock in Write mode - If state is zero - RWLock is free - - - - | 32 bits - managedThreadId | 8 bits - #times lock taken reenterant | 24 bits - number of readers that take lock | - - - - Number of writers that are awaiting for releasing of read locks to aquire write lock. This field is introduced only to prevent writers starvation. - - - - - Call for diagnostic only, because it's not guaranteed to work for all messages. Set this to up-to-date message decoder when debugging. - - - - - If there's no space for sending more messages, they can be stacked here. - - - - - Sends a message to the receiving party. If the buffer is currently full, stores it in queue and does not block. - - - - - Makes sure all of the messages currently on the queue get sent out, synchronously. - - - - - Synchronizes lifetime-driven activities on multiple threads. - If you use your component lifetime directly, it might be terminated in the middle of some background activity. - - You should rather create this object on your home thread and use its to run background-thread activities (possibly on multiple threads). It is guaranteed that as the outer lifetime starts termination, this particular lifetime will live thru until your background action is completed. - - - - - - Terminates under a writer lock. All other activity goes under a reader lock. - - - - - Gets the lifetime whose termination is synchronized by this object. - - - - - Executes the action unless the lifetime has already been terminated on the main thread. - - - - Whether the lifetime is still alive (action might be prevented, aborted or completed when False; it's definitely been completed if True). - - - - - Executes the action unless the lifetime has already been terminated on the main thread. - - - - If the lifetime is still alive, executes the action and returns its result. Otherwise, returns null. - - - - - Gets the lifetime whose termination is synchronized by this object. - - - - - Release monitor (must acquired previosly either with or lock statement) and then reacquires it in Dispose method. - - - - - Presents uint[] (this) packed into another uint[] (myData). valueBits parameter for each method denotes size in bits of one element of 'this' - Can be much or less than '32' bits, which is the size of myData element. No range checks are performed. - - To take i-th element of 'this', invoke GetItem(i, valueBits, 0). You can also use this[ith] to get/set values with array of one element (in case - of valueBits less than '32'. - - One can increase or reduce size of elem by invocation of IncreaseValueBits(UncheckedPackedIntArray oldArray, int length, int oldValueBits, int newValueBits) - - - - - Calculates this[iSubItem] - - - - - Represents collection of items that doesn't strongly hold items - - - - - Adds an weak reference to item to the . - - The object to add to the . - - - - Removes the first occurrence of a specific object from the . - - - true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . - - The object to remove from the . - The is read-only. - - - - Determines whether the contains a specific value. - - - true if item is found in the ; otherwise, false. - - The object to locate in the . - - - - Returns the first live element from collection - - The first live element from collection - - - - Returns the first live element from collection that satisfies a specified condition - - The first live element from collection that satisfies a specified condition - - - - Returns the last live element from collection - - The last live element from collection - - - - Returns the last live element from collection that satisfies a specified condition - - The last live element from collection that satisfies a specified condition - - - - Removes garbage from the list - - - - - Gets the approximate number of elements contained in the . - - - - - Represents a typed weak reference which can be compared by target - - - - - Base class for all enum patterns - - - - - An interface for a class that contains a device context. - - - - - Gets the device context. - - - - - The auto-container for a device context that has several choices for where to create the graphics from. - - - - - If the control already exists with its handle, uses its DC, otherwise, a screen DC. - - - - - Creates a generic device context from a window handle (). - - The handle of the window to paint into. - - - - Creates a generic device context from Graphics - - The DC to use if non-Null. May be Null. - - - - If is non-Null, just uses it. - Otherwise, works like over . - - The DC to use if non-Null. May be Null. - The control to use for fallback, must not be Null. - - - - Creates a hollow container that ensures noone ever uses its . - - - - - Creates a special painting device context from a control. - Must be used within only. - - The control to paint into. Must exist. - - - - Creates a special painting device context from a window handle. - Must be used within only. - - The handle of the window to paint into. - - - - Creates a screen device context. - - - - - - Sets up the graphics context for high-quality rendering regardless of the screen settings. - - - - - A must-dispose class for creating a GDI+ graphics object associated with the screen device context. - - - - - Initializes the object by attaching to the screen's device context. - - - - - Attempts to create a graphics upon the control. If the control handle is not yet available, or the control has already been disposed, uses the screen device context. - - - - - Same as . - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the object. Don't dispose, dispose the whole instance instead. - - - - - A must-dispose class for creating a GDI+ graphics object for painting a window in response to WM_PAINT. - - - - - Creates a painting graphics object against some window. - - Handle to the window we're currently painting. - - - - Same as . - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the object. Don't dispose, dispose the whole instance instead. - - - - - The control to create the DC from. Null after dispose. - - - - - The DC lazily-created from the control, or Null if not created yet. - Should be disposed of. - - - - - Creates an instance over the control. - The graphics is not created until retrieved from the property for the first time. - - A non-Null control that must exist with its handle. - - - - Checks whether it will work on the given control. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the device context. - - - - - Just holds the given DC, won't dispose of it. - - - - - Attaches to the given DC. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the device context. - - - - - Performs on the given HWND and releases it at the end. - - - - - Lazy-init data. - - - - - HDC, after one is lazy-created and before it is disposed of. - - - - - HWND, after the ctor and until the HDC is disposed of. - - - - - Creates a new container. - The HDC is not created immediately; instead, it's constructed on the first use. - - Handle to the window to which the device context should be created. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the device context. - - - - - An intentionally hollow graphics container that can be passed as a normal one, but will throw if someone actually tries to extract out of it. - Can be used if you expect the callee to not use the parameter, but must pass it against the API. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Gets the device context. - - - - - Contains several interop helper functions - - - - - Blits a bitmap onto a GDI device context. - - The target HDC. - The bitmap to blit (the complete bitmap blits to the target). - Blit location coordinates on the target DC. - A device context to be used as blitting source, pass a compatible HDC if you have one, or Null if it should be on-time-created. - Opacity vaue for blitting, 0x00 is completely transparent, 0xFF is opaque. - A collection of the rectangles to blit on the source bitmap. The relative location of these rectangles on the target DC corresponds to their source location. Null to blit the whole bitmap. - - - - Performs all the checks of the function, but does not actually apply the effect. - Allows to tell with a high probability whether the function will succeed. - - - - - Sets all the pixels in the bitmap to the given values. - - - - - Flattens the alpha of the given bitmap using a threshold so that it becomes either 0x00 or 0xFF. - - - - - Gets the extended style of the specified window. - - - - - Gets the style of the specified window. - - - - - Paints an arbitrary window to a bitmap. - - - - - Renders to the given device context using an intermediate GDI backbuffer, which works around the ErrorStripeDisease™. - Under terminal services, no backbuffer is used, just is invoked. - - The graphics device context container (must be disposed of by the caller, not before this method is called). - Size and location of the painting area in the device context coordinates. When painting, you should use the same coordinates as those in which the bounds are specified, don't use bounds-local coords. - The function that would handle the rendering. - Whether the blitting of the back-buffer to the screen should support per-pixel alpha, or not. Note that when you turn this on, you must erase the whole area, and GDI text rendering will most likely fail to function properly. - - - - Renders to the given device context using an intermediate GDI backbuffer, which works around the ErrorStripeDisease™. - Under terminal services, no backbuffer is used, just is invoked. - - The graphics device context. - Size and location of the painting area in the device context coordinates. When painting, you should use the same coordinates as those in which the bounds are specified, don't use bounds-local coords. - The function that would handle the rendering. - Whether the blitting of the back-buffer to the screen should support per-pixel alpha, or not. Note that when you turn this on, you must erase the whole area, and GDI text rendering will most likely fail to function properly. - - - - Updates a layered window by displaying the given alpha-channel-aware bitmap at the specified location. - The bitmap then persists until the window is killed or hidden, or another bitmap is displayed. - - Handle to the window being updated. - The window area, in screen coordinates. - The callback to perform the rendering. - - - - Specifies rendering context for the and presentable item rederers. - - - - - . - - - - - . - - - - - , lazy-init. - Let the defaults apply to all the static fields before we create an instance, so lazy-init on first use - - - - - . - - - - - Creates an empty instance initialized with the default values. - - - - - Dumps the object state in the XAML format. - - - - - Sets all the colors to be . - - - - - Seals the instance by setting it into the read-only mode, see . - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets or sets the font in which the text will be rendered. - By default, specifies the . - - - - - Gets or sets the font style for rendering the text. - Overrides the local value unless is specified, in which case all the strings are rendered with their local font styles. - - - - - Gets or sets the neutral foreground color setting. Does not override local colors, applies only to those strings whose color is set to . - May be , in which case the renderer will choose the default color, most likely, . - - - - - Gets or sets the neutral background color setting. Does not override local colors, applies only to those strings whose color is set to . - May be , in which case the renderer will choose the default color, most likely, . - - - - - Gets or sets the hint for the expected background color under the transparently rendered rich text string. - Unlike and , this color does not paint on screen as the opaque background under rich text. This is a hint for the engine which makes sure the foreground color is visible over the background color. When and are explicitly defined, they allow to adjust the foreground color as needed to be distinct. They don't apply when text has to be rendered over a transparent background (e.g. over a gradient or some image). If you know the approximate color of the background (e.g. gradient mid-color) and want the foreground color to be forced readable, but cannot set the text background to a flat value — assign the approximage color as the expected background color hint. - - - - - Gets or sets how to treat the hint for the expected background color - - - - - Gets or sets the string trimming to be used when rendering the string. - - - - - Gets or sets the mnemonic treatment (ampersand characters) to be used when rendering the string. - - - - - Some queer stuff which misteriously appeared in this class in the years of its existence. - - - - - Gets or sets the color that overrides the local foreground color of all the strings, unless set to . - Takes precedence over . - - - - - Gets or sets the color that overrides the local background color of all the strings, unless set to . - Takes precedence over . - - - - - Gets or sets the effect style that overrides the local settings of the strings, unless set to , in which case the local on the strings settings are used. - - - - - Gets or sets the effect color that overrides the local setting on the strings, unless set to . - Works independently of . - - - - - Gets or sets a flag that defines the rendering engine to be used by text renderers. - - - - - Gets the empty rendering parameters that do not override anything and supply the default UI font. - This instance is read-only and cannot be modified. - - - - - Gets the default UI font, a single instance shared by default between all the instances of . - - - - - Gets the default text rendering method. - - - - - Gets whether the instance is readonly and its fields cannot be changed. - - - - - Cache for fonts. - - - - - Gets a cached GDI handle to a font. - The returned value should not be disposed of. - - - - - Represents a formatted string that is a part of . - - - - - Wave length for weavy underlining. - - - - - Caches the fonts per-font-face and per-text-style. - - - - - Allows to fix the text-rendering-hint, but ruins ClearType … So, just a queer mode, after all. - - - - - Starting offset of the corresponding string part. - - - - - Length of the corresponding string part. - - - - - The text which the part is belonging to. - - - - - Creates a new instance. - - String part offset. - String part length. - The style. - The parent richtext block. - is null. - The range specified by and does not fall within the parent string. - - - - Gets size of the string in the given graphics - - The device context to calculate size in. - Defines the rendering aspects. - Size of the string when drawn in a given graphics. - - - - Gets the local index of the character at the given point, or -1 if none hit. - - The device context for measuring the chars. - Defines the rendering aspects. - X-coordinate of the point relative to the substring start. - Local zero-based index of the character at the given point, or -1 if no character is hit. - - - - Measures the string rendering size under the given conditions. - Does not augment the Graphics context for better fitting of the text, so the results most probably won't agree to the 's ones. - - - - - Draws the formatted string on a given graphics. - - The GDI+ device context to draw the string in. - Clipping rectangle to paint the text within. - Defines the rendering aspects. - - - - Produces a flag combination filled in a way standard for JetRichText rendering. - - - - - Produces a structure filled in a way standard for JetRichText rendering. - You must not alter the instance returned. - - - - - Returns a parametrized font from the cache. - The returned value should not be disposed of. - - Defines the rendering aspects. - The local style to be overridden by the styles from . - - - - Overrides the local text style with those properties of the ' text style that are set to override. - - - - - Overrides the local font style with settings from the rendering aspect. - - - - - Checks whether the rich text substring settings are valid against the parent rich text object. - - - - - Dumps the object. - - - - - Underlines text with text style color using straight line. - - - - - Underlines text with text style color using weavy line. - - - - - Strikes out text with text style color using weavy line. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets the text of this part. - - - - - Gets or sets the string style - - - - - Gets or sets the starting offset. - - - - - Gets or sets the length. - - - - - Gets the parent text. - - - - - Augments the device context, as required for the GDI+ rendering of the text. - - - - - Inits the instance and does the augmenting. - - The graphics to augment in ctor and de-augment in . - Defines the rendering aspects. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - 2 - - - - Does the thing. - - - - - Formatting flags that deifne the text rendering style. - - - - - No flags set. - - - - - Render the ellipsis character when the string gets truncated. - - - - - - All the flags. - - - - - Represents a formatted text block (i.e., actually, sequence of instances). - - - - - Verbose trace. - - - - - Verbose trace counter. - - - - - Keeps user data attached to ranges. - - - - - Formatting for the text parts. Must not be Null. - - - - - The cached size value. - - - - - Whether the cached size value can be trusted. - Must be used in conjunction with . - - - - - A hash for the for which the is valid. - - - - - Plain text of the rich text. Must not be Null. - - - - - Creates a new rich text string. - - Text content. - The style to apply to the plain text. - - - - Creates a new rich text string. - Does not apply any formatting to the plain text, uses the value. - - Text content. - - - - Creates a new empty non-styled rich text string. - Same as . - - - - - The internal cloning ctor. - - - - - Appends a part with a custom style to the text. - - The part to add. - The style of the part to add. - - - - Appends a string to the text. - Uses the style of the trailing character. - - The part to add. - - - - Appends some rich text to the current one. - - The rich text to append. - - - - Performs consistency checks over the rich text. - - - - - Clears the rich text string. - - - - - Draws the formatted string on a given graphics. - - The GDI+ device context to draw the string into. - The rectangle where the string is drawn. - Defines the rendering aspects. - is Null. - is Null. - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Dumps the object. - - - - - Gets a readonly collection of the formatting elements. - - - - - Gets the index of a character with the given local x-coordinate, or -1 if none. - - The GDI+ device context to draw the string into. - Defines the rendering aspects. - The richtext-local x-coordinate to lookup the character by. - - - - Gets the index of a character with the given local x-coordinate, or -1 if none. - The y-coordinate is checked for hitting the richtext-global bounding rect only. - - The GDI+ device context to draw the string into. - Defines the rendering aspects. - The richtext-local coordinates to lookup the character by. - - - - Calculates the rich text bounding rectangle against the given device context. - Caches the previously-calculated value. - - The GDI+ device context to draw the string into. - Defines the rendering aspects. - is Null. - is Null. - - - - Calculates the rich text bounding rectangle against the given device context. - Caches the previously-calculated value. - - The GDI+ device context to draw the string into. - Defines the rendering aspects. - is Null. - is Null. - - - - Gets the list of user data objects registered with whose ranges completely fall within the given range. - - Starting offset. - Ending offset, -1 meand end-of-string. - An array of user data objects. - - - - Prepends a part with a custom style to the text. - - The part to add. - The style of the part to add. - - - - Prepends a string to the text. - Uses the style of the leading character. - - The part to add. - - - - Appends one rich text to another - - The rich text to append - - - - Associates some user data with a range. - - Starting offset. - Ending offset, -1 meand end-of-string. - User data. - - - - Sets the new background color for the given range. - Don't set background color to because it would prevent painters from providing the neutral color. - - - - - Sets the new background color for the whole text. - Don't set background color to because it would prevent painters from providing the neutral color. - - - - - Sets new colors for the whole text. - Don't set background color to because it would prevent painters from providing the neutral color. - - Foreground color to set. - Background color to set. - - - - Sets the new foreground and background colors for the given range. - Don't set background color to because it would prevent painters from providing the neutral color. - - - - - Sets the new foreground color for the whole text. - - - - - Sets the new foreground color for the given range. - - - - - Sets new style to a specified part of the text - - The style to set - Start offset of the block - Block length - startOffset is invalid in current string - length is invalid starting with specified startOffset - - - - Sets new font style to a specified part of the text - - The font style to set - Start offset of the block - Block length - startOffset is invalid in current string - length is invalid starting with specified startOffset - - - - Applies a new (font style and colors) to the whole rich text string. - - The style to apply. - - - - Sets new effect to a specified part of the text - - The effect style to set - The effect color to set - Start offset of the block - Block length - startOffset is invalid in current string - length is invalid starting with specified startOffset - - - - Sets new effect to a specified part of the text - - The effect style to set - The effect color to set - - - - Splits rich text before the specified offset so that the first part's length is equal to the . - - The offset to split the text at. - An array conssiting of the two resulting parts. The array length is always equal to 2, even if either part is empty. - - - - Trims the leading and trailing characters from the rich text string. - Warning: a constant function, would not modify the instance! - - An array of Unicode characters to remove or Null. - - - - Trims the trailing characters from the rich text string. - Warning: a constant function, would not modify the instance! - - An array of Unicode characters to remove or Null. - - - - Trims the leading characters from the rich text string. - Warning: a constant function, would not modify the instance! - - An array of Unicode characters to remove or Null. - - - - Breaks a part into two parts at the given local offset, which is relative to the part. - - - - - Gets the lsit of parts that fall within the given range. - The rich strings on the range boundaries are splitted, if needed. - - - - - Gets plain string representation of rich text, plus string part marks. - - - - - Gets an empty rich text string. - Same as - - - - - Returns common background color. If colors are different in different parts returns - - - - - Returns common foreground color. If colors are different in different parts returns - - - - - Gets whether the string contained in this rich text is empty. - - - - - Gets total length of the text in characters. - - - - - Gets or sets the underlying text as an unformatted string. - In the latter case the current RichText formatting is inherited. - - - - - Describes user data attached to a range within the text. - - - - - Defines the possible rendering methods to be used when rendering text strings. - - - - - Use GDI+ rendering via the class (.NET default). - - - - - Use GDI rendering via the HDC device contexts and function calls. - - - - - Contains parameters for a whole rich text block - - - - - Creates new rich text parameters - - - - - Creates new rich text parameters - - Font to use - - - - Creates new rich text parameters - - Font to use - Default text style - - - - Creates new rich text parameters - - Font to use - Default text style - Default draw ellipsis flag - - - - Dumps the object. - - - - - If to draw ellipsis if the text doesn't fit the given rectangle - - - - - Gets or sets used font - - - - - Gets or sets default text style - - - - - Represents a block (possibly multiline) of rich text. - - - - - Lines of rich text block - - - - - Rich text block parameters - - - - - Dumps the object. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets the rich text lines of the block. - - - - - Gets or sets the parameters. - - - - - Gets or sets the rich text block as a whole rich text fragment. - - - - - Gets or sets the plaintext representation of the rich text block. - The setter creates a number of unformatted rich text lines. - - - - - Structure for setting parameters for rich text blocks - - - - - Dumps the object. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - See . - - - - - The current externally assigned size. - - - - - Measures the content desired size against the given constraints. - - - - - The parametersized setter for the property. - - - - - The parametersized setter for the property. - - - - - Reformats to accomodate for the current size. - - - - - Gets the multiline rich text content of the presenter. - To set the content, use the parameterized setter. - - - - - Gets the desired size as if there were no external limits. - - - - - Gets or sets the rendering aspect of the presenter. - - - - - Gets the explicit forced size of the presenter. - To set the size, use the parameterized setter. - - - - - Gets the rich text block that is the result of reflowing the original so that it fit the width of the given . - - - - - Reflows a rich text block - - - - - Reflows the set of strings so that they fit the width specified. - The existing line breaks are kept, new ones are added as needed. - - The source lines of text. - The maximum width. - The device context for measuring the text against. - The rendering aspect. - The formatted rich text with new line breakss. - - - - Reflows the single line of so that it fits the width specified. - The line breaks are added as needed. - - The source line of text. - The maximum width. - The device context for measuring the text against. - The rendering aspect. - The formatted rich text with new line breaks. - - - - Represents style of text block - - - - - Font style - - - - - Foreground color - - - - - Background color - - - - - Effect to use - - - - - Effect color - - - - - Defines a text style. - - - This contructor defines style with no effects. - - The font style to use - Foreground color - Background clor - - - - Defines a text style. - - - This contructor defines style with no effects. - - The font style to use - Foreground color - - - - Defines a text style. - - The font style to use - Foreground color - Background clor - Effect to use - Effect color to use - - - - Defines a text style. - - - This contructor defines style with no effects and regular style of the text. - - Foreground color - Background clor - - - - Creates a style that has only background color specified. - - - - - Creates a style that has only foreground color specified. - - - - - The default text style. - - - - - The hidden text style. - - - - - Dumps the object. - - - - - Returns a that represents the current . - - - - A that represents the current . - - 2 - - - - Gets or sets font style - - - - - Gets or sets the foreground color. - means “Don't care, renderer should specify, if not, use ”. - - - - - Gets or sets the background color. - means “Don't care, renderer should specify, if not, use ”. - - - - - Gets or sets used effect - - - - - Gets or sets the effect color. - means the will be used. - - - - - Gets the default text style. - - - - - Gets the hidden text style. - - - - - See . - - - - - See . - - - - - See . - - - - - Enumerates different text drawing effects - - - - - No effects. - - - - - Underline with a straight line. - - - - - Underline with a gay line. - - - - - Strike out with a straight line. - - - - - This class just uses WaitForSingleObject directly to work around unwanted consequences of - message pumping that may happen while doing WaitHandle.WaitOne. It is not intended to implement - all the functionality that WaitHandle possess. - - - - - Waiting for event to be SET - - true if event was SET, false if timeout expired - - - - - Waiting for event to be SET - - - - - Assertion method to avoid creating closure objects when no exceptions are thrown - - - - - - - Mapping from one family of objects into another and vice versa. - - - - - Adds a new mapping to the map. Both ends must be unique in their maps. - - - - - Adds a new mapping to the map. You should use whenever possible, as it throws on dpulicate keys. - - Left key. - Right key. - Whether to ignore duplicate keys in left and right collections silently. Not recommended. The conflicting mappings will be dropped. - - - - Get the number of mappings. - As we implement the identity mapping, the number of items on both sides is always in sync. - - - - - Lazily instantiates the hash set. - Just FrugalLocalLazy{JetHashSet}. - - - - - - Reports the index of the first occurrence of the specified Unicode character in result string. - - - - The zero-based index position of if that character is found, or -1 if it is not. - - A Unicode character to seek. - 1 - - - - Reports the index of the first occurrence of the specified Unicode character in result string. The search starts at a specified character position. - - - - The zero-based index position of if that character is found, or -1 if it is not. - - A Unicode character to seek. - The search starting position. - is less than zero or specifies a position beyond the end of this instance. - 1 - - - - Reports the index of the first occurrence of the specified character in this instance. The search starts at a specified character position and examines a specified number of character positions. - - - - The zero-based index position of if that character is found, or -1 if it is not. - - A Unicode character to seek. - The search starting position. - The number of character positions to examine. - or is negative.-or- + specifies a position beyond the end of this instance. - 1 - - - - Reports the index of the first occurrence of the specified in this instance. - - - - The zero-based index position of if that string is found, or -1 if it is not. If is , the return value is 0. - - The to seek. - is null. - 1 - - - - Reports the index of the first occurrence of the specified in this instance. The search starts at a specified character position. - - - - The zero-based index position of if that string is found, or -1 if it is not. If is , the return value is . - - The to seek. - The search starting position. - is null. - is negative.-or- specifies a position not within this instance. - 1 - - - - Reports the index of the first occurrence of the specified in this instance. The search starts at a specified character position and examines a specified number of character positions. - - - - The zero-based index position of if that string is found, or -1 if it is not. If is , the return value is . - - The to seek. - The search starting position. - The number of character positions to examine. - is null. - or is negative.-or- plus specify a position not within this instance. - 1 - - - - Reports the index of the first occurrence of the specified string in the current object. A parameter specifies the type of search to use for the specified string. - - - - The index position of the parameter if that string is found, or -1 if it is not. If is , the return value is 0. - - The object to seek. - One of the values. - is null. - is not a valid value. - - - - Reports the index of the first occurrence of the specified string in the current object. Parameters specify the starting search position in the current string and the type of search to use for the specified string. - - - - The zero-based index position of the parameter if that string is found, or -1 if it is not. If is , the return value is . - - The object to seek. - The search starting position. - One of the values. - is null. - is negative, or specifies a position that is not within this instance. - is not a valid value. - - - - Reports the index of the first occurrence of the specified string in the current object. Parameters specify the starting search position in the current string, the number of characters in the current string to search, and the type of search to use for the specified string. - - - - The zero-based index position of the parameter if that string is found, or -1 if it is not. If is , the return value is . - - The object to seek. The search starting position. The number of character positions to examine. One of the values. is null. or is negative.-or- plus specify a position that is not within this instance. is not a valid value. - - - - Reports the index of the first occurrence in this instance of any character in a specified array of Unicode characters. - - - - The zero-based index position of the first occurrence in this instance where any character in was found; otherwise, -1 if no character in was found. - - A Unicode character array containing one or more characters to seek. - is null. - 2 - - - - Reports the index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at a specified character position. - - - - The zero-based index position of the first occurrence in this instance where any character in was found; otherwise, -1 if no character in was found. - - A Unicode character array containing one or more characters to seek. - The search starting position. - is null. - is negative.-or- is greater than the number of characters in this instance. - 2 - - - - Reports the index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at a specified character position and examines a specified number of character positions. - - - - The zero-based index position of the first occurrence in this instance where any character in was found; otherwise, -1 if no character in was found. - - A Unicode character array containing one or more characters to seek. - The search starting position. - The number of character positions to examine. - is null. - or is negative.-or- + is greater than the number of characters in this instance. - 2 - - - - Reports the index position of the last occurrence of a specified Unicode character within this instance. - - - - The zero-based index position of if that character is found, or -1 if it is not. - - A Unicode character to seek. - is null. - 1 - - - - Reports the index position of the last occurrence of a specified Unicode character within this instance. The search starts at a specified character position. - - - - The index position of if that character is found, or -1 if it is not found or if the current instance equals . - - A Unicode character to seek. - The starting position of a substring within this instance. - is null. - The current instance does not equal and is less than zero or greater than the length of this instance. - 1 - - - - Reports the index position of the last occurrence of the specified Unicode character in a substring within this instance. The search starts at a specified character position and examines a specified number of character positions. - - - - The index position of if that character is found, or -1 if it is not found or if the current instance equals . - - A Unicode character to seek. - The starting position of a substring within this instance. - The number of character positions to examine. - is null. The current instance does not equal and is less than zero, or greater than or equal to the length of this instance.-or- + 1 - is less than zero. - 1 - - - - Reports the index position of the last occurrence of a specified Unicode character within this instance. - - - - The zero-based index position of if that character is found, or -1 if it is not. - - A Unicode character to seek. - is null. - 1 - - - - Reports the index position of the last occurrence of a specified Unicode character within this instance. The search starts at a specified character position. - - - - The index position of if that character is found, or -1 if it is not found or if the current instance equals . - - A Unicode character to seek. - The starting position of a substring within this instance. - is null. The current instance does not equal and is less than zero or greater than the length of this instance. - 1 - - - - Reports the index position of the last occurrence of the specified Unicode character in a substring within this instance. The search starts at a specified character position and examines a specified number of character positions. - - - - The index position of if that character is found, or -1 if it is not found or if the current instance equals . - - A Unicode character to seek. - The starting position of a substring within this instance. The number of character positions to examine. - is null. The current instance does not equal and is less than zero, or greater than or equal to the length of this instance.-or- + 1 - is less than zero. - 1 - - - - Reports the index of the last occurrence of a specified string within the current object. A parameter specifies the type of search to use for the specified string. - - - - The index position of the parameter if that string is found, or -1 if it is not. If is , the return value is the last index position in this instance. - - The object to seek. - One of the values. - is null. - is not a valid value. - - - - Reports the index of the last occurrence of a specified string within the current object. Parameters specify the starting search position in the current string, and type of search to use for the specified string. - - - - The index position of the parameter if that string is found, or -1 if it is not found or if the current instance equals . If is , the return value is . - - The object to seek. - The search starting position. - One of the values. - is null. - The current instance does not equal and is less than zero or specifies a position that is not within this instance. is not a valid value. - - - - Reports the index position of the last occurrence of a specified object within this instance. Parameters specify the starting search position in the current string, the number of characters in the current string to search, and the type of search to use for the specified string. - - - - The index position of the parameter if that string is found, or -1 if it is not found or if the current instance equals . If is , the return value is . - - The object to seek. - The search starting position. - The number of character positions to examine. - One of the values. - is null. - The current instance does not equal and or is negative.-or- is greater than the length of this instance.-or- + 1 - specifies a position that is not within this instance. is not a valid value. - - - - Reports the index position of the last occurrence in this instance of one or more characters specified in a Unicode array. - - - - The index position of the last occurrence in this instance where any character in was found; otherwise, -1 if no character in was found. - - A Unicode character array containing one or more characters to seek. - is null. - 2 - - - - Reports the index position of the last occurrence in this instance of one or more characters specified in a Unicode array. The search starts at a specified character position. - - - - The index position of the last occurrence in this instance where any character in was found; otherwise, -1 if no character in was found or if the current instance equals . - - A Unicode character array containing one or more characters to seek. - The search starting position. - is null. - The current instance does not equal and specifies a position not within this instance. - 2 - - - - Reports the index position of the last occurrence in this instance of one or more characters specified in a Unicode array. The search starts at a specified character position and examines a specified number of character positions. - - - - The index position of the last occurrence in this instance where any character in was found; -1 if no character in was found or if the current instance equals . - - A Unicode character array containing one or more characters to seek. - The search starting position. - The number of character positions to examine. - is null. The current instance does not equal , and or is negative.-or- The current instance does not equal and minus specifies a position that is not within this instance. - 2 - - - - Retrieves a substring from this instance. The substring starts at a specified character position. - - - - A object equivalent to the substring that begins at in this instance, or if is equal to the length of this instance. - - The zero-based starting character position of a substring in this instance. - is less than zero or greater than the length of this instance. - 1 - - - - Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length. - - - - A equivalent to the substring of length that begins at in this instance, or if is equal to the length of this instance and is zero. - - The zero-based starting character position of a substring in this instance. - The number of characters in the substring. - plus indicates a position not within this instance.-or- or is less than zero. - 1 - - - - Returns a value indicating whether the specified object occurs within this string. - - - - true if the parameter occurs within this string, or if is the empty string (""); otherwise, false. - - The object to seek. is null. 1 - - - - Determines whether the end of this instance matches the specified string. - - - - true if matches the end of this instance; otherwise, false. - - A to compare to. is null. 1 - - - - Returns an enumerable of sting slices that contains the substrings in this string that are delimited by elements of a specified Unicode character array. - - - - Returns an enumerable of sting slices that contains the substrings in this string that are delimited by one or more characters in . - - - - - Returns an enumerable of sting slices that contains the substrings in this string that are delimited by elements of a specified Unicode character array. - Parameter specify whether to return empty array elements. - - - - Returns an enumerable of sting slices that contains the substrings in this string that are delimited by one or more characters in . - - An array of Unicode characters that delimit the substrings in this string, an empty array that contains no delimiters, or null. - to omit empty array elements from the array returned, - or to include empty array elements in the array returned. - - - - String length - - - - - Char in result string - - index in result string - Char at pos in result string - - - - Single frame after diffing two entities - - - - - Type of the single diff frame - - - - - Reuses the single instance of an empty array (one per type). If possible, prefer - because each time you enumerate empty array, new class instance is being created. - - - - - Reuses the single instance of an empty list (one per type). This instance is read-only and reuses singleton enumerator. - - - - - Reuses the single instance of an empty array (one per type). - This class is preferrable over when you'd like to use SmartCompletion for completing the array type. - - - - - Synonym for - - - - - - - Reuses the single read-only instance of an empty dictionary (one per type). - todo implement singleton enumerator, like in EmptyList - - - - - Returns iterator next value if returns true. - Otherwise, throws . - - - - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Equivalent means distinct collections (discarding duplicates) are equals as sets (disregarding order) - - - - - - - - - - Similar to , but not lazy and returns . - - - Allows null as arguments, interprets it as empty sequence. - - - List containing elements of in order, followed by elements of in order. - - - - - Tries to determine the number of elements in in O(1). - - - true is the method succeeded and the number of elements has been assigned to , false otherwise. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Returns true if length of can be checked fast and this check gives 0. - Otherwise returns false (it does not necessarily mean that is not empty) - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Returns true if length of can be checked fast and this check does not give 0. - Otherwise return false (it does not necessarily mean that is empty!) - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if is empty (has no elements). - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has exactly 1 element. - - - - - Returns true if and only if has exactly 1 element. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has exactly 1 character. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has elements or more. - - - - - Returns true if and only if has elements or more. - - - - - Returns true if and only if has elements or more. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has characters or more. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has 2 elements or more. - - - - - Returns true if and only if has 2 elements or more. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has 2 characters or more. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has more than elements. - - - - - Returns true if and only if has more than elements. - - - Static overload to prevent runtime type checks. - - - - - Returns true if and only if has more than characters. - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Removes given elements from collection using method. For source collection implemented as list time will be O(n*m), for hashset - O(m) - where n - number of elements in source collection, m - number of elements in remove-list. - - - - - - - - - Fluent AddRange, returns the collection, can be used in chains and in field initializers. - - - - - Static overload to prevent runtime type checks. - - - - - Static overload to prevent runtime type checks. - - - - - Warning! Copies the items! - - - - - Warning! Copies the items! - - - - - Warning! Copies the items! - - - - - WARNING: Sometimes it sorts collection in-place - - - - - Enumerates the tree structure recursively. The tree includes the root element itself, its children, as gotten from , and the children of those children, and so on. - The walk uses Depth-First Search, does not use additional memory, but puts a strain on the call stack. - - - - - Enumerates the tree structure recursively. The tree includes the root element itself, its children, as gotten from , and the children of those children, and so on. - The walk uses Breadth-First Search, does not use call stack, but allocates some additional memory. - - - - - Enumerates the tree structure recursively. The tree includes the root element itself, its children, as gotten from , and the children of those children, and so on. - The walk uses Breadth-First Search, does not use call stack, but allocates some additional memory. - The results are collected in a hash set, so infinite recursion is processed correctly. - - - - - Forces evaluation of all members. - - - - - A version that silently returns Null when the is not present in the . - - - - - A version that silently returns Null when the is not present in the . - - - - - A version that throws the explicit exception text when the is not present in the . - - - - - A version that adds a new entry the is not present in the . The new value is given by in this case. - - - - - A version that adds a new entry the is not present in the . The new value is given by in this case. - - - This version takes a function of the key to allow caching the value-creation delegate without creating a new closure each time, as would do. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - Aggregates a number of items into a single string, using the - to avoid creating excessive strings when concatenating. - Use its method as appropriate. - - - - - All permutations of collection. - - - - - Pops the item from the stack (), - throws the specific message if the stack is empty, - instead of the generic stack exception. - - - - - Creates a new array that is the old array plus one new item. - If the item is already present in the list, returns the old array. - This method is useful for implementing the copy-on-write scenarios a bit more effectively (compared to old.Concat(item).ToArray()). - - Item type. - Original array (will not be modified). - The item to add. - The new array, if item added; the old array, if no change. - - - - Creates a new array that is the old array plus one new item. - If the item is already present in the list, returns the old array. - This method is useful for implementing the copy-on-write scenarios a bit more effectively (compared to old.Concat(item).ToArray()). - - Item type. - Original array (will not be modified). - The item to add. - Item equality. - The new array, if item added; the old array, if no change. - - - - Creates a new array that is the old array except the given item. - If the item is not on the list, returns the old array. - This method is useful for implementing the copy-on-write scenarios a bit more effectively (compared to old.Concat(item).ToArray()). - - Item type. - Original array (will not be modified). - The item to remove. - The new array, if item removed; the old array, if no change. - - - - Creates a new array that is the old array except the given item. - If the item is not on the list, returns the old array. - This method is useful for implementing the copy-on-write scenarios a bit more effectively (compared to old.Concat(item).ToArray()). - - Item type. - Original array (will not be modified). - The item to remove. - Item equality. - The new array, if item removed; the old array, if no change. - - - - Temporarily adds an item to the , for the period of time defined by the . - - - - - - Temporarily adds the elements of the specified collection to the end of the , for the period of time defined by the . - - - - - Asserts the collections have the same set of items (in any order). - Similar to NUnit's CollectionAssert.AreEquivalent, but shows some readable output (the former would just dump both collections, and go guess the diff). - - The collection to validate. - The expected set of items. - - - - A less-throwing version of . - Accepts Null input, yielding an empty collection. - Drops exceptions in . - Does not mitigate exceptions in / , though. - - - - - Inserts an item into a sorted array so that to maintain the sorting order. - - The index the item was inserted at (equals to ). - - - - Gets whether the search found any results. - - - - - Gets the index of the search hit, should there be any. - In case of a search miss, throws. - - - - - The target, if the search had a hit. - Otherwise, the nearest item below the target. - If the first item in the list is above the target, throws an exception. - - - - - The target, if the search had a hit. - Otherwise, the nearest item above the target. - If the last item in the list is below the target, throws an exception. - - - - - The target, if the search had a hit. - Otherwise, the nearest item below the target. - If the first item in the list is above the target, returns that item anyway. Throws on an empty list. - - - - - The target, if the search had a hit. - Otherwise, the nearest item above the target. - If the last item in the list is below the target, returns that item anyway. Throws on an empty list. - - - - - The target, if the search had a hit. - Otherwise, the nearest item below the target. - If the first item in the list is above the target, throws an exception. - - - - - The target, if the search had a hit. - Otherwise, the nearest item above the target. - If the last item in the list is below the target, throws an exception. - - - - - The target, if the search had a hit. - Otherwise, the nearest item below the target. - If the first item in the list is above the target, returns that item anyway. Throws on an empty list. - - - - - The target, if the search had a hit. - Otherwise, the nearest item above the target. - If the last item in the list is below the target, returns that item anyway. Throws on an empty list. - - - - - The target, if the search had a hit. - Otherwise, the nearest item above the target. - If the last item in the list is below the target, returns the number of items in the list (the first free index). - - - - - If you're maintaining a sorted array, use this index for inserting new elements. - - - - - If the search found an item, returns that item. Otherwise, throws. - - - - - A list whose compares the items in their exact sequence (). - - - - - A list whose compares the items in their exact sequence (). - - - - - Extended console for both Windows and Console Applications. - - - - - Initializes WinConsole -- should be called at the start of the program using it - - - - - Produces a simple beep. - - - - - Flashes the console window - - if off, flashes repeated until the user makes the console foreground - - - - Clear the console window - - - - - Redirects debug output to the console - - clear all other listeners first - color to use for display debug output - - - - Redirects trace output to the console - - clear all other listeners first - color to use for display trace output - - - - Gets the Console Window location and size in pixels - - - - - Sets the console window location and size in pixels - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Same as the Console counterpart - - - - - Specifies whether the console window should be visible or hidden - - - - - Gets or sets the title of the console window - - - - - Get the HWND of the console window - - - - - - Gets and sets a new parent hwnd to the console window - - - - - - Get the current Win32 buffer handle - - - - - Get the current position of the cursor - - - - - - Returns a coordinates of visible window of the buffer - - - - - Returns the size of buffer - - - - - Returns the maximum size of the screen given the desktop dimensions - - - - - Returns various information about the screen buffer - - - - - Gets or sets the current color and attributes of text - - - - - Returns true if Ctrl-C or Ctrl-Break was hit since the last time this property - was called. The value of this property is set to false after each request. - - - - - Returns the error stream (same as Console.Error) - - - - - Returns the input stream (same as Console.In) - - - - - Returns the output stream (same as Console.Out) - - - - - A helper class for carrying out advanced operations over rectangles. - - - - - Returns the maximum of the size dimensions absolute values. - - - - - Makes sure one rectangle is wholy located within the other, preferring to keep its size if possible and executing minimal moves. - - The rectangle to align. - The bounds to align the within, may be smaller than . - - - - Try to make sure one rectangle is located within the other, preferring to keep its size if possible and executing minimal moves. - If source rectangle is bigger than the bounds, ensure its left top corner is within the bounds. - - The rectangle to align. - The bounds to align the within, may be smaller than . - The rectangle minimal size. - - - - Centers one rectangle within another. - - The rectangle to align. The returned value will have the same size. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. - - The rectangle to align. The returned value will have the same size. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. - - The size of the rectangle to align. The returned value will have the same size. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. - - The size of the rectangle to align. The returned value will have the same size. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another and crops down as needed. - - The rectangle to align. The returned value may be cropped down by the . - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another and crops down as needed. - - The size of the rectangle to align. The returned value may be cropped down by the . - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. If the does not fit into , it's downscaled proportionally. - - The rectangle to align. The returned value may be downscaled. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. If the does not fit into , it's downscaled proportionally. - - The rectangle to align. The returned value may be downscaled. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. If the does not fit into , it's downscaled proportionally. - - The size of the rectangle to align. The returned value may be downscaled. - The bounds to align the within, may be smaller than . - - - - Centers one rectangle within another. If the does not fit into , it's downscaled proportionally. - - The size of the rectangle to align. The returned value may be downscaled. - The bounds to align the within, may be smaller than . - - - - Returns a non-collapsed rectangle attached outside the rectangle. - - The attachment anchor. Increased to include the newly-attached rectangle on exit, so that to attach multiple rects in sequence. - The docking style, which can be a side-dock only. - The characteristic size of the side-attached rectangle (only either width or height, whichever is not defined by the attachment process). - The rectangle attached at the given side. - - - - Returns a non-collapsed rectangle attached outside the rectangle. - - The attachment anchor. Increased to include the newly-attached rectangle on exit, so that to attach multiple rects in sequence. - The docking style, which can be a side-dock only. - The characteristic size of the side-attached rectangle (only either width or height is used, whichever is not defined by the attachment process). - The rectangle attached at the given side. - - - - Returns a non-collapsed rectangle attached outside the rectangle. - - The attachment anchor. - The docking style, which can be a side-dock only. - The characteristic size of the side-attached rectangle (only either width or height, whichever is not defined by the attachment process). - The rectangle attached at the given side. - - - - Returns a non-collapsed rectangle attached outside the rectangle. - - The attachment anchor. - The docking style, which can be a side-dock only. - The characteristic size of the side-attached rectangle (only either width or height is used, whichever is not defined by the attachment process). - The rectangle attached at the given side. - - - - Performs the smart clipping that returns a non-all-zeros rectangle even if there is no intersection. - Ie, when the rect lays outside the over some side, the result is a zero-thick projection on that side. - - - - - - - - Performs the smart clipping that returns a non-all-zeros rectangle even if there is no intersection. - Ie, when the rect lays outside the over some side, the result is a zero-thick projection on that side. - - - - - - - - Collapses a rectangle down to a point. - The inside modes are located on the inner sides of the rectangle, and outside ones are one point outside. - The bottom-right sides are not included within the rectangle area. - - - - - Collapses a rectangle down to a point. - The inside modes are located on the inner sides of the rectangle, and outside ones are one point outside. - The bottom-right sides are not included within the rectangle area. - - - - - Constrains the size by the . - - The source size to be limited. May be non-normalized. - The limiting size. Must be normalized. - The constrainted , guaranteed to be normalized. - - - - Constrains the size by the . - - The source size to be limited. May be non-normalized. - The limiting size. Must be normalized. - The constrainted , guaranteed to be normalized. - - - - Deflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will shrink. - - - - - Deflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will shrink. - - - - - Deflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will shrink. - - - - - Deflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will shrink. - - - - - Deflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will shrink. - - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. Decreased to exclude the newly-docked rectangle on exit, so that to dock multiple rects in sequence. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (either width or height, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. Decreased to exclude the newly-docked rectangle on exit, so that to dock multiple rects in sequence. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (either width or height, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. Decreased to exclude the newly-docked rectangle on exit, so that to dock multiple rects in sequence. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (only either width or height is used, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. Decreased to exclude the newly-docked rectangle on exit, so that to dock multiple rects in sequence. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (only either width or height is used, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (either width or height, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (either width or height, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (only either width or height is used, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns a non-collapsed rectangle docked within the rectangle. - - The docking space. - The docking style, which can be either any side or fill. - The characteristic size of the side-docked rectangle (only either width or height is used, whichever is not defined by the docking process). In the case, this parameter is ignored. - The rectangle docked at the given side. - - - - Returns if the given is "enhanced-empty", that is, either it's , or one of its dimensions is zero. Otherwise, returns the original size. - Curcumvents the fact that requires both dimensions to be simultaneousely zero. - - - - - Creates a rectangle in a way similar to , but ensures that no dimension is negative. - If near is less than far, they're both set to the middle value. - - - - - Creates a rectangle in a way similar to , but ensures that no dimension is negative. - If near is less than far, they're both set to the middle value. - - - - - Gets a set of non-overlapping rectangles forming a border just inside the given rect, of the thickness specified. - - - - - Gets a point that is the center of the rectangle. - - - - - Inflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will grow. - - - - - Inflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will grow. - - - - - Inflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will grow. - - - - - Inflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will grow. - - - - - Inflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will grow. - - - - - Inflates all the rectangle's sides by the given amount. If the numbers are positive, the rectangle will grow. - - - - - Gets whether the given size is collapsed, that is, has a zero or negative dimension. - - - - - Gets whether the given size is collapsed, that is, has a zero or negative dimension. - - - - - Gets whether the given rectangle is collapsed, that is, has a zero or negative dimension. - - - - - Gets whether the given rectangle is collapsed, that is, has a zero or negative dimension. - - - - - Gets whether the given rectangle is collapsed, that is, has a zero or negative dimension. - - - - - Checks whether the size satisfies the , in terms of the function. - - The source size to be limited. May be non-normalized. - The limiting size. Must be normalized. - Whether executing over and won't change the . - - - - Checks whether the size satisfies the , in terms of the function. - - The source size to be limited. May be non-normalized. - The limiting size. Must be normalized. - Whether executing over and won't change the . - - - - Checks whether the size represents an empty area. - Unlike , returns True if either of dimensions is empty (OR condition). - - - - - Checks whether the rectangle represents an empty area. - Unlike , returns True if either of dimensions is empty (OR condition), and ignores the completely. - - - - - Gets whether the given rectangle is close to maxvalues. - - - - - Gets whether any of the coordinates are NAN or INF (). - - - - - - Gets whether any of the coordinates are NAN or INF (). - - - - - - Gets whether any of the coordinates are NAN or INF (). - - - - - - Checks whether the size corresponds to a normalized rectangle. - A normalized rectangle is such whose left coordinate is not greater than right, and top coordinate is not greater than bottom. - - - - - Checks whether the size corresponds to a normalized rectangle. - A normalized rectangle is such whose left coordinate is not greater than right, and top coordinate is not greater than bottom. - - - - - Checks whether the rectangle is normalized. - A normalized rectangle is such whose left coordinate is not greater than right, and top coordinate is not greater than bottom. - - - - - Checks whether the rectangle is normalized. - A normalized rectangle is such whose left coordinate is not greater than right, and top coordinate is not greater than bottom. - - - - - Gets the normalized maximum of two sizes, max operation executed independently against both dimensions. - - - - - Gets the normalized maximum of two sizes, max operation executed independently against both dimensions. - - - - - Gets the normalized minimum of two sizes, min operation executed independently against both dimensions. - - - - - Gets the normalized minimum of two sizes, min operation executed independently against both dimensions. - - - - - Normalizes the rectangle so that it has non-negative and , and passes the with True. - - - - - Normalizes the rectangle so that it has non-negative and , and passes the with True. - - - - - Normalizes the size so that it . All the negative components are pulled up to become zero. - - - - - Offsets the rectangle location by the given amount. - - The source rectangle. - The offset distance. - The resulting rectangle. - - - - Offsets the rectangle location by the given amount. - - The source rectangle. - The offset distance. - The resulting rectangle. - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Adjusts the rectangle so that only one of the Left, Top, Right, Bottom components changes. Width or Height are changed as appropriate. - - - - - Creates a new object that is guaranteed to be normalized and, if at least one of its sides is empty, to be . - - The desired width. - The desired height. - A normalized size whose sides can only simultaneousely be 0. - - - - Creates a new object that is guaranteed to be normalized and, if at least one of its sides is zero, to be all-zero. - - The desired width. - The desired height. - A normalized size whose sides can only simultaneousely be 0. - - - - Creates a new object that is guaranteed to be normalized and, if at least one of its sides is empty, to be . - - The desired width and height. - A normalized size whose sides can only simultaneousely be 0. - - - - Stacks a number of sizes horizontally and returns the resulting size. - If a size in the list is collapsed, it's not included and the gaps for it are not added. - - The list of sizes to stack. - The gap to insert between the adjacent stack-items. - The bounding rect of the result. - - - - Stacks a number of sizes horizontally and returns the resulting size. - If a size in the list is collapsed, it's not included and the gaps for it are not added. - - The list of sizes to stack. - The gap to insert between the adjacent stack-items. - The bounding rect of the result. - - - - Stacks a number of sizes vertically and returns the resulting size. - If a size in the list is collapsed, it's not included and the gaps for it are not added. - - The list of sizes to stack. - The gap to insert between the adjacent stack-items. - The bounding rect of the result. - - - - Stacks a number of sizes vertically and returns the resulting size. - If a size in the list is collapsed, it's not included and the gaps for it are not added. - - The list of sizes to stack. - The gap to insert between the adjacent stack-items. - The bounding rect of the result. - - - - Unites the two rectangle and returns a rect that encompasses both. - - - - - Unites the horizontal coordinates of the rectangles, and takes the y-coordinates solely from . - - The first rectangle, features the y-coordinates of the retval. - The second rectangle. - - - - Unites the horizontal coordinates of the rectangles, and takes the y-coordinates solely from . - - The first rectangle, features the y-coordinates of the retval. - The second rectangle. - - - - Unites the vertical coordinates of the rectangles, and takes the x-coordinates solely from . - - The first rectangle, features the x-coordinates of the retval. - The second rectangle. - - - - Unites the vertical coordinates of the rectangles, and takes the x-coordinates solely from . - - The first rectangle, features the x-coordinates of the retval. - The second rectangle. - - - - Asserts that point coordinates are real numbers. Fluent. - Throws on , , . - - Point to test. - Optional. Message to include in the failure exception. - - - - Asserts that rectangle coordinates are real numbers. Fluent. - Throws on , , . - - Point to test. - Optional. Message to include in the failure exception. - - - - Asserts that size dimensions are real numbers. Fluent. - Throws on , , . - - Point to test. - Optional. Message to include in the failure exception. - - - - A helper function for the func, handles one dimension. - - - - - A helper function for the func, handles one dimension. - - - - - Implements the size-stacking. - - - - - Gets the size whose both components are . - - - - - A comparer for the rectangles. - - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - - Value Condition Less than zerox is less than beta.Zerox equals beta.Greater than zerox is greater than beta. - - - The second object to compare. - The first object to compare. - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - - Value Condition Less than zerox is less than beta.Zerox equals beta.Greater than zerox is greater than beta. - - - The second object to compare. - The first object to compare. - - - - Represents a range in a plaintext document. - - - - - Should be replaced with of wherever possible. - Avoid using in new code. - - - - - Creates a new range from offset and length, rather than from start + end offsets, as the .ctor would do. - - - - - Creates a new range from zero offset and length, rather than from start + end offsets, as the .ctor would do. - - - - - Creates a range from two unordered offsets, i.e. when it's not known which of the offsets is the start and which one is the end. - The resultant range is guaranteed to be normalized. - DO NOT USE unless the source of your offset is unordered by its nature (eg if you select text with shift+left the offsets of the selection range will be inverted, so they're sometimes out of order by design). Usually you should know which offset is start and which is end, and failure to do so might indicate an error in preceding code. - - - - - Gets the or , whichever is smaller. Use for consistent processing of potentially non-normalized ranges. - - - - - Gets the or , whichever is greater. Use for consistent processing of potentially non-normalized ranges. - - - - - Gets whether this range is a subset of the . - - - - - Gets whether this range is a proper subset of the . - - - - - Determines whether the offset falls within the range, start and end offsets included. - - - - - Checks whether the character at the given index falls within this range. - Unlike , the right offset is not included, because the range ends before the character with such an index. - - - - - Asserts that this range is valid, which means that it's not an . - Throws in ASSERT mode only. - - - - - Asserts that this range is normalized, which means that its is nonnegative. - Includes . - Throws in ASSERT mode only. - - - - - Returns a normalized version of the current text range (with a nonnegative length). - - - - - Returns the distance between the and the nearest point that belongs to the range. - - - - - The first offset (character position) of the range, inclusive. - A character at this index is included with the range. - - - - - The last offset (character position) of the range, non-inclusive. - A character at this index is not included with the range and goes right after the range end. - An end offset could point at the end of the document, in which case there's no character at this position. - - - - - The number of characters in the text range. - As the end offset is non-inclusive, this is equal to . - - - - - Whether the range is empty. - The of an empty range is zero, and its is the same as its . - - - - - Should be replaced with of wherever possible. - Avoid using in new code. - Checks that the range is not the . - - - - - Gets whether this range is normalized, which means that its is nonnegative. - - - - - Represents the result of an attempt to make files writable - - - - - All files were successfully made writable - - - - - The attempt failed for some files - - - - - Some files were modified as a result of the attempt to make them writable - - - - - Cancelled by user - - - - - Helper class for dispatching pending events - - - - - The stack of listeners being dispatched - - - - - List of listeners ordered by the time listener was added - - - - - Maps listeners to "notified" flags - - - - - The last call args - - - - - Array of listeners - - - - - Compares elements by their positions in an ArrayList - - - - - Represents the "user data holder" pattern. - The user data holder pattern can be used for associating - client-specific data with instances of certain type. - To let associating of user data with instances of - some type it should implement IUserDataHolder interface. - It allows putting object values by arbitrary keys - of type . - - Example of usage: - - private const Key KEY = new Key("descriptor"); - - .... - { - MyDataType dataToStore = ... - holder.PutData(KEY, dataToStore); - .... - MyDataType restoredData = (MyDataType)holder.GetData(KEY); - } - - - - - - - Stores given value by specified key. - Use PutData(key, null) to remove the association. - - - - - Retrieves value associated with given key. - Returns null when no value is associated. - - - - - Lambda-lifted overload: use a cached delegate instead of creating a new closure object on each call. - - - - - Class to be used for keys in . - May also be used in other places where unique keys are needed. - Instances of this class are constructed with String parameter - but use it only to return in method. - This class does not override - and and therefore all instances of - this class are considered to be different. - - - - - - Strongly types key. - This class does not override - and and therefore all instances of - this class are considered to be different. - - - - - - Gets the total amount of virtual memory available to the process. - Caches the value. - - - - - - Caches the memory stats. - - - - - Determines whether the specified objects are equal. - - - - true if the specified objects are equal; otherwise, false. - - - The second object to compare. - The first object to compare. - x and y are of different types and neither one can handle comparisons with the other. - - - - Event that can be used for cross-process synchronization - - - - - This is a convenient wrapper around Registry API. It recognizes registry paths of the XPath syntax - - - - - In order to get varying results on adjacent calls, there must be a shared Random object. - - - - - Caches the macro substitution regex. - - - - - Returns true if one qualified name starts with another. - - - - - Concatenates two names into a qualified name. - - - - - Gets a short name out of qualified name - - - - - Takes a start of a fully qualified name and adds next part of it, e.g.: - NextQualification ("A.B", "A.B.D.D") results in "A.B.D". - - - - Splits fully qualified name of a class into name of the namespace and short name - - - Concats namespace name and class name into fully qualified name - - - Splits a string into tokens given the string of delimiter characters. The third argument - tells whether it is necessary to retain empty strings in the array returned. This functions is not - as efficient as it may be, so use it accurately. - - - - - Gets intersection of two qualified names - - - Calling it for "A.B.D.D" and "C.D.E.F" will return "C.D" - - - - - Substs the macros in a string, throws if there are undefined macros. - Does a one-stage replacement only, i.e. if some macro expands into another macro, this is not processed if the macro is known and not treated as an error if the macro is unknown. - - - - - Produces a human-readable random name. - - - - - Produces a human-readable random name. - - - - - Produces a human-readable random name. - - - - - Produces a stable human-readable random name for an object instance. - - - - - Checks whether the string is an empty string or a Null reference. - - - - - - Formats the identity of a thread. - - - - - Works like , but surrounds the space-containing arguments with quotes. - - - - - If the string contains spaces, surrounds it with quotes. - - - - - Returns the 's value, unless is Null, or its is the default implementation (just returns the type name). - Could be used to prevent non-implemented strings from getting into the UI. - - - - - Makes sure the return text is no longer than . Drops some text from the middle, if needed, keeping the beginning and the end. - - - - - Renders the pointer-sized integer as the appropriate number of hex chars, with leading zeros. - - - - - Renders the pointer value as the appropriate number of hex chars, with leading zeros. - - - - - Renders the pointer-sized integer as the appropriate number of hex chars, with leading zeros. - - - - - Formats the to a string, adding leading zeros so that all of the numbers up to , inclusively, had the same number of characters in their string representation when formatted thru this function. - - - - - Gets the words. - - The text. - - - - - Mimics the Netfx4 String::IsNullOrWhiteSpace method. - - - - - Changes the name from lowerCamelCase or MixedCAMELCase or - dashed-words or underscored_words into the UpperCamelCase format. - - - - - - - Platform independent hash code, can be used to persist records. is different for x86 and x64, so it can't be used for serialization. - - source string - whether method should threat capital and smaller letters differently - hashcode - - - Uses one character to represent new line. - - - Uses one character to represent new line. - - - - Implementation of RFC 4122 - A Universally Unique Identifier (UUID) URN Namespace. - - - - - Creates a version 5 name-based UUID. - - The namespace UUID. - The value. - The UUID for the given namespace and value. - - - - Asserts that the reader is currently at the element with the specific name. Advances before throwing to avoid endless child loops. - - - - - Makes sure the reader is at the same node depth after executing the nested code as before running it. Throws if the nested code pops out of the orignal level. - Note: this is a lightweight alternative to . Use the latter to get maximum stability. - - - - - After executing the nested code, makes sure the depth level is that of the parent of the orignial element (one depth level up). Throws if the nested code pops out of the limiting level. - Note: this is a lightweight alternative to . Use the latter to get maximum stability. - - - - - Creates a new reader that scopes the current element only. cannot proceed past the current element on its reader, as the reader will report end-of-stream. After this function exits, the outer is positioned on the next node after the element it was called on. - The reader of the is initially positioned on the same element. - - - - - Enters the current element, scans through all of its children, and calls for each of the first-level child elements. - Must be called on an element (use if needed). - must do at least one read operation on the , otherwise the reader could enter an endless loop. It is not necessary to read all of the child content, or return to the original depth level. - - - - - On the current depth level, scans through all of the elements, and calls for each of the same-level elements. - must do at least one read operation on the , otherwise the reader could enter an endless loop. It is not necessary to read all of the element content, or return to the original depth level. - - - - - Reads up to the opening tag of an element on the same level as the current reader position. Returns whether such an element could be found. - - - - - Reads up to the opening tag of an element on the specified depth level. Returns whether such an element could be found. - - - - - Impl for and . - - - - - Creates a reader over the stream. Does not close the stream by default. - - - - - Creates a reader over the stream. Does not close the stream by default. - - - - - Adds the current line-column of the XML parser position (if this information is available on the parser). - - - - - Adds the current line-column of the XML parser position (if this information is available on the parser). - - - - - - Creates attribute only if passed value is not empty - - - - - A fluent version of . - - - - Replaces , always yields non-NULL, throws if NULL. - - - Replaces , always yields non-NULL, throws if NULL. - - - - StringEncryption is a wrapper of System.Security.Cryptography.SymmetricAlgorithm classes - and simplifies the interface. It supports customized SymmetricAlgorithm as well. - - - - - Constructor for using an intrinsic .Net SymmetricAlgorithm class. - - - - - Constructor for using a customized SymmetricAlgorithm class. - - - - - Depending on the legal key size limitations of a specific CryptoService provider - and length of the private key provided, padding the secret key with space character - to meet the legal size of the algorithm. - - - - - Supported .Net intrinsic SymmetricAlgorithm classes. - - - - - A fluent version of . - - - - - Creates a writer over the stream with readability-friendly settings (). - - - - - Writes an element string, mostly as , but supports special notation for to also specify the namespace in the form xmlns::localname, eg "urn:shemas-jetbrains-com:all-assemblies-xml::AllAssemblies". - - - - - + . - Supports special notation for to also specify the namespace in the form xmlns::localname, eg "urn:shemas-jetbrains-com:all-assemblies-xml::AllAssemblies". - - - - - + . - - - - - + . - - - - - + . - - - - - Creates a writer over the stream with readability-friendly settings (). - - - - - Creates a writer over the stream with user-supplied settings. - - - - - Default settings for an XML Writer. - - - - - Indicates that the value of the marked element could be null sometimes, - so the check for null is necessary before its usage - - - [CanBeNull] public object Test() { return null; } - public void UseTest() { - var p = Test(); - var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' - } - - - - - Indicates that the value of the marked element could never be null - - - [NotNull] public object Foo() { - return null; // Warning: Possible 'null' assignment - } - - - - - Indicates that the marked method builds string by format pattern and (optional) arguments. - Parameter, which contains format string, should be given in constructor. The format string - should be in -like form - - - [StringFormatMethod("message")] - public void ShowError(string message, params object[] args) { /* do something */ } - public void Foo() { - ShowError("Failed: {0}"); // Warning: Non-existing argument in format string - } - - - - - Specifies which parameter of an annotated method should be treated as format-string - - - - - Indicates that the function argument should be string literal and match one - of the parameters of the caller function. For example, ReSharper annotates - the parameter of - - - public void Foo(string param) { - if (param == null) - throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol - } - - - - - Indicates that the method is contained in a type that implements - interface - and this method is used to notify that some property value changed - - - The method should be non-static and conform to one of the supported signatures: - - NotifyChanged(string) - NotifyChanged(params string[]) - NotifyChanged{T}(Expression{Func{T}}) - NotifyChanged{T,U}(Expression{Func{T,U}}) - SetProperty{T}(ref T, T, string) - - - - public class Foo : INotifyPropertyChanged { - public event PropertyChangedEventHandler PropertyChanged; - [NotifyPropertyChangedInvocator] - protected virtual void NotifyChanged(string propertyName) { ... } - - private string _name; - public string Name { - get { return _name; } - set { _name = value; NotifyChanged("LastName"); /* Warning */ } - } - } - - Examples of generated notifications: - - NotifyChanged("Property") - NotifyChanged(() => Property) - NotifyChanged((VM x) => x.Property) - SetProperty(ref myField, value, "Property") - - - - - - Describes dependency between method input and output - - -

Function Definition Table syntax:

- - FDT ::= FDTRow [;FDTRow]* - FDTRow ::= Input => Output | Output <= Input - Input ::= ParameterName: Value [, Input]* - Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} - Value ::= true | false | null | notnull | canbenull - - If method has single input parameter, it's name could be omitted.
- Using halt (or void/nothing, which is the same) - for method output means that the methos doesn't return normally.
- canbenull annotation is only applicable for output parameters.
- You can use multiple [ContractAnnotation] for each FDT row, - or use single attribute with rows separated by semicolon.
-
- - - [ContractAnnotation("=> halt")] - public void TerminationMethod() - - - [ContractAnnotation("halt <= condition: false")] - public void Assert(bool condition, string text) // regular assertion method - - - [ContractAnnotation("s:null => true")] - public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() - - - // A method that returns null if the parameter is null, and not null if the parameter is not null - [ContractAnnotation("null => null; notnull => notnull")] - public object Transform(object data) - - - [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] - public bool TryParse(string s, out Person result) - - -
- - - Indicates that marked element should be localized or not - - - [LocalizationRequiredAttribute(true)] - public class Foo { - private string str = "my string"; // Warning: Localizable string - } - - - - - Indicates that the value of the marked type (or its derivatives) - cannot be compared using '==' or '!=' operators and Equals() - should be used instead. However, using '==' or '!=' for comparison - with null is always permitted. - - - [CannotApplyEqualityOperator] - class NoEquality { } - class UsesNoEquality { - public void Test() { - var ca1 = new NoEquality(); - var ca2 = new NoEquality(); - if (ca1 != null) { // OK - bool condition = ca1 == ca2; // Warning - } - } - } - - - - - When applied to a target attribute, specifies a requirement for any type marked - with the target attribute to implement or inherit specific type or types. - - - [BaseTypeRequired(typeof(IComponent)] // Specify requirement - public class ComponentAttribute : Attribute { } - [Component] // ComponentAttribute requires implementing IComponent interface - public class MyComponent : IComponent { } - - - - - Indicates that the marked symbol is used implicitly - (e.g. via reflection, in external library), so this symbol - will not be marked as unused (as well as by other usage inspections) - - - - - Should be used on attributes and causes ReSharper - to not mark symbols marked with such attributes as unused - (as well as by other usage inspections) - - - - Only entity marked with attribute considered used - - - Indicates implicit assignment to a member - - - - Indicates implicit instantiation of a type with fixed constructor signature. - That means any unused constructor parameters won't be reported as such. - - - - Indicates implicit instantiation of a type - - - - Specify what is considered used implicitly - when marked with - or - - - - Members of entity marked with attribute are considered used - - - Entity marked with attribute and all its members considered used - - - - This attribute is intended to mark publicly available API - which should not be removed and so is treated as used - - - - - Tells code analysis engine if the parameter is completely handled - when the invoked method is on stack. If the parameter is a delegate, - indicates that delegate is executed while the method is executed. - If the parameter is an enumerable, indicates that it is enumerated - while the method is executed - - - - - Indicates that a method does not make any observable state changes. - The same as System.Diagnostics.Contracts.PureAttribute - - - [Pure] private int Multiply(int x, int y) { return x * y; } - public void Foo() { - const int a = 2, b = 2; - Multiply(a, b); // Waring: Return value of pure method is not used - } - - - - - Indicates that a parameter is a path to a file or a folder - within a web project. Path can be relative or absolute, - starting from web root (~) - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - is an MVC action. If applied to a method, the MVC action name is calculated - implicitly from the context. Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC area. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that - the parameter is an MVC controller. If applied to a method, - the MVC controller name is calculated implicitly from the context. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Controller.View(String, String) - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Controller.View(String, Object) - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that - the parameter is an MVC partial view. If applied to a method, - the MVC partial view name is calculated implicitly from the context. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) - - - - - ASP.NET MVC attribute. Allows disabling all inspections - for MVC views within a class or a method. - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC template. - Use this attribute for custom wrappers similar to - System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - is an MVC view. If applied to a method, the MVC view name is calculated implicitly - from the context. Use this attribute for custom wrappers similar to - System.Web.Mvc.Controller.View(Object) - - - - - ASP.NET MVC attribute. When applied to a parameter of an attribute, - indicates that this parameter is an MVC action name - - - [ActionName("Foo")] - public ActionResult Login(string returnUrl) { - ViewBag.ReturnUrl = Url.Action("Foo"); // OK - return RedirectToAction("Bar"); // Error: Cannot resolve action - } - - - - - Razor attribute. Indicates that a parameter or a method is a Razor section. - Use this attribute for custom wrappers similar to - System.Web.WebPages.WebPageBase.RenderSection(String) - - - - - Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied. - To set the condition, mark one of the parameters with attribute - - - - - - Indicates the condition parameter of the assertion method. - The method itself should be marked by attribute. - The mandatory argument of the attribute is the assertion type. - - - - - - Initializes new instance of AssertionConditionAttribute - - Specifies condition type - - - - Gets condition type - - - - - Specifies assertion type. If the assertion method argument satisfies the condition, then the execution continues. - Otherwise, execution is assumed to be halted - - - - - Indicates that the marked parameter should be evaluated to true - - - - - Indicates that the marked parameter should be evaluated to false - - - - - Indicates that the marked parameter should be evaluated to null value - - - - - Indicates that the marked parameter should be evaluated to not null value - - - - - Indicates that the marked method unconditionally terminates control flow execution. - For example, it could unconditionally throw exception - - - - - Indicates that method is *pure* linq method, with postponed enumeration. - C# iterator methods (yield ...) are always LinqTunnel - - - - - Indicates that IEnumarable, passed as parameter, is not enumerated. - - - - - Indicates the property of some BindingBase-derived type, that is used - to bind some item of ItemsControl-derived type. This annotation will - enable the DataContext type resolve for XAML bindings for such properties. - - - Property should have the tree ancestor of the ItemsControl type or - marked with the attribute. - - - - - Indicates the type that has ItemsSource property and should be treated - as ItemsControl-derived type, to enable inner items DataContext type resolve. - - -
-
diff -r 1c462701ed75 -r b287bf39ff9e tools/JetSymbols/JetBrains.Platform.Symbols.Util.dll Binary file tools/JetSymbols/JetBrains.Platform.Symbols.Util.dll has changed