GameVsJam/3d Prototyp/Assets/Packages/Microsoft.VisualStudio.Util.../lib/netstandard2.0/Microsoft.VisualStudio.Util...

9499 lines
660 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.VisualStudio.Utilities</name>
</assembly>
<members>
<member name="T:System.Diagnostics.StartActivityExtension">
<summary>
Extensions to <see cref="T:System.Diagnostics.TraceSource" /> for activity tracing.
</summary>
</member>
<member name="M:System.Diagnostics.StartActivityExtension.StartActivity(System.Diagnostics.TraceSource,System.String,System.Object[])">
<summary>
Starts a new activity scope.
</summary>
<inheritdoc cref="M:System.Diagnostics.StartActivityExtension.TraceActivity.#ctor(System.Diagnostics.TraceSource,System.String,System.Object[])" />
<returns>A value to dispose to end the activity.</returns>
</member>
<member name="M:System.Diagnostics.StartActivityExtension.StartActivity(System.Diagnostics.TraceSource,System.String)">
<inheritdoc cref="M:System.Diagnostics.StartActivityExtension.StartActivity(System.Diagnostics.TraceSource,System.String,System.Object[])" />
</member>
<member name="T:System.Diagnostics.StartActivityExtension.TraceActivity">
<remarks>
In order for activity tracing to happen, the <see cref="T:System.Diagnostics.TraceSource" /> needs to
have <see cref="F:System.Diagnostics.SourceLevels.ActivityTracing" /> enabled.
</remarks>
</member>
<member name="M:System.Diagnostics.StartActivityExtension.TraceActivity.#ctor(System.Diagnostics.TraceSource,System.String)">
<summary>
Initializes a new instance of the <see cref="T:System.Diagnostics.StartActivityExtension.TraceActivity" /> struct
and applies the new activity to the <see cref="P:System.Diagnostics.Trace.CorrelationManager" />.
</summary>
<param name="traceSource">
The <see cref="T:System.Diagnostics.TraceSource" /> that will receive the <see cref="M:System.Diagnostics.TraceSource.TraceTransfer(System.Int32,System.String,System.Guid)" />, start and stop activity logs.
Activity tracing requires that the <see cref="P:System.Diagnostics.TraceSource.Switch" /> property of this object must have its <see cref="P:System.Diagnostics.TraceSwitch.Level" /> property set to include <see cref="F:System.Diagnostics.SourceLevels.ActivityTracing" />.
</param>
<param name="displayName">The activity name.</param>
</member>
<member name="M:System.Diagnostics.StartActivityExtension.TraceActivity.#ctor(System.Diagnostics.TraceSource,System.String,System.Object[])">
<inheritdoc cref="M:System.Diagnostics.StartActivityExtension.TraceActivity.#ctor(System.Diagnostics.TraceSource,System.String)" />
<param name="traceSource"><inheritdoc cref="M:System.Diagnostics.StartActivityExtension.TraceActivity.#ctor(System.Diagnostics.TraceSource,System.String)" path="/param[@name='traceSource']" /></param>
<param name="displayNameFormat">The format for the activity name.</param>
<param name="displayNameFormattingArgs">Formatting args for the <paramref name="displayNameFormat" /> string.</param>
</member>
<member name="P:System.Diagnostics.StartActivityExtension.TraceActivity.DisplayName">
<summary>
Gets the display name for this activity.
</summary>
</member>
<member name="P:System.Diagnostics.StartActivityExtension.TraceActivity.Id">
<summary>
Gets the activity ID which is set to <see cref="P:System.Diagnostics.CorrelationManager.ActivityId" /> when this activity is on the top of the activity stack.
</summary>
</member>
<member name="M:System.Diagnostics.StartActivityExtension.TraceActivity.Dispose">
<inheritdoc />
</member>
<member name="T:System.Runtime.Versioning.OSPlatformAttribute">
<summary>
Base type for all platform-specific API attributes.
</summary>
</member>
<member name="T:System.Runtime.Versioning.SupportedOSPlatformAttribute">
<summary>
Records the operating system (and minimum version) that supports an API. Multiple attributes can be
applied to indicate support on multiple operating systems.
</summary>
<remarks>
Callers can apply a <see cref="T:System.Runtime.Versioning.SupportedOSPlatformAttribute" />
or use guards to prevent calls to APIs on unsupported operating systems.
A given platform should only be specified once.
</remarks>
</member>
<member name="T:System.Runtime.CompilerServices.IsExternalInit">
<summary>
Reserved to be used by the compiler for tracking metadata.
This class should not be used by developers in source code.
</summary>
<remarks>
This definition is provided by the <i>IsExternalInit</i> NuGet package (https://www.nuget.org/packages/IsExternalInit).
Please see https://github.com/manuelroemer/IsExternalInit for more information.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.Accelerator">
<summary>
Utility methods for dealing with keyboard accelerators.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Accelerator.StripAccelerators(System.String)">
<summary>
<para>
Strips non-escaped accelerator markers ('&amp;') from the given string
using the same algorithm used by MsoPwchStripWtz (bugs and all), to wit:
</para>
<para>
Strip odd '&amp;' chars from the string. As per DrawText,
consecutive pairs of '&amp;'s will leave a real '&amp;' character, and all
odd '&amp;'s are removed even though only the last may be underlined.
</para>
<para>
If an '&amp;' occurs inside of parens then the parens and the character following
the '&amp;' are also stripped out. This is useful to remove accelarator strings of
format (&amp;N) which are appended to label in some FE language versions.
</para>
<para>
NOTE: We do not check for language to do this i.e. we assume that there isn't
any realistic label in other languages with (&amp;N) stuck in.
</para>
</summary>
<param name="input">String to strip.</param>
<returns><paramref name="input" /> stripped of accelerators.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Accelerator.StripAccelerators(System.String,System.Char)">
<summary>
<para>
Strips non-escaped accelerator markers from the given string
using the same algorithm used by MsoPwchStripWtz (bugs and all), to wit:
</para>
<para>
Strip odd chars that match <paramref name="accessSpecifier" /> from the string.
As per DrawText, consecutive pairs of characters matching <paramref name="accessSpecifier" />
will leave a single character matching <paramref name="accessSpecifier" />, and all odd
characters matching <paramref name="accessSpecifier" /> are removed even though only the last
may be underlined.
</para>
<para>
If a character matching <paramref name="accessSpecifier" /> occurs inside of parens then the parens
and the character following the <paramref name="accessSpecifier" /> matching character are also
stripped out. This is useful to remove accelarator strings of format (%accessSpecifier%N) which
are appended to label in some FE language versions.
</para>
<para>
NOTE: We do not check for language to do this i.e. we assume that there isn't
any realistic label in other languages with (%accessSpecifier%N) stuck in.
</para>
</summary>
<param name="input">String to strip.</param>
<param name="accessSpecifier">Specifies the character to treat as an access key specifier.</param>
<returns><paramref name="input" /> stripped of accelerators.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Accelerator.StripAccelerators(System.String,System.Object)">
<summary>
Returns the input string with the specified access key specifier stripped
</summary>
<param name="input">String to strip of access key specifiers</param>
<param name="accessKeySpecifier">Character to strip</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Accelerator.AccessKeySpecifierFromObject(System.Object)">
<summary>
Converts the input object into an access key specifier. Objects
of type char or single-character strings can be converted. If an
object of a different type is passed in, &amp; is returned.
</summary>
<param name="accessKeySpecifier">Object to convert</param>
<returns>Access key specifier from <paramref name="accessKeySpecifier" /></returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.SByte,System.Int32)">
<summary>
Rotates the bits of a signed byte value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.Byte,System.Int32)">
<summary>
Rotates the bits of an unsigned byte value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.SByte,System.Int32)">
<summary>
Rotates the bits of a signed byte value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.Byte,System.Int32)">
<summary>
Rotates the bits of an unsigned byte value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.Int16,System.Int32)">
<summary>
Rotates the bits of a signed short value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.UInt16,System.Int32)">
<summary>
Rotates the bits of an unsigned short value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.Int16,System.Int32)">
<summary>
Rotates the bits of a signed short value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.UInt16,System.Int32)">
<summary>
Rotates the bits of an unsigned short value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.Int32,System.Int32)">
<summary>
Rotates the bits of a signed int value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.UInt32,System.Int32)">
<summary>
Rotates the bits of an unsigned int value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.Int32,System.Int32)">
<summary>
Rotates the bits of a signed int value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.UInt32,System.Int32)">
<summary>
Rotates the bits of an unsigned int value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.Int64,System.Int32)">
<summary>
Rotates the bits of a signed long value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateLeft(System.UInt64,System.Int32)">
<summary>
Rotates the bits of an unsigned long value to the left
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.Int64,System.Int32)">
<summary>
Rotates the bits of a signed long value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.BitRotator.RotateRight(System.UInt64,System.Int32)">
<summary>
Rotates the bits of an unsigned long value to the right
</summary>
<param name="value">The value to rotate</param>
<param name="count">The number of positions to rotate</param>
<returns>The rotated value</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.CircularBuffer`1">
<inheritdoc />
<summary>
Circular buffer. Given a fixed size, fills to capacity and
then overwrites earliest item.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.CircularBuffer`1.ToArray">
<summary>
Copies the buffer contents to an array
</summary>
<returns>A new array with a copy of the buffer contents.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.CommandIdAttribute">
<summary>
A metadata attribute identifying a Visual Studio command by its GUID and ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.CommandIdAttribute.CommandSetGuid">
<summary>
A command set the command belongs to.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.CommandIdAttribute.CommandId">
<summary>
A command ID in the command set.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.CommandIdAttribute.#ctor(System.String,System.Int32)">
<summary>
Creates a new instance of the <see cref="T:Microsoft.VisualStudio.Utilities.CommandIdAttribute" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.CustomStringComparers.Logical">
<summary>
A string comparer that performs a case-sensitive logical string comparison.
A logical comparison treats consecutive digits in the string as numerical
content rather than text.
</summary>
<remarks>
See https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-strcmplogicalw.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.CustomStringComparers.LogicalIgnoreCase">
<summary>
A string comparer that performs a case-insensitive logical string comparison.
A logical comparison treats consecutive digits in the string as numerical
content rather than text.
</summary>
<remarks>
See https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-strcmplogicalw.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.DpiAwareness">
<summary>
A static helper class that contains APIs for performing various DPI scaling and context
switching operations.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwareness.IsPerMonitorAwarenessEnabled">
<summary>
Get whether or not Per-Monitor DPI awareness is enabled.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwareness.ProcessDpiAwarenessContext">
<summary>
Gets the process's DPI awareness context.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwareness.SystemDpiX">
<summary>
The x-coordinate (or horizontal) DPI of the system's primary display.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwareness.SystemDpiY">
<summary>
The y-coordinate (or vertical) DPI of the system's primary display.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwareness.SystemDpiXScale">
<summary>
The x-coordinate (or horizontal) DPI scale of the system's primary display.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwareness.SystemDpiYScale">
<summary>
The y-coordinate (or vertical) DPI scale of the system's primary display.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.DpiAwareness.IsValidDpi(System.Double)">
<summary>
Determines if <paramref name="dpi" /> is a valid DPI value.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.DpiAwareness.GetSystemDpi(System.Boolean)">
<summary>
Gets the System DPI from the DeviceCaps.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.DpiAwareness.Validate">
<summary>
Private version of the Validate class from MS.VS.Utilities, reproduced for use in
<see cref="T:Microsoft.VisualStudio.Utilities.DpiAwareness" /> so we don't have to pull the full Validate class into
Microsoft.VisualStudio.DpiAwareness.dll and risk introducing redundant types
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.DpiAwareness.EnterDpiScope(Microsoft.VisualStudio.Utilities.DpiAwarenessContext)">
<summary>
Enters a scope during which the current thread's DPI awareness context is set to
<paramref name="awareness" />.
</summary>
<param name="awareness">The new DPI awareness for the current thread.</param>
<returns>
An object that, when disposed, will reset the current thread's DPI awareness to the
value it had when the object was created.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.DpiAwareness.EnterDpiScope(System.IntPtr)">
<summary>
Enters a scope during which the current thread's DPI awareness context is set to
match the DPI awareness context of the given <paramref name="hwnd" />.
</summary>
<param name="hwnd">The window whose DPI awareness to match.</param>
<returns>
An object that, when disposed, will reset the current thread's DPI awareness to the
value it had when the object was created.
</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.DpiAwareness.DpiScope">
<summary>
A helper class used to change the current thread's DPI awareness context upon creation
and to restore the previous DPI awareness context upon disposal.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.DpiAwarenessContext">
<summary>
Identifies the DPI awareness context for a window.
</summary>
<remarks>
The values for this enum come from:
https://docs.microsoft.com/en-us/windows/desktop/hidpi/dpi-awareness-context
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.DpiAwarenessContext.Unaware">
<summary>
This window does not scale for DPI changes and is always assumed to have a scale factor of
100% (96 DPI). It will be automatically scaled by the system on any other DPI setting.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.DpiAwarenessContext.SystemAware">
<summary>
This window does not scale for DPI changes. It will query for the DPI once and use that
value for the lifetime of the process. If the DPI changes, the process will not adjust to
the new DPI value. It will be automatically scaled up or down by the system when the DPI
changes from the system value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.DpiAwarenessContext.PerMonitorAware">
<summary>
This window checks for the DPI when it is created and adjusts the scale factor whenever the
DPI changes. These processes are not automatically scaled by the system.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.DpiAwarenessContext.PerMonitorAwareV2">
<summary>
An advancement over the original Per-Monitor DPI awareness mode, which enables applications
to access new DPI-related scaling behaviors on a per top-level window basis. This mode should
almost always be preferred over PerMonitorAware.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.DpiAwarenessResources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.Error_DpiAwarenessThreadChanged">
<summary>
Looks up a localized string similar to The DPI awareness context must be restored on the same thread on which it was set..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.Error_DpiInvalid">
<summary>
Looks up a localized string similar to The DPI must be greater than zero..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.Error_DpiScaleInvalid">
<summary>
Looks up a localized string similar to The DPI scale must be greater than zero..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.Error_DpiScaleObjectNull">
<summary>
Looks up a localized string similar to The DpiScale object cannot be null..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.DpiAwarenessResources.Error_DpiWindowInvalid">
<summary>
Looks up a localized string similar to Cannot get the DPI of an invalid window..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.MonitorDpiAwarenessException.MonitorHandle">
<summary>
The HMONITOR for the monitor that was passed to the Win32 DPI-awareness API
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Win32DpiAwarenessException.DpiMethodResult">
<summary>
The HRESULT returned by the Win32 DPI-awareness API.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.WindowDpiAwarenessException.WindowHandle">
<summary>
The HWND for the window that was passed to the Win32 DPI-awareness API
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FileStreamStorage`1">
<summary>
A generic implementation of stream storage in the file system.
Stores files in a directory. The files it recognizes and accepts for creation can be
all files in the directory or only files with a specific extension.
</summary>
<typeparam name="TKey">The type of the stream key</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.StoragePath">
<summary>
Get or set the Directory that will contain the stored files
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.StorageFileExtension">
<summary>
Get or set the extension for contained files.
If set to AllExtensions, the storage will recognize all files in the storage directory.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.GetFullPath(`0)">
<summary>
Get a full file path from a key.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.IsStorageExtension(`0)">
<summary>
Indicates whether the file represented by the given key belongs to the storage.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.Open(`0,Microsoft.VisualStudio.Utilities.StreamAccess)">
<summary>
Open an existing Stream in storage.
</summary>
<param name="key">The key for the stream</param>
<param name="streamAccess">The desired access for the stream</param>
<returns>The stream for <paramref name="key" />, or null if it doesn't exist</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.Create(`0)">
<summary>
Open a new Stream for writing, adding it to storage.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.Delete(`0)">
<summary>
Delete from storage the Stream identified by the given key.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.Contains(`0)">
<summary>
Indicates whether storage contains a Stream with the given key.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.Item(`0)">
<summary>
Open an existing Stream in storage for reading.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.GetTimestamp(`0,Microsoft.VisualStudio.Utilities.TimestampKind)">
<summary>
Gets the timestamp for an existing Stream in the storage.
</summary>
<param name="key">Key to the existing stream.</param>
<param name="kind">The kind of timestamp to return</param>
<returns>The timestamp</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.SetTimestamp(`0,Microsoft.VisualStudio.Utilities.TimestampKind,System.DateTime)">
<summary>
Sets the timestamp for an existing Stream in the storage.
</summary>
<param name="key">Key to the existing stream.</param>
<param name="kind">The kind of timestamp to set</param>
<param name="timestamp">The timestamp to set on the stream</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.GetStreamSize(`0,System.Int64@,System.Int64@)">
<summary>
Gets the number of bytes actually used by an existing Stream in the storage.
</summary>
<param name="key">Key to the existing stream.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.GetEnumerator">
<summary>
Get an enumerator for keys in storage.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Get an enumerator for keys in storage.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.EnableRaisingEvents">
<summary>
Controls whether events are raised when changes occur in the storage
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.StreamCreated">
<summary>
Raised when a stream is created
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.StreamDeleted">
<summary>
Raised when a stream is deleted
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.StreamChanged">
<summary>
Raised when a stream is changed
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.Watcher">
<summary>
The FileSystemWatcher for the object (internal visibility for unit testing).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.OnStreamCreated(System.Object,System.IO.FileSystemEventArgs)">
<summary>
Handler for the FileSystemWatcher.Created event
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.OnStreamDeleted(System.Object,System.IO.FileSystemEventArgs)">
<summary>
Handler for the FileSystemWatcher.Deleted event
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.OnStreamChanged(System.Object,System.IO.FileSystemEventArgs)">
<summary>
Handler for the FileSystemWatcher.CHanged event
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.OnStreamRenamed(System.Object,System.IO.RenamedEventArgs)">
<summary>
Handler for the FileSystemWatcher.Renamed event
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.RaiseEvent(System.EventHandler{`0},System.String)">
<summary>
Raises a stream event if tnere are event sinks for it.
</summary>
<param name="streamEvent">The event to raise</param>
<param name="streamName">The name of the stream the event is for</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.FileStreamStorageKeyEnumerator">
<summary>
Enumerator for storage Keys
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.FileStreamStorageKeyEnumerator.#ctor(Microsoft.VisualStudio.Utilities.IStreamStorageKeyFactory{`0},System.String,System.String)">
<summary>
Find all appropriate files at construction
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FileStreamStorage`1.FileStreamStorageKeyEnumerator.Current">
<summary>
Get the current enumerated element
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ColorEntry">
<summary>
Defines a color value to be used in font/color category entries
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ColorEntry.Type">
<summary>
Gets or sets the color type
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ColorEntry.Value">
<summary>
Gets or sets the color value if applicable
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ColorEntry.IsColorValid">
<summary>
Gets if color value is valid
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FontColorCategory">
<summary>
Contains font and color information for an option category
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorCategory.CategoryGuid">
<summary>
Gets the category identifier
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorCategory.Font">
<summary>
Gets the font assigned to category if one is set
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorCategory.Colors">
<summary>
Gets list of colors defined in this category
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorCategory.#ctor(System.Guid)">
<summary>
Creates a new category with provided identifier
</summary>
<param name="categoryGuid">Category identifier</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorCategory.#ctor(System.IO.BinaryReader,System.Int32)">
<summary>
Creates a new category from a binary reader. The reader must be in correct position
</summary>
<param name="reader">reader instance to use</param>
<param name="version">schema version to use</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FontColorEntry">
<summary>
Defines a single font &amp; color entry in a theme category, defining the color and font style of the entry
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FontColorEntry.AvailableFontStyles">
<summary>
Flags to indicate availability of some options
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FontColorEntry.LineStyles">
<summary>
Line style options if entry supports line style
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.Name">
<summary>
Canonical name of the font/color entry
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.DescriptionResource">
<summary>
Pointer to localized description resource, can be null if not available
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.LocalizedNameResource">
<summary>
Pointer to localized name resource, can be null if not available
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.BackgroundColor">
<summary>
Background color of the font/color entry
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.ForegroundColor">
<summary>
Foreground color of the font/color entry
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.FontColorItemFlags">
<summary>
App specific font/color options
</summary>
<remarks>Under Visual Studio context, this represents _FCITEMFLAGS</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.LineStyle">
<summary>
Line style to use if this entry is used as a line color
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.MarkerStyle">
<summary>
Marker style to use if this entry is used as a marker color
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.AutoBackgroundColor">
<summary>
Automatic background color of the item
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.AutoForegroundColor">
<summary>
Automatic foreground color of the item
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.FontFlags">
<summary>
App specific options for font options
</summary>
<remarks>Under Visual Studio context, this represents FONTFLAGS and/or _FCFONTFLAGS</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorEntry.MergePriority">
<summary>
Merge priority when entry is shared between components
</summary>
<remarks>Uses FontColorEntry.DefaultMergePriority if not specified</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorEntry.#ctor(System.String)">
<summary>
Create a new font and color entry
</summary>
<param name="name">Canonical name of the entry</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FontColorTheme">
<summary>
Theme entry describing both font and color information.
</summary>
<remarks>
Theme data can be read or written from/to a versioned binary stream for serialization
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontColorTheme.Categories">
<summary>
Gets font and color categories defined in this theme
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorTheme.#ctor">
<summary>
Creates a new empty theme instance
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorTheme.#ctor(Microsoft.VisualStudio.Utilities.VersionedBinaryReader)">
<summary>
Creates a new font and color theme from a versioned reader
</summary>
<param name="reader">Versioned reader wrapping the data stream</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorTheme.GetCategory(System.Guid)">
<summary>
Gets the category for a given identifier
</summary>
<param name="categoryGuid">Category identifier</param>
<returns>a FontColorCategory instance if category is defined or null otherwise</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorTheme.AddCategory(Microsoft.VisualStudio.Utilities.FontColorCategory)">
<summary>
Adds a new category definition to this theme
</summary>
<param name="category">Cateogry to add, the category identifier must be unique in the theme</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.FontColorTheme.WriteToStream(Microsoft.VisualStudio.Utilities.VersionedBinaryWriter,System.Boolean)">
<summary>
Serializes font and color data to a versioned writer. By default latest version will be used
</summary>
<param name="writer">a VersionedBinaryWriter instance</param>
<param name="includeFontInformation">set to false if previous version should be used omitting font and extended color information</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.FontInformation">
<summary>
Contains information regarding font assigned to a category
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontInformation.Typeface">
<summary>
Gets or sets the font typeface
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontInformation.PointSize">
<summary>
Gets or sets the size of the font
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontInformation.CharSet">
<summary>
Gets or sets the character set of the font
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.FontInformation.IsValid">
<summary>
Gets if the font information is valid
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.GZip">
<summary>
Methods for compressing / decompressing a byte array using the GZip algorithm.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.GZip.Compress(System.Byte[])">
<summary>
Compress a byte array using the GZip algorithm.
</summary>
<param name="data">Array to compress.</param>
<returns>Compressed byte array.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.GZip.Decompress(System.Byte[],System.Int32)">
<summary>
Decompress a byte array that was compressed using the GZip algorithm.
</summary>
<param name="data">Array to decompress.</param>
<param name="bufferSize">Size of the intermediate buffer used to decompress data.</param>
<returns>Decompressed byte array.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.IOrderedStreamStorage`1">
<summary>
Interface to an ordered storage of Streams. Each stream is identified by a key,
and is located at a given position (represented as an index) in storage.
</summary>
<typeparam name="TKey">Type of the key that identifes a Stream in storage</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.IOrderedStreamStorage`1.Count">
<summary>
Get the Count of Streams in storage.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.IOrderedStreamStorage`1.Item(System.Int32)">
<summary>
Open an existing Stream in storage for reading, at the given index.
</summary>
<param name="index">Index of the existing stream.</param>
<returns>An open stream for reading. It is the responsibility of the caller to dispose the Stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IOrderedStreamStorage`1.CreateAt(System.Int32,`0)">
<summary>
Open a new Stream for writing at the given index, adding it to storage.
</summary>
<param name="index">Index of the new stream.</param>
<param name="key">Key of the new stream to be added to storage.</param>
<returns>A new Stream for writing. It is the responsibility of the caller to dispose the Stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IOrderedStreamStorage`1.DeleteAt(System.Int32)">
<summary>
Delete from storage the Stream at the given index.
</summary>
<param name="index">Index of the stream to delete from storage.</param>
<returns>True if deleting was successful, false otherwise.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IOrderedStreamStorage`1.Reset(System.Collections.Generic.IEnumerable{`0})">
<summary>
Reset storage with the given enumeration of keys.
New keys will be enumerated and compared against existing keys in storage. The new keys enumeration will
determine the position of existing keys in storage: that is, if they exist in both storage and newKeys they
will be moved to the position in the newKeys enumeration.
Existing keys in storage that do not exist in the newKeys enumeration will be removed from storage.
Keys that exist in the newKeys enumeration but do not exist in storage will be added to storage, and an empty
Stream will be created for them.
</summary>
<param name="newKeys"></param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.IStreamStorage`1">
<summary>
Interface to a storage of Streams. Each Stream in storage is identified
by a key.
</summary>
<typeparam name="TKey">Type of the key that identifies a Stream in storage.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.Open(`0,Microsoft.VisualStudio.Utilities.StreamAccess)">
<summary>
Open an existing Stream in storage for reading.
</summary>
<param name="key">Key to the existing stream.</param>
<param name="access">Requested access for the stream</param>
<returns>An open stream for reading. It is the responsibility of the caller to dispose the Stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.Create(`0)">
<summary>
Open a new Stream for writing, adding it to storage.
</summary>
<param name="key">Key of the new stream to be added to storage.</param>
<returns>A new Stream for writing. It is the responsibility of the caller to dispose the Stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.Delete(`0)">
<summary>
Delete from storage the Stream identified by the given key.
</summary>
<param name="key">Key of the stream to delete from storage.</param>
<returns>True if deleting was successful, false otherwise.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.Contains(`0)">
<summary>
Indicates whether storage contains a Stream with the given key.
</summary>
<param name="key">Key whose existence in storage will be verified.</param>
<returns>True if the Stream with the given key was found, false otherwise.</returns>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.IStreamStorage`1.Item(`0)">
<summary>
Open an existing Stream in storage for reading.
</summary>
<param name="key">Key to the existing stream.</param>
<returns>An open stream for reading. It is the responsibility of the caller to dispose the Stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.GetTimestamp(`0,Microsoft.VisualStudio.Utilities.TimestampKind)">
<summary>
Gets the timestamp for an existing Stream in the storage.
</summary>
<param name="key">Key to the existing stream.</param>
<param name="kind">The kind of timestamp to return</param>
<returns>The timestamp</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.SetTimestamp(`0,Microsoft.VisualStudio.Utilities.TimestampKind,System.DateTime)">
<summary>
Sets the timestamp for an existing Stream in the storage.
</summary>
<param name="key">Key to the existing stream.</param>
<param name="kind">The kind of timestamp to set</param>
<param name="timestamp">The timestamp to set on the stream</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.IStreamStorage`1.GetStreamSize(`0,System.Int64@,System.Int64@)">
<summary>
Gets the number of bytes used by an existing Stream in the storage.
</summary>
<param name="key">Key to the existing stream.</param>
<param name="actualSize">Number of used bytes.</param>
<param name="reservedSize">Number of reserved bytes.</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.IStreamStorageEvents`1">
<summary>
An interface that defines events to notify of changes to streams in an IStreamStorage.
If a class that implements can support change notifications, it should also implement
IStreamStorageEvents.
</summary>
<typeparam name="TKey">Type of the key that identifies a Stream in storage.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.IStreamStorageEvents`1.EnableRaisingEvents">
<summary>
Controls whether events are raised when changes occur in the storage
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Utilities.IStreamStorageEvents`1.StreamCreated">
<summary>
Raised when a stream is created
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Utilities.IStreamStorageEvents`1.StreamDeleted">
<summary>
Raised when a stream is deleted
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Utilities.IStreamStorageEvents`1.StreamChanged">
<summary>
Raised when a stream is changed
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.IStreamStorageKeyFactory`1">
<summary>
Interface for an IStreamStorage key object factory that takes as parameter a stream name.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.LogicalStringComparer">
<summary>
A string comparer that performs a logical string comparison. A logical comparison
treats consecutive digits in the string as numerical content rather than text.
</summary>
<remarks>
See https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-strcmplogicalw.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.#ctor(System.Boolean)">
<summary>
Initializes a <see cref="T:Microsoft.VisualStudio.Utilities.LogicalStringComparer" /> instance.
</summary>
<param name="ignoreCase">
Indicates whether the comparer will ignore case when comparing strings.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.Compare(System.String,System.String)">
<summary>
Performs a logical comparison between two strings.
</summary>
<param name="s1">The first string to compare.</param>
<param name="s2">The second string to compare.</param>
<returns>
A signed integer that indicates the relative values of x and y, as shown in the
following table:
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>Less than zero</term>
<description>
<paramref name="s1" /> precedes <paramref name="s2" /> in the sort order.
</description>
</item>
<item>
<term>Zero</term>
<description>
<paramref name="s1" /> occurs in the same position as <paramref name="s2" /> in the sort order.
</description>
</item>
<item>
<term>Greater than zero</term>
<description>
<paramref name="s1" /> follows <paramref name="s2" /> in the sort order.
</description>
</item>
</list>
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.Equals(System.String,System.String)">
<summary>
Determines whether two strings are logically equal.
</summary>
<param name="s1">The first string to compare.</param>
<param name="s2">The second string to compare.</param>
<returns><c>true</c> if the strings are logically equal, <c>false</c> if they are not.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.GetHashCode(System.String)">
<summary>
Gets the hash code for the specified string.
</summary>
<param name="s">A string</param>
<returns>
A 32-bit signed hash code calculated from the value of the <paramref name="s" /> parameter.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.Compare(System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32)">
<summary>
Performs a logical comparison between substrings of two strings.
</summary>
<param name="s1">The first string to use in the comparison.</param>
<param name="start1">The position of the substring within <paramref name="s1" />.</param>
<param name="length1">The length of the substring within <paramref name="s1" />.</param>
<param name="s2">The second string to use in the comparison.</param>
<param name="start2">The position of the substring within <paramref name="s2" />.</param>
<param name="length2">The length of the substring within <paramref name="s2" />.</param>
<returns>
A signed integer that indicates the relative values of x and y, as shown in the
following table:
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>Less than zero</term>
<description>
The substring in <paramref name="s1" /> precedes the substring in <paramref name="s2" /> in the sort order.
</description>
</item>
<item>
<term>Zero</term>
<description>
The substring in <paramref name="s1" /> occurs in the same position as the substring in <paramref name="s2" /> in the sort order.
</description>
</item>
<item>
<term>Greater than zero</term>
<description>
The substring in <paramref name="s1" /> follows the substring in <paramref name="s2" /> in the sort order.
</description>
</item>
</list>
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.Equals(System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32)">
<summary>
Determines whether two strings are logically equal.
</summary>
<param name="s1">The first string to use in the comparison.</param>
<param name="start1">The position of the substring within <paramref name="s1" />.</param>
<param name="length1">The length of the substring within <paramref name="s1" />.</param>
<param name="s2">The second string to use in the comparison.</param>
<param name="start2">The position of the substring within <paramref name="s2" />.</param>
<param name="length2">The length of the substring within <paramref name="s2" />.</param>
<returns><c>true</c> if the strings are logically equal, <c>false</c> if they are not.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.DistanceToFirstDigit(System.String,System.Int32,System.Int32)">
<summary>
Finds a digit character within a substring.
</summary>
<param name="s">The string to search.</param>
<param name="start">The position from which to begin seasrching.</param>
<param name="length">The maximum number of characters to search.</param>
<returns>The distance between <paramref name="start" /> and the first character found.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.DistanceToFirstNonDigit(System.String,System.Int32,System.Int32)">
<summary>
Finds a non-digit character within a substring.
</summary>
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.DistanceToFirstDigit(System.String,System.Int32,System.Int32)" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.DistanceToFirst(System.String,System.Int32,System.Int32,System.Predicate{System.Char})">
<summary>
Finds a character matching a predicate within a substring.
</summary>
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.DistanceToFirstDigit(System.String,System.Int32,System.Int32)" />
<param name="pred">The predicate used for character matching.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.LogicalStringComparer.ComputeNumericValue(System.String,System.Int32,System.Int32)">
<summary>
Computes the numeric value of a sequence of digit characters '0' - '9' within a string.
</summary>
<param name="s">The string</param>
<param name="start">The index of the first digit character.</param>
<param name="length">The number of characters in the sequence.</param>
<returns>The numeric value of the sequence.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.OnDisposeActionDisposable">
<summary>
A utility class that provides an implementation of IDisposable that executes a client-supplied
action upon disposal.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OnDisposeActionDisposable.#ctor(System.Action)">
<summary>
Initializes a new instance of an <see cref="T:System.IDisposable" /> object that invokes
<paramref name="onDispose" /> on disposal.
</summary>
<param name="onDispose">Action to run on dipose</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="onDispose" /> is null.</exception>
<remarks>Catching any exceptions thrown by <paramref name="onDispose" /> is left to the caller.</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.OneOrMany`1">
<summary>
A collection of <typeparamref name="T" /> that is optimized for minimal space in the case of a single element.
</summary>
<typeparam name="T">Elemental type which must be a reference type. Note: <c>null</c> may not be used as a value in the collection.</typeparam>
<remarks>
While this type has a <see cref="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.GetEnumerator" /> method, it does not implement <see cref="T:System.Collections.Generic.IEnumerable`1" />. This
is to eliminate any unintentional boxing that will happen if a value type is passed to or returned from a method
via its interface. The collection may still be enumerated in foreach statements (since the compiler uses pattern
matching for that), but not elsewhere such as LINQ expressions.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.OneOrMany`1._data">
<summary>
May be null, a single instance of T or a List{T}
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.#ctor(System.Int32)">
<summary>
Creates an instance of <see cref="T:Microsoft.VisualStudio.Utilities.OneOrMany`1" /> that will use the given capacity
to create its internal list.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.#ctor(System.Collections.Generic.List{`0})">
<summary>
Creates an instance of <see cref="T:Microsoft.VisualStudio.Utilities.OneOrMany`1" /> using the given list as the content.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.#ctor(`0)">
<summary>
Creates an instance of <see cref="T:Microsoft.VisualStudio.Utilities.OneOrMany`1" /> using the given object as the content.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.OneOrMany`1.Enumerator">
<summary>
Struct based enumerator. Just enough is implemented to satisfy the foreach pattern.
</summary>
<remarks>Note that the enumerator is not invalidated by updates to the underlying collection.</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.Enumerator.#ctor(System.Object)">
<summary>
Construct a new Enumerator over the given data.
</summary>
<param name="data">The collection.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.OneOrMany`1.Enumerator.Current">
<summary>
Access the current element.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.Enumerator.MoveNext">
<summary>
Advance the enumerator to the next position.
</summary>
<returns>False if the end of the collection has been reached.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.GetEnumerator">
<summary>
Get an efficient enumerator for the collection
</summary>
<returns>The enumerator</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.Add(`0)">
<summary>
Add a new value to the collection.
</summary>
<param name="value">The value to add.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.OneOrMany`1.Count">
<summary>
Returns the count of the number of elements in the collection.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.OneOrMany`1.Item(System.Int32)">
<summary>
Gets the element at the specified index in the collection.
</summary>
<param name="index">The zero-based index of the item requested.</param>
<returns>The item at position <paramref name="index" /> in the collection.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index" /> is negative or off the end of the collection.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.RemoveAt(System.Int32)">
<summary>
Remove the item at the specified index from the collection.
</summary>
<param name="index">The zero-based index of the item to be removed.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index" /> is negative or off the end of the collection.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OneOrMany`1.AsList">
<summary>
Returns the underlying list if this object contains &gt; 1 item, otherwise null.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.OSVersionHelper.IsSinceWinX(Microsoft.VisualStudio.Utilities.OSVersionHelper.WindowsVersions)">
<summary>
Name Release version (major.minor)
Win10 / Server 2016 10.0
Win8.1 / Server 2012 R2 6.3
Win8 / Server 2012 6.2
Win7 / Server 2008 R2 6.1
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.PooledSpan">
<summary>
This allows for the request of a pooled array that can be used in a using scope to reduce allocations in hot paths.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.PooledSpan`1">
<summary>
This allows for the request of a pooled array that can be used in a using scope to reduce allocations in hot paths.
</summary>
<typeparam name="T">The type of array to create.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.PooledSpan`1.#ctor(System.Int32,System.Boolean,System.Buffers.ArrayPool{`0})">
<summary>
Request a pooled array that is of the specified size.
</summary>
<param name="minimumSize">The required size of the array.</param>
<param name="clearWhenDisposed">If the elements in the array should be set to their default value once the pooled array is returned.</param>
<param name="pool">The pool to request the array from.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.PooledSpan`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Boolean,System.Buffers.ArrayPool{`0})">
<summary>
Request a pooled array that copies elements from the provided <see cref="T:System.Collections.Generic.IEnumerable`1" />
</summary>
<param name="original">The enumerable to copy elements from.</param>
<param name="clearWhenDisposed">If the elements in the array should be set to their default value once the pooled array is returned.</param>
<param name="pool">The pool to request the array from.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.PooledSpan`1.Pool">
<summary>
The pool to request arrays from.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.PooledSpan`1.Span">
<summary>
A <see cref="T:System.Span`1" /> representing a pooled instance.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.PooledSpan`1.GetEnumerator">
<summary>
The enumerator for the pooled instance.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.PooledSpan`1.Dispose">
<summary>
Returns the array to the pool.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper">
<summary>
Simple wrapper for ReaderWriterLockSlim that provides helpers for entering the
various modes of the lock that return disposable objects that will exit the
entered mode when disposed.
The wrapped lock can be accessed via the InnerLock property.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.InnerLock">
<summary>
The ReaderWriterLockSlim that is wrapped by this object.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.EnterReadLock">
<summary>
Tries to enter the lock in read mode.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.EnterUpgradeableReadLock">
<summary>
Tries to enter the lock in upgradeable mode.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.EnterWriteLock">
<summary>
Tries to enter the lock in write mode.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.TryEnterReadLock(System.Int32)">
<summary>
Tries to enter the lock in read mode, with an optional integer time-out.
</summary>
<param name="millisecondsTimeout">
The number of milliseconds to wait, or -1 (System.Threading.Timeout.Infinite)
to wait indefinitely.
</param>
<returns>
If the lock was successfully entered, the return value is an object that will
exit the lock when disposed. If the lock was not entered, null is returned.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.TryEnterReadLock(System.TimeSpan)">
<summary>
Tries to enter the lock in read mode, with an optional integer time-out.
</summary>
<param name="timeout">The interval to wait, or -1 milliseconds to wait indefinitely.</param>
<returns>
If the lock was successfully entered, the return value is an object that will
exit the lock when disposed. If the lock was not entered, null is returned.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.TryEnterUpgradeableReadLock(System.Int32)">
<summary>
Tries to enter the lock in upgradeable mode, with an optional integer time-out.
</summary>
<param name="millisecondsTimeout">
The number of milliseconds to wait, or -1 (System.Threading.Timeout.Infinite)
to wait indefinitely.
</param>
<returns>
If the lock was successfully entered, the return value is an object that will
exit the lock when disposed. If the lock was not entered, null is returned.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.TryEnterUpgradeableReadLock(System.TimeSpan)">
<summary>
Tries to enter the lock in upgradeable mode, with an optional integer time-out.
</summary>
<param name="timeout">The interval to wait, or -1 milliseconds to wait indefinitely.</param>
<returns>
If the lock was successfully entered, the return value is an object that will
exit the lock when disposed. If the lock was not entered, null is returned.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.TryEnterWriteLock(System.Int32)">
<summary>
Tries to enter the lock in write mode, with an optional integer time-out.
</summary>
<param name="millisecondsTimeout">
The number of milliseconds to wait, or -1 (System.Threading.Timeout.Infinite)
to wait indefinitely.
</param>
<returns>
If the lock was successfully entered, the return value is an object that will
exit the lock when disposed. If the lock was not entered, null is returned.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReaderWriterLockSlimWrapper.TryEnterWriteLock(System.TimeSpan)">
<summary>
Tries to enter the lock in write mode, with an optional integer time-out.
</summary>
<param name="timeout">The interval to wait, or -1 milliseconds to wait indefinitely.</param>
<returns>
If the lock was successfully entered, the return value is an object that will
exit the lock when disposed. If the lock was not entered, null is returned.
</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_CircularPropertyDependency">
<summary>
Looks up a localized string similar to There is a circular property dependency: {0}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_ConverterFunctionNotDefined">
<summary>
Looks up a localized string similar to {0}: {1} is not defined for this converter..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_DependsOnPropertyNotFound">
<summary>
Looks up a localized string similar to {0}.{1} depends on a property that couldn't be found: {2}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_DeserializationCallbackFailure">
<summary>
Looks up a localized string similar to The delegate didn't read the amount of data that was written.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_FailedToAcquireMutex">
<summary>
Looks up a localized string similar to Could not get access to the cross process mutex '{0}'.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_FailedToUpdateInternalState">
<summary>
Looks up a localized string similar to Internal version mismatch detected when updating component versions in current context..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_FlagNotRegistered">
<summary>
Looks up a localized string similar to Only feature flags that have been registered may be set.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InsufficientSourceParameters">
<summary>
Looks up a localized string similar to {0}.{1}: Converter requires {2} source parameters, {3} source parameters provided..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InsufficientTypeParameters">
<summary>
Looks up a localized string similar to {0}.{1}: Converter requires {2} type parameters, {3} type parameters provided..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidExtensionNoLeadingPeriod">
<summary>
Looks up a localized string similar to The first character of the extension must be a period ('.')..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidExtensionTooManyPeriods">
<summary>
Looks up a localized string similar to The extension can only contain a single period ('.')..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidExternalClientProcessPid">
<summary>
Looks up a localized string similar to {0} '{1}' was not provided in the service request or it did not contain a valid PID..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidMaxStorageSize">
<summary>
Looks up a localized string similar to Zero is an invalid value for the maximum storage size.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidMaxStreamCount">
<summary>
Looks up a localized string similar to Zero is an invalid value for the maximum stream count.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidMessageVersionHeader">
<summary>
Looks up a localized string similar to Message version header is invalid based on current state..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidNameFilter">
<summary>
Looks up a localized string similar to The name filter must be a valid LogId with only '?' and '*' as wild card characters..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidNullableTypeCode">
<summary>
Looks up a localized string similar to Invalid nullable type code {0}..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidPatternForFeatureName">
<summary>
Looks up a localized string similar to Must be of the form {0}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidRootPath">
<summary>
Looks up a localized string similar to This may not be the root path..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidStreamAccess">
<summary>
Looks up a localized string similar to Invalid stream access: {0}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_InvalidTimestampKind">
<summary>
Looks up a localized string similar to Invalid timestamp kind: {0}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_MaximumObjectIdentifierExceeded">
<summary>
Looks up a localized string similar to Maximum object identifier exceeded..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_MetadataMapShouldHaveSize">
<summary>
Looks up a localized string similar to Metadata map for {0} should have size {1}..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_NeedStreamCountOrStorageSize">
<summary>
Looks up a localized string similar to At least one of maxStreamCount or maxStorageSize must be greater than zero.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_NeedSuccessCode">
<summary>
Looks up a localized string similar to The parameter {0} indicates a failure..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_NoStreamStorageEvents">
<summary>
Looks up a localized string similar to Cannot monitor a storage that doesn't implement IStreamStorageEvents&lt;TKey&gt;.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_NullSerializerFieldCodeNullable">
<summary>
Looks up a localized string similar to The value of a SerializerFieldCode.Nullable field cannot be null, null values should be encoded with SerializerFieldCode.NullableType or Nil instead..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_PrivateToSharedNameTranslatorReturnedNullOrEmpty">
<summary>
Looks up a localized string similar to The private-to-shared name translator returned null or an empty string for shared setting {0}..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_TargetAtOffsetNotExtendingType">
<summary>
Looks up a localized string similar to {1}.{2}: unexpected target type at offset {5}:{0}Expected target type: {3}{0}Actual target type: {4}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_TargetNotExtendingType">
<summary>
Looks up a localized string similar to {1}.{2}: unexpected target type:{0}Expected target type: {3}{0}Actual target type: {4}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_ThicknessConverter_InvalidTargetType">
<summary>
Looks up a localized string similar to {0} only supports a target type of {1}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_ThicknessConverter_InvalidValues">
<summary>
Looks up a localized string similar to {0} requires 1, 2, or 4 input values.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_UnexpectedStreamVersion">
<summary>
Looks up a localized string similar to Unexpected stream version: expected version={0}, actual version={1}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_ValueAtOffsetNotOfType">
<summary>
Looks up a localized string similar to {1}.{2}: unexpected value type at offset {5}:{0}Expected type: {3}{0}Actual type: {4}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.Error_ValueNotOfType">
<summary>
Looks up a localized string similar to {1}.{2}: unexpected value type:{0}Expected type: {3}{0}Actual type: {4}.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.JsonSerializationFailed">
<summary>
Looks up a localized string similar to Failed to serialize object as JSON..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.MisplacedSettingPathWildcard">
<summary>
Looks up a localized string similar to Wildcards are allowed only at the end of property names..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.NormalizeError_InvalidPathChar">
<summary>
Looks up a localized string similar to The path contains an invalid character..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ServiceUnavailable_Format">
<summary>
Looks up a localized string similar to The {0} service is unavailable..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_BitmapNotBgra32">
<summary>
Looks up a localized string similar to The supplied bitmap bits do not represent a complete BGRA32 bitmap..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_GuidEmpty">
<summary>
Looks up a localized string similar to The Guid is empty..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_InvalidOperation">
<summary>
Looks up a localized string similar to The operation cannot be executed at this time. The object {0} is not null..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_InvalidValue_Format">
<summary>
Looks up a localized string similar to The argument value {0} is not the expected value {1}..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_OutOfRange_Format">
<summary>
Looks up a localized string similar to The value {0} is outside the acceptable range of [{1},{2}]..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_PathNotNormalized_Format">
<summary>
Looks up a localized string similar to The path \"{0}\" is not normalized..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_StringEmpty">
<summary>
Looks up a localized string similar to The string is empty..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_StringWhiteSpace">
<summary>
Looks up a localized string similar to The string cannot be null or contain only whitespace characters..
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Resources.ValidateError_UnexpectedValue_Format">
<summary>
Looks up a localized string similar to The value {0} is unexpected for argument {1}..
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableArray`1">
<summary>
Stores a reusable array. The size of the array returned can either
be exactly a requested size or a buffer of at least a requested size
depending on the value of the requiresExactSize parameter.
</summary>
<typeparam name="T">The type of array to construct.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableArray`1.#ctor(System.Boolean,System.Int32)">
<summary>
Creates a new reusable array.
</summary>
<param name="requiresExactSize">True if the array returned
from Acquire must have an exactly-matching length, false if
the array returned from Acquire can have any equal or longer
length than the length requested.</param>
<param name="maximumCacheArrayLength">The maximum length of array
that should be cached when returning arrays to the resource store.</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableMemoryStream">
<summary>
Stores a reusable MemoryStream. The MemoryStream will only be stored
for reuse if its Capacity does not exceed the maximumStreamCapacity used
when constructing the ReusableMemoryStream.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableMemoryStream.#ctor(System.Int32)">
<summary>
Constructs a new ReusableMemoryStream.
</summary>
<param name="maximumStreamCapacity">The maximum capacity for the MemoryStream
to be stored for reuse. Streams exceeding the capacity will be not be stored
for reuse.</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableResourceHolder`1">
<summary>
Holds a reference to a shared resource allocated by a ReusableResourceStoreBase, and releases
the resource back to the ReusableResourceStoreBase upon dispose.
</summary>
<typeparam name="TResource">The type of resource stored in the holder.</typeparam>
<remarks>This MUST be a value type for ReusableResourceStore to be efficient.
Returning a reference type would require an allocation on each call to
Acquire, which would defeat the memory allocation savings of using
ReusableResourceStore and ReusableResourceHolder in the first place.</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceHolder`1.Dispose">
<summary>
Disposes of the resource, releasing it back to the ReusableResourceStore it came from.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ReusableResourceHolder`1.Resource">
<summary>
Gets the resource stored by this resource holder. After this object is disposed,
returns null.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableResourceStore`1">
<summary>
Stores a resource that requires no constructor parameters for instantiation. See ReusableResourceStoreBase
for more information.
</summary>
<typeparam name="TResource">The type of resource to store.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStore`1.Acquire">
<summary>
Acquires a cached instance of the resource, or allocates a new instance if none
are currently available.
</summary>
<returns>A disposable object that should be disposed when usage of the resource is complete.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStore`1.Allocate">
<summary>
Allocates a new instance of the resource when one is not available in the cache.
</summary>
<returns>A new instance of the resource.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStore`1.CanReuse(`0)">
<summary>
Validates that an already-cached resource value is safe to reuse when Acquire is called.
</summary>
<param name="value">The cached value that is about to be reused during Acquire.</param>
<returns>True if the object is in a reusable state, otherwise false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableResourceStore`2">
<summary>
Stores a resource that requires a single constructor parameter for instantiation. See ReusableResourceStoreBase
for more information.
</summary>
<typeparam name="TResource">The type of resource to store.</typeparam>
<typeparam name="TConstructorParameter">The type of the first constructor parameter for the resource.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStore`2.Acquire(`1)">
<summary>
Acquires a cached instance of the resource, or allocates a new instance if none
are currently available.
</summary>
<param name="constructorParameter">The parameter to pass when constructing the object.</param>
<returns>A disposable object that should be disposed when usage of the resource is complete.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStore`2.Allocate(`1)">
<summary>
Allocates a new instance of the resource when one is not available in the cache.
</summary>
<param name="constructorParameter">The parameter to pass when constructing the object.</param>
<returns>A new instance of the resource.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStore`2.CanReuse(`0,`1)">
<summary>
Validates that an already-cached resource value is safe to reuse when Acquire is called.
</summary>
<param name="value">The cached value that is about to be reused during Acquire.</param>
<param name="parameter">The parameter that would be used to construct a new value.</param>
<returns>True if the object is in a reusable state, otherwise false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableResourceStoreBase`1">
<summary>
Provides a base class for storing a frequently-used object that can be reused
instead of reallocated, such as StringBuilders or small arrays.
</summary>
<typeparam name="TResource">The type of object stored by this store.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStoreBase`1.AcquireCore">
<summary>
Gets access to the resource stored by this object, and removes the resource
so that subsequent callers cannot be handed the same resource at the same time.
</summary>
<returns>A currently-stored instance of the resource, or null if there are no
instances currently available in the store.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStoreBase`1.ReleaseCore(`0)">
<summary>
Releases a value previously acquired with AcquireCore, cleaning up the value
if possible and returning it to the store. If cleanup of the object is not possible,
it is thrown away.
</summary>
<param name="value">The value previously acquired by AcquireCore.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ReusableResourceStoreBase`1.Cleanup(`0)">
<summary>
Immediately before releasing an object, performs cleanup on that object. This might
be necessary to clean up state stored in the object to prevent leaking memory.
</summary>
<param name="value">The value to clean up.</param>
<returns>True if the object was able to be cleaned up and is ready for reuse, otherwise false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.ReusableStringBuilder">
<summary>
Represents a reusable StringBuilder. The StringBuilder is cleared after each cleanup
to remove content from the previous usage.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadGuid(System.IO.BinaryReader)">
<summary>
Reads a Guid struct from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Guid)">
<summary>
Writes a Guid struct to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="guid">The Guid to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadUTF8String(System.IO.BinaryReader)">
<summary>
Reads a string with UTF8 encoding that was written via WriteUTF8String method from a reader
</summary>
<param name="reader">The reader to read from</param>
<returns>the string read from stream</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.WriteUTF8String(System.IO.BinaryWriter,System.String)">
<summary>
Writes a string with UTF8 encoding and prefixed with length.
</summary>
<param name="writer">Writer to write to</param>
<param name="value">String to be written</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableBoolean(System.IO.BinaryReader)">
<summary>
Reads a bool? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Boolean})">
<summary>
Writes a bool? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableChar(System.IO.BinaryReader)">
<summary>
Reads a char? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Char})">
<summary>
Writes a char? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableDouble(System.IO.BinaryReader)">
<summary>
Reads a double? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Double})">
<summary>
Writes a double? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableInt16(System.IO.BinaryReader)">
<summary>
Reads a short? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Int16})">
<summary>
Writes a short? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableInt32(System.IO.BinaryReader)">
<summary>
Reads a int? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Int32})">
<summary>
Writes a int? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableInt64(System.IO.BinaryReader)">
<summary>
Reads a long? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Int64})">
<summary>
Writes a long? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableSingle(System.IO.BinaryReader)">
<summary>
Reads a float? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.Single})">
<summary>
Writes a float? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableUInt16(System.IO.BinaryReader)">
<summary>
Reads a ushort? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.UInt16})">
<summary>
Writes a ushort? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableUInt32(System.IO.BinaryReader)">
<summary>
Reads a uint? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.UInt32})">
<summary>
Writes a uint? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.ReadNullableUInt64(System.IO.BinaryReader)">
<summary>
Reads a ulong? from <paramref name="reader" />
</summary>
<param name="reader">The reader to read from</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SerializationExtensions.Write(System.IO.BinaryWriter,System.Nullable{System.UInt64})">
<summary>
Writes a ulong? to <paramref name="writer" />
</summary>
<param name="writer">The writer to write to</param>
<param name="value">The value to write</param>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.ServiceBroker.BrokeredServiceContainerWithTelemetry.monikersWithPostedEvents">
<summary>
A dictionary mapping service monikers to a union bitmask of <see cref="T:Microsoft.VisualStudio.Utilities.ServiceBroker.GlobalBrokeredServiceContainer.RequestResult" /> for which the monikers have had posted telemetry events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.SimpleCache`1">
<summary>
A simple cache of <typeparamref name="T" /> instances. If adding an item to the cache would
cause it exceed its maximum size, the least recently accessed item is removed from the cache.
</summary>
<typeparam name="T">The type of value stored in the cache</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.#ctor(System.Collections.Generic.IEqualityComparer{`0},System.Int32)">
<summary>
Initializes the <see cref="T:Microsoft.VisualStudio.Utilities.SimpleCache`1" /> instance
</summary>
<param name="comparer">
The IEqualityComparer{T} implementation to use when comparing values in the cache,
or null to use the default EqualityComparer{T} implementation for the cache type.
</param>
<param name="maxSize">
The maximum size of the cache. If adding an item to the cache would cause the
cache size to exceed this value, the least recently accessed item in the cache
is removed.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.TryGetValue(`0,`0@)">
<summary>
Attempts to fetch a value from the cache.
</summary>
<param name="value">The value to fetch</param>
<param name="cachedValue">
The cached value, that the equality comparer determined was equal to <paramref name="value" />
</param>
<returns>
True if an item equal to <paramref name="value" /> was returned from the cache, otherwise false.
</returns>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.SimpleCache`1.Count">
<summary>
The number of items in the cache
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.SimpleCache`1.IsReadOnly">
<summary>
Indicates whether the cache is read-only
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.Add(`0)">
<summary>
Adds an item to the cache. If adding the item would cause the cache to exceed its
maximum size, the least recently accessed item is removed from the cache.
</summary>
<param name="value">The value to add</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.Clear">
<summary>
Clears the cache
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.Contains(`0)">
<summary>
Determines whether the cache contains <paramref name="value" />
</summary>
<param name="value">The value to search for</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the cache to an array
</summary>
<param name="array">The array to write to</param>
<param name="index">The zero-based index in <paramref name="array" /> at which copying begins</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.Remove(`0)">
<summary>
Removes an item from the cache
</summary>
<param name="value">The value to remove</param>
<returns>True if <paramref name="value" />, or false if <paramref name="value" /> was not in the cache</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleCache`1.Entry.Touch">
<summary>
Sets the last access time for this entry to the current time
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.SimpleDynamicMemberAccessor">
<summary>
Allows limited dynamically typed access to instance properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.SimpleDynamicMemberAccessor.TryGetProperty``1(System.Object,System.String,``0@)">
<summary>
Attempts to get a value of a property of given object <paramref name="instance" />.
</summary>
<typeparam name="T">Return type of the <paramref name="propertyName" /> property.</typeparam>
<param name="instance">Object instance whose property is being gotten.</param>
<param name="propertyName">The case sensitive name of the property.</param>
<param name="propertyValue">Return value of the property.</param>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.StreamAccess.Read">
<summary>
Specifies read access to the stream
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.StreamAccess.Write">
<summary>
Specifies write access to the stream
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.StreamAccess.ReadWrite">
<summary>
Specifies read/write access to the stream
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.StreamAccessException">
<summary>
Represents an error that occured when trying to access a Stream in storage.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.StreamException">
<summary>
Represents errors that occur when accessing Stream storage.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.StreamNotFoundException">
<summary>
Represents the error that occurs when a Stream is not found in storage.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1">
<summary>
Monitors the size of an IStreamStorage via its IStreamStorageEvents interface.
If the number of streams or the collective size of streams in the storage
exceed given target thresholds, streams are deleted from the storage until
the number/size of streams falls below the target thresholds.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.#ctor(Microsoft.VisualStudio.Utilities.IStreamStorage{`0},System.Int32,System.Int64,System.Boolean,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Creates a StreamStorageMonitor
</summary>
<param name="storage">
The stream storage object to monitor. The storage object must implement
IStreamStorageEvents&lt;<typeparamref name="TKey" />&gt;.
</param>
<param name="maxStreamCount">
The maximum number of streams permitted in the storage. If the number of
streams exceeds <paramref name="maxStreamCount" />, streams are deleted in
least-recently-accessed order. If <paramref name="maxStreamCount" /> is -1,
there is no limit on the number of streams.
</param>
<param name="maxStorageSize">
The maximum cumulative size of the streams permitted in the storage. If
cumulative size of the streams exceeds <paramref name="maxStorageSize" />, streams
are deleted in least-recently-accessed order. If <paramref name="maxStorageSize" />
is -1, there is no limit on the cumulative size of the streams.
</param>
<param name="enable">
Indicates whether the monitor will be initially enabled.
</param>
<param name="keyComparer">
The equality comparer used to compare the keys in the storage. If this value
is null, the default equality comparer for <typeparamref name="TKey" /> is used.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.ValidateLimits(System.Int32,System.Int64)">
<summary>
Validates the maxStreamCount and maxStorageSize parameters for the constructor.
Public visibility so VS can pre-validate the parameters before sending them off
to the VsHub service module, where invalid arguments will be much less visible.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.DisposeManagedResources">
<summary>
Disposes managed resources for this object
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.EnableMonitoring">
<summary>
Indicates whether the monitor is enabled
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.StreamCount">
<summary>
The number of streams in the storage
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.StorageSize">
<summary>
The cumulative size of all the streams in the storage
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.WatchingStreamCount">
<summary>
Indicates whether the object is monitoring the number of streams in the storage
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.WatchingStorageSize">
<summary>
Indicates whether the object is monitoring the cumulative size of the streams in the storage
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.StorageNeedsScrubbing">
<summary>
Indicates whether the storage's contents exceed either the stream count or size
limitations imposed at startup.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.LastScrubTask">
<summary>
The most recently scheduled task that will scrub the storage.
Internal visibility for unit testing.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.InitializeStreamTable">
<summary>
Initializes the table of streams
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.AddStreamInfo(`0)">
<summary>
Adds a StreamInfo for the stream identified by <paramref name="key" /> to the stream table
</summary>
<param name="key">The key for the stream to add</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.RemoveStreamInfo(`0)">
<summary>
Removes a StreamInfo for the stream identified by <paramref name="key" /> from the stream table
</summary>
<param name="key">The key for the stream to remove</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.UpdateStreamInfo(`0)">
<summary>
Updates a StreamInfo for the stream identified by <paramref name="key" />
</summary>
<param name="key">The key for the stream to update</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.ScheduleScrubStorage">
<summary>
Schedules a task to scrub the storage
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.ScrubStorage">
<summary>
Scrubs the streams in the storage if the storage exceeds the monitor's constraints
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.GetStreamInfo(`0)">
<summary>
Returns the StreamInfo for a stream
</summary>
<param name="key">The key for the stream whose info is requested</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.GetStreamSize(`0)">
<summary>
Returns the size of the stream in the storage
</summary>
<param name="key">The key for the stream whose size is requested</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.HookEvents">
<summary>
Hooks interesting events on the storage events interface
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.UnhookEvents">
<summary>
Unhooks interesting events on the storage events interface
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.OnStreamCreated(System.Object,`0)">
<summary>
Handles the StreamCreated event from the storage
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.OnStreamDeleted(System.Object,`0)">
<summary>
Handles the StreamCreated event from the storage
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.OnStreamChanged(System.Object,`0)">
<summary>
Handles the StreamCreated event from the storage
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.StreamInfo.Size">
<summary>
The size of the stream
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.StreamStorageMonitor`1.StreamInfo.LastAccessTime">
<summary>
The time the stream was lasted accessed
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.StringExtensions.ExpandEnvironmentVariables(System.String)">
<summary>
Replaces %-delimited spans with the matching environment variable values, returning the result.
If no matching environment variable is found, the span is replaced by an empty string.
"%%" is replaced by a single %.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.TimestampKind.Creation">
<summary>
Describes a timestamp the represents the creation time of an object
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.TimestampKind.LastAccess">
<summary>
Describes a timestamp the represents the last access time of an object
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.TimestampKind.LastWrite">
<summary>
Describes a timestamp the represents the last write time of an object
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.TracedEvent">
<summary>
Event wrapper that keeps the history of whether the event has fired before.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.TracedEvent.HasFired">
<summary>
Gets a value indicating whether the event has fired before.
Use <see cref="M:Microsoft.VisualStudio.Utilities.TracedEvent.AttachIfNotFired(System.Action,System.Boolean)" /> instead of using this property if you want to attach an event handler only if the event has not fired before.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.TracedEvent.Fire">
<summary>
Fire the event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.TracedEvent.Attach(System.Action)">
<summary>
Attach the event handler.
</summary>
<param name="handler">The event handler to attach, not null.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.TracedEvent.Remove(System.Action)">
<summary>
Remove the event handler.
</summary>
<param name="handler">The event handler to remove, not null.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.TracedEvent.AttachIfNotFired(System.Action,System.Boolean)">
<summary>
Attach the event handler only if the event has not fired before.
You may specify <paramref name="invokeIfFired" /> = true if you want to invoke the <paramref name="handler" /> right away
if the event has fired before.
</summary>
<param name="handler">The event handler to attach, not null.</param>
<param name="invokeIfFired">A value indicating whether to invoke the <paramref name="handler" /> if the event has fired before.</param>
<returns>True if the handler is attached; Otherwise, false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.TraceSourceExtensionMethods">
<summary>
Extension methods for making it easier to use TraceSource instances.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ITracer.Source">
<summary>
The TraceSource for the tracer
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ITracer.Level">
<summary>
The verbosity level of the tracer
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.ITracer.IndentLevel">
<summary>
The indentation level of the tracer
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.Trace(System.Diagnostics.TraceEventType,System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.ITracer.Trace(System.Diagnostics.TraceEventType,System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.Trace(System.Diagnostics.TraceEventType,System.String,System.Object[])">
<summary>
Traces an event.
</summary>
<param name="eventType">Type type of the event being traced</param>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceError(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.ITracer.TraceError(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceError(System.String,System.Object[])">
<summary>
Traces an Error event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceWarning(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.ITracer.TraceWarning(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceWarning(System.String,System.Object[])">
<summary>
Traces a warning event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceInformation(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.ITracer.TraceInformation(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceInformation(System.String,System.Object[])">
<summary>
Traces an information event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceVerbose(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.ITracer.TraceVerbose(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceVerbose(System.String,System.Object[])">
<summary>
Traces a verbose event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.TraceException(System.Exception,System.Diagnostics.TraceEventType)">
<summary>
Traces an exception.
</summary>
<param name="ex">The exception to trace</param>
<param name="eventType">The type of event to trace</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.ShouldTrace(System.Diagnostics.TraceEventType)">
<summary>
Determines if trace listeners should be called, based on the trace event type.
</summary>
<param name="eventType">The type of event to test</param>
<returns>True if the trace listeners should be called; otherwise, false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.ITracer.Indent(System.Int32)">
<summary>
Increases the indent level by <paramref name="count" />
</summary>
<param name="count">The number of levels by which <see cref="P:Microsoft.VisualStudio.Utilities.ITracer.IndentLevel" /> is increased</param>
<returns>
An object whose lifetime controls the indentation increase. When it is
disposed, <see cref="P:Microsoft.VisualStudio.Utilities.ITracer.IndentLevel" /> is decreased by <paramref name="count" />.
</returns>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Tracer.Source">
<summary>
The TraceSource for the tracer
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Tracer.Level">
<summary>
The verbosity level of the tracer
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.Tracer.IndentLevel">
<summary>
The indentation level of the tracer
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.Trace(System.Diagnostics.TraceEventType,System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.Tracer.Trace(System.Diagnostics.TraceEventType,System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.Trace(System.Diagnostics.TraceEventType,System.String,System.Object[])">
<summary>
Traces an event.
</summary>
<param name="eventType">Type type of the event being traced</param>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceError(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.Tracer.TraceError(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceError(System.String,System.Object[])">
<summary>
Traces an Error event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceWarning(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.Tracer.TraceWarning(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceWarning(System.String,System.Object[])">
<summary>
Traces a warning event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceInformation(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.Tracer.TraceInformation(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceInformation(System.String,System.Object[])">
<summary>
Traces an information event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceVerbose(System.String)">
<inheritdoc cref="M:Microsoft.VisualStudio.Utilities.Tracer.TraceVerbose(System.String,System.Object[])" />
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceVerbose(System.String,System.Object[])">
<summary>
Traces a verbose event.
</summary>
<param name="message">The message to display</param>
<param name="args">The arguments to format into the message</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.TraceException(System.Exception,System.Diagnostics.TraceEventType)">
<summary>
Traces an exception.
</summary>
<param name="ex">The exception to trace</param>
<param name="eventType">The type of event to trace</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.ShouldTrace(System.Diagnostics.TraceEventType)">
<summary>
Determines if trace listeners should be called, based on the trace event type.
</summary>
<param name="eventType">The type of event to test</param>
<returns>True if the trace listeners should be called; otherwise, false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.Indent(System.Int32)">
<summary>
Increases the indent level by <paramref name="count" />
</summary>
<param name="count">The number of levels by which <see cref="P:Microsoft.VisualStudio.Utilities.Tracer.IndentLevel" /> is increased</param>
<returns>
An object whose lifetime controls the indentation increase. When it is
disposed, <see cref="P:Microsoft.VisualStudio.Utilities.Tracer.IndentLevel" /> is decreased by <paramref name="count" />.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.FormatMessage(System.Diagnostics.TraceEventType,System.String,System.Object[])">
<summary>
Formats the trace message string for alignment and indentaion before output
</summary>
<param name="eventType">The event type being traced</param>
<param name="format">The format string</param>
<param name="args">The arguments to substitute into the format string</param>
<returns>The formatted string</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.BuildExceptionTraceMessage(System.Exception)">
<summary>
Builds a string for the exception chain rooted at <paramref name="ex" />
</summary>
<param name="ex">The root exception</param>
<returns>The string representation of the exception chain</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.GetStringBuilder">
<summary>
Returns a StringBuilder for the Tracer to use.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.Tracer.GetAlignmentString(System.Diagnostics.TraceEventType)">
<summary>
Returns the string needed to ensure that output from the tracer is nicely aligned, like so:
ImageLibrary Error: 0 : Error trace
ImageLibrary Warning: 0 : Warning trace
ImageLibrary Information: 0 : Information trace
ImageLibrary Verbose: 0 : Verbose trace
</summary>
<param name="eventType">The event type being traced</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent">
<summary>
The content of an array setting.
</summary>
<param name="Items">
Array item property values. Null means "revert to default". If non-null, this is a list containing one
element per item in the array. Each element is a dictionary with array item property monikers as keys
and array item property values as values. The dictionary may be incomplete, missing some properties that
are registered for items of this array; those properties will retain their default values for that item.
</param>
<param name="UserSelectedDefaultItemIndex">
The zero-based index of the user-selected "default item" in the array. Ignored if this array
doesn't support a user-selectable default item. -1 means "revert to default".
</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent.#ctor(System.Collections.Generic.IReadOnlyList{System.Collections.Generic.IReadOnlyDictionary{System.String,System.Object}},System.Int32)">
<summary>
The content of an array setting.
</summary>
<param name="Items">
Array item property values. Null means "revert to default". If non-null, this is a list containing one
element per item in the array. Each element is a dictionary with array item property monikers as keys
and array item property values as values. The dictionary may be incomplete, missing some properties that
are registered for items of this array; those properties will retain their default values for that item.
</param>
<param name="UserSelectedDefaultItemIndex">
The zero-based index of the user-selected "default item" in the array. Ignored if this array
doesn't support a user-selectable default item. -1 means "revert to default".
</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent.Items">
<summary>
Array item property values. Null means "revert to default". If non-null, this is a list containing one
element per item in the array. Each element is a dictionary with array item property monikers as keys
and array item property values as values. The dictionary may be incomplete, missing some properties that
are registered for items of this array; those properties will retain their default values for that item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent.UserSelectedDefaultItemIndex">
<summary>
The zero-based index of the user-selected "default item" in the array. Ignored if this array
doesn't support a user-selectable default item. -1 means "revert to default".
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.IArraySettingMigrator">
<summary>
Migration support for array settings in Unified Settings. This is invoked if array settings include a migrationCallback
property indicating the package and/or service ID to invoke. It should be implemented by the setting owner.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.IArraySettingMigrator.MigrateToUnifiedSettingsAsync(System.String,System.Threading.CancellationToken)">
<summary>
Reads a persisted array setting from its legacy location and returns it in a form Unified Settings can
understand.
</summary>
<param name="arraySettingMoniker">The registered moniker of the array setting</param>
<returns>The content of the array read from the legacy location</returns>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.IArraySettingMigrator.SupportsIncompleteItems(System.String)">
<summary>
Returns a Boolean value indicating whether this migrator's <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.IArraySettingMigrator.MigrateFromUnifiedSettingsAsync(System.String,Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent,System.Threading.CancellationToken)" />
method supports "incomplete" items: items that are missing some properties (because those properties
haven't been customized from the default). If this returns false, the caller will add default values
in place of missing properties before calling that method.
</summary>
<param name="arraySettingMoniker">The registered moniker of the array setting</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.IArraySettingMigrator.MigrateFromUnifiedSettingsAsync(System.String,Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent,System.Threading.CancellationToken)">
<summary>
Writes an array setting into the legacy store at its old location and persistence format.
</summary>
<param name="arraySettingMoniker">The registered moniker of the array setting</param>
<param name="arrayContent">
The content of the array.
If <see cref="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent.Items" /> is null, that means
"revert to default". Otherwise, it is an ordered list of items. Each item in the array is a dictionary of item
properties, with property monikers (from the array setting's registration) as keys and property values
as values. If <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.IArraySettingMigrator.SupportsIncompleteItems(System.String)" /> returns true for this setting, the property
dictionaries will be missing properties that haven't been customized from their defaults.
If <see cref="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.ArraySettingContent.UserSelectedDefaultItemIndex" /> is -1, that means "revert to default".
Otherwise, it is the zero-based index of the user-selected default item.
</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.IncompatibleSettingTypeException">
<summary>
Thrown on setting retrieval when the stored value can't be converted to the target type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsManager">
<summary>
The main entry point for Unified Settings, available as a VS service (via service SVsUnifiedSettingsManager).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsManager.GetWriter(System.String)">
<summary>
Gets a reader/writer for the given caller.
</summary>
<param name="callerName">The name of the component doing the writing, in human readable form. Examples: "Live Share", "Database Tools".</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="callerName" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="callerName" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsManager.GetWriter(System.String,System.Guid)">
<summary>
Gets a reader/writer for the given caller with a specified event source.
</summary>
<param name="callerName">The name of the component doing the writing, in human readable form. Examples: "Live Share", "Database Tools".</param>
<param name="eventSource">Sets the value of <see cref="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingsUpdate.EventSource" /> for change events from this writer.</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="callerName" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="callerName" /> is empty.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader">
<summary>
This exposes the "effective value" of settings: the value from the highest priority scope where each setting is customized.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader.SubscribeToChanges(System.Action{Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingsUpdate},System.String[])">
<summary>
Registers a callback to be invoked when settings' effective values change. Note that a setting can change without affecting its
effective value if the setting is overridden in a higher-priority scope -- e.g. if a setting change is applied to "user" scope
(lower priority) but the same setting is also customized at "workspace" scope (higher priority), the change will not affect the
effective value.
</summary>
<param name="handler">The callback to be invoked when settings change.</param>
<param name="monikerPatterns">
A collection of setting monikers (like "environment.general.visualExperience.colorTheme") or prefixes + wildcard (like "environment.general.*")
representing the setting(s) that will trigger this callback.
</param>
<returns>An object that will unregister this handler when disposed.</returns>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="handler" /> or <paramref name="monikerPatterns" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="monikerPatterns" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader.GetArray``1(System.String,Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions)">
<summary>
Gets an array setting's effective value, or the default value if it isn't customized.
</summary>
<typeparam name="T">The array element type. This can be a simple type like string/int or a caller-defined class with properties.</typeparam>
<param name="moniker">The moniker of the array setting.</param>
<param name="readOptions">Flags specifying the conditions required for success.</param>
<returns>An object containing the setting value if successful or error information if unsuccessful.</returns>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader.GetValue``1(System.String,Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions)">
<summary>
Gets a non-array setting's effective value, or the default value if it isn't customized.
</summary>
<typeparam name="T">The setting type.</typeparam>
<param name="moniker">The moniker of the setting.</param>
<param name="readOptions">Flags specifying the conditions required for success.</param>
<returns>An object containing the setting value if successful or error information if unsuccessful.</returns>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader.GetArrayOrThrow``1(System.String)">
<summary>
Gets an array setting. If there is no persisted value, the persisted value is invalid,
or the persisted value can't be converted to an array of <typeparamref name="T" />, returns the default value.
</summary>
<exception cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.IncompatibleSettingTypeException">Thrown if <typeparamref name="T" /> isn't compatible with the persisted value or the default value.</exception>
<exception cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingNotRegisteredException">Thrown if the setting isn't registered and there's no persisted value.</exception>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader.GetValueOrThrow``1(System.String)">
<summary>
Gets a non-array setting. If there is no persisted value, the persisted value is invalid,
or the persisted value can't be converted to <typeparamref name="T" />, returns the default value.
</summary>
<exception cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.IncompatibleSettingTypeException">Thrown if <typeparamref name="T" /> isn't compatible with the persisted value or the default value.</exception>
<exception cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingNotRegisteredException">Thrown if the setting isn't registered and there's no persisted value.</exception>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter">
<summary>
Changes made via this API don't take effect until <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" /> is called.
At that point, they may be immediately approved/rejected or they may need to wait for user approval.
The scope at which the changes are persisted may be user-determined.
<see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" /> can be called multiple times.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.EnqueueChange``1(System.String,``0)">
<summary>
Enqueues a change to the value of a setting. The target scope may be selected by the user during the approval process.
Validation will be performed unless the setting is not registered. This is equivalent to calling <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.EnqueueChange``1(System.String,``0,Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions)" />
with <see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions.None" />.
</summary>
<param name="value">The new setting value. Can be any numeric type, bool, or string. If the setting is registered, this must match the registered data type.</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> or <paramref name="value" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty or <paramref name="value" /> is an unsupported type.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.EnqueueChange``1(System.String,``0,Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions)">
<summary>
Enqueues a change to the value of a setting. The target scope may be selected by the user during the approval process.
Validation will be performed unless the setting is not registered.
</summary>
<param name="value">The new setting value. Can be any numeric type, bool, or string. If the setting is registered, this must match the registered data type.</param>
<param name="options">Flags controlling how the change is persisted</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> or <paramref name="value" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty or <paramref name="value" /> is an unsupported type.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.EnqueueArrayChange``1(System.String,System.Collections.Generic.IReadOnlyList{``0})">
<summary>
Enqueues a change to the value of an array setting. The target scope may be selected by the user during the approval process.
Validation will be performed unless the setting is not registered.
</summary>
<param name="value">The new setting value.</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="moniker" /> or <paramref name="value" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="moniker" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)">
<summary>
Requests a commit of all queued changes. This may require user approval to complete. In that case, this method will return immediately
and the commit will complete later once the user has approved it. Changes will be applied in the scope selected by the user.
</summary>
<param name="changeDescription">A human-readable, localized description of the change. Example: "migration from a previous version".</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="changeDescription" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="changeDescription" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.Commit(System.String)">
<summary>
This method is deprecated. Use <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" /> instead.
Commits all queued changes. This may require user approval to complete. In that case, this method will return immediately
and the commit will complete later once the user has approved it.
</summary>
<param name="changeDescription">A human-readable, localized description of the change. Example: "migration from a previous version".</param>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="changeDescription" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown if <paramref name="changeDescription" /> is empty.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome">
<summary>
The outcome of a call to one of <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter" />'s Enqueue*Change methods.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.PendingCommit">
<summary>
The change was queued successfully. It will be applied when <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" /> is called (if the user approves it).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.PendingCommitWithoutValidation">
<summary>
The change was queued successfully. It will be applied when <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" /> is called (if the user approves it).
Validation was not performed on the value. (Validation will always be performed unless the setting is not registered.)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.Denied">
<summary>
The change was denied, e.g. by user preference or group policy.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.InvalidValue">
<summary>
The supplied value was an incompatible type or failed validation.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.NoMigration">
<summary>
<see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions.ApplyMigration" /> was specified but no migration is registered for the setting.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.MigrationFailed">
<summary>
<see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions.ApplyMigration" /> was specified but the supplied value couldn't be migrated.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome.InternalError">
<summary>
An unexpected error occurred. See the error message for details.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeResult">
<summary>
The result of a call to one of <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter" />'s Enqueue*Change methods.
</summary>
<param name="Message">An optional message with more details in case of failure. Useful for debugging or logging.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeResult.#ctor(Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeOutcome,System.Boolean,System.String)">
<summary>
The result of a call to one of <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter" />'s Enqueue*Change methods.
</summary>
<param name="Message">An optional message with more details in case of failure. Useful for debugging or logging.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingChangeResult.Message">
<summary>An optional message with more details in case of failure. Useful for debugging or logging.</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitOutcome">
<summary>
The outcome of a call to <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitOutcome.NoChangesQueued">
<summary>
No changes were queued when <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" /> was called.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitOutcome.Success">
<summary>
The changes were applied successfully.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitOutcome.PendingApproval">
<summary>
The changes are waiting for user approval.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitOutcome.InternalError">
<summary>
An unexpected error occurred. See the error message for details.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitResult">
<summary>
The result of a call to <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" />.
</summary>
<param name="Message">An optional message with more details in case of failure. Useful for debugging or logging.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitResult.#ctor(Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitOutcome,System.String)">
<summary>
The result of a call to <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.RequestCommit(System.String)" />.
</summary>
<param name="Message">An optional message with more details in case of failure. Useful for debugging or logging.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingCommitResult.Message">
<summary>An optional message with more details in case of failure. Useful for debugging or logging.</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingNotRegisteredException">
<summary>
Thrown from <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader" />'s Get*OrThrow methods when the setting has no stored value (or the stored value
can't be converted to the target type) and the setting isn't registered.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions">
<summary>
Defines the requirements for reading settings via <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.NoRequirements">
<summary>
Return the stored value without performing any checks.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.RequireRegistration">
<summary>
Fail if the setting is not registered.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.RequireValidation">
<summary>
Fail if the setting is not registered or not valid according to the registration.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.NoFallbackToDefault">
<summary>
Return an error rather than the default value if the persisted value can't be
converted to the target type or if validation is requested and the persisted
value doesn't pass validation criteria.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.ApplyMigration">
<summary>
Apply the "migration" transform from the setting registration, returning a value
compatible with the legacy schema. Fails if the setting isn't registered, the
registration doesn't include migration, or the migration can't be applied to the
current setting value.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrieval`1">
<summary>
The result of a call to one of <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader" />'s Get* methods.
</summary>
<param name="Outcome">Success/failure type.</param>
<param name="Message">An optional message with more details in case of failure. Useful for debugging or logging.</param>
<param name="Value">The setting value, or null if retrieval failed.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrieval`1.#ctor(Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome,System.String,`0)">
<summary>
The result of a call to one of <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader" />'s Get* methods.
</summary>
<param name="Outcome">Success/failure type.</param>
<param name="Message">An optional message with more details in case of failure. Useful for debugging or logging.</param>
<param name="Value">The setting value, or null if retrieval failed.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrieval`1.Outcome">
<summary>Success/failure type.</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrieval`1.Message">
<summary>An optional message with more details in case of failure. Useful for debugging or logging.</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrieval`1.Value">
<summary>The setting value, or null if retrieval failed.</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome">
<summary>
The outcome of a call to one of <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsReader" />'s Get* methods.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.FailedValidation">
<summary>
Failed because <see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.RequireValidation" /> was set and the setting value failed validation.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.NotRegistered">
<summary>
Failed because <see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.RequireRegistration" /> was set and the setting wasn't registered.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.NotPersisted">
<summary>
Failed because the setting has no registered default value and no persisted value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.InvalidType">
<summary>
Failed because the persisted value can't be converted to the specified type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.InternalError">
<summary>
An unexpected error occurred. See the error message for details.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.NoMigration">
<summary>
<see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.ApplyMigration" /> was specified but the registration doesn't include migration.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingRetrievalOutcome.MigrationFailed">
<summary>
<see cref="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingReadOptions.ApplyMigration" /> was specified but the migration failed.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingsUpdate">
<summary>
Setting change event payload.
</summary>
<param name="EventSource">The eventSource parameter to <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsManager.GetWriter(System.String,System.Guid)" />, or <see cref="F:System.Guid.Empty" /> if not supplied.</param>
<param name="ChangedSettingMonikers">The monikers of settings that were changed or removed.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingsUpdate.#ctor(System.Guid,System.Collections.Generic.HashSet{System.String})">
<summary>
Setting change event payload.
</summary>
<param name="EventSource">The eventSource parameter to <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsManager.GetWriter(System.String,System.Guid)" />, or <see cref="F:System.Guid.Empty" /> if not supplied.</param>
<param name="ChangedSettingMonikers">The monikers of settings that were changed or removed.</param>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingsUpdate.EventSource">
<summary>The eventSource parameter to <see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsManager.GetWriter(System.String,System.Guid)" />, or <see cref="F:System.Guid.Empty" /> if not supplied.</summary>
</member>
<member name="P:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingsUpdate.ChangedSettingMonikers">
<summary>The monikers of settings that were changed or removed.</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions">
<summary>
Defines the requirements for write settings via <see cref="T:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter" />.
</summary>z
</member>
<member name="F:Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions.ApplyMigration">
<summary>
Apply the "migration" transform from the setting registration. This means the caller of
<see cref="M:Microsoft.VisualStudio.Utilities.UnifiedSettings.ISettingsWriter.EnqueueChange``1(System.String,``0,Microsoft.VisualStudio.Utilities.UnifiedSettings.SettingWriteOptions)" />
must supply a legacy-compatible value and Unified Settings will translate it into a Unified Settings
compatible value.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.UnorderedDictionaryComparer`2">
<summary>
Compares two dictionaries as equal if they contain the same key-value pairs, independent
of their order when enumerated.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.VARIANT">
<summary>
Variant is the basic COM type for late-binding. It can contain any other COM data type.
This type definition precisely matches the unmanaged data layout so that the struct can be passed
to and from COM calls.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.VersionedBinaryReader">
<summary>
Specialization of BinaryReader that reads a versioned byte stream.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.VersionedBinaryReader.ReadCallback">
<summary>
Delegate that will read the body of the stream.
</summary>
<param name="reader">The VersionedBinaryReader</param>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.VersionedBinaryReader.MultiVersionReadCallback">
<summary>
Delegate that will read the body of the stream. It explicitly
handles the case where <paramref name="actualVersion" /> does not
equal <paramref name="expectedVersion" />.
</summary>
<param name="reader">The VersionedBinaryReader</param>
<param name="expectedVersion">The expected stream version</param>
<param name="actualVersion">The actual stream version</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.VersionedBinaryReader.ReadVersioned(System.Int32,Microsoft.VisualStudio.Utilities.VersionedBinaryReader.ReadCallback,System.Boolean)">
<summary>
Reads from the base stream, with version checking.
</summary>
<param name="expectedVersion">The expected version of the stream.
If the actual version doesn't match the expected version, the
stream position is advanced beyond the content but <paramref name="callback" />
is not invoked.
</param>
<param name="callback">The delegate that will read the body of the stream</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.VersionedBinaryReader.ReadVersioned(System.Int32,Microsoft.VisualStudio.Utilities.VersionedBinaryReader.MultiVersionReadCallback)">
<summary>
Reads from the base stream, with version checking. <paramref name="callback" />
is invoked regardless of the version of the stream. Use this overload if you
want to support reading stream versions other than the expected version.
</summary>
<param name="expectedVersion">The expected version of the stream.</param>
<param name="callback">The delegate that will read the body of the stream</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.VersionedBinaryReader.ReadHeader">
<summary>
Reads the header of the versioned stream.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.VersionedBinaryWriter">
<summary>
Specialization of BinaryWriter that writes a versioned byte stream.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Utilities.VersionedBinaryWriter.HeaderLength">
<summary>
The length in bytes of the version header written to the VersionedBinaryWriter's stream
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Utilities.VersionedBinaryWriter.WriteCallback">
<summary>
Delegate that will write the body of the stream.
</summary>
<param name="writer">The VersionedBinaryWriter</param>
<param name="version">The version of the stream. It is for
reference only; the delegate does not have to write it to
the stream.</param>
</member>
<member name="M:Microsoft.VisualStudio.Utilities.VersionedBinaryWriter.WriteVersioned(System.Int32,Microsoft.VisualStudio.Utilities.VersionedBinaryWriter.WriteCallback)">
<summary>
Writes versioning header to a stream, the calls a delegate to write
the meat of the data.
</summary>
<param name="version">Version number to write</param>
<param name="callback">The delegate that will write the body of the stream</param>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject">
<summary>
An observable object that can raise its <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" />
events asynchronously, on the main thread.
</summary>
<remarks>
If <see cref="T:Microsoft.VisualStudio.PlatformUI.ObservableObject" />.SetProperty is called to set a property's value, the
<see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event is raised on the ambient thread.
If <see cref="T:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject" />.SetPropertyNotifyAsync is called to set a property's
value, the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event is raised on the
main thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.#ctor(Microsoft.VisualStudio.Threading.JoinableTaskFactory)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject" /> class.
</summary>
<param name="jtf">
The task factory used to change threads before raising the
<see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event.
</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.NotifyPropertyChangedAsync(System.Threading.CancellationToken,System.String)">
<summary>
Notifies of a change to a property on this object. The <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" />
event is raised on the main thread.
</summary>
<param name="cancellationToken">The cancellation token.</param>
<param name="propertyName">The name of the property that changed.</param>
<returns>
A task that will complete once the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event
has been raised.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.SetPropertyNotifyAsync``1(``0@,``0,System.Threading.Tasks.Task@,System.Threading.CancellationToken,System.String)">
<summary>
Checks for a change to a value, and if the value is different, stores the value
and asynchronously notifies of property changes.
</summary>
<typeparam name="T">The type of field changing.</typeparam>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="notificationTask">
If the property hasn't changed, this will be <see cref="P:System.Threading.Tasks.Task.CompletedTask" />.
If the property has changed, this will be a task that will complete once the
<see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event has been raised.
</param>
<param name="cancellationToken">The cancellation token.</param>
<param name="propertyName">The name of the property that is changing.</param>
<returns><c>true</c> if the property value changed, <c>false</c> if it did not change.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.SetPropertyNotifyAsync``1(``0@,``0,System.Action,System.Threading.Tasks.Task@,System.Threading.CancellationToken,System.String)">
<summary>
Checks for a change to a value, and if the value is different, stores the value
and asynchronously notifies of property changes.
</summary>
<typeparam name="T">The type of field changing.</typeparam>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="beforeNotifyAction">An action to call if the value changes, before notifying property changes.</param>
<param name="notificationTask">
If the property hasn't changed, this will be null. If the property has changed, this will
be a task that will complete once the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event
has been raised.
</param>
<param name="cancellationToken">The cancellation token.</param>
<param name="propertyName">The name of the property that is changing.</param>
<returns><c>true</c> if the property value changed, <c>false</c> if it did not change.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.SetPropertyNotifyAsync``1(``0@,``0,System.Action{``0,``0},System.Threading.Tasks.Task@,System.Threading.CancellationToken,System.String)">
<summary>
Checks for a change to a value, and if the value is different, stores the value
and asynchronously notifies of property changes.
</summary>
<typeparam name="T">The type of field changing.</typeparam>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="beforeNotifyAction">An action to call if the value changes, before notifying property changes.</param>
<param name="notificationTask">
If the property hasn't changed, this will be null. If the property has changed, this will
be a task that will complete once the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event
has been raised.
</param>
<param name="cancellationToken">The cancellation token.</param>
<param name="propertyName">The name of the property that is changing.</param>
<returns><c>true</c> if the property value changed, <c>false</c> if it did not change.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.SetPropertyNotifyAsync(System.IntPtr@,System.IntPtr,System.Threading.Tasks.Task@,System.Threading.CancellationToken,System.String)">
<summary>
Checks for a change to an <see cref="T:System.IntPtr" /> value, and if the value is different, stores the value
and asynchronously notifies of property changes.
</summary>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="notificationTask">
If the property hasn't changed, this will be null. If the property has changed, this will
be a task that will complete once the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event
has been raised.
</param>
<param name="cancellationToken">The cancellation token.</param>
<param name="propertyName">The name of the property that is changing.</param>
<returns><c>true</c> if the property value changed, <c>false</c> if it did not change.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.AsyncObservableObject.SetPropertyNotifyAsync(System.UIntPtr@,System.UIntPtr,System.Threading.Tasks.Task@,System.Threading.CancellationToken,System.String)">
<summary>
Checks for a change to a <see cref="T:System.UIntPtr" /> value, and if the value is different, stores the value
and asynchronously notifies of property changes.
</summary>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="notificationTask">
If the property hasn't changed, this will be null. If the property has changed, this will
be a task that will complete once the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event
has been raised.
</param>
<param name="cancellationToken">The cancellation token.</param>
<param name="propertyName">The name of the property that is changing.</param>
<returns><c>true</c> if the property value changed, <c>false</c> if it did not change.</returns>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ContrastComparisonResult.ContrastHigherWithBlack">
<summary>
The color has highest contrast with black.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ContrastComparisonResult.ContrastHigherWithWhite">
<summary>
The color has highest contrast with white.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ContrastComparisonResult.Equal">
<summary>
Both contrasts are equal.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeValueNotOfTypeException(System.Object,System.Type,System.Type,System.String,System.String)">
<summary>
Creates an exception for "value not of expected type"
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeValueAtOffsetNotOfTypeException(System.Object,System.Type,System.Type,System.String,System.Int32,System.String)">
<summary>
Creates an exception for "value at offset not of expected type"
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeTargetNotExtendingTypeException(System.Object,System.Type,System.Type,System.String)">
<summary>
Creates an exception for "target type not extending type"
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeTargetAtOffsetNotExtendingTypeException(System.Object,System.Type,System.Type,System.Int32,System.String)">
<summary>
Creates an exception for "target type at offset not extending type"
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeConverterFunctionNotDefinedException(System.Object,System.String)">
<summary>
Creates an exception for "converter function not defined"
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeInsufficientSourceParametersException(System.Object,System.Int32,System.Int32,System.String)">
<summary>
Creates an exception for "insufficient source parameters"
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ConverterExceptionHelpers.MakeInsufficientTypeParametersException(System.Object,System.Int32,System.Int32,System.String)">
<summary>
Creates an exception for "insufficient type parameters"
</summary>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.DisposableObject">
<summary>
This type is forwarded from MS.VS.Shell.xx.dll
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.DisposableObject.Dispose">
<summary>
Disposes the current object then suppresses further finalization.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.PlatformUI.DisposableObject.IsDisposed">
<summary>
Returns whether the object has been disposed once, protects against double disposal
</summary>
</member>
<member name="E:Microsoft.VisualStudio.PlatformUI.DisposableObject.Disposing">
<summary>
Raised when the event is being disposed, while it is still accessible.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.DisposableObject.ThrowIfDisposed">
<summary>
Throws an ObjectDisposedException if this object has been disposed
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.DisposableObject.Dispose(System.Boolean)">
<summary>
Standard virtual overload for <see cref="T:System.IDisposable" /> pattern
</summary>
<param name="disposing">
<c>True</c> means this is a call to <see cref="M:Microsoft.VisualStudio.PlatformUI.DisposableObject.Dispose" />.
<c>False</c> means it has been called from the finalizer.
</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.DisposableObject.DisposeManagedResources">
<summary>
Allows derived classes to provide custom dispose handling for managed resources
</summary>
<remarks>
Derived classes are expected to override this method to dispose their managed resources, then call the base class.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.DisposableObject.DisposeNativeResources">
<summary>
Allows derived classes to provide custom dispose handling for native resources
</summary>
<remarks>
Derived classes are expected to override this method to dispose their native resources, then call the base class.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.DisposableWrapper">
<summary>
A disposable that disposes wrapped IDisposable
</summary>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.ExtensionMethods">
<summary>
Extension methods for non-VS types. Extensions for VS types should be placed in
env\shell\PackageFramework\Current\Shell\UI\Common\ExtensionMethods.cs
This type is forwarded from MS.VS.Shell.xx.dll
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent``1(System.EventHandler{``0},System.Object,``0)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<typeparam name="TEventArgs">The EventArgs-derived event argument.</typeparam>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="args">The event's argument parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.EventHandler,System.Object)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.EventHandler,System.Object,System.EventArgs)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="args">The event's argument parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.ComponentModel.CancelEventHandler,System.Object,System.ComponentModel.CancelEventArgs)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="args">The event's argument parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.ComponentModel.PropertyChangedEventHandler,System.Object,System.ComponentModel.PropertyChangedEventArgs)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="args">The event's argument parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.ComponentModel.PropertyChangedEventHandler,System.Object,System.String)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="propertyName">The name of the property which changed.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.ComponentModel.PropertyChangingEventHandler,System.Object,System.ComponentModel.PropertyChangingEventArgs)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="args">The event's argument parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.ComponentModel.PropertyChangingEventHandler,System.Object,System.String)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="propertyName">The name of the property which is changing.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent(System.Collections.Specialized.NotifyCollectionChangedEventHandler,System.Object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
<summary>
Helper method to perform the null check necessary to raise an event safely.
</summary>
<param name="eventHandler">The event.</param>
<param name="source">The event's source parameter.</param>
<param name="args">The event's argument parameter.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEventAsync``1(System.Delegate,System.Object,``0)">
<summary>
Helper method to call each target of an async event sequentially, awaiting each until it completes.
</summary>
<typeparam name="T">The argument type</typeparam>
<param name="eventHandler">A delegate taking (object, T) and returning Task</param>
<param name="source">The event's source parameter</param>
<param name="args">The event's argument parameter</param>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.ImageScalingMode">
<summary>
The scaling mode to use for WinForms/Win32 images
</summary>
<remarks>
DEV NOTE: The image scaling modes available here for WinForms and WPF match the similar scaling modes for Win32 from
vscommon\vsuilib\VsUIDpiHelper.h
If changes are made to algorithms in this managed DpiHelper class, matching changes will have to be made to the native class, too.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.Default">
<summary>
Let the shell pick what looks best depending on the current DPI zoom factor
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.BorderOnly">
<summary>
Keep the actual image unscaled, add a border around the image
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.NearestNeighbor">
<summary>
Sharp results, but pixelated, and possibly distorted unless multiple of 100% scaling
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.Bilinear">
<summary>
Smooth results, without distorsions, but fuzzy (uses GDI+ InterpolationMode.Bilinear)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.Bicubic">
<summary>
Smooth results, without distorsions, but fuzzy (uses GDI+ InterpolationMode.Bicubic)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.HighQualityBilinear">
<summary>
Smooth results, without distorsions, but fuzzy (uses GDI+ InterpolationMode.HighQualityBilinear)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.HighQualityBicubic">
<summary>
Smooth results, without distorsions, but fuzzy (uses GDI+ InterpolationMode.HighQualityBicubic)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.PlatformUI.ImageScalingMode.MixedNearestNeighborHighQualityBicubic">
<summary>
Sharper results than Bicubic for large zoom levels, without distorsions, but fuzzy (2 steps-scaling, uses NearestNeighbor up to the closest multiple of 100%, then GDI+ InterpolationMode.HighQualityBicubic from there)
</summary>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.ObservableObject">
<summary>
This type is forwarded from MS.VS.Shell.xx.dll
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.PlatformUI.ObservableObject" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.PlatformUI.ObservableObject.HasPropertyChangedEventSinks">
<summary>
Returns a value indicating whether this object's <see cref="E:Microsoft.VisualStudio.PlatformUI.ObservableObject.PropertyChanged" />
event has any subscriptions
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.SetProperty``1(``0@,``0,System.String)">
<summary>
Checks for a change to a value, and if the value is different, stores the value and notifies of property changes.
</summary>
<typeparam name="T">The type of field changing.</typeparam>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="propertyName">The property name to notify of changes if the values are different.</param>
<returns>True if the property value was changed.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.SetProperty``1(``0@,``0,System.Action,System.String)">
<summary>
Checks for a change to a value, and if the value is different, stores the value and notifies of property changes.
</summary>
<typeparam name="T">The type of field changing.</typeparam>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="beforeNotifyAction">An action to call if the value changes, before notifying property changes.</param>
<param name="propertyName">The property name to notify of changes if the values are different.</param>
<returns>True if the property value was changed.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.SetProperty``1(``0@,``0,System.Action{``0,``0},System.String)">
<summary>
Checks for a change to a value, and if the value is different, stores the value and notifies of property changes.
</summary>
<typeparam name="T">The type of field changing.</typeparam>
<param name="field">The storage location for the field behind the property.</param>
<param name="newValue">The new value to store in the field.</param>
<param name="beforeNotifyAction">An action to call if the value changes, before notifying property changes.</param>
<param name="propertyName">The property name to notify of changes if the values are different.</param>
<returns>True if the property value was changed.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.BuildPropertyDependencies(System.Type)">
<summary>
Builds a dictionary of properties that are referenced by a <see cref="T:Microsoft.VisualStudio.PlatformUI.DependsOnPropertyAttribute" />
to the properties that reference them.
</summary>
<param name="type">The type for which property dependencies are to be built</param>
<returns>
A dictionary of property dependencies, or null if none of the type's properties are marked with a
<see cref="T:Microsoft.VisualStudio.PlatformUI.DependsOnPropertyAttribute" />
</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.GetDependentProperties(System.String)">
<summary>
Returns a collection of the properties that are (recursively) dependent on <paramref name="property" />
</summary>
<param name="property">The name of the property whose dependents are to be returned</param>
<returns>The (possibly empty) collection of dependent properties</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.AddDependentProperties(System.String,System.String,System.Collections.Generic.IDictionary{System.String,Microsoft.VisualStudio.Utilities.OneOrMany{System.String}},System.Collections.Generic.List{System.String}@)">
<summary>
Adds the properties that are dependent on <paramref name="property" /> to
<paramref name="allDependentProperties" />. <paramref name="allDependentProperties" />
will be created if needed
</summary>
<param name="rootProperty">The name of the root property for which dependencies are requested</param>
<param name="property">The name of the property</param>
<param name="propertyDependencies">The property dependency map</param>
<param name="allDependentProperties">The properties that depend on <paramref name="property" /></param>
<returns>True if <paramref name="property" /> has dependent properties, otherwise false</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.ObservableObject.ValidatePropertyDependencies(System.Collections.Generic.IDictionary{System.String,Microsoft.VisualStudio.Utilities.OneOrMany{System.String}})">
<summary>
Validates that there are no circular property dependencies in the current type
</summary>
</member>
<member name="T:Microsoft.VisualStudio.PlatformUI.PathUtil">
<summary>
This type is forwarded from MS.VS.Shell.xx.dll
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.Normalize(System.String)">
<summary>
Returns a normalized form of the given path.
What it does:
- Takes pains not to allocate extra temporary strings.
- Verifies that the path contains no invalid path characters, throwing
an exception if any invalid characters are found.
- Strips leading and trailing whitespace.
- Replaces "/" with "\"
- Replaces multiple consecutive "\" with a single "\", except for the
leading "\\" of a UNC path.
- Removes the trailing "\", unless it's part of a root (e.g. "C:\")
- Converts to lowercase
What it doesn't do:
- Fully qualify a non-rooted filename (e.g. "dir\filename.ext")
- Simplify relative pathnames (e.g. "C:\dir\..\FileInDriveRoot.ext").
It's tempting to use Path.GetFullPathName to perform this function,
but that would entail an expensive trip to the disk or network.
- Verify that the path exists.
</summary>
<param name="path">Path to normalize</param>
<returns>Normalized from of <paramref name="path" /></returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsNormalized(System.String)">
<summary>
Indicates whether the given path is in normalized form.
</summary>
<param name="path">Path to test</param>
<returns>true if normalized, false if not</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.NormalizePath(System.String)">
<summary>
Extension method to return a normalized form of the given path.
</summary>
<param name="path">Path to normalize</param>
<returns>Normalized from of <paramref name="path" /></returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsNormalizedPath(System.String)">
<summary>
Extension method to check whether the given path is in normalized form.
</summary>
<param name="path">Path to test</param>
<returns>true if normalized, false if not</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsDescendant(System.String,System.String)">
<summary>
Indicates whether the a child path is a descendant of a parent directory.
This is a purely textual computation indicating that the child *could be*
a descendant of the parent; there is no file system interaction to determine
whether child actually *is* a descendant of parent.
</summary>
<param name="parent">Parent directory</param>
<param name="child">Prospective child file/directory</param>
<returns>True if descendant, false if not</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.GetCommonPathPrefix(System.String,System.String)">
<summary>
Returns the longest leading string that is common to <paramref name="path1" /> and <paramref name="path2" />.
Case is not considered in the comparison.
</summary>
<param name="path1">The first path to compare</param>
<param name="path2">The second path to compare</param>
<returns>The longest common prefix, or String.Empty if there is no common prefix</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.ArePathsEqual(System.String,System.String)">
<summary>
Determines if two paths are equal. This method does not treat Path.DirectorySeparatorChar
and Path.AltDirectorySeparatorChar as equivalent.
</summary>
<param name="path1">First path to compare</param>
<param name="path2">Second path to compare</param>
<returns>True if two paths are equal, false if they are not.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsRoot(System.String)">
<summary>
Determines if the given path represents a root directory.
</summary>
<param name="path">First path to compare</param>
<returns>True if <paramref name="path" /> is a root, false if it is not.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsReparsePoint(System.String)">
<summary>
Determines if the given path is a Junction.
</summary>
<param name="path">Path to a directory</param>
<returns>True if <paramref name="path" />is a Junction, false otherwise.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.ContainsReparsePoint(System.String,System.String)">
<summary>
Determines if any level in the given path is a Junction, up to <paramref name="pathRoot" />
(<paramref name="pathRoot" /> itself will not be included in the determination)
</summary>
<param name="path">Path to a directory</param>
<param name="pathRoot">Path to a parent directory of <paramref name="path" /></param>
<returns>True if any directory between <paramref name="path" /> and <paramref name="pathRoot" />
is a Junction. False otherwise.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsDirectorySeparator(System.Char)">
<summary>
Determines if a character is a directory separator
</summary>
<param name="c">Character to test</param>
<returns>True if <paramref name="c" /> is a directory separator, false if not</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.IsImplicitDirectory(System.String)">
<summary>
Determines if the given directory is one of the implicit directories
contained in all directories (i.e. "." or "..")
</summary>
<param name="directory">Directory to test</param>
<returns>True if <paramref name="directory" /> is an implicit directory, false if not</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.SafeGetExtension(System.String)">
<summary>
Return the extension of the specified path string. This always returns a
non-null string for the extension. It will return <see cref="F:System.String.Empty" /> if:
* <paramref name="path" /> is null
* <paramref name="path" /> is empty
* <paramref name="path" /> does not contain an extension
Otherwise, <paramref name="path" />'s extension (including the period ".").
</summary>
<param name="path">The path from which to get the extension</param>
<returns>The extension, or <see cref="F:System.String.Empty" /> if the extension could be not obtained</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.GetFileSystemCasing(System.String)">
<summary>
Returns the path with casing that matches what's on the file system.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.LooksLikeLocalRootedFilePath(System.String)">
<summary>
Heuristically determines whether the given string "looks like" a local rooted file path --
e.g. begins with a drive letter followed by ":\", contains only valid path characters, etc.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.HasInvalidChars(System.String)">
<summary>
Returns whether <paramref name="path" /> contains any invalid path characters.
This method uses a cached array, in contrast to <see cref="M:System.IO.Path.GetInvalidPathChars" />,
which allocates a new array for each call.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.MakeRelative(System.String,System.String)">
<summary>
Returns a relative path from <paramref name="relativePathBase" /> to <paramref name="pathToRelativize" />.
The parameters are treated as folders if they end in "\", otherwise as filenames. The
path from c:\foo\bar to c:\cat\dog is ..\cat\dog -- NOT ..\..\cat\dog because "bar" and
"dog" are files, not folders. If "bar" is a folder, you must append "\" to ask for the
path from c:\foo\bar\ to c:\cat\dog -- THEN the answer will be ..\..\cat\dog.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.DerelativizePath(System.String,System.String)">
<summary>
Combines a relative path with a base path to return a rooted version of the relative path, collapsing any
".." segments that appear at the beginning of the relative path.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.PathParser.MoveNext">
<summary>
Advances to the next segment of the parser's path.
</summary>
<returns>True if a segment was found, false if not.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.PathUtil.PathParser.CompareCurrentSegment(Microsoft.VisualStudio.PlatformUI.PathUtil.PathParser)">
<summary>
Compares the current segment of this parser to the current segment of another
parser, by ordinal, ignoring case.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.WeakCollection`1.Add(`0)">
<summary>
Adds a WeakReference to the item to the collection.
</summary>
<param name="item">The item to add to the collection.</param>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.WeakCollection`1.Clear">
<summary>
Clears all items from the list.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.WeakCollection`1.Remove(`0)">
<summary>
Removes an item from the underlying collection, if it exists. This
is O(n), where n is the number of WeakReferences currently in the list.
</summary>
<param name="item">The item to remove from the collection.</param>
<returns>True if the item was found and removed, otherwise false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.WeakCollection`1.ToList">
<summary>
Gets a list containing strong references to the items in this collection.
</summary>
<returns>A list containing strong references to items in this collection.</returns>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.WeakCollection`1.GetAliveItemsCount">
<summary>
Return the number of strong references remaining in the collection.
Note that this is O(n), where n is the number of WeakReferences
currently in the list.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.PlatformUI.WeakCollection`1.Prune(System.Int32)">
<summary>
Creates a new inner list copy containing the currently-living
items.
</summary>
<param name="anticipatedSize">The size that's expected
for the compressed list.</param>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlag">
<summary>
A structure that represents a feature flag which consists of a name and the enabled state
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.IsEnabled">
<summary>
A Boolean value indicating whether the feature should be enabled
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.Name">
<summary>
A string of the form ^(\w+\.)+\w+$, following a pattern of [AreaPath].[Name]
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.Title">
<summary>
A string value which will be displayed on the preview pane.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.PreviewPaneChannels">
<summary>
A comma separated list of channels which will control the visibility of the feature flag on the preview pane.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.LearnMoreUrl">
<summary>
A URL to more information about the feature flag to be displayed on the preview pane.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.Description">
<summary>
A description about the feature flag
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.RequiredAction">
<summary>
A string indicating the required action necessary to apply the feature when the user checks the feature flag on the preview pane.
This will be appended with the string "requires" and displayed with the title on the preview pane.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.FeedbackUrl">
<summary>
A URL for the Preview Pane for the users to provide feedback on the feature
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.PackageGuid">
<summary>
A string specifying the package guid to lookup localized strings
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.OverrideDefaultValueChannels">
<summary>
A comma separated list of channels where the default value will be overriden.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.VisibleToInternalUsersOnlyChannels">
<summary>
A comma separated list of channels where the feature will be visible on the preview pane to internal users only.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.VisibleToExperiments">
<summary>
A comma separated list of experiments where the feature will be visible on the preview pane.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.#ctor(System.String,System.Boolean,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
<summary>
Construct a FeatureFlag with all the properties to display it on the Preview Features Pane as well.
</summary>
<param name="name">A string of the form ^(\w+\.)+\w+$, following a pattern of [AreaPath].[Name]</param>
<param name="isEnabled">A Boolean value indicating whether the feature should be enabled.</param>
<param name="title">A string representing the title of the feature flag to be displayed on the preview pane.</param>
<param name="previewPaneChannels">A comma separated list of channels for which the feature flag will be showed on the preview pane.</param>
<param name="learnMoreUrl">A link to provide more information about the feature flag.</param>
<param name="description">A brief description about the feature flag to be displayed on the preview pane.</param>
<param name="requiredAction">A string for ex: restart indicating the action required for the feeature to take effect.</param>
<param name="feedbackUrl">A link for users to provide feedback about the feature.</param>
<param name="packageGuid">A string specifying the package guid to lookup localized strings.</param>
<param name="overrideDefaultValueChannels">A comma separated list of channels where the default value will be overriden.</param>
<param name="visibleToInternalUsersOnlyChannels">A comma separated list of channels where the feature will be visible on the preview pane to internal users only.</param>
<param name="visibleToExperiments">A comma separated list of experiments where the feature will be visible on the preview pane.</param>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlags">
<summary>
A service that can be used to determine if a feature should be enabled or disabled. It can also
be used to enumerate the current state of feature flags. This service is free-threaded.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.customizationsStore">
<summary>
This store trumps all other stores, unless <see cref="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.GetFeatureValueFromStores(System.String,System.Boolean,System.Boolean,System.String)" /> is asked to skip it.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.remoteStore">
<summary>
This store always trumps the <see cref="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.defaultsStore" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.defaultsStore">
<summary>
This is the store of last resort.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.syncObject">
<summary>
The lock to acquire before accessing mutable fields.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.defaultsOrRemoteStoreCache">
<summary>
A dictionary of feature flag *paths* (i.e. processed by <see cref="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.FeatureNameToPath(System.String)" />) to the result of <see cref="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetBoolValue(System.String,System.String)" />
as it was returned from <see cref="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.remoteStore" /> or <see cref="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.defaultsStore" /> (in that order).
</summary>
<remarks>
Obtain the <see cref="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.syncObject" /> lock when accessing this dictionary.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.customizationsStoreCache">
<summary>
A dictionary of feature flag *paths* (i.e. processed by <see cref="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.FeatureNameToPath(System.String)" />) to the result of <see cref="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetBoolValue(System.String,System.String)" />
as it was returned from <see cref="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.customizationsStore" />.
</summary>
<remarks>
Obtain the <see cref="F:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.syncObject" /> lock when accessing this dictionary.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.#ctor(Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore,Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore)">
<summary>
Creates an instance of the feature flags service that can be used to determine if a feature should be
enabled or disabled as well as enumerate registered flags.
</summary>
<param name="defaultsStore">An implementation of <see cref="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore" /> that contains the default values for registered flags.</param>
<param name="customizationsStore">An implementation of <see cref="T:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore" /> that contains the customized values for registered flags.</param>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.#ctor(Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore,Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore,Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore)">
<summary>
Creates an instance of the feature flags service that can be used to determine if a feature should be
enabled or disabled as well as enumerate registered flags.
</summary>
<param name="defaultsStore">An implementation of <see cref="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore" /> that contains the default values for registered flags.</param>
<param name="customizationsStore">An implementation of <see cref="T:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore" /> that contains the customized values for registered flags.</param>
<param name="remoteStore">An implementation of <see cref="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore" /> that contains remote overrides for non-customized values for registered flags.</param>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.Dispose">
<summary>
Drops any event handlers added to the <see cref="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore" /> objects provided to the constructor.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.IsFeatureEnabled(System.String,System.Boolean)">
<summary>
This method is used to determine whether a feature is enabled. If the flag cannot be
located, or if there is an error processing the request the default value is returned.
</summary>
<param name="featureName">A string of the form ^(\w+\.)+\w+$, following a pattern of
[AreaPath].[Name]</param>
<param name="defaultValue">The value returned if there is an error processing the request
or if the flag cannot be located.</param>
<returns>The current state of the feature flag or the defaultValue if there is an error
processing the request</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.IsFeatureEnabledWithoutCustomization(System.String,System.Boolean)">
<summary>
Do not use this method as it's intended for Telemetry only.
This is used to determine the value of a feature without user customization.
To get the value of Feature flag use <see cref="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.IsFeatureEnabled(System.String,System.Boolean)" />
This will check for feature flag value in remote store, if not found, falls back
to default store.
</summary>
<param name="featureName">A string of the form ^(\w+\.)+\w+$, following a pattern of
[AreaPath].[Name]</param>
<param name="defaultValue">The value returned if there is an error processing the
request or if the flag cannot be located.</param>
<returns>The default value or current state of the feature flag if there is an error
processing the request</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.GetFeatureValueFromStores(System.String,System.Boolean,System.Boolean,System.String)">
<summary>
This method is used to get the value of feature flag from the stores.
If the flag cannot be located, or if there is an error processing
the request the default value is returned.
</summary>
<param name="featureName">A string of the form ^(\w+\.)+\w+$, following a pattern of
[AreaPath].[Name]</param>
<param name="defaultValue">The value returned if there is an error processing the request
or if the flag cannot be located.</param>
<param name="getCustomizationValue">Determines whether the customization store will be checked for value or not.
If it is true then first customization store will be checked,
then remote store and then fall back to default store.
If it is false, then first remote store will be checked,then fall back to default store.
</param>
<param name="flagPath">The path of the feature flag if know. Otherwise it will be calculated using the default transform.</param>
<returns>The current state of the feature flag or the defaultValue if there is an error
processing the request</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.GetFlags">
<summary>
A method used to retrieve all feature flags for this user and appid combination.
The values of the flags returned are the currently set values and may differ from
the defaults. This will only return the set of registered flags.
</summary>
<returns>An enumerable collection of <see cref="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlag" /> </returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.TryGetFlag(System.String,System.Boolean,Microsoft.VisualStudio.FeatureFlags.FeatureFlag@)">
<summary>
Gets information about a feature flag.
</summary>
<param name="featureName">The name of the feature.</param>
<param name="includeEnabledState">
If true, <see cref="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlag.IsEnabled" /> will reflect the current enabled state of the feature, taking into account
targeted notifications and user customizations. If false, it will be the hard coded default for this feature. Passing
false when the current enabled state is not needed improves performance.
</param>
<param name="info">The retrieved information if the return value is true.</param>
<returns>Whether the information was retrieved successfully.</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.FeatureNameToPath(System.String)">
<summary>
Replaces '.' with '\' characters.
</summary>
<param name="featureName">The period-delimited feature flag name.</param>
<returns>The backslash-delimited path name to the feature flag.</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlags.GetFlags(System.String,System.Collections.Generic.List{Microsoft.VisualStudio.FeatureFlags.FeatureFlag})">
<summary>
A recursive function that aggregates all feature flags at the given collection path and below into the specified collection.
</summary>
<param name="collectionPath">The path under which to start searching for feature flags.</param>
<param name="flags">The collection to add discovered flags to.</param>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlagsChangedEventArgs">
<summary>
Arguments for the event raised by the <see cref="E:Microsoft.VisualStudio.FeatureFlags.IObservableFeatureFlagsStore.Changed" /> event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.FeatureFlagsChangedEventArgs.#ctor(System.String,System.Nullable{System.Boolean})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlagsChangedEventArgs" /> struct.
</summary>
<param name="name">The name of the feature flag. This value uses '.' as a separator.</param>
<param name="enabled"><c>true</c> if the feature flag is enabled; <c>false</c> otherwise. Use <c>null</c> to indicate removal of the setting from the store.</param>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlagsChangedEventArgs.Name">
<summary>
Gets the name of the feature flag whose value has changed.
</summary>
<remarks>
This value uses '.' as a separator.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.FeatureFlags.FeatureFlagsChangedEventArgs.Enabled">
<summary>
Gets a value indicating whether the feature flag is enabled.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlags">
<summary>
A service that can be used to determine if a feature should be enabled or disabled. It can also
be used to enumerate the current state of feature flags. This service is free-threaded.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlags.IsFeatureEnabled(System.String,System.Boolean)">
<summary>
This method is used to determine whether a feature is enabled. If the flag cannot be
located, or if there is an error processing the request the default value is returned.
</summary>
<param name="name">A string of the form ^(\w+\.)+\w+$, following a pattern of
[AreaPath].[Name]</param>
<param name="defaultValue">The value returned if there is an error processing the request
or if the flag cannot be located.</param>
<returns>The current state of the feature flag or the defaultValue if there is an error
processing the request</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlags.GetFlags">
<summary>
A method used to retrieve all feature flags for this user and appid combination.
The values of the flags returned are the currently set values and may differ from
the defaults. This will only return the set of registered flags.
</summary>
<returns>An enumerable collection of <see cref="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlag" /> </returns>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore">
<summary>
An abstraction of the repository for feature flags. The collection semantics are modeled after IVsSettingsStore and as such:
Collections can contain properties and sub collections. Sub collection paths are described with the strings
like the directory paths of file systems. Path contains names of all the parent collections. Similarly, separator
used between the names of the parent collections is '\' (back-slash) character. Example of a sub collection path
would be: "Root Collection\Internal Collection\Leaf Collection".
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetBoolValue(System.String,System.String)">
<summary>
Retrieves a boolean value stored under the <paramref name="collectionPath" /> with the dictated <paramref name="name" />. If the
<paramref name="collectionPath" /> or <paramref name="name" /> doesn't exist, then null is returned.
</summary>
<param name="collectionPath">The full path, separated by back-slash characters to the collection/subcollection to be queried</param>
<param name="name">The name of the value to read</param>
<returns>True or False depending on the state of the value of the name under the collection Path, or null if the value doesn't exist</returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetSubCollections(System.String)">
<summary>
Retrieves all subcollections under the <paramref name="collectionPath" />. These are 'primitive' subCollections in that it is only
the next level of subcollections. For example a query of GetSubCollections with collectionPath 'Root Collection' against a collection
that contained "Root Collection\Internal Collection\Leaf Collection", would return 'Internal Collection'.
</summary>
<param name="collectionPath">The full path, separated by back-slash characters to the collection/subcollection to be queried</param>
<returns>The immediate subcollections rooted at the <paramref name="collectionPath" /></returns>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetString(System.String,System.String)">
<summary>
Retrieves a string value stored under the <paramref name="collectionPath" /> with the dictated <paramref name="name" />. If the
<paramref name="collectionPath" /> or <paramref name="name" /> doesn't exist, then null is returned.
</summary>
<param name="collectionPath">The full path, separated by back-slash characters to the collection/subcollection to be queried</param>
<param name="name">The name of the value to read</param>
<returns>string value of the name under the collection Path, or null if the value doesn't exist</returns>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore2">
<summary>
An abstraction of the repository for feature flags. The collection semantics are modeled after IVsSettingsStore and as such:
Collections can contain properties and sub collections. Sub collection paths are described with the strings
like the directory paths of file systems. Path contains names of all the parent collections. Similarly, separator
used between the names of the parent collections is '\' (back-slash) character. Example of a sub collection path
would be: "Root Collection\Internal Collection\Leaf Collection".
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore2.GetCollection(System.String)">
<summary>
Returns an object providing access to the values under a collection.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStoreCollection">
<summary>
Provides access to feature flag store values under a single collection path.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStoreCollection.GetBoolValue(System.String)">
<summary>
Retrieves a boolean value with the given <paramref name="name" />. If the value doesn't exist, then null is returned.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStoreCollection.GetSubCollections">
<summary>
Retrieves the names of all subcollections.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStoreCollection.GetString(System.String)">
<summary>
Retrieves a string value with the given <paramref name="name" />. If the value doesn't exist, then null is returned.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IObservableFeatureFlagsStore">
<summary>
Optionally implemented by an <see cref="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore" /> in order to invalidate any cached values
from prior calls to <see cref="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetBoolValue(System.String,System.String)" />.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.FeatureFlags.IObservableFeatureFlagsStore.Changed">
<summary>
Occurs when the value of a feature flag changes.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IObservableFeatureFlagsStore2">
<summary>
Optionally implemented by an <see cref="T:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore" /> in order to invalidate any cached values
from prior calls to <see cref="M:Microsoft.VisualStudio.FeatureFlags.IFeatureFlagsStore.GetBoolValue(System.String,System.String)" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IObservableFeatureFlagsStore2.WatchForChanges(System.String)">
<summary>
Watch for when the value of a feature flag changes.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlags">
<summary>
A testability service to allow changing the state of a feature flag.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlags.EnableFeature(System.String,System.Boolean)">
<summary>
This method is used to set the state of a feature flag. Unlike IsFeatureEanbled
this method will throw if any of the flags are unrecognized (i.e. if the flag wasn't
registered with the service). EnableFeature immediately persists the
enabled state to the persistence store.
</summary>
<param name="name">A string of the form ^(\w+\.)+\w+$, following a pattern of
[AreaPath].[Name]</param>
<param name="enabled">A value indicating what the result of calling IsFeatureEnabled
with this <paramref name="name" /> will return</param>
</member>
<member name="T:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore">
<summary>
An abstraction of a writable repository for feature flags. The collection semantics are modeled after IVsSettingsStore and as such:
Collections can contain properties and sub collections. Sub collection paths are described with the strings
like the directory paths of file systems. Path contains names of all the parent collections. Similarly, separator
used between the names of the parent collections is '\' (back-slash) character. Example of a sub collection path
would be: "Root Collection\Internal Collection\Leaf Collection".
</summary>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore.DeleteProperty(System.String,System.String)">
<summary>
Deletes the given property from the collection. Succeeds silently if the property doesn't exist.
</summary>
<param name="collectionPath">The full path, separated by back-slash characters to the collection/subcollection to be used</param>
<param name="name">The name of the property to be deleted</param>
</member>
<member name="M:Microsoft.VisualStudio.FeatureFlags.IWritableFeatureFlagsStore.SetBool(System.String,System.String,System.Boolean)">
<summary>
Updates the value of the property to the given bool value. If the previous data type of the property was something else
this method overwrites it. If the property doesn't exist, it will create one. If the colleciton doesn't exist, it will be created.
</summary>
<param name="collectionPath">The full path, separated by back-slash characters to the collection/subcollection to be written to</param>
<param name="name">The name of the property to be written or created</param>
<param name="enabled">The value to set the new/updated property to</param>
</member>
<member name="T:Microsoft.VisualStudio.IVsService`1">
<summary>
Provides access to a Visual Studio proffered service.
</summary>
<typeparam name="T">
The service identity and interface of the Visual Studio service.
When the service identity and interface are distinct types, use <see cref="T:Microsoft.VisualStudio.IVsService`2" /> instead.
</typeparam>
<remarks>
This service acquiring interface is typically acquired via a MEF import attribute. For example:
<c><![CDATA[[Import] IVsService<IVsRunningDocumentTable> rdt;]]></c>
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.IVsService`1.GetValueAsync(System.Threading.CancellationToken)">
<summary>
Gets an instance of the <typeparamref name="T" /> service.
</summary>
<param name="cancellationToken">A cancellation token.</param>
<returns>An instance of the service.</returns>
<remarks>
Repeat calls to this method will return the same instance.
</remarks>
<exception cref="T:Microsoft.VisualStudio.Shell.ServiceUnavailableException">
Thrown when the service is not available.
This may be because the service is not registered or because of a fault in the service factory.
An <see cref="P:System.Exception.InnerException" /> may include details about an activation failure.
</exception>
<exception cref="T:System.OperationCanceledException">Throw when <paramref name="cancellationToken" /> is canceled before the request can be satisfied.</exception>
</member>
<member name="M:Microsoft.VisualStudio.IVsService`1.GetValueOrNullAsync(System.Threading.CancellationToken)">
<summary>
Gets an instance of the <typeparamref name="T" /> service.
</summary>
<param name="cancellationToken">A cancellation token.</param>
<returns>An instance of the service if available; otherwise <see langword="null" />.</returns>
<remarks>
This method will not throw exceptions for missing services or faulted service factories.
It simply returns <see langword="null" /> for any failure.
</remarks>
<exception cref="T:System.OperationCanceledException">Throw when <paramref name="cancellationToken" /> is canceled before the request can be satisfied.</exception>
</member>
<member name="T:Microsoft.VisualStudio.IVsService`2">
<summary>
Provides access to a Visual Studio proffered service.
</summary>
<typeparam name="TService">The service identity of the Visual Studio service.</typeparam>
<typeparam name="TInterface">The initial interface used to interact with the Visual Studio service.</typeparam>
<remarks>
<para>
This service acquiring interface is typically acquired via a MEF import attribute. For example:
<c><![CDATA[[Import] IVsService<SVsRunningDocumentTable, IVsRunningDocumentTable> rdt;]]></c>
</para>
<para>
When <typeparamref name="TService" /> and <typeparamref name="TInterface" /> are the same type, the <see cref="T:Microsoft.VisualStudio.IVsService`1" /> interface is a simpler option.
</para>
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.Commanding.LogNameFilter.#ctor(System.String)">
<summary>
Creates a new <see cref="T:Microsoft.VisualStudio.LogHub.Commanding.LogNameFilter" /> instance.
</summary>
<param name="nameFilter">
The search string to match against the names of log files. This parameter can contain a combination of letters (a-z and A-Z), numbers (0-9), underscores (_), and wildcard (* and ?) characters, but it doesn't support regular expressions.
See the remarks section for more details about the wildcard characters.
</param>
<remarks>
A valid log name can have any number of segments, and is of the form: <code>Segment1.Segment2.Segment3</code>
The wildcards in <paramref name="nameFilter" /> refer to path segments, and the following wildcards are permitted:
<list type="table">
<listheader>
<term>Question Mark (?)</term>
<description>Matches exactly one period-separated segment in the log name.</description>
</listheader>
<item>
<term>Asterisk (*)</term>
<description>Matches one or more period-separated segments in the log name.</description>
</item>
</list>
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.LogHub.ITraceConfiguration">
<summary>
Configure <see cref="T:System.Diagnostics.Trace" /> configuration for registration of a new log streams with Trace Hub.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.ITraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
<summary>
Registers a new log stream with the tracing hub and exposes it to requesting clients.
</summary>
<param name="id">Representing the fully-qualified id of a given log stream and all information that can be used to identify the log.</param>
<param name="options">Logging options for a given log stream.</param>
<param name="traceSource">The <see cref="T:System.Diagnostics.TraceSource" /></param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken" />.</param>
<remarks>
This overload should not be used as it accepts a <see cref="T:System.Diagnostics.TraceSource" /> supplied from the client.
We reserve the ability to return a custom instance of <see cref="T:System.Diagnostics.TraceSource" /> and the result of this method should be used.
This method is being left in-place for scenarios where using a <see cref="T:System.Diagnostics.TraceSource" /> supplied from this API is not possible,
however due to performance reasons this overload should be avoided whenever possible.
</remarks>
<returns>Results of calls to register a new trace log stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.ITraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Threading.CancellationToken)">
<summary>
Registers a new log stream with the tracing hub and exposes it to requesting clients.
</summary>
<param name="id">Representing the fully-qualified id of a given log stream and all information that can be used to identify the log.</param>
<param name="options">Logging options for a given log stream.</param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken" />.</param>
<remarks>
This is the preferred overload vs <see cref="M:Microsoft.VisualStudio.LogHub.ITraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Threading.CancellationToken)" />.
This allows the implementer of this interface to provide the TraceSource implementation.
</remarks>
<returns>Results of calls to register a new trace log stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceConfiguration.RegisterLogSource(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions)">
<summary>
Registers a new log stream with the tracing hub and exposes it to requesting clients.
</summary>
<param name="id">Representing the fully-qualified id of a given log stream and all information that can be used to identify the log.</param>
<param name="options">Logging options for a given log stream.</param>
<returns>Results of calls to register a new trace log stream.</returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceConfiguration.RegisterLogSource(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource)">
<summary>
Registers a new log stream with the tracing hub and exposes it to requesting clients.
</summary>
<param name="id">Representing the fully-qualified id of a given log stream and all information that can be used to identify the log.</param>
<param name="options">Logging options for a given log stream.</param>
<param name="traceSource">The <see cref="T:System.Diagnostics.TraceSource" /></param>
<returns>Results of calls to register a new trace log stream.</returns>
</member>
<member name="F:Microsoft.VisualStudio.LogHub.LocalTraceHub.DefaultLoggingLevel">
<summary>
This is the default level we will log at when the environment variables that control the log level aren't set.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LogHub.LocalTraceHub.DefaultLogLevelSettings">
<summary>
This is the settings object <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggingLevelSettings" /> that is the default when settings are not provided.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LogHub.LocalTraceHub.logsByName">
<summary>
A <see cref="T:System.Collections.Generic.Dictionary`2" /> that looks up the <see cref="T:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog" /> of a log
defined by <see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogId.LogName" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LogHub.LocalTraceHub.logNamesByService">
<summary>
A <see cref="T:System.Collections.Generic.Dictionary`2" /> that looks up a set of <see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogId.LogName" /> names
Used to lookup the real <see cref="T:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog" /> in <see cref="F:Microsoft.VisualStudio.LogHub.LocalTraceHub.logsByName" /> data structure.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisterTraceLogAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Threading.CancellationToken)">
<summary>
Registers a new log stream with this local tracing hub instance.
</summary>
<param name="logId">
Id of the log stream within the service, this should be globally unique. The <see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogId.LogName" />
should be a fully-qualified hierarchical name starting with your team's namespace.
This should be a string like "Microsoft.VisualStudio.Debugger.Concord.DispatcherDiagnosticsLog" where the
last segment is a friendly name of the log. It is important to use a fully-qualified hierarchical name even
when this log stream is also classified by a <see cref="T:Microsoft.ServiceHub.Framework.ServiceRpcDescriptor" />. This must be unique across
all log streams from all services and components; when a duplicate request is received the method will
return an error code in <see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration.Status" />.
</param>
<param name="options">Options describing how the tracing hub can treat this log.</param>
<param name="cancellationToken">The cancellation token.</param>
<returns>
A <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration" /> with the <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LogId" /> of the newly registered log, a status code in
<see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration.Status" /> indicating if the log was already registered or this is a new
registration or an error, a <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggingLevelSettings" /> from
<see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration.VerbositySettings" /> indicating the current logging
verbosity of the log stream, and a <see cref="T:System.String" /> representing the directory and file prefix where
the log should be written to.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisterTraceLog(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions)">
<summary>
Registers a new log stream with this local tracing hub instance.
</summary>
<param name="logId">
Id of the log stream within the service, this should be globally unique. The <see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogId.LogName" />
should be a fully-qualified hierarchical name starting with your team's namespace.
This should be a string like "Microsoft.VisualStudio.Debugger.Concord.DispatcherDiagnosticsLog" where the
last segment is a friendly name of the log. It is important to use a fully-qualified hierarchical name even
when this log stream is also classified by a <see cref="T:Microsoft.ServiceHub.Framework.ServiceRpcDescriptor" />. This must be unique across
all log streams from all services and components; when a duplicate request is received the method will
return an error code in <see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration.Status" />.
</param>
<param name="options">Options describing how the tracing hub can treat this log.</param>
<returns>
A <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration" /> with the <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LogId" /> of the newly registered log, a status code in
<see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration.Status" /> indicating if the log was already registered or this is a new
registration or an error, a <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggingLevelSettings" /> from
<see cref="P:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration.VerbositySettings" /> indicating the current logging
verbosity of the log stream, and a <see cref="T:System.String" /> representing the directory and file prefix where
the log should be written to.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceHub.SubscribeToLogVerbosityAsync(System.IObserver{Microsoft.VisualStudio.RpcContracts.Logging.LogVerbosityState},Microsoft.VisualStudio.RpcContracts.Logging.LogId,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog.#ctor(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,Microsoft.VisualStudio.RpcContracts.Logging.LoggingLevelSettings)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog" /> class.
</summary>
<param name="id">
The fully-qualified id of the log stream. This should be globally unique and is immutable.
</param>
<param name="options">
The <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions" /> of the log stream, this specifies the options for the log stream
at registration. This is mutable.
</param>
<param name="verbositySettings">
The current verbosity being logged for this log stream, specified in <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggingLevelSettings" />.
</param>
</member>
<member name="P:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog.Id">
<summary>
Gets the fully-qualified id of the given log stream.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog.Options">
<summary>
Gets or sets the <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions" /> of the log stream.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog.VerbositySettings">
<summary>
Gets or sets the <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LoggingLevelSettings" /> being recorded for the log stream.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.LocalTraceHub.RegisteredLog.GetLogFilePathPrefix">
<summary>
Gets the prefix for the log file and ensures the directory exists.
</summary>
<returns>
<see cref="T:System.String" /> representing the path and file name to prepend to the log file being written to or null
if log directory could not be created.
</returns>
</member>
<member name="T:Microsoft.VisualStudio.LogHub.TraceConfiguration">
<summary>
This class will only provide log registration that is not capable of doing cross-process correlation. It is advised to only use this for services that run within the devenv process;
however it should work for all services if you want to use this now.
<para>
Check back for a future update of this library.
</para>
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LogHub.TraceConfiguration.LogSessionKeyEnvVarName">
<summary>
The name of an environment variable that contains a unique hash that is shared among all ServiceHub processes sharing the same root client
process.
</summary>
<remarks>
Note: This value must be kept in sync with the name in the DevCore repo.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.CreateTraceConfigurationInstanceAsync(Microsoft.ServiceHub.Framework.IServiceBroker,System.Threading.CancellationToken)">
<summary>
This will create an <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.ITraceHubRegistrationService" /> instance that can be used to call
<see cref="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Threading.CancellationToken)" />.
</summary>
<param name="serviceBroker">
The <see cref="T:Microsoft.ServiceHub.Framework.IServiceBroker" /> handle to access Visual Studio services.
The generated <see cref="T:Microsoft.VisualStudio.LogHub.TraceConfiguration" /> will take ownership of this object.
</param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken" />.</param>
<returns><see cref="T:System.Threading.Tasks.ValueTask`1" /> which may be awaited to retrieve the generated <see cref="T:Microsoft.VisualStudio.LogHub.TraceConfiguration" /></returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.CreateTraceConfigurationInstanceAsync(Microsoft.ServiceHub.Framework.IServiceBroker,System.Boolean,System.Threading.CancellationToken)">
<summary>
This will create an <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.ITraceHubRegistrationService" /> instance that can be used to call
<see cref="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Threading.CancellationToken)" />.
</summary>
<param name="serviceBroker">
The <see cref="T:Microsoft.ServiceHub.Framework.IServiceBroker" /> handle to access Visual Studio services.
This is used to access a non-local TraceHub.
</param>
<param name="ownsServiceBroker">
Indicates whether or not the resulting <see cref="T:Microsoft.VisualStudio.LogHub.TraceConfiguration" /> owns the IServiceBroker provided to it.
When set to <see langword="true" /> the returned <see cref="T:Microsoft.VisualStudio.LogHub.TraceConfiguration" /> will dispose of the provided
<see cref="T:Microsoft.ServiceHub.Framework.IServiceBroker" /> when <see cref="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.Dispose" /> is called.
When set to <see langword="false" /> the provided <see cref="T:Microsoft.ServiceHub.Framework.IServiceBroker" /> will not be automatically disposed.
</param>
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken" />.</param>
<returns><see cref="T:System.Threading.Tasks.ValueTask`1" /> which may be awaited to retrieve the generated <see cref="T:Microsoft.VisualStudio.LogHub.TraceConfiguration" /></returns>
</member>
<member name="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LogHub.TraceConfiguration.RegisterLogSourceAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Diagnostics.TraceSource,System.Boolean,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LogHub.TraceSourceListener.AddListener(System.Diagnostics.TraceSource,Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration)">
<summary>
Attaches an <see cref="T:Microsoft.VisualStudio.LogHub.ServiceLogTraceListener" /> to the provided <paramref name="traceSource" />.
</summary>
<param name="traceSource">The <see cref="T:System.Diagnostics.TraceSource" /> to attach to the listener to.</param>
<param name="logRegistration">
The <see cref="T:Microsoft.VisualStudio.RpcContracts.Logging.LogRegistration" /> result from
<see cref="M:Microsoft.VisualStudio.RpcContracts.Logging.ITraceHubRegistrationService.RegisterTraceLogAsync(Microsoft.VisualStudio.RpcContracts.Logging.LogId,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Threading.CancellationToken)" />.
</param>
<returns><see cref="T:System.Boolean" /> indicating if the operation succeeded. If true, listener is attached, false otherwise.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.AmbientContextStoreLoggerAdapter">
<summary>
Adds ambient context to an <see cref="T:Microsoft.VisualStudio.Settings.IStoreUpdateLogger" />. Ambient context is implemented via the <see cref="M:Microsoft.VisualStudio.Settings.Internal.AmbientContextStoreLoggerAdapter.SetContext(Microsoft.VisualStudio.Settings.StoreLogPropertyInstance[])" />
method, which allows the caller to supply properties which will be set on all events emitted within the current execution context until the returned
<see cref="T:System.IDisposable" /> is disposed. In other words, if two different threads or two different async flows are running concurrently, calling
<see cref="M:Microsoft.VisualStudio.Settings.Internal.AmbientContextStoreLoggerAdapter.SetContext(Microsoft.VisualStudio.Settings.StoreLogPropertyInstance[])" /> in one will not affect the logging of the other, even if the other emits log entries while the
<see cref="M:Microsoft.VisualStudio.Settings.Internal.AmbientContextStoreLoggerAdapter.SetContext(Microsoft.VisualStudio.Settings.StoreLogPropertyInstance[])" /> return value is active (not yet disposed).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.AmbientContextStoreLoggerAdapter.ReplaceOrCombineWithExistingProperty(Microsoft.VisualStudio.Settings.StoreLogPropertyInstance)">
<summary>
Given a new ambient property, returns a value that is either the new property or a combination of the old and new properties.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.AsyncLocalRestorer">
<summary>
Captures the current value of an <see cref="T:System.Threading.AsyncLocal`1" /> on construction and restores it on disposal.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.ExclusiveFileOpener">
<summary>
Maintains state to support looping while repeatedly attempting to open a file with exclusive access.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.FireAndForgetTaskTracker">
<summary>
Manages "fire and forget" tasks by providing a way to wait until all in-progress tasks have completed.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.HttpEscaper">
<summary>
Escapes strings that will be part of URLs so they won't interfere with URL processing
and won't be blocked as "dangerous".
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.ISettingsManagerResetUserData">
<summary>
Clear the settings store when it is initialized rather than download any new shared settings.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.Internal.ISettingsManagerResetUserData.ClearSettingsOnStoreInitialization">
<summary>
Clear the settings store when it is initialized rather than download any new shared settings.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.Internal.ISettingsManagerResetUserData.ClearSettings">
<summary>
List of settings to be cleared. Use this list to clear only a specific set of settings
as against deleting all the settings when <see cref="P:Microsoft.VisualStudio.Settings.Internal.ISettingsManagerResetUserData.ClearSettingsOnStoreInitialization" /> is true.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.ITraceLogger">
<summary>
Logs trace output.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.ITraceLogger.LogAsync(Microsoft.VisualStudio.Settings.Internal.TraceLogEntryType,System.String,System.Object[])">
<summary>
Logs a single message.
</summary>
<param name="entryType">The type of message, e.g. information or error.</param>
<param name="messageOrFormat">A format string (as one would pass to <see cref="M:System.String.Format(System.String,System.Object[])" />) or a literal string if <paramref name="args" /> is empty.</param>
<param name="args">Arguments corresponding to the fields in the format string.</param>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.JsonEqualityComparer">
<summary>
Compares objects based on their serialized JSON representation.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.JsonUtilities.TryGetContentOfJValue(System.Object,System.Object@)">
<summary>
If target is a JValue, gets its underlying .NET object and returns true; otherwise, returns false.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.JsonUtilities.GetPropertiesOfJsonObject(System.Object)">
<summary>
If target is <c>IEnumerable{KeyValuePair{string,JToken}}</c>, returns its contents; otherwise, returns null.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore">
<summary>
Provides exclusive access to a resource with a guarantee that higher-priority access requests are
serviced first and equal-priority requests are serviced in the order they are made.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.waiters">
<summary>
The requests currently waiting to acquire the resource, in the order they should be serviced. Lock this when accessing it.
Never acquire <see cref="F:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.accessLock" /> while holding a lock on <see cref="F:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.waiters" /> -- that could lead to a deadlock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.processingLock">
<summary>
This is used in <see cref="M:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.ProcessOneRequestAsync" /> to ensure that processing is serialized.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.WaitForAccessAsync(System.Int32,Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.LockType,System.Threading.CancellationToken)">
<summary>
Acquires the access lock. The caller must dispose the returned object to allow subsequent requests to succeed.
The caller may NOT schedule any UI thread tasks or make any RPC transitions to the UI thread while holding the
lock. Doing so risks deadlock.
</summary>
<param name="priority">Lower priority numbers are serviced first.</param>
<param name="cancellationToken">This is used to cancel the wait.</param>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before access is granted.</exception>
</member>
<member name="P:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.WaitingCount">
<summary>
Gets the number of access requests currently pending.
</summary>
<remarks>
Due to multi-threading, the value may be invalid by the time it's returned.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.ProcessOneRequestAsync">
<summary>
Wait for <see cref="F:Microsoft.VisualStudio.Settings.Internal.PrioritizedFifoSemaphore.accessLock" /> to be available and signal the next request in line as
completed.
</summary>
<remarks>
This method must always run on a background thread and not require the UI thread, to avoid
deadlocks.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.Serializer">
<summary>
Serializes simple, known types using TypeConverter (for perf) and everything else using Json.NET.
This helps avoid perf regressions during VS startup as long as only simple types are used for settings that
must be stored or retrieved during startup.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.Internal.Serializer.SpecialTypeIndicator">
<summary>
A JSON value will never begin with this so we can use it to distinguish JSON from specially serialized values.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.Internal.Serializer._specialTypes">
<summary>
Stores the Type and TypeConverter associated with each type name. In the static constructor, entries for
all the supported types will be added, but the TypeConverter values will be null. They will be changed
to non-null lazily as the TypeConverters are needed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.Serializer.Serialize(System.Object,System.Boolean)">
<summary>
Serialize the given object to a string.
</summary>
<param name="makeConsistentWithJsonRoundTripping">
Ensures that the return value, when passed to Deserialize&lt;object&gt;, will be returned as the same type, as long as the original object was
a simple type like int, float, etc.. If this parameter is false, the type may be converted (e.g. int will be converted to long, float to double).
Complex and user-defined types will always be returned from Deserialize&lt;object&gt; as <see cref="T:Newtonsoft.Json.Linq.JToken" />.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.Serializer.ConvertToJsonDotNetPreferredDeserializationType(System.Object)">
<summary>
Converts an object to the type that would result if serialized via Json.NET and then deserialized,
but without actually using Json.NET (for perf reasons). For example:
- short =&gt; long
- int =&gt; long
- ulong =&gt; long unless its value is &gt; long.MaxValue
- float =&gt; double
If the object cannot (or need not) be converted, the original object is returned.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.Serializer.GetConverter(System.String)">
<summary>
If <paramref name="typeName" /> is a supported type for TypeConverter-based serialization, ensures the
converter is in _specialTypes and returns it; otherwise, returns null.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.Serializer.TryCastWithUnboxing``1(System.Object,``0@)">
<summary>
Try to unbox a value and then cast it to the requested type. Simply using the cast operator on
a boxed value, e.g. "return (T)value," will throw InvalidCastException if T is not exactly
the same type as value. To avoid this (allowing scenarios like storing a byte which is then
queried as an int), we first "rebox" the value as type T and then apply the cast operator.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.Serializer.ConvertToEfficientRepresentation(System.String)">
<summary>
Convert a serialized string to the representation that's most efficient to deserialize.
For well-known primitive types, this is our internal serialization format rather than JSON.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.Serializer.SerializeAsDoubleOrDecimal(Newtonsoft.Json.Linq.JToken)">
<summary>
Re-serialize a <see cref="T:Newtonsoft.Json.Linq.JToken" /> in our internal format as double or decimal,
whichever provides more accuracy.
</summary>
<param name="token">A token that must be of type <see cref="F:Newtonsoft.Json.Linq.JTokenType.Float" /></param>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.SingleFileIndexedStorage">
<summary>
Allows reading and writing name-value string pairs in a file and implements IDisposable to hold the file open
until it's disposed.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.SingleFileIndexedStorage.Cache">
<summary>
We cache the globals, setting names, and dictionaries used to track file content changes because they are used
every time. We don't cache the indexed content because it can grow quite large and because callers access different
parts of it each time.
This is an inner class because it's closely tied to <see cref="T:Microsoft.VisualStudio.Settings.Internal.SingleFileIndexedStorage" /> -- it isn't useful in
any other context. It's internal rather than private so it can be tested independently.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.SingleFileIndexedStorage.#ctor(System.String,System.Boolean,Microsoft.VisualStudio.Settings.Internal.ITraceLogger,System.IDisposable)">
<summary>
WARNING: do not call this without first acquiring the storage lock (e.g. via
StorageAccess.Open / OpenAsync).
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.Internal.StorageAccess.PendingAccessRequests">
<summary>
Gets the number of access requests currently pending.
</summary>
<remarks>
Due to multi-threading, the value may be invalid by the time it's returned.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageAccess.Open(System.String,System.TimeSpan,System.Boolean)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<returns>An object which releases the storage access when disposed.</returns>
<exception cref="T:System.TimeoutException">Thrown if the timeout is exceeded before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageAccess.OpenAsync(System.String,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<returns>An object which releases the storage access when disposed.</returns>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageAccess.OpenAsync(System.String,System.Int32,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
</summary>
<returns>An object which releases the storage access when disposed.</returns>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageAccess.OpenAsync(System.String,System.TimeSpan,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<returns>An object which releases the storage access when disposed.</returns>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled or <paramref name="timeout" /> is exceeded before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageAccess.OpenAsync(System.String,System.Int32,System.TimeSpan,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<returns>An object which releases the storage access when disposed.</returns>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled or <paramref name="timeout" /> is exceeded before access is granted.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.StorageAccess.MultiDisposer">
<summary>
Guarantee disposal of all provided objects even if exceptions are thrown.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.PendingAccessRequests">
<summary>
Gets the number of access requests currently pending.
</summary>
<remarks>
Due to multi-threading, the value may be invalid by the time it's returned.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.Open(System.String,System.TimeSpan,System.Boolean)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<exception cref="T:System.TimeoutException">Thrown if the timeout is exceeded before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.Open(System.String,Microsoft.VisualStudio.Settings.Internal.ITraceLogger,System.TimeSpan,System.Boolean)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<exception cref="T:System.TimeoutException">Thrown if the timeout is exceeded before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.OpenAsync(System.String,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.OpenAsync(System.String,Microsoft.VisualStudio.Settings.Internal.ITraceLogger,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.OpenAsync(System.String,System.TimeSpan,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled or <paramref name="timeout" /> is exceeded before access is granted.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.StorageFactory`1.OpenAsync(System.String,Microsoft.VisualStudio.Settings.Internal.ITraceLogger,System.TimeSpan,System.Boolean,System.Threading.CancellationToken)">
<summary>
Acquires access to the storage file. The caller may NOT schedule any UI thread tasks or make
any RPC transitions to the UI thread after this call before disposing the storage object. Doing so risks deadlock.
Reentrant (RPC) calls that occur while the lock is held can also lead to deadlocks because the returned object
holds a semaphore that is only released on disposal.
</summary>
<exception cref="T:System.Threading.Tasks.TaskCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled or <paramref name="timeout" /> is exceeded before access is granted.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.TraceLogEntryType">
<remarks>
Update the the switch statement in <see cref="M:Microsoft.VisualStudio.Settings.TabDelimitingLogMessageFormatter.EnumValueName(Microsoft.VisualStudio.Settings.Internal.TraceLogEntryType)" />
whenever this enum's values change.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.XmlIndexedStorage">
<summary>
Allows reading and writing name-value string pairs in a file and implements IDisposable to hold the file open
until it's disposed.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Internal.XmlIndexedStorage.Cache">
<summary>
This class is immutable. To update it, we replace it with a new instance. This allows readers to operate
against a previous snapshot of the cache while the writer is updating it, without exposing them to race
conditions.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.XmlIndexedStorage.CreateInstanceAgainstCacheSnapshot(System.String,System.Boolean,Microsoft.VisualStudio.Settings.Internal.ITraceLogger)">
<summary>
If the static cache exists and is valid, create an XmlIndexedStorage against it. This allows read-only storage
objects to be created while writers are active.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Internal.XmlIndexedStorage.#ctor(System.String,System.Boolean,Microsoft.VisualStudio.Settings.Internal.ITraceLogger,System.IDisposable)">
<summary>
WARNING: do not call this without first acquiring the storage lock (e.g. via
StorageAccess.Open / OpenAsync).
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.PropertyChangedAsyncEventHandler">
<summary>
An event handler similar to <see cref="T:System.ComponentModel.PropertyChangedEventHandler" /> that returns a
<see cref="T:System.Threading.Tasks.Task" /> so the handler can be asynchronous.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.CollectionChangedAsyncEventHandler">
<summary>
A handler for changes to an <see cref="T:Microsoft.VisualStudio.Settings.ISettingsList" /> that returns a
<see cref="T:System.Threading.Tasks.Task" /> so it can be asynchronous.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.StoreUpdatedEventHandler">
<summary>
A handler for events raised by <see cref="E:Microsoft.VisualStudio.Settings.IAsyncStringStorage.StoreUpdated" /> that returns a
<see cref="T:System.Threading.Tasks.Task" /> so it can be asynchronous.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.AsyncEventHandler">
<summary>
A handler for async events that returns a <see cref="T:System.Threading.Tasks.Task" />
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.LockedStorageCreatorDelegate`1">
<summary>
A delegate that creates a stoage object, used by the constructor
of the storage factory.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.NonLockedStorageCreatorDelegate`1">
<summary>
A delegate that creates a storage object, used by the constructor
of the storage factory.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.CharSpanProcessorDelegate">
<summary>
Processes a character span.
</summary>
<returns>True if further processing should continue, false if processing should stop.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.DelegatingTraceLogger">
<summary>
Delegates calls to <see cref="M:Microsoft.VisualStudio.Settings.Internal.ITraceLogger.LogAsync(Microsoft.VisualStudio.Settings.Internal.TraceLogEntryType,System.String,System.Object[])" /> to one or more other loggers.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.DisposableComposite">
<summary>
<see cref="T:System.IDisposable" /> that simply disposes a collection of other <see cref="T:System.IDisposable" />s when it is disposed.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ExclusiveScheduler`1">
<summary>
Schedules tasks such that only one executes at a time and tasks requested while one is already
pending just piggyback on the pending task instead of resulting in new work.
</summary>
<typeparam name="T">The argument to be passed to the filter.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ExclusiveScheduler`1.#ctor(System.Func{System.Collections.Generic.IReadOnlyList{`0},System.Threading.Tasks.Task},System.Predicate{`0},System.Threading.SemaphoreSlim,System.TimeSpan)">
<param name="worker">The main worker task.</param>
<param name="filter">Performs a check to decide whether to invoke the worker task. May be null.</param>
<param name="semaphore">The semaphore to use for serializing worker tasks.</param>
<param name="batchingThreshold">Multiple calls to <see cref="M:Microsoft.VisualStudio.Settings.ExclusiveScheduler`1.DoWorkAsync(`0)" /> within this time span will be batched together.</param>
<remarks>
By passing a nonzero <see cref="F:Microsoft.VisualStudio.Settings.ExclusiveScheduler`1.batchingThreshold" />, you can enable multiple <see cref="M:Microsoft.VisualStudio.Settings.ExclusiveScheduler`1.DoWorkAsync(`0)" /> calls
to be batched into a single task as long as each is within a <see cref="F:Microsoft.VisualStudio.Settings.ExclusiveScheduler`1.batchingThreshold" /> time span of the
previous one. If you pass zero, multiple calls can still be batched but only into two or more tasks, not into
a single task.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Settings.FileCollectionSizeController.MaxFileBytesToKeep">
<summary>
Get maximum total size of log files allowed. This includes all logs, including the recent ones.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.FileCollectionSizeController.MaxFileCountToKeep">
<summary>
Get maximum number of log files allowed. This includes all logs, including the recent ones.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.FileCollectionSizeController.DeleteFilesIfNecessary(System.String)">
<summary>
Delete files from <paramref name="folder" />, oldest first (by last write time), as long as the oldest file is at least
<see cref="P:Microsoft.VisualStudio.Settings.FileCollectionSizeController.MinAgeToKeep" /> old and the total combined size is greater than <see cref="P:Microsoft.VisualStudio.Settings.FileCollectionSizeController.MinFileBytesToKeep" /> bytes.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.FileTraceLogger">
<summary>
Logs trace messages to a file.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.FileTraceLogger.LogArgs">
<summary>
Arguments for message logging.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.FileTraceLogger.InternalLogAsync(System.Threading.Tasks.Task)">
<remarks>
This method isn't thread safe (it mustn't run at the same time on two threads).
</remarks>
<param name="predecessor">The task representing the previous instance of this method.</param>
</member>
<member name="M:Microsoft.VisualStudio.Settings.FileTraceLogger.SerializeWithNewline(System.String)">
<summary>
Serializes a string into <see cref="F:Microsoft.VisualStudio.Settings.FileTraceLogger.byteBuffer" />. NOT THREAD SAFE.
</summary>
<remarks>
The reason we do the encoding this way instead of using StreamWriter is to avoid memory allocations.
</remarks>
<returns>The number of bytes in the result (may be less than <see cref="F:Microsoft.VisualStudio.Settings.FileTraceLogger.byteBuffer" />.Length</returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.FilteringStoreUpdateLogger">
<summary>
A decorator that can filter certain store updates so they aren't logged.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.GetValueResult">
<summary>
The result of an operation to retrieve a value from the settings store.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.GetValueResult.Success">
<summary>
The value was retrieved and converted to the specified type successfully.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.GetValueResult.Missing">
<summary>
The value is not present in the store.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.GetValueResult.Corrupt">
<summary>
The stored value could not be deserialized.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.GetValueResult.IncompatibleType">
<summary>
The deserialized value could not be converted to the specified type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.GetValueResult.ObsoleteFormat">
<summary>
The stored value is in a old serialization format that is no longer supported.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.GetValueResult.UnknownError">
<summary>
An unexpected error occurred.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IAsyncStringStorage">
<summary>
Stores and retrieves strings. Used as an abstraction over the settings service in the hub and unit-test mocks.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IAsyncStringStorage.SetAsync(Microsoft.VisualStudio.Settings.NamedVersionedString,System.Threading.CancellationToken)">
<summary>
Creates or changes a setting value. The value provided will replace the existing value only if <paramref name="value.Revision.Revision" />
is equal to the current revision of the value. The revision number increases each time the value is set.
</summary>
<returns>True if the value was replaced successfully, else false</returns>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IAsyncStringStorage.ClearAsync(System.Threading.CancellationToken)">
<summary>
Only used by tests. Does not fire change events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IAsyncStringStorage.GetStoreIdentityAsync(System.Threading.CancellationToken)">
<summary>
Gets the unique ID for the settings store, which is randomly generated whenever the store is recreated.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Settings.IAsyncStringStorage.StoreUpdated">
<summary>
Indicates the store has been updated, but what specific values may have changed is unknown. Clients maintaining cached copies
of data should refetch in this case.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IdleStateChangedEventArgs">
<summary>
Arguments for a change in the application's idle state.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.IdleStateChangedEventArgs.IsIdle">
<summary>
Whether the application is currently idle.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IdleStateChangedEventArgs.#ctor(System.Boolean)">
<summary>
Constructs a new <see cref="T:Microsoft.VisualStudio.Settings.IdleStateChangedEventArgs" /> object.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IFileCollectionSizeController">
<summary>
Controls the size of a collection of files (such as log files) by deleting older ones when necessary.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IFileCollectionSizeController.DeleteFilesIfNecessary(System.String)">
<summary>
Removes files from <paramref name="folder" /> if necessary to meet a size limitation.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.IListChanges`2.Deletions">
<summary>
The keys of items that were deleted. Order doesn't matter here. There may be items with the same key in both the <see cref="P:Microsoft.VisualStudio.Settings.IListChanges`2.Deletions" /> and
<see cref="P:Microsoft.VisualStudio.Settings.IListChanges`2.Additions" /> list. This represents a replacement. This property will not be null.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.IListChanges`2.Additions">
<summary>
Key/value pairs that were added, in chronological order (earliest at the beginning, latest at the end). There may be items with the same key in
both the <see cref="P:Microsoft.VisualStudio.Settings.IListChanges`2.Deletions" /> and <see cref="P:Microsoft.VisualStudio.Settings.IListChanges`2.Additions" /> list. This represents a replacement. This property will not be null.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IListMerger">
<summary>
Handles merging operations for setting collections.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IListMerger.ThreeWayMerge``2(System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IEqualityComparer{``0},System.Collections.Generic.IEqualityComparer{``1},Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger)">
<summary>
Given a baseline and two current lists, computes the merged result. The differences between the baseline and the current
lists are analyzed in terms of the following operations:
* Add a new item to the front (index 0)
* Remove an item from anywhere
This method derives an ordered list of operations that would transform the baseline into each of the current lists, combines
them, and applies them to the baseline to generate the result. The order of operations in "first" and "second" is maintained
within the list but not between lists; for example, if the baseline is {0}, first is {1,0} and second is {2,0}, the result
may be {1,2,0} or {2,1,0}. Both are equally valid.
</summary>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="first" />, <paramref name="second" />, or <paramref name="baseline" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IRemoteDefaultsStore.GetSettingDefault``1(System.String,System.String,``0)">
<summary>
Attempts to get a default setting override from the remote store, or defaultValue if it does not exist.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IRemoteDefaultsStore.CollectionExists(System.String)">
<summary>
Determines if a collection of overrides exists.
</summary>
<param name="collection"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IServiceHubClient">
<summary>
Wrapper over HubClient (the useful parts).
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingNameTranslator">
<summary>
Translates between private names and shared names. This allows an application to isolate its settings
from other apps by inserting a prefix or suffix.
</summary>
<remarks>
Members of this interface may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingNameTranslator.GetSharedNameFromPrivateName(System.String)">
<summary>
Given the name of a setting in the private store, returns the name by which the setting should
be identified in the shared and online stores.
</summary>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="privateName" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="privateName" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingNameTranslator.GetPrivateNameFromSharedName(System.String)">
<summary>
Given the name of a setting in the shared/online store, returns the name by which the setting should
be identified in the private store.
</summary>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="sharedName" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="sharedName" /> is empty.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingsChangeSuppressor">
<summary>
Allows temporary blocking of changes to settings that have been modified since
a certain version.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsChangeSuppressor.CurrentSettingsVersion">
<summary>
Gets a string which can later be passed in to SuppressChangesToSettingsNewerThan to block changes to
settings modified since the time this method was called.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsChangeSuppressor.SuppressChangesToSettingsNewerThan(System.String)">
<summary>
Blocks changes to settings modified since a given previous version. Any such changes will be silently
ignored. The suppression will continue until the return value is disposed. Only changes within the
same "cone" of execution will be affected; if someone else tries to change an affected setting in a
separate but concurrent async flow, that change will be allowed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsChangeSuppressor.CanChange(System.String)">
<summary>
Indicates whether the specified setting is allowed to change based on active suppressions.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingsList">
<summary>
A collection of settings. The collection is ordered but the server is order-agnostic. Items can be added
only at the front but removed from anywhere. The collection is preserved by the server in the order it was created.
Keys are treated as case insensitive.
</summary>
<remarks>
Members of this interface may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsList.AddToFrontAsync(System.String,System.Object,System.Object)">
<summary>
Adds a new element to the front of the list. If there is already an element with the same key in the
list, that one is deleted.
</summary>
<param name="value">An object which will be serialized and persisted as the new value.</param>
<param name="state">A caller-specified object that will be exposed on change events.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="key" /> is empty.</exception>
<exception cref="T:System.Runtime.Serialization.SerializationException">Thrown when the given object cannot be serialized.</exception>
<exception cref="T:System.IO.IOException">Thrown when the value cannot be persisted to the private store (for example, because the disk is full).</exception>
<exception cref="T:Microsoft.VisualStudio.Settings.SettingTooLargeException">Thrown when the serialized list exceeds the maximum allowed size.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsList.GetValueOrDefault``1(System.String,``0)">
<summary>
Returns the value corresponding to the given key. Returns <paramref name="defaultValue" /> if the value is
missing or not parsable as <typeparamref name="T" />.
</summary>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="key" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsList.ClearAsync(System.Object)">
<summary>
Removes all elements from the list.
</summary>
<param name="state">A caller-specified object that will be exposed on change events.</param>
<exception cref="T:System.IO.IOException">Thrown when the value cannot be persisted to the private store (for example, because the disk is full).</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsList.RemoveAsync(System.String,System.Object)">
<summary>
Removes a specific element from the list, or does nothing if the element is not found.
</summary>
<param name="state">A caller-specified object that will be exposed on change events.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="key" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="key" /> is empty.</exception>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="key" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="key" /> is empty.</exception>
<exception cref="T:System.IO.IOException">Thrown when the value cannot be persisted to the private store (for example, because the disk is full).</exception>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsList.Keys">
<summary>
Gets a snapshot (not a "live" collection) of the keys in the list.
</summary>
<exception>No exceptions may be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsList.RefreshContentFromStoreAsync">
<summary>
In case the underlying store has gotten out of sync with the in-memory list representation (which can happen if another
instance modifies the store, read the store content again and merge it with the in-memory list.
</summary>
<exception cref="T:System.TimeoutException">Thrown when the underlying store cannot be accessed within the timeout period.</exception>
<exception cref="T:System.IO.IOException">Thrown when an IO error occurs while reading the store.</exception>
</member>
<member name="E:Microsoft.VisualStudio.Settings.ISettingsList.CollectionChangedAsync">
<remarks>
This event handler may be invoked on any thread. When changes involve both deletions and additions (or replacements, which are modeled as
deletion+addition pairs) the additions will be applied first followed by the deletions.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingsManager">
<summary>
Stores and retrieves settings as well as handling synchronization between applications and machines.
</summary>
<remarks>
Members of this interface may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.SetValueAsync(System.String,System.Object,System.Boolean)">
<summary>
Sets the value of a property.
</summary>
<param name="value">An object which will be serialized and persisted as the new value.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="name" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="name" /> is empty.</exception>
<exception cref="T:System.Runtime.Serialization.SerializationException">Thrown when the given object cannot be serialized.</exception>
<exception cref="T:System.IO.IOException">Thrown when the value cannot be persisted to the private store (for example, because the disk is full).</exception>
<exception cref="T:Microsoft.VisualStudio.Settings.SettingTooLargeException">Thrown when the serialized object exceeds the maximum allowed size.</exception>
<exception cref="T:Microsoft.VisualStudio.Settings.SettingNameTooLongException">Thrown when <paramref name="name" /> exceeds the maximum allowed length.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.GetValueOrDefault``1(System.String,``0)">
<summary>
Returns the value of a property, or the default if the value is not set.
</summary>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="name" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="name" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.TryGetValue``1(System.String,``0@)">
<summary>
Attempts to reads a value from the store and returns the result of the operation.
</summary>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="name" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="name" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.GetOrCreateList(System.String,System.Boolean)">
<summary>
Retrieves an existing list or creates a new one if one with the specified name doesn't exist.
</summary>
<remarks>
The reason for a special-case "get or create" method for lists (instead of letting the client pass, say,
IEnumerable to SetValue to create a list) is to avoid a race condition between two clients in which both
are composing lists "offline" at the same time. That would require the client to merge the two list
contents (or discard one of the lists). By requiring clients to use this method instead, we ensure that
lists are always "live", never "offline", so as soon as one client starts adding content to the list,
that content will be visible to all other clients.
</remarks>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="name" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="name" /> is empty.</exception>
<exception cref="T:System.IO.IOException">Thrown when the empty list cannot be persisted to the private store (for example, because the disk is full).</exception>
<exception cref="T:Microsoft.VisualStudio.Settings.SettingNameTooLongException">Thrown when <paramref name="name" /> exceeds the maximum allowed length.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.NamesStartingWith(System.String)">
<summary>
Returns the names of all settings currently stored whose names begin with the given prefix (case insensitive).
</summary>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="prefix" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.GetSubset(System.String)">
<summary>
Gets a collection representing all settings whose names match the specified pattern (either an exact match
or a prefix match depending on whether the pattern ends in '*', both case-insensitive).
</summary>
<param name="namePattern">The full name of a setting or a prefix ending in '*'. Case-insensitive.</param>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="namePattern" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="namePattern" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.SetSharedStore(Microsoft.VisualStudio.Settings.IAsyncStringStorage)">
<summary>
Temporary internal helper method that will be removed after VS 14 Preview.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager.SetOnlineStore(Microsoft.VisualStudio.Settings.IAsyncStringStorage)">
<summary>
Temporary internal helper method that will be removed after VS 14 Preview.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManager2.StoreUpdateLogger">
<summary>
The logger used to record setting store updates.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManager2.GetRevision(System.String)">
<summary>
Returns the internal revision number of the given setting, or null if there is none.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingsManagerHost">
<summary>
Functionality provided by the application that creates an <see cref="T:Microsoft.VisualStudio.Settings.ISettingsManager" /> via
<see cref="M:Microsoft.VisualStudio.Settings.SettingsManagerFactory.CreateInstance(Microsoft.VisualStudio.Settings.ISettingsManagerHost)" />.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Settings.ISettingsManagerHost.IdleStateChanged">
<summary>
Raised when the host application goes idle or becomes active again, to enable reduced
resource usage during the idle period.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Settings.ISettingsManagerHost.HostShuttingDown">
<summary>
Raised when the host is about to shut down, to give the settings manager an opportunity
to release resources, finish or cancel async tasks, etc. The host should wait until
the async event handler is complete (e.g. using the
<see cref="M:Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEventAsync``1(System.Delegate,System.Object,``0)" /> extension
method) before continuing.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.AppInitCompletionTask">
<summary>
Optional task indicating the host is finished starting. The settings manager will defer
resource-intensive tasks until after this task completes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.NameTranslator">
<summary>
Optional translator between private and shared setting names.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.PrivateStorage">
<summary>
The backing store for private settings.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.Logger">
<summary>
A logger for error telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManagerHost.IsSharedOrRoamedSetting(System.String)">
<summary>
Determines whether a setting is private vs. shared/roamed.
</summary>
<param name="settingName">The name of the setting to test.</param>
<returns>False if the setting is private, else true.</returns>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.CollectionName">
<summary>
Gets the name of the settings collection to be addressed by this host. This is used to partition settings
based on host parameters like VS's /rootSuffix parameter.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.TelemetrySettings">
<summary>
Gets the serialized telemetry settings from the host, obtained via ITelemetrySession.SerializeSettings.
This may be null if the host has no telemetry session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost.AppDir">
<summary>
Gets the application directory
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManagerHost2.GetTelemetrySettingsAsync">
<summary>
Gets the serialized telemetry settings from the host, obtained via ITelemetrySession.SerializeSettings.
The result may be null if the host has no telemetry session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost3.RemoteDefaultsStore">
<summary>
The remote defaults store to override setting defaults.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost4.DurableHostIdentity">
<summary>
Additional process infomation.
Use to add context to the log, does not need to follow any specific format.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost4.StoreUpdateLogger">
<summary>
A logger for recording updates to setting stores. May be null.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost4.IsRoamingEnabledByDefault">
<summary>
Gets a value indicating whether roaming and sharing should be enabled when the "RoamingEnabled"
setting hasn't been persisted yet.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerHost5.IsRoamingAndSharingAllowed">
<summary>
If false, prevents roaming and sharing regardless of the value of the setting that normally controls it.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManagerInternal.Serialize(System.Object,System.Boolean)">
<summary>
See <see cref="M:Microsoft.VisualStudio.Settings.Internal.Serializer.Serialize(System.Object,System.Boolean)" /> for details.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManagerInternal.AddSettingsChangedHandler(Microsoft.VisualStudio.Settings.PropertyChangedAsyncEventHandler,System.String,System.Boolean,System.Boolean)">
<summary>
Add a handler for settings change events.
</summary>
<param name="namePattern">The full name of a setting or a prefix ending in '*'. Case-insensitive.</param>
<param name="useWeakReference">If true, the event handler will be held using a weak reference so that
the handler can be GC'd without needing to call RemoveSettingsChangedHandler.</param>
<param name="callHandlerBeforeCallingExternalHandlers">Call the provided handler before calling external handlers
to enable any custom processing (like a 3 way merge) of the the setting value before calling the external event handlers</param>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManagerInternal.GetEvent(Microsoft.VisualStudio.Settings.SettingsEvent)">
<summary>
Get traced event for the settings code marker.
</summary>
<param name="settingsEvent">Code marker to get the event for.</param>
<returns>The traced event for the code marker</returns>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsManagerInternal.SetValueAsync(System.String,System.Object,System.Boolean,System.Boolean,System.Action)">
<summary>
Sets the value of a property.
</summary>
<param name="value">An object which will be serialized and persisted as the new value.</param>
</member>
<member name="P:Microsoft.VisualStudio.Settings.ISettingsManagerInternal.CrossProcessLockFactory">
<summary>
Cross process lock factory
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingsService">
<summary>
The public API presented by the service module. Implementers should expect a separate instance to be created
for (at least) each client or (at most) each client request.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.InitAsync(System.String,System.Boolean,System.Int32,System.String,System.Guid,System.String)">
<summary>
Initializes the service. Must be called once and only once per client connection, before any of the other methods.
</summary>
<param name="collectionName">
The collection of settings to target. Each collection is isolated from the others. Typically a specific client instance
will target a single collection. In VS, the collection matches the /rootSuffix parameter of the client, facilitating
scenarios like isolation of the experimental hive for extension development. Must be non-null; empty string is OK.
</param>
<param name="isRoamingEnabled">Tells the service whether to synchronize with the user's online settings.</param>
<param name="roamingEnabledRevision">The client's stored revision number for the roaming enabled setting. This is used to avoid overwriting a more recently updated value.</param>
<param name="telemetrySettings">Output of ITelemetrySession.SerializeSettings from the client.</param>
<param name="clientId">The idenitifier of the client</param>
<param name="durableClientIdentity">The identifier of the client, i.e. a devenv instance</param>
<exception cref="T:System.InvalidOperationException">Thrown when this is called more than once.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.GetSettingAsync(System.String)">
<summary>
Retrieves a setting by name (case insensitive); returns null if the setting does not exist.
</summary>
<param name="settingName">The setting name (case insensitive)</param>
<exception cref="T:System.InvalidOperationException">Thrown when this is called before <see cref="M:Microsoft.VisualStudio.Settings.ISettingsService.InitAsync(System.String,System.Boolean,System.Int32,System.String,System.Guid,System.String)" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.PutSettingAsync(System.String,Microsoft.VisualStudio.Settings.ServiceUploadParameters)">
<summary>
Stores a new value for a setting.
</summary>
<param name="settingName">The setting name (case insensitive)</param>
<param name="settingInfo">The attributes of the setting to store, and the client ID</param>
<exception cref="T:System.InvalidOperationException">Thrown when this is called before <see cref="M:Microsoft.VisualStudio.Settings.ISettingsService.InitAsync(System.String,System.Boolean,System.Int32,System.String,System.Guid,System.String)" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.DeleteSettingAsync(System.String,System.Guid)">
<summary>
Deletes a setting.
</summary>
<param name="settingName">The setting name (case insensitive)</param>
<param name="clientId">The idenitifier of the client, included in the resulting change event</param>
<exception cref="T:System.InvalidOperationException">Thrown when this is called before <see cref="M:Microsoft.VisualStudio.Settings.ISettingsService.InitAsync(System.String,System.Boolean,System.Int32,System.String,System.Guid,System.String)" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.GetMultipleSettingsAsync(System.Int32)">
<summary>
Returns all setttings whose revision number is greater than <paramref name="modifiedAfter" />.
</summary>
<exception cref="T:System.InvalidOperationException">Thrown when this is called before <see cref="M:Microsoft.VisualStudio.Settings.ISettingsService.InitAsync(System.String,System.Boolean,System.Int32,System.String,System.Guid,System.String)" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.DeleteAllSettingsAsync(System.Guid)">
<summary>
Delete all settings in the collection.
</summary>
<param name="clientId">The idenitifier of the client, included in the resulting change event</param>
<exception cref="T:System.InvalidOperationException">Thrown when this is called before <see cref="M:Microsoft.VisualStudio.Settings.ISettingsService.InitAsync(System.String,System.Boolean,System.Int32,System.String,System.Guid,System.String)" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ISettingsService.GetStoreIdentityAsync">
<summary>
Gets the unique ID for the settings store, which is randomly generated whenever the store is recreated.
This allows clients to detect when the store has been deleted and their stored revision numbers are invalid.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ISettingsSubset">
<summary>
A subset of settings (either a single setting or all settings matching a wildcard pattern)
for which one can subscribe to change events.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Settings.ISettingsSubset.SettingChangedAsync">
<remarks>
This event handler may be invoked on any thread.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IStoreUpdateLogger">
<summary>
A logger for settings store update records.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingUpdateAsync(System.String,System.String,System.String,System.Boolean,System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})">
<summary>
Logs a record of an update to a specific setting store.
</summary>
<param name="storeName">The name of the store being updated, e.g. "private store".</param>
<param name="settingName">The full name of the setting, including an app name prefix like "Blend-" if the setting is not shared across apps.</param>
<param name="settingValue">The full serialized value of the setting.</param>
<param name="isMachineLocal">A value indicating whether the setting value content is specific to this machine.</param>
<param name="source">The source of the update, e.g. "ISettingsManager.SetValueAsync" or "shared store update", if known; otherwise null.</param>
<param name="onlineRevision">The Azure Devops revision number associated with this value, if known; otherwise null.</param>
<param name="localRevision">The local shared store revision number associated with this value, if known; otherwise null.</param>
<param name="listMergeBaseline">The content of the baseline that was used in the three-way merge which produced this list value, if any; otherwise null.</param>
<param name="isRoamingEnabled">A value indicating whether roaming is currently enabled on the machine.</param>
<param name="isRoamable">A value indicating whether the setting is registered for roaming across machines.</param>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingUpdateFailureAsync(System.Exception,System.String,System.String,System.String,System.Boolean,System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})">
<summary>
Logs a record of a failure to update a specific setting in a specific store.
</summary>
<inheritdoc cref="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingUpdateAsync(System.String,System.String,System.String,System.Boolean,System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})" />
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingUpdateFailureAsync(System.String,System.String,System.String,System.String,System.Boolean,System.Boolean,System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})">
<summary>
Logs a record of a failure to update a specific setting in a specific store.
</summary>
<inheritdoc cref="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingUpdateAsync(System.String,System.String,System.String,System.Boolean,System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})" />
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingDeletionAsync(System.String,System.String,System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})">
<summary>
Logs a record of a deletion in a specific setting store.
</summary>
<param name="storeName">The name of the store being updated, e.g. "private store".</param>
<param name="settingName">The full name of the setting being deleted, including an app name prefix like "Blend-" if the setting is not shared across apps.</param>
<param name="source">The source of the update, e.g. "ISettingsManager.SetValueAsync" or "shared store update".</param>
<param name="isRoamingEnabled">A value indicating whether roaming is currently enabled on the machine.</param>
<param name="isRoamable">A value indicating whether the setting is registered for roaming across machines.</param>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingDeletionFailureAsync(System.Exception,System.String,System.String,System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})">
<summary>
Logs a record of a failure to delete a specific setting from a specific store.
</summary>
<inheritdoc cref="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogSettingDeletionAsync(System.String,System.String,System.String,System.Nullable{System.Boolean},System.Nullable{System.Boolean})" />
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogClearSettingsAsync(System.String,System.String,System.Nullable{System.Boolean})">
<summary>
Logs a record of clearing all settings from a specific store.
</summary>
<param name="storeName">The name of the store being updated, e.g. "private store".</param>
<param name="source">The source of the update, e.g. "ISettingsManager.SetValueAsync" or "shared store update".</param>
<param name="isRoamingEnabled">A value indicating whether roaming is currently enabled on the machine.</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogClearSettingsFailureAsync(System.Exception,System.String,System.String,System.Nullable{System.Boolean})">
<summary>
Logs a record of a failure to clear a specific store.
</summary>
<inheritdoc cref="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.LogClearSettingsAsync(System.String,System.String,System.Nullable{System.Boolean})" />
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLogger.BeginNoisyOperation">
<summary>
Signals the beginning of an operation that may log a large number of updates. The logger may choose to handle the logging differently during this
operation, e.g. batching the updates for telemetry and posting a single event at the end.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IStoreUpdateLoggerWithAmbientContext">
<summary>
Adds ambient context to an <see cref="T:Microsoft.VisualStudio.Settings.IStoreUpdateLogger" />. Ambient context is implemented via the <see cref="M:Microsoft.VisualStudio.Settings.IStoreUpdateLoggerWithAmbientContext.SetContext(Microsoft.VisualStudio.Settings.StoreLogPropertyInstance[])" />
method, which allows the caller to supply properties which will be set on all events emitted within the current execution context until the returned
<see cref="T:System.IDisposable" /> is disposed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStoreUpdateLoggerWithAmbientContext.SetContext(Microsoft.VisualStudio.Settings.StoreLogPropertyInstance[])">
<summary>
Sets one or more ambient property values that will be added to all store logging (unless overridden by local parameters)
until the returned <see cref="T:System.IDisposable" /> is disposed. These apply only to the current execution context, so other
threads or async execution flows running concurrently, even against the same logger instance, will not be affected.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IStringStorage">
<summary>
Stores and retrieves strings. Used as an abstraction over the registry and unit-test mocks.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStringStorage.Get(System.String)">
<summary>
Returns the value and machine-local flag for the named item, or null if the item doesn't exist.
</summary>
<param name="name">The case-insensitive name of the setting.</param>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="name" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="name" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStringStorage.NamesStartingWith(System.String)">
<summary>
Returns the names of all settings currently stored whose names begin with the given prefix (case insensitive).
</summary>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="prefix" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="prefix" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStringStorage.SetAsync(System.String,Microsoft.VisualStudio.Settings.StringWithMachineLocalFlag,System.Action,System.Threading.CancellationToken)">
<summary>
Stores a value and machine-local flag under a specified name.
</summary>
<param name="name">The case-insensitive name of the setting.</param>
<param name="value">Setting value.</param>
<param name="onBeforePropertyChanged">Action to execute before raising property changed events.</param>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="name" /> or <paramref name="value" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="name" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStringStorage.DeleteIfExistsAsync(System.String,System.Threading.CancellationToken)">
<summary>
Deletes a stored value.
</summary>
<param name="name">The case-insensitive name of the setting.</param>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="name" /> is null.</exception>
<exception cref="T:System.ArgumentException">May be thrown when <paramref name="name" /> is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStringStorage.ClearAsync(System.Threading.CancellationToken)">
<summary>
Deletes all stored values.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Settings.IStringStorage.PropertyChangedAsync">
<summary>
Raised when a setting value is created, changes, or is deleted.
</summary>
<remarks>
This event handler may be invoked on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IStringStorage2.ForEachSettingNameStartingWith(System.String,Microsoft.VisualStudio.Settings.CharSpanProcessorDelegate)">
<summary>
Processes the name of each persisted setting that begins with <paramref name="prefix" />.
When the processor delegate returns false, processing stops.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.IUploaderDownloader">
<summary>
Handles uploads and downloads, including revision tracking.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IUploaderDownloader.UpdateSharedStoreFromPrivateStoreAsync(System.String,Microsoft.VisualStudio.Settings.IAsyncStringStorage)">
<summary>
Upload the specified setting from the private store to the shared store. If the local setting is missing, delete it from the shared store.
If the upload succeeds, the local revision number is updated. If the upload fails, a download from the shared store is triggered.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IUploaderDownloader.UploadNotYetUploadedSettingsAsync(System.Predicate{System.String},Microsoft.VisualStudio.Settings.IAsyncStringStorage)">
<summary>
Uploads all settings in the private store for which <paramref name="isUploadable" /> returns true.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IUploaderDownloader.GetHighestSyncedRevision">
<summary>
Returns the highest revision number in the private store.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IUploaderDownloader.UpdatePrivateStoreWithDownloadedValueAsync(System.String,Microsoft.VisualStudio.Settings.VersionedString,System.Boolean)">
<summary>
Given a serialized value downloaded from the shared store, stores it (along with the new revision number) in the private store. Lists are
merged if necessary. If <paramref name="value" /> is null, the setting will be deleted from the private store.
</summary>
<param name="name">The name of the setting</param>
<param name="value">The serialized value</param>
<param name="isFromNotification">Indicates whether this is being called as a result of a setting change notification from the shared store</param>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IUploaderDownloader.PrepareForInitialSyncWithSharedStore(Microsoft.VisualStudio.Settings.IAsyncStringStorage)">
<summary>
Performs preparation steps before the initial sync, if any are needed.
</summary>
<returns>A description of the prep work done, or null if none was performed.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Settings.IUploaderDownloader.ForgetRevisionNumbersAsync">
<summary>
Deletes all locally stored revision numbers.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.JsonStringDeserializationResult">
<summary>
The result of a call to <see cref="M:Microsoft.VisualStudio.Settings.IJsonStringSerializer.Deserialize(System.String,System.Int32)" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.JsonStringDeserializationResult.NextIndex">
<summary>
The index (in the Json) of the character following the deserialized string.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.JsonStrings">
<summary>
This will also be referenced from the settings service module.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.JsonStringSerializer.Parse(System.String,System.Int32,System.Text.StringBuilder)">
<summary>Parse a string encoded as JSON</summary>
<param name="json">The JSON, within which the string we want to parse is embedded</param>
<param name="i">The index of the character just after the starting quote</param>
<param name="builder">The buffer where the result will be stored</param>
<returns>The index of the closing quote character</returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.LazyDictionary`2">
<summary>
Presents an IDictionary facade over a dictionary with lazy values, so that retrieving a value
via the non-lazy facade automatically instantiates it.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.LimitedJsonSerializer.NullOrQuotedStringLength(System.String)">
<summary>
Returns the string length + 2 (for quotes), or the length of the null token, as a quick approximation of the serialized
Json length. The actual serialized length will be greater if there are characters that need escaping.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.LimitedJsonSerializer.FindDelimitedSpan(System.String,System.Char,System.Char,System.Int32@,System.Int32@)">
<summary>
Returns a pair of indices indicating the position of the delimiters.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.ListMerger">
<summary>
Handles merging operations for setting collections.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Settings.ListMerger.ListChanges`2.Deletions">
<summary>
The keys of items that were deleted. Order doesn't matter here. Deletions are always applied before additions.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.ListMerger.ListChanges`2.Additions">
<summary>
Key/value pairs that were added, in chronological order (earliest at the beginning, latest at the end). Additions
are always applied after deletions.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ListMerger.ThreeWayMerge``2(System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IEqualityComparer{``0},System.Collections.Generic.IEqualityComparer{``1},Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger)">
<summary>
Given a baseline and two current lists, computes the merged result. The differences between the baseline and the current
lists are analyzed in terms of the following operations:
* Add a new item to the front (index 0)
* Remove an item from anywhere
This method derives an ordered list of operations that would transform the baseline into each of the current lists, combines
them, and applies them to the baseline to generate the result. The order of operations in "first" and "second" is maintained
within the list but not between lists; for example, if the baseline is {0}, first is {1,0} and second is {2,0}, the result
may be {1,2,0} or {2,1,0}. Both are equally valid.
</summary>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="first" />, <paramref name="second" />, or <paramref name="baseline" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ListMerger.MergeChanges``2(Microsoft.VisualStudio.Settings.ListMerger.ListChanges{``0,``1},Microsoft.VisualStudio.Settings.ListMerger.ListChanges{``0,``1},System.Collections.Generic.IEqualityComparer{``0})">
<summary>
Merge two sets of changes into one, eliminating duplicates based on key values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ListMerger.GenerateTransformation``2(System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IEqualityComparer{``0},System.Collections.Generic.IEqualityComparer{``1})">
<summary>
Compares "original" and "target" lists to generate a list of changes that would transform the former into the latter.
The only operations supported are "add to front" and "delete (from anywhere)". Examples:
{x,y,z} -&gt; {a,b,c}: delete x, delete y, delete z, add c, add b, add a
{x,y,z} -&gt; {a,x,y}: delete z, add a
{x,y,z} -&gt; {x,y,a}: delete z, delete y, delete x, add a, add y, add x
{x,y,z} -&gt; {x,a,y,z}: delete x, add a, add x
{x,y,z} -&gt; {y,z,x}: delete z, delete y, add z, add y
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.ListMerger.Microsoft#VisualStudio#Settings#IListMerger#ThreeWayMerge``2(System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IReadOnlyList{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IEqualityComparer{``0},System.Collections.Generic.IEqualityComparer{``1},Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger)">
<summary>
Same as the static ThreeWayMerge method; provided to facilitate unit testing.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.NamedVersionedString">
<summary>
A setting value serialized as a string along with an associated name, version, and machine-local flag.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.NameTranslatingStoreUpdateLogger">
<summary>
IStoreUpdateLogger decorator that translates setting names from their "private store" representation
to their "shared store" representation so they will be consistent with logging from the settings
service module.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingNameTooLongException">
<summary>
This exception is thrown from <see cref="T:Microsoft.VisualStudio.Settings.ISettingsManager" /> when attempting to create a setting whose name
exceeds the length limit imposed by the roaming settings server (currently 128 characters).
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingsEvent">
<summary>
Settings event that may be fired by the settings service.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsEvent.None">
<summary>
No event. The default value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsEvent.SyncWithServerAndClientsEnded">
<summary>
Event that is fired by the roaming settings service when it ends sync with the server and the clients.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsEvent.ProcessSignInStateChangeEnded">
<summary>
Event that is fired by the roaming settings service when it ends processing sign in state change.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsEvent.SyncWithSharedStoreEnded">
<summary>
Event that is fired with sync with the shared store ends.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsEvent.UploadsComplete">
<summary>
Event that is fired when the uploads are complete.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsEvent.AllPendingUploadsCompletedOrFailed">
<summary>
Event that is fired when the settings are uploaded online.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingsEventArgs">
<summary>
Event args for a settings event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsEventArgs.#ctor(Microsoft.VisualStudio.Settings.SettingsEvent)">
<summary>
Initializes a new instance of <see cref="T:Microsoft.VisualStudio.Settings.SettingsEventArgs" /> class with the provided <paramref name="settingsEvent" />.
</summary>
<param name="settingsEvent">Settings event.</param>
</member>
<member name="P:Microsoft.VisualStudio.Settings.SettingsEventArgs.Event">
<summary>
Gets or sets the settings event.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs">
<summary>
<see cref="T:System.EventArgs" /> describing a change to an <see cref="T:Microsoft.VisualStudio.Settings.ISettingsList" />.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.Adding(System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Object)">
<summary>
Returns a <see cref="T:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs" /> describing the addition of a single item to a list.
</summary>
<exception>No exceptions may be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.Removing(System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Object)">
<summary>
Returns a <see cref="T:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs" /> describing the removal of a single item from a list.
</summary>
<exception>No exceptions may be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.Removing(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Object)">
<summary>
Returns a <see cref="T:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs" /> describing the removal of multiple items from a list.
</summary>
<exception>No exceptions may be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.Replacing(System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Object)">
<summary>
Returns a <see cref="T:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs" /> describing the replacement of a single item in a list.
</summary>
<exception>No exceptions may be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.Clearing(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Object)">
<summary>
Returns a <see cref="T:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs" /> describing the removal of all items from a list.
</summary>
<exception>No exceptions may be thrown.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingsListOperation">
<summary>
An operation performed on an <see cref="T:Microsoft.VisualStudio.Settings.ISettingsList" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsListOperation.AddItem">
<summary>
An item as been added to the list. The added item is specified by
<see cref="P:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.ItemAdded" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsListOperation.RemoveItem">
<summary>
An item has been removed from the list. The removed item is specified by
<see cref="P:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.ItemsRemoved" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsListOperation.RemoveMultipleItems">
<summary>
Multiple items have been removed from the list. The removed items are specified by
<see cref="P:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.ItemsRemoved" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsListOperation.ReplaceItem">
<summary>
An item has been replaced by a different item. The old item is specifed by
<see cref="P:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.ItemsRemoved" /> and its replacement by
<see cref="P:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.ItemAdded" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Settings.SettingsListOperation.Clear">
<summary>
All items have been removed from the list. The removed items are specified by
<see cref="P:Microsoft.VisualStudio.Settings.SettingsListChangedEventArgs.ItemsRemoved" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsListSynchronizer.OnStoreChangedDeferredAsync(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
<summary>
Invoke the store change handler at some future point but do not wait on it. Returns a completed no-op task.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsManager.SetSharedSettingsForPrivateStoreAsync">
<remarks>
This should ONLY be called via <see cref="F:Microsoft.VisualStudio.Settings.SettingsManager._storeUpdatedActionBlock" />, to ensure that execution
of this method doesn't overlap with itself.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsManager.OnPropertyChangedAsync(System.Object,System.ComponentModel.PropertyChangedEventArgs)">
<summary>
Called when something changes in the private or shared store, this method sends change events
to all the applicable listeners.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsManager.TryGetValue``1(System.String,``0@)">
<remarks>
This is a perf hot path. Because of this, we log success telemetry (and non-exception failure telemetry) asynchronously.
Exception telemetry is synchronous in case the exception (which is re-thrown) crashes the process (which would prevent
asynchronous telemetry from being logged).
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsManager.GetEvent(Microsoft.VisualStudio.Settings.SettingsEvent)">
<summary>
Get traced event for the settings code marker.
</summary>
<param name="settingsEvent">Code marker to get the event for.</param>
<returns>The traced event for the code marker</returns>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingsManagerFactory">
<summary>
A factory class that constructs an <see cref="T:Microsoft.VisualStudio.Settings.ISettingsManager" />.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.SettingsManagerFactory.CreateInstance(Microsoft.VisualStudio.Settings.ISettingsManagerHost)">
<summary>
Provides a settings manager for this application.
</summary>
<param name="host">The host of the settings manager. Must implement <see cref="T:Microsoft.VisualStudio.Settings.ISettingsManagerHost3" />.</param>
<exception>ArgumentNullException if <paramref name="host" /> is null.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SettingTooLargeException">
<summary>
This exception is thrown (from <see cref="T:Microsoft.VisualStudio.Settings.ISettingsManager" />, <see cref="T:Microsoft.VisualStudio.Settings.ISettingsList" />, etc.) when a setting value is given whose
serialized representation exceeds the size limit on the roaming settings server (currently 1MB).
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.StoreLogPropertyDefinition">
<summary>
A non-generic way to refer to a <see cref="T:Microsoft.VisualStudio.Settings.StoreLogPropertyDefinition`1" />, and also the place where the
well-known properties are defined.
</summary>
<remarks>
All well-known properties should have reference/nullable type parameters so the fallback logic for resolving ambient/
local property values will work correctly.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Settings.StoreLogPropertyDefinition.CanonicalRepresentation">
<summary>
A setting may be persisted in different formats as it flows through the pipeline. This is a representation of the
setting value that will remain constant regardless of the underlying serialization format.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.StoreLogPropertyDefinition`1">
<summary>
A store log property without a value assigned.
</summary>
<typeparam name="T">The property type</typeparam>
</member>
<member name="T:Microsoft.VisualStudio.Settings.NestingStringStoreLogPropertyDefinition">
<summary>
A store log property definition of type <see cref="T:System.String" /> that supports "nesting". See <see cref="T:Microsoft.VisualStudio.Settings.NestingStringStoreLogPropertyInstance" />
for details.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.StoreLogPropertyInstance">
<summary>
A non-generic way to refer to a <see cref="T:Microsoft.VisualStudio.Settings.StoreLogPropertyInstance`1" />.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.StoreLogPropertyInstance`1">
<summary>
A store log property with a specific value.
</summary>
<typeparam name="T">The property type</typeparam>
</member>
<member name="T:Microsoft.VisualStudio.Settings.NestingStringStoreLogPropertyInstance">
<summary>
A store log property of type <see cref="T:System.String" /> that supports "nesting" -- e.g. if ambient property value "foo"
is already set and a new ambient property value "bar" is set, the result will be "foo : bar".
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.StringWithMachineLocalFlag">
<summary>
A setting value serialized as a string along with a flag indicating whether the value
contains machine-local content.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Settings.SuppressingStoreLogPropertyInstance`1">
<summary>
An ambient store logging property instance that doesn't provide a value of its own but
suppresses any existing ambient value for the property.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.TelemetryAndTraceLogger">
<summary>
Sends log output to both the telemetry log and trace logs.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Telemetry.DummyLogger">
<summary>
A logger class that implements ITelemetryAndTraceLogger but does nothing
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger">
<summary>
Telemetry logging for the settings manager, provided by the host application.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger.LogFailure(Microsoft.VisualStudio.Settings.Telemetry.SettingLogContext)">
<summary>
Logs information about an operation failure.
</summary>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="result" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger.LogFailure(Microsoft.VisualStudio.Settings.Telemetry.SettingLogContext,System.Exception)">
<summary>
Logs information about an operation failure associated with a specific exception.
</summary>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="result" /> or <paramref name="ex" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger.LogSuccess(Microsoft.VisualStudio.Settings.Telemetry.SettingLogContext)">
<summary>
Logs information about a successful operation.
</summary>
<exception cref="T:System.ArgumentNullException">May be thrown when <paramref name="result" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Telemetry.LogHelpers.FormatSettingValue(System.String)">
<summary>
Formats a setting value for log output, e.g. truncating it if very long to avoid bloating the log files too much.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Telemetry.SettingAction">
<summary>
A setting-related action that can be logged via telemetry.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Telemetry.SettingLogContext">
<summary>
The context of a setting-related action for logging via telemetry.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Settings.Telemetry.SettingLogContext.#ctor(Microsoft.VisualStudio.Settings.Telemetry.SettingScenario,Microsoft.VisualStudio.Settings.Telemetry.SettingAction,Microsoft.VisualStudio.Settings.Telemetry.SettingType,System.String,System.String,System.Int32,System.String,System.String,System.String)">
<exception>No exceptions may be thrown.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Telemetry.SettingScenario">
<summary>
A high-level scenario type for a setting-related action logged via telemetry.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Settings.Telemetry.SettingType">
<summary>
The scope of the setting involved in a setting-related action logged via telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.UploaderDownloader.UpdatePrivateStoreWithDownloadedValueAsync(System.String,Microsoft.VisualStudio.Settings.VersionedString,System.Boolean)">
<param name="isFromNotification">Indicates whether this is being called as a result of a setting change notification from the shared store.</param>
</member>
<member name="T:Microsoft.VisualStudio.Settings.UploaderDownloaderParameters">
<summary>
Immutable parameters collection for IUploaderDownloader creation.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Settings.UploaderDownloaderParameters.#ctor(Microsoft.VisualStudio.Settings.ISettingsManager,Microsoft.VisualStudio.Settings.IStringStorage2,Microsoft.VisualStudio.Settings.Internal.Serializer,System.Func{System.String,System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{System.String,System.Object}}},Microsoft.VisualStudio.Settings.SerializeAndStoreValueAsyncDelegate,Microsoft.VisualStudio.Settings.AsyncLocalBool,System.Action{System.Threading.Tasks.Task},System.Func{System.ComponentModel.PropertyChangedEventArgs,System.Threading.Tasks.Task},Microsoft.VisualStudio.Settings.ICrossProcessLockFactory,Microsoft.VisualStudio.Settings.IStoreUpdateLoggerWithAmbientContext)">
<summary>
Constructs a new <see cref="T:Microsoft.VisualStudio.Settings.UploaderDownloaderParameters" /> instance.
</summary>
<param name="settingsManager">The settings manager</param>
<param name="privateStore">The local backing store</param>
<param name="serializer">A serializer for converting arbitrary types to/from string representation</param>
<param name="tryDeserializeAsList">Deserializes the given string as a list; returns null if deserialization fails</param>
<param name="serializeAndStoreLocalValueAsync">Serializes a value and stores it in the local backing store</param>
<param name="privateStoreChangesShouldTriggerUpload">Controls whether local store changes in the current async flow should trigger an upload</param>
<param name="registerTaskWithoutAwaiting">Registers a "fire and forget" task but does not wait on it</param>
<param name="fireLocalSettingChangeEventAsync">Fires an event to listeners as if the private store had signaled a setting change</param>
<param name="crossProcessLockFactory">Lock factory to acquire cross process locks</param>
</member>
<member name="T:Microsoft.VisualStudio.Settings.VersionedString">
<summary>
A setting value serialized as a string along with an associated version and machine-local flag.
</summary>
<remarks>
Members of this class may be called on any thread.
</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.CacheMetadataReader`2">
<summary>
A metadata reader that utilizes <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache" /> instance.
</summary>
<typeparam name="TKey">Type of the key used.</typeparam>
<typeparam name="TValue">Type of the value returned.</typeparam>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IKeyConverter`1">
<summary>
Interface to convert a key type to/from string.
</summary>
<typeparam name="TKey">The type fo the key to be used.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IKeyConverter`1.ConvertStringToKey(System.String)">
<summary>
Converts a string value to a key value to be used in metadata store.
</summary>
<param name="keyData">String presentation of the key.</param>
<returns>an instance of TKey</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IKeyConverter`1.ConvertKeyToString(`0)">
<summary>
Converts a key value to a string representation for to be used in the cache.
</summary>
<param name="key">Key value to convert.</param>
<returns>String representation of the key, default implementation calls ToString.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.#ctor(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.Diagnostics.TraceSource,Microsoft.VisualStudio.Threading.JoinableTaskFactory,System.Threading.CancellationToken)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2" /> class.
</summary>
<param name="identifier">Extension identifier.</param>
<param name="logger">A trace source to log with.</param>
<param name="joinableTaskFactory">
Optional joinable task factory instance to use for async operations.
</param>
<param name="disposalToken">
A token that should canceled when the process is trying to shutdown.
</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.FilePathsForUptodateCheck">
<inheritdoc />
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.Identifier">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.GetKeysAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.GetValueAsync(`0,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.ProcessMetadataFileAsync(System.String,System.Threading.CancellationToken)">
<summary>
Processes and returns a dictionary of Key/Value pairs.
</summary>
<param name="file">The file to process.</param>
<param name="cancellationToken">Token to signal cancellation.</param>
<returns>A dictionary of keys and values to be lazily created.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataReader`2.LoadMetadataMapWithOtherMap(System.Collections.Generic.Dictionary{`0,Microsoft.VisualStudio.Threading.AsyncLazy{`1}},System.Collections.Generic.Dictionary{`0,Microsoft.VisualStudio.Threading.AsyncLazy{`1}})">
<summary>
Attempts to load the passed in metadata into the existing passed in map.
If a collision is encountered, skip the key, but do not error.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServiceFactory`5">
<summary>
Lazily creates one instance of a store to be shared among different instances of a service.
</summary>
<typeparam name="TService">The service to be created by this factory.</typeparam>
<typeparam name="TStore">The store required to create the service.</typeparam>
<typeparam name="TReader">The reader required to create the service.</typeparam>
<typeparam name="TKey">The key type used in the store.</typeparam>
<typeparam name="TValue">The value type used in the store.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServiceFactory`5.CreateServiceAsync(Microsoft.VisualStudio.Threading.JoinableTaskFactory,System.Threading.CancellationToken)">
<summary>
Creates an instance of a service using a shared instance of a store.
</summary>
<returns>An instance of the service.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataStore`3.#ctor(System.Diagnostics.TraceSource,Microsoft.VisualStudio.Threading.JoinableTaskFactory,Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataStore`3" /> class that can be shared across brokered service instances.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataStore`3.DataTypeMoniker">
<summary>
Gets the data type moniker used for cache identification.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataStore`3.ConvertStringToKey(System.String)">
<summary>
Converts a string to a key type.
</summary>
<param name="keyData">Serialized version of the key data.</param>
<returns>an instance of TKey.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataStore`3.ConvertKeyToString(`1)">
<summary>
Converts a key value to a string representation for to be used in the cache.
</summary>
<param name="key">Key value to convert.</param>
<returns>String representation of the key, default implementation calls ToString.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataStoreTelemetry">
<summary>
Telemetry event and property names for metadata store related functionality.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry">
<summary>
Summary of cached extension data.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry.#ctor(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.Collections.Generic.IReadOnlyDictionary{System.String,System.DateTime},System.String,System.Collections.Generic.IReadOnlyCollection{System.String})">
<param name="extension">Extension identifier.</param>
<param name="timestamps">File paths and timestamps (in UTC) for cache validation.</param>
<param name="dataMoniker">Data type moniker.</param>
<param name="sectionNames">Collection of available section names.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry.Extension">
<summary>
Gets the extension identifier.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry.Timestamps">
<summary>
Gets the file paths and timestamp for cache validation (in UTC).
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry.DataMoniker">
<summary>
Gets the data type moniker (type of the data stored).
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry.SectionNames">
<summary>
Gets the available set of section names.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionLocationProvider">
<summary>
An interface for providing extension locations to metadata service.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionLocationProvider.IsExtensionValid(System.String)">
<summary>
Validates that the extension path is enabled and valid to use.
</summary>
<param name="extensionPath">Path to the extension root folder.</param>
<returns>true if extension can be used, false otherwise.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache">
<summary>
An interface for an optional cache to be utilized by extension metadata service.
</summary>
<remarks>
The cache is designed to rely on file last modified timestamps for entry validation.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache.GetExtensionsAsync(System.String,System.Threading.CancellationToken)">
<summary>
Gets the extensions for a given data moniker type.
</summary>
<param name="dataMoniker">Data type moniker.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>a collection of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionCacheEntry" /> for valid extensions or null if cache is not valid.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache.TryReadFromCacheAsync``1(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.String,System.String,System.Threading.CancellationToken)">
<summary>
Reads cached entry for a given extension, section name and data moniker.
</summary>
<typeparam name="T">Target type to use for serialization.</typeparam>
<param name="extension">Extension identifier.</param>
<param name="sectionName">Section name to query.</param>
<param name="dataMoniker">Data type moniker.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>a <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataCacheResult`1" /> instance.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache.InsertExtensionDataAsync``1(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.Collections.Generic.IEnumerable{System.String},System.String,System.Func{System.Threading.Tasks.Task{System.Collections.Generic.IReadOnlyDictionary{System.String,``0}}},System.Threading.CancellationToken)">
<summary>
Updates specified section entries for an extension.
</summary>
<typeparam name="T">Target type to use for serialization.</typeparam>
<param name="extension">Extension identifier.</param>
<param name="metadataFilePaths">File paths to utilize for time stamp checks in cache verification.</param>
<param name="dataMoniker">Data type moniker.</param>
<param name="updateFunction">Async update function to call if extension needs to be updated. Key represents the section name.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>return true if extension was up to date and no action was taken.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache.RemoveExtensionDataAsync(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.Threading.CancellationToken)">
<summary>
Removes all extension data for the given extension.
</summary>
<param name="extensionIdentificationToken">Extension identifier.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>Task indicating completion.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataObserver">
<summary>
An interface for observing metadata changes with async method.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataObserver.OnMetadataUpdatedAsync(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionMetadata,System.Threading.CancellationToken)">
<summary>
Notifies the observer of metadata changes in the sections they were subscribed for.
</summary>
<param name="updates">Set of updates to the metadata sections.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>Task indicating completion.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataObserver.OnCompletedAsync(System.Threading.CancellationToken)">
<summary>
Notifies the observer when no further changes are expected.
</summary>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>Task indicating completion.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IInternalExtensionMetadataService">
<summary>
An internal interface for more advanced subscription scenarios.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IInternalExtensionMetadataService.SubscribeAsync(System.Collections.Generic.IReadOnlyList{System.String},Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataObserver,System.Collections.Generic.IReadOnlyList{System.String},System.Threading.CancellationToken)">
<summary>
Subscribes to metadata changes for a list of sections.
</summary>
<param name="sectionNames">Metadata sections requested for update notifications.</param>
<param name="observer">Observer instance.</param>
<param name="dependentSections">List of sections that this observer should wait for.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>A disposable object to manage lifetime of the subscription.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataCacheResult`1">
<summary>
A result entry for extension metadata cache read.
</summary>
<param name="IsValid">Gets whether the result was read successfully and is valid.</param>
<param name="Data">Data that is read if IsValid is true.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataCacheResult`1.#ctor(System.Boolean,`0)">
<summary>
A result entry for extension metadata cache read.
</summary>
<param name="IsValid">Gets whether the result was read successfully and is valid.</param>
<param name="Data">Data that is read if IsValid is true.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataCacheResult`1.IsValid">
<summary>Gets whether the result was read successfully and is valid.</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataCacheResult`1.Data">
<summary>Data that is read if IsValid is true.</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.DisposableHolder`1">
<summary>
Hold a disposable so that it is possible to automatically dispose on error and also possible to hold onto the disposable after work is completed.
using(var holder = disposable.Hold())
{
//use disposable
// remove the value from the holder so that we can continue to use the disposable.
disposable=holder.TakeValue();
}.
</summary>
<typeparam name="TDisposable">A disposable class.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.DisposableHolder`1.GetValue">
<summary>
Access the disposable content while keeping it inside the holder and therefore subject to the current `using` scope.
</summary>
<returns>Held value.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.DisposableHolder`1.TakeValue">
<summary>
Release the disposable content from the holder so that a `using` on the current holder doesn't dispose it when going out of scope.
</summary>
<returns>Held value.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.DisposableHolder`1.Move">
<summary>
Move the disposable content to a new holder so that it can be assigned to a different `using` scope.
</summary>
<returns>New holder with the value of this holder.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionInstallInfo.#ctor(System.String,System.String,System.Boolean)">
<summary>
Creates an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionInstallStateNotification" />.
</summary>
<param name="identifier">The ID of the extension.</param>
<param name="installPath">The install path for the extension.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionInstallStateNotification">
<summary>
Container for a set of extension install updates or notifications
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.DuplicateStringResourceFoundError">
<summary>
Looks up a localized string similar to Error duplicate resource '{0}' found. Skipping adding the resource to the dictionary..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ExtensionMetadataFileMissing">
<summary>
Looks up a localized string similar to Requested extension metdata file '{0}' was not found..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ExtensionMetadataParseError">
<summary>
Looks up a localized string similar to Parsing file '{0}' for extension '{1}' failed..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ExtensionWatcher_DirectoryWatcherFailure">
<summary>
Looks up a localized string similar to Failed to register directory {0} for monitoring..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ExtensionWatcher_ExtensionsChanged">
<summary>
Looks up a localized string similar to Extensions have changed:\n\n{0}\n\nScheduling an extensions changed notification..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ExtensionWatcher_TriggerNotification">
<summary>
Looks up a localized string similar to Triggering extensions changed notification with extensions:\n\n{0}.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.MetadataStore_ExtensionProcessingError">
<summary>
Looks up a localized string similar to Failed to process extension {0}. Exception: {1}..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.MetadataStore_ExtensionProvidesKeys">
<summary>
Looks up a localized string similar to Extension installed to '{0}' provides metadata for the following keys: {1}.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ResourceDictionary_DuplicateKeyRemoved">
<summary>
Looks up a localized string similar to Extension providing a duplicate resource was uninstalled. Adding resource '{0}' from extension '{1}' to the '{2}' dictionary..
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceResources.ResourceIdNotFound">
<summary>
Looks up a localized string similar to The {0} '{1}' was not found..
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataReader.MinLazyLoadFileSize">
<summary>
The minimum size of a file for it be worth while to lazily load it's sections and require the file to be opened a second time instead of storing it in memory.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService">
<summary>
Client that communicates with the ServiceHub ServiceModule.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService.observers">
<summary>
A list of observers in dependency order.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService.#ctor(Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataStore,Microsoft.VisualStudio.Threading.JoinableTaskFactory)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService" /> class. Is owned by a single caller.
</summary>
<param name="store">Metadata store shared instance.</param>
<param name="joinableTaskFactory">A joinable task factory.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService.SubscribeForMetadataEventsAsync(System.Collections.Generic.IEnumerable{System.String},System.IObserver{Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionMetadata},System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService.NotifyObserverAsync(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService.ObserverRegistration,System.Collections.Generic.HashSet{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataService.ObserverRegistration},System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken},System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken},System.Threading.CancellationToken)">
<remarks>
Passing in null for addedExtensions indicates that the full set of available metadata should be sent.
</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataServiceFactory">
<summary>
This service provider is used to create instances of IExtensionMetadataService only and does not respond to
any other queries.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataStore">
<summary>
Manages JSON metadata stored in extensions.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataStore.CacheDataTypeMoniker">
<summary>
Data type moniker used for caching when storing JToken sections.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataStore.DataTypeMoniker">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionMetadataStore.ConvertStringToKey(System.String)">
<inheritdoc />
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionWatcher">
<summary>
This class will monitor the extension directories and fire the <see cref="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionWatcher.ExtensionsChanged" /> event when an extension is installed or uninstalled.
</summary>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.IDynamicMetadataStore`1.StoreChanged">
<summary>
An event to be fired whenever the store changes.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataReader`2">
<summary>
Interface to read extension metadata from an installed extension.
</summary>
<typeparam name="TKey">The type fo the key to be used for the reader.</typeparam>
<typeparam name="TValue">The type of the value of the metadta for the reader.</typeparam>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataReader`2.Identifier">
<summary>
Gets the identifier for this reader. This value doesn't have to be unique across readers.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataReader`2.FilePathsForUptodateCheck">
<summary>
Gets the full path to the files to be checked to verify if a cache is up-to-date.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataReader`2.GetKeysAsync(System.Threading.CancellationToken)">
<summary>
Enumerates the list of keys available through this reader.
</summary>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>List of keys that this reader exposes.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataReader`2.GetValueAsync(`0,System.Threading.CancellationToken)">
<summary>
Gets the data for a specified key.
</summary>
<param name="key">Key name.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>JToken object representing the metadata.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataStore.OnMetadataChangedAsync(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionsChangedEventArgs,System.Threading.CancellationToken)">
<summary>
Updates the store's internal state whenever extensions are added or removed.
</summary>
<param name="args">Contains the set of changed extensions.</param>
<param name="cancellationToken">A token to signal cancellation.</param>
<returns>The MetadataStoreChangedEventArgs resulting from the change of extensions.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataStore.FireStoreChangedEventAsync(System.Object,System.Boolean,System.Threading.CancellationToken)">
<summary>
Fires the StoreChangedEvent on the MetadataStore.
</summary>
<param name="eventArgs">The arguments to be passed to the StoreChanged event.
This should be the object returned from calling of <see cref="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IMetadataStore.OnMetadataChangedAsync(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionsChangedEventArgs,System.Threading.CancellationToken)" />.</param>
<param name="force">If true, the event should be fired regardless of any optimizations.</param>
<param name="cancellationToken">A token to signal cancellation.</param>
<returns>A task to track the async work.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory">
<summary>
A factory class for creating extension metadata services including extension.json data and localized string resources.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory.CreateExtensionMetadataServiceAsync(System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
<summary>
Creates an instance of extension metadata service.
</summary>
<param name="logger">TraceSource instance to utilize for logging.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of <see cref="T:Microsoft.VisualStudio.RpcContracts.Extensibility.IExtensionMetadataService" />.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory.CreateExtensionResourceDictionaryServiceAsync(System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
<summary>
Creates an instance of extension resource dictionary service.
</summary>
<param name="logger">TraceSource instance to utilize for logging.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of <see cref="T:Microsoft.VisualStudio.RpcContracts.Extensibility.IExtensionMetadataService" />.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory.Dispose">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory.CreateAsync(System.IObservable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionInstallStateNotification},System.Diagnostics.TraceSource,Microsoft.VisualStudio.Threading.JoinableTaskFactory,Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache,System.Threading.CancellationToken)">
<summary>
Creates an instance of metadata services factory.
</summary>
<param name="extensionInstallStateNotification">Observable instance providing extension paths to monitor.</param>
<param name="logger">TraceSource instance to utilize for logging.</param>
<param name="joinableTaskFactory">JoinableTaskFactory instance to utilize.</param>
<param name="extensionMetadataCache">Extension metadata cache instance to utilize, can be null if no cache is provided.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of <see cref="T:Microsoft.VisualStudio.RpcContracts.Extensibility.IExtensionMetadataService" />.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory.CreateAsync(System.IObservable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionInstallStateNotification},System.Diagnostics.TraceSource,Microsoft.VisualStudio.Threading.JoinableTaskFactory,System.Threading.CancellationToken)">
<summary>
Creates an instance of metadata services factory.
</summary>
<param name="extensionInstallStateNotification">Observable instance providing extension paths to monitor.</param>
<param name="logger">TraceSource instance to utilize for logging.</param>
<param name="joinableTaskFactory">JoinableTaskFactory instance to utilize.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of <see cref="T:Microsoft.VisualStudio.RpcContracts.Extensibility.IExtensionMetadataService" />.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MetadataServicesFactory.CreateTraceSourceAsync``1(Microsoft.ServiceHub.Framework.IServiceBroker,Microsoft.ServiceHub.Framework.ServiceMoniker,Microsoft.VisualStudio.RpcContracts.Logging.LoggerOptions,System.Threading.CancellationToken)">
<summary>
Creates an instance of TraceSource for a given service moniker and contract type.
</summary>
<param name="serviceBroker">Service broker instance to utilize.</param>
<param name="serviceMoniker">Service moniker this trace source is intended for.</param>
<param name="options">Optional trace source options.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of TraceSource instance that can be passed to factory methods.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionary">
<summary>
NOTE: This class is not thread-safe.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionary.resourceDictionary">
<summary>
A dictionary where the key is ExtensionResourceDictionaryItem.Key.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionary.removedDuplicateKeys">
<summary>
A dictionary of keys that have multiple extensions providing them. The values are a dictionary where the key is the extension identifier and the value is the value of the key for that extension.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryReader.#ctor(Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.Diagnostics.TraceSource,Microsoft.VisualStudio.Threading.JoinableTaskFactory,System.Globalization.CultureInfo,System.Threading.CancellationToken)">
<summary>
used to override the CurrentCulture from unit tests. For some reason QTest doesn't properly handle CultureInfo.CurrentCulture
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryService.#ctor(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryStore)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryService" /> class that is owned by a single caller.
</summary>
<param name="extensionResourceDictionaryStore">Metadata store shared instance.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryService.GetStringResourceAsync(System.Globalization.CultureInfo,System.String,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryStore.#ctor(System.Diagnostics.TraceSource,Microsoft.VisualStudio.Threading.JoinableTaskFactory,Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionMetadataCache,System.Globalization.CultureInfo)">
<summary>
Used by unit tests to work around unit test framework issue with QTest
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryStore.ConvertStringToKey(System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionResourceDictionaryStore.ConvertKeyToString(System.Globalization.CultureInfo)">
<inheritdoc />
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1">
<summary>
A base class to encapsulate extension part changes for a specific contract
</summary>
<typeparam name="TContract">RPC contract interface type.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.#ctor(Microsoft.Internal.VisualStudio.Extensibility.Framework.IProxyCache,System.Diagnostics.TraceSource)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1" /> class.
</summary>
<param name="proxyManager">Parent proxy manager to utilize for querying proxies.</param>
<param name="logger">Optional logger instance to utilize.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Microsoft#Internal#VisualStudio#Extensibility#Framework#IExtensionPartListener#ContractType">
<inheritdoc />
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Microsoft#Internal#VisualStudio#Extensibility#Framework#IExtensionPartListener#ActivationTask">
<inheritdoc />
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Logger">
<summary>
Gets the logger instance to utilize.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Activate">
<summary>
Activates the collection by completing IExtensionPartListener.ActivationTask.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Dispose">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.IsPartMetadataApplicable(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration)">
<summary>
Checks if part metadata is applicable for this collection, base implementation will always return true.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Microsoft#Internal#VisualStudio#Extensibility#Framework#IExtensionPartListener#IsPartApplicable(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Microsoft#Internal#VisualStudio#Extensibility#Framework#IExtensionPartListener#OnExtensionPartsAddedAsync(System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration},System.Boolean)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Microsoft#Internal#VisualStudio#Extensibility#Framework#IExtensionPartListener#OnExtensionPartsRemovedAsync(System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration})">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Microsoft#Internal#VisualStudio#Extensibility#Framework#IExtensionPartListener#OnServiceAvailabilityChangedAsync(Microsoft.ServiceHub.Framework.ServiceMoniker)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollectionBase`1.Dispose(System.Boolean)">
<summary>
Disposes the object.
</summary>
<param name="disposing">true if managed resources should be disposed.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1">
<summary>
A class to encapsulate extension part changes for a specific contract.
</summary>
<typeparam name="TContract">RPC contract interface type.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1.#ctor(Microsoft.Internal.VisualStudio.Extensibility.Framework.IProxyCache,System.Func{System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata},System.Boolean},System.Diagnostics.TraceSource)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1" /> class.
</summary>
<param name="proxyManager">Parent proxy manager to utilize for querying proxies.</param>
<param name="filterCallback">Optional filter callback method.</param>
<param name="logger">Optional logger instance to utilize.</param>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1.PartsAdded">
<inheritdoc />
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1.PartsRemoved">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1.GetCurrentSet">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1.Dispose(System.Boolean)">
<summary>
Disposes the object.
</summary>
<param name="disposing">true if managed resources should be disposed.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartLazyCollection`1">
<summary>
A class to encapsulate extension part changes for a specific contract and allows parts to be created lazily.
</summary>
<typeparam name="TContract">RPC contract interface type.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartLazyCollection`1.#ctor(Microsoft.Internal.VisualStudio.Extensibility.Framework.IProxyCache,System.Diagnostics.TraceSource)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartCollection`1" /> class.
</summary>
<param name="proxyManager">Parent proxy manager to utilize for querying proxies.</param>
<param name="logger">Optional logger instance to utilize.</param>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartLazyCollection`1.PartsAdded">
<inheritdoc />
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartLazyCollection`1.PartsRemoved">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartLazyCollection`1.Dispose(System.Boolean)">
<summary>
Disposes the object.
</summary>
<param name="disposing">true if managed resources should be disposed.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager">
<summary>
A manager to get components out of Gladstone extensions and managing their lifecycle.
</summary>
<remarks>
This implementation is meant to be used by IDE hosts, components should query the IDE per the supported
extensibility mechanism and not create their own instance.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.#ctor(Microsoft.ServiceHub.Framework.IServiceBroker)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager" /> class.
</summary>
<param name="serviceBroker">Service broker instance to utilize.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.GetCollectionAsync``1(System.Func{System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata},System.Boolean},System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.GetCollectionAsync``1(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.GetLazyCollectionAsync``1(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.Dispose">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.Microsoft#Internal#VisualStudio#Extensibility#Framework#IProxyCache#GetProxyAsync``1(Microsoft.ServiceHub.Framework.ServiceMoniker,Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener,System.Threading.CancellationToken)">
<summary>
Gets a proxy for an extension part, this could be a proxy that was already created that has multiple contracts.
</summary>
<typeparam name="T">Proxy interface type (could be the contract type or an aggregated interface).</typeparam>
<param name="serviceMoniker">Service moniker to query for.</param>
<param name="extension">Extension that owns the service.</param>
<param name="listener">Listener instance that made the request, this will be used to notify the listener when service availability changes.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of T or null if proxy could not be created or does not exist.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.Microsoft#Internal#VisualStudio#Extensibility#Framework#IProxyCache#RemoveListener(Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener)">
<summary>
Removes a previously registered listener, this could be raised when the listener is disposed externally.
</summary>
<param name="listener">Listener to be removed.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartManager.GetServiceDescriptor(Microsoft.ServiceHub.Framework.ServiceMoniker,Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken)">
<summary>
Gets the service descriptor for a given service moniker.
</summary>
<param name="serviceMoniker">Service moniker to generate the descriptor for.</param>
<param name="extension">Optional extension that the part belongs to.</param>
<returns>an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor" />.</returns>
<remarks>Any custom implementation returned here must inherit from <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor" /> and call its base types
to allow for contract interface aggregation to work correctly.</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata">
<summary>
A record for an extension part.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata.#ctor(System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},Newtonsoft.Json.Linq.JObject)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata" /> class.
</summary>
<param name="name">Name of the attribute type.</param>
<param name="values">Key value pair for named arguments.</param>
<param name="valuesObject">JObject representing the values dictionary.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata.#ctor(System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata" /> class.
</summary>
<param name="name">Name of the attribute type.</param>
<param name="values">Key value pair for named arguments.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata.Name">
<summary>
Gets the name of the attribute that contributes to metadata.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata.Values">
<summary>
Gets the dictionary of named arguments.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata.TryDeserializeAs``1(``0@)">
<summary>
Tries to deserialize metadata in to the given type.
</summary>
<typeparam name="T">Type to deserialize in to.</typeparam>
<param name="value">Value to be returned if deserialization is successful.</param>
<returns>true if metadata was deserialized successfully, false otherwise.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadataConverter">
<summary>
A JSON converter to read extension part metadata from parts.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadataConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata,System.Boolean,Newtonsoft.Json.JsonSerializer)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadataConverter.WriteJson(Newtonsoft.Json.JsonWriter,Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata,Newtonsoft.Json.JsonSerializer)">
<inheritdoc />
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadataObserver.listeners">
<summary>
Set of listeners that were registered and buffered registrations for them if there is any.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1">
<summary>
An extension part record combining metadata and an async method to get the part.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.#ctor(System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata},Microsoft.VisualStudio.Threading.AsyncLazy{`0},Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,System.String)">
<summary>
Creates an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1" />.
</summary>
<param name="metadata">Metadata for the extension part.</param>
<param name="partFactory">AsycLazy to utilize to get the extension part instance.</param>
<param name="owningExtension">The extension identifier that extension part belongs to.</param>
<param name="uniqueIdentifier">A unique identifier for the extension part that can be used as a dictionary key.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.Metadata">
<summary>
Gets the metadata for the extension part.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.Extension">
<summary>
Gets the extension identifier for the part if there is one available.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.UniqueIdentifier">
<summary>
Gets the unique part identifier. This can be used as a persistent opaque value across sessions.
</summary>
<remarks>The value will remaining consistent as long as part is backed by the same service and contract.</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.GetPartAsync">
<summary>
Gets the part instance.
</summary>
<returns></returns>
<exception cref="T:System.InvalidOperationException">Thrown when part is no longer valid.</exception>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.TryGetMetadata``1(System.String,``0@)">
<summary>
Tries to get the given metadata name as T.
</summary>
<typeparam name="TMetadata">Type to deserialize metadata value to.</typeparam>
<param name="metadataName">Name of the metadata to search for.</param>
<param name="value">Value to be returned.</param>
<returns>true if metadata was found and deserialization was successful.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord`1.Invalidate">
<summary>
Invalidates a record so that part factory can't be executed anymore and an instance will only be returned
if it was already created.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration">
<summary>
A record for an extension part.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration.#ctor(System.String,Microsoft.ServiceHub.Framework.ServiceMoniker,System.Collections.Generic.IReadOnlyList{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration" /> class.
</summary>
<param name="contract">Contract type, usually the full type name of the RPC contract interface.</param>
<param name="serviceMoniker">Service moniker that should be used to retrieve this part.</param>
<param name="metadata">Metadata collection assigned to the extension part.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration.Contract">
<summary>
Gets the contract type, usually the full type name of the RPC contract interface.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration.ServiceMoniker">
<summary>
Gets the service moniker that should be used to retrieve this part.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration.OwnerIdentifier">
<summary>
Gets or sets the key value to identify this registration.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration.Metadata">
<summary>
Gets the optional metadata assigned to the extension part.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration.GetExtensionPartDescriptor(Microsoft.ServiceHub.Framework.ServiceMoniker,System.Int32)">
<summary>
Gets an instance of <see cref="T:Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor" /> that has the correct properties set.
</summary>
<param name="serviceMoniker">Service moniker to return the descriptor for.</param>
<param name="version">Version of the descriptor, only supported value is 1 for now.</param>
<returns>an instance of <see cref="T:Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor" />.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor">
<summary>
A service descriptor for extension parts that is utilized by <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor" />.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor.CreateJsonRpcHook">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor.#ctor(Microsoft.ServiceHub.Framework.ServiceMoniker,Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor.Formatters,Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor.MessageDelimiters)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor" /> class.
</summary>
<param name="serviceMoniker">Service moniker this descriptor is intended for.</param>
<param name="formatter">Message formatter to utilize.</param>
<param name="delimiter">Message delimiter to utilize.</param>
<inheritdoc cref="M:Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor.#ctor(Microsoft.ServiceHub.Framework.ServiceMoniker,System.Type,Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor.Formatters,Microsoft.ServiceHub.Framework.ServiceJsonRpcDescriptor.MessageDelimiters)" />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor.#ctor(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor" /> class.
</summary>
<param name="descriptor">Descriptor to copy from.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor.WithCreateJsonRpcHook(Microsoft.VisualStudio.RpcContracts.IHookableServiceJsonRpcDescriptor.CreateJsonRpcDelegate)">
<inheritdoc />
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartServiceJsonRpcDescriptor.Clone">
<inheritdoc />
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartCollection`1">
<summary>
An interface for being notified of collection changes on extension parts implementing a certain contract.
</summary>
<typeparam name="T">Contract type that extension parts would implement.</typeparam>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartCollection`1.PartsAdded">
<summary>
An event that is raised when new parts are added to the collection.
</summary>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartCollection`1.PartsRemoved">
<summary>
An event that is raised when parts are removed from the collection due to service availability changes.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartCollection`1.Activate">
<summary>
Starts the monitoring of the collection, this method should be called once the event handlers are registered.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartCollection`1.GetCurrentSet">
<summary>
Returns an immutable collection of current set of parts available.
</summary>
<returns>an immutable collection of objects that implement contract type.</returns>
<remarks>This collection is only meant for short term use and should not be stored across invocations.</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartsChangedEventArgs`1">
<summary>
Event arguments for extension parts added or removed events.
</summary>
<typeparam name="T">Type of the contract that is being monitored.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartsChangedEventArgs`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartsChangedEventArgs`1" /> class.
</summary>
<param name="parts">Extension parts that are listed in this event.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartsChangedEventArgs`1.Parts">
<summary>
Gets the parts that are listed in this event (could be added or removed parts).
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartLazyCollection`1">
<summary>
An interface for being notified of collection changes on extension parts implementing a certain contract.
</summary>
<typeparam name="T">Contract type that extension parts would implement.</typeparam>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartLazyCollection`1.PartsAdded">
<summary>
An event that is raised when new parts are added to the collection.
</summary>
</member>
<member name="E:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartLazyCollection`1.PartsRemoved">
<summary>
An event that is raised when parts are removed from the collection due to service availability changes.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartLazyCollection`1.Activate">
<summary>
Starts the monitoring of the collection, this method should be called once the event handlers are registered.
</summary>
<remarks>
The first invocation of PartsAdded after this method will contain all the currently available parts and will
be delayed until initial discovery of parts is completed. This initial discovery may happen from a cache generated
during an earlier session of Visual Studio.
</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.LazyExtensionPartsChangedEventArgs`1">
<summary>
Event arguments for extension parts added or removed events.
</summary>
<typeparam name="T">Type of the contract that is being monitored.</typeparam>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.LazyExtensionPartsChangedEventArgs`1.#ctor(System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRecord{`0}})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.LazyExtensionPartsChangedEventArgs`1" /> class.
</summary>
<param name="parts">Extension parts that are listed in this event.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.LazyExtensionPartsChangedEventArgs`1.Parts">
<summary>
Gets the parts that are listed in this event (could be added or removed parts).
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener">
<summary>
An internally interface for a component that listens for extension part changes.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener.ContractType">
<summary>
Gets the contract type that this instance is intended for.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener.ActivationTask">
<summary>
Gets a task that is completed when the listener is activated and parts can be forwarded to it.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener.IsPartApplicable(Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration)">
<summary>
Returns true if an extension part is applicable for this listener based on its metadata.
</summary>
<param name="part">Extension part metadata to filter against.</param>
<returns>true if part is applicable and should be included in the collection, false otherwise.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener.OnExtensionPartsAddedAsync(System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration},System.Boolean)">
<summary>
This method is called when new extension parts should be added to the collection. All parts are guarenteed to be for the contract type specified on the interface.
</summary>
<param name="parts">Extension parts to be added.</param>
<param name="force">Set to true if notification should be sent for an empty list as well.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener.OnExtensionPartsRemovedAsync(System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartRegistration})">
<summary>
This method is called when new extension parts should be added to the collection.
</summary>
<param name="parts">Extension parts to be removed.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener.OnServiceAvailabilityChangedAsync(Microsoft.ServiceHub.Framework.ServiceMoniker)">
<summary>
Called when service availability is changed for the provided service moniker, which should prompt for a requery of the proxy.
</summary>
<param name="serviceMoniker">Service moniker that was impacted.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartManager">
<summary>
An interface for components to retreieve extension parts that implement a contract by brokered services.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartManager.GetCollectionAsync``1(System.Func{System.Collections.Generic.IEnumerable{Microsoft.Internal.VisualStudio.Extensibility.Framework.ExtensionPartMetadata},System.Boolean},System.Threading.CancellationToken)">
<summary>
Gets a dynamic collection of parts that implement a certain contract in new extensibility framework.
</summary>
<typeparam name="TContract">RPC contract interface type.</typeparam>
<param name="filterCallback">Filtering condition based on metadata in extension.json.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an enumeration of proxies that implement contract interface.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartManager.GetCollectionAsync``1(System.Threading.CancellationToken)">
<summary>
Gets a dynamic collection of parts that implement a certain contract in new extensibility framework.
</summary>
<typeparam name="TContract">RPC contract interface type.</typeparam>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an enumeration of proxies that implement contract interface.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartManager.GetLazyCollectionAsync``1(System.Threading.CancellationToken)">
<summary>
Gets a dynamic collection of part metadata and a lazy constructor that implement a certain contract in new extensibility framework.
</summary>
<typeparam name="TContract">RPC contract interface type.</typeparam>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an enumeration of proxies that implement contract interface.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IProxyCache">
<summary>
An internal interface for a listener to get a proxy from a central cache manager.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IProxyCache.GetProxyAsync``1(Microsoft.ServiceHub.Framework.ServiceMoniker,Microsoft.VisualStudio.RpcContracts.Extensibility.ExtensionIdentificationToken,Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener,System.Threading.CancellationToken)">
<summary>
Gets a proxy for an extension part, this could be a proxy that was already created that has multiple contracts.
</summary>
<typeparam name="T">Proxy interface type (could be the contract type or an aggregated interface).</typeparam>
<param name="serviceMoniker">Service moniker to query for.</param>
<param name="extension">Extension that service belongs to.</param>
<param name="listener">Listener instance that made the request, this will be used to notify the listener when service availability changes.</param>
<param name="cancellationToken">Cancellation token to monitor.</param>
<returns>an instance of T or null if proxy could not be created or does not exist.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.IProxyCache.RemoveListener(Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartListener)">
<summary>
Removes a previously registered listener, this could be raised when the listener is disposed externally.
</summary>
<param name="listener">Listener to be removed.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.SExtensionPartManager">
<summary>
A service contract interface to retrieve an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.IExtensionPartManager" /> through service provider.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionContext">
<summary>
Implements support for tracking component versions within a single context (could be a process, extension boundary).
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionContext.TryRegisterComponent(System.Guid,System.String)">
<summary>
Registers a component identifier to be owned by this context, requests for component version
increments can only be done for registered identifiers.
</summary>
<param name="componentIdentifier">Component identifier.</param>
<param name="displayName">Component display name for diagnostics.</param>
<returns>true if registration was successful, false if component was already registered.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionContext.GetCurrent">
<summary>
Gets the header that represents the current state of the context including any pending updated state.
</summary>
<returns>an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader" /> that represents the current state.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionContext.TryIncrementVersion(System.Guid)">
<summary>
Increments the version of the specified component.
</summary>
<param name="componentIdentifier">Component identifier to update.</param>
<returns>true if successful, false if component was not registered or a conflict occured.</returns>
<remarks>While a component version can be incremented from different threads, the version change will be reflected immediately
on all subsequent calls.</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionContext.GetCurrentWithUpdates(Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader)">
<summary>
Gets an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader" /> that represents the state change from previous instance to current instance.
</summary>
<param name="previousHeader">Previous header to calculate delta from.</param>
<returns>an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader" /> that represents the new state and any pending message updates.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionContext.ExecuteRequestAsync``1(Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader,System.Func{System.Threading.Tasks.ValueTask{``0}})">
<summary>
Executes the provided body of work in the correct context order based on the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader" /> passed in.
</summary>
<typeparam name="T">Type that the async work to be executed returns.</typeparam>
<param name="header">Header that describes the version requirements.</param>
<param name="func">Asynchronous work to be executed.</param>
<returns>a Task that represents the completion of the work passed in.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader">
<summary>
A serializable header for Json-RPC messages that describes version requests.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader.TopLevelPropertyName">
<summary>
Gets the suggested Json-Rpc top level property name for storing version header.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader.Empty">
<summary>
Gets the instance of empty version header.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader.#ctor(System.Collections.Generic.IReadOnlyCollection{Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader" /> class.
</summary>
<param name="requests">List of message version requirements.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader.Requests">
<summary>
Gets the list of message version requests for a message to be processed in order.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader.CreateUpdateTo(Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader)">
<summary>
Create a header that contains updates to the versions specified in new header.
</summary>
<param name="newHeader">New header to calculate updates to.</param>
<returns>a new instance with update requests.</returns>
<remarks>This method will throw if either instance contains existing update requests.</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest">
<summary>
Describes a version request for message context in a <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionHeader" />.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest.#ctor(System.Guid,System.Int64,System.Nullable{System.Int64},System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest" /> class.
</summary>
<param name="id">The short form context identifier.</param>
<param name="requiredVersion">Required version to process the message.</param>
<param name="updatedVersion">Optional new version to update context once message is processed.</param>
<param name="displayName">Optional display name for the component, can be passed in initial requests for diagnostics.</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest.Id">
<summary>
Gets the short form context identifier.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest.RequiredVersion">
<summary>
Gets the version required for this context before processing the message.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest.UpdatedVersion">
<summary>
Gets the optional version to be updated once message is processed.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest.DisplayName">
<summary>
Gets the optional context display name for diagnostic purposes.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest.WithoutDisplayName">
<summary>
Gets the same instance without display name value.
</summary>
<returns>an instance of <see cref="T:Microsoft.Internal.VisualStudio.Extensibility.Framework.MessageVersionRequest" />.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.FeatureFlags.IFeatureFlagsInternal">
<summary>
Provides internal feature flag information.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.FeatureFlags.IFeatureFlagsInternal.FeatureNameToPath(System.String)">
<summary>
Gets the internal collection path of the feature flag.
</summary>
<param name="featureName">The name of the feature.</param>
<returns>The path of the feature flag.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.FeatureFlags.IFeatureFlagsInternal.TryGetFlagVisibilityProperties(System.String,System.String,Microsoft.VisualStudio.FeatureFlags.FeatureFlag@)">
<summary>
Gets information about a feature flag used to determine if a flag is visible in the UI.
</summary>
<remarks>
The returned <see cref="T:Microsoft.VisualStudio.FeatureFlags.FeatureFlag" /> will only have those properties required for determining visibility.
All other properties will be <c>null</c>.
</remarks>
<param name="featureName">The name of the feature.</param>
<param name="featureCollectionPath">The internal collection path of the feature.</param>
<param name="info">The retrieved information if the return value is true.</param>
<returns>Whether the information was retrieved successfully.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.FeatureFlags.IFeatureFlagsInternal.IsFeatureEnabledWithoutCustomization(System.String,System.String,System.Boolean)">
<summary>
This is used to determine the value of a feature without user customization.
This will check for feature flag value in remote store, if not found, falls back
to default store.
</summary>
<param name="featureName">
A string of the form ^(\w+\.)+\w+$, following a pattern of [AreaPath].[Name]
</param>
<param name="featureCollectionPath">The internal collection path of the feature.</param>
<param name="defaultValue">
The value returned if there is an error processing the
request or if the flag cannot be located.
</param>
<returns>
The default value or current state of the feature flag if there is an error
processing the request
</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.HashHelpers.GetStableHashCode(System.String,System.Boolean)">
<summary>
Returns a hash code for <paramref name="s" />. The reason to use this over String.GetHashCode()
is to guarantee consistent results across product versions.
</summary>
<param name="s">String to hash</param>
<param name="ignoreCase">Indicates whether to generate a case-insensitive hash using Char.ToLowerInvariant</param>
<returns>The hash code</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Shell.Validate">
<summary>
This type is forwarded from MS.VS.Shell.xx.dll
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotNull(System.Object,System.String)">
<summary>
Throws an ArgumentNullException if the given object is null.
</summary>
<param name="o">Object to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNull(System.Object,System.String)">
<summary>
Throws an InvalidOperationException if the given object is not null.
</summary>
<param name="o">Object to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotEmpty(System.String,System.String)">
<summary>
Throws an ArgumentException if the given string is empty.
</summary>
<param name="s">String to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotEmpty(System.Guid,System.String)">
<summary>
Throws an ArgumentException if the given guid is empty.
</summary>
<param name="g">Guid to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotWhiteSpace(System.String,System.String)">
<summary>
Throws an ArgumentException if the given string contains only whitespaces.
</summary>
<param name="s">String to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotNullAndNotEmpty(System.String,System.String)">
<summary>
Validates that the given string is both non-null and non-empty.
</summary>
<param name="s">String to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotNullAndNotWhiteSpace(System.String,System.String)">
<summary>
Validates that the given string is both non-null and does not contain only whitespaces.
</summary>
<param name="s">String to test</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsEqual(System.Int32,System.Int32,System.String)">
<summary>
Validate that the value of the specified argument has an expected value
</summary>
<param name="value">Value to test</param>
<param name="expectedValue">The exepected value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsEqual(System.UInt32,System.UInt32,System.String)">
<summary>
Validate that the value of the specified argument has an expected value
</summary>
<param name="value">Value to test</param>
<param name="expectedValue">The exepected value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotEqual(System.Int32,System.Int32,System.String)">
<summary>
Validate that the value of the specified argument does not have a specific value
</summary>
<param name="value">Value to test</param>
<param name="unexpectedValue">The unexepected value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNotEqual(System.UInt32,System.UInt32,System.String)">
<summary>
Validate that the value of the specified argument does not have a specific value
</summary>
<param name="value">Value to test</param>
<param name="unexpectedValue">The unexepected value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsWithinRange(System.Int32,System.Int32,System.Int32,System.String)">
<summary>
Validates that a value is within the specified range.
</summary>
<param name="value">Value to test</param>
<param name="min">Minimum valid value</param>
<param name="max">Maximum valid value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsWithinRange(System.Int64,System.Int64,System.Int64,System.String)">
<summary>
Validates that a value is within the specified range.
</summary>
<param name="value">Value to test</param>
<param name="min">Minimum valid value</param>
<param name="max">Maximum valid value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsWithinRange(System.UInt32,System.UInt32,System.UInt32,System.String)">
<summary>
Validates that a value is within the specified range.
</summary>
<param name="value">Value to test</param>
<param name="min">Minimum valid value</param>
<param name="max">Maximum valid value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsWithinRange(System.UInt64,System.UInt64,System.UInt64,System.String)">
<summary>
Validates that a value is within the specified range.
</summary>
<param name="value">Value to test</param>
<param name="min">Minimum valid value</param>
<param name="max">Maximum valid value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsWithinRange(System.Double,System.Double,System.Double,System.String)">
<summary>
Validates that a value is within the specified range.
</summary>
<param name="value">Value to test</param>
<param name="min">Minimum valid value</param>
<param name="max">Maximum valid value</param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Shell.Validate.IsNormalized(System.String,System.String)">
<summary>
Asserts that the given path is normalized. An exception is thrown
exception if the path isn't normalized.
</summary>
<param name="path"></param>
<param name="paramName">
<paramref name="paramName" /> parameter used if an exception is raised
</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2">
<summary>
This is a generic replacement for the non-generic System.Collections.Specialized.HybridDictionary.
</summary>
<typeparam name="TKey">The Key type for the dictionary</typeparam>
<typeparam name="TValue">The Value type for the dictionary</typeparam>
<remarks>
This type is forwarded from MS.VS.Shell.xx.dll
</remarks>
</member>
<member name="F:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2._inner">
<summary>
Either null, a List or a Dictionary
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2._keyComparer">
<summary>
Comparer for the keys
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.cutoverPoint">
<summary>
The cut-over point from List to Dictionary.
When the collection is empty, _inner is null.
From 1 to 32 elements, _inner is a List (geometric growth)
When the 33rd element is added, _inner upgrades to a Dictionary.
The upgrade to Dictionary is one-way (i.e. Even if the count drops
below 33 again, _inner remains a Dictionary), unless you call <see cref="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Clear" />
or remove all items in which case it will become a List on the next insertion.
A power of 2 was chosen to avoid excess space in the List at the cut-over
point.
</summary>
<remarks>internal for unit testing.</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Add(`0,`1)">
<summary>
Adds a key/value pair to the collection
</summary>
<param name="key">Key to add</param>
<param name="value">Value to add</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.ContainsKey(`0)">
<summary>
Determines if the given key is in the collection
</summary>
<param name="key">Key to search for</param>
<returns>True if the key is in the collection, false otherwise</returns>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Keys">
<summary>
Returns the keys in the collection.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Remove(`0)">
<summary>
Removes the value indexed by the given key from the collection.
</summary>
<param name="key">Key to remove</param>
<returns>True if the key was removed, false otherwise</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.TryGetValue(`0,`1@)">
<summary>
Attempts to return the value corresponding to a key.
</summary>
<param name="key">Key to search for</param>
<param name="value">Value corresponding to <paramref name="key" />, or null if
<paramref name="key" /> is not in the collection.
</param>
<returns>True if <paramref name="key" /> is in the collection, false otherwise</returns>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Values">
<summary>
Returns the values in the collection.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Item(`0)">
<summary>
Gets or sets the value associated with a key
</summary>
<param name="key">Key of the value to get or set</param>
<returns>Value corresponding to the key</returns>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.AsDictionary">
<summary>
Try cast to a Dictionary
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.List">
<summary>
Unconditionally cast to a List. Callers should always check for null and try <see cref="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.AsDictionary" /> before calling
this to avoid a runtime <see cref="T:System.InvalidCastException" />
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.IndexOfKey(System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{`0,`1}},`0)">
<summary>
Find the index of a key in the given list. The search is linear.
</summary>
<param name="list">The list to search.</param>
<param name="key">The key to search for.</param>
<returns>The index of <paramref name="key" /> in <paramref name="list" /> or -1 if it is not found.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
<summary>
Adds a key/value pair to the collection
</summary>
<param name="item">Key/value pair to add</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Clear">
<summary>
Removes all of the key/value pairs from the collection
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
<summary>
Determines if a key/value pair is in the collection
</summary>
<param name="item">Key/value pair to add</param>
<returns>True if the key/value pair is in the collection, false otherwise</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
<summary>
Copies the key/value pairs in the collection to an array
</summary>
<param name="array">Array to which the key/value pairs are copied</param>
<param name="arrayIndex">The zero-based index in <paramref name="array" />
at which copying begins.
</param>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Count">
<summary>
Returns the number of items in the collection
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.IsReadOnly">
<summary>
Determines if the collection is read-only.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
<summary>
Removes the given key/value pair from the collection
</summary>
<param name="item">Key/value pair to remove</param>
<returns>True if the key/value pair is removed, false otherwise</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.GetEnumerator">
<summary>
Returns an enumerator for the collection
</summary>
<returns>Collection enumerator</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.HybridDictionary`2.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator for the collection
</summary>
<returns>Collection enumerator</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2">
<summary>
Dictionary that does not prevent values from being garbage collected. This class is designed to be thread-safe.
</summary>
<remarks>
Example scenarios:
- Store a weak mapping of keys to values where the values can be collected to prevent leaking memory.
PERF: Like a regular dictionary, the collection will never reduce its underlying size. This dictionary may be more
prone to get overly capacious. If profiles show that is a problem, Scavenge could shrink the underlying dictionary
based on some policy, e.g., if the number of remaining entries are less than 10% of the size of the underlying dictionary.
</remarks>
<typeparam name="K">Type of key</typeparam>
<typeparam name="V">Type of value</typeparam>
</member>
<member name="F:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.backingDictionary">
<summary>
Backing dictionary
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.capacity">
<summary>
Improvised capacity. See comment in item setter.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.#ctor">
<summary>
Constructor for a collection using the default key comparer
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Constructor taking a specified comparer for the keys
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Count">
<summary>
Count of entries.
Some entries may represent keys or values that have already been garbage collected.
To clean these out call <see cref="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Scavenge" />.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Item(`0)">
<summary>
Gets or sets the entry whose key equates to the specified key.
Getter throws KeyNotFoundException if key is not found.
Setter adds entry if key is not found.
</summary>
<remarks>
If we find the entry but its target is null, we take the opportunity
to remove the entry, as if the GC had done it.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Contains(`0)">
<summary>
Whether there is a key present with the specified key
</summary>
<remarks>
As usual, don't just call Contained as the wrapped value may be null.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.TryGetValue(`0,`1@)">
<summary>
Attempts to get the value for the provided key.
Returns true if the key is found, otherwise false.
</summary>
<remarks>
If we find the entry but its target is null, we take the opportunity
to remove the entry, as if the GC had done it.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Remove(`0)">
<summary>
Removes an entry with the specified key.
Returns true if found, false otherwise.
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Values">
<summary>
Gets non GC'd values. Does not perform a scavenge
</summary>
</member>
<member name="P:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Keys">
<summary>
Gets all keys. Even ones that have expired.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.GetAliveKeys">
<summary>
Gets only the keys that are not expired.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.EnumerateAndScavenge(System.Collections.Generic.List{`0})">
<summary>
Remove any entries from the dictionary that represent keys or values
that have been garbage collected.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.PlatformUI.WeakValueDictionary`2.Clear">
<summary>
Empty the collection
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode">
<summary>
Data types used by <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer" /> when it is necessary to serialize type information in
addition to the data itself.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer">
<summary>
Implements deserialization code for data serialized with <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer" /> and provides
abstract method to implement support for complex data, uniquely identifiable objects and references.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.DeserializeWithTypeInfo(MessagePack.MessagePackReader@,MessagePack.MessagePackSerializerOptions)">
<summary>
This method implements MessagePack deserialization for Remote UI data and returns the type of the field being
deserialized when the field is one of <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> or a nullable of one of such types.
</summary>
<param name="reader">MessagePack reader from which the data is read.</param>
<param name="options">MessagePack options to be used for deserialization.</param>
<returns>
The deserialized value and its type information.
A value of <see langword="null" /> is returned as type if the field is of a complex type (a type not listed in
<see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" />).
In case of nullable fields of one of the types listed in <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" />, the corresponding
<see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> is returned.
</returns>
<exception cref="T:System.IO.InvalidDataException">When the <paramref name="reader" /> contains invalid data.</exception>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.Serialize(MessagePack.MessagePackWriter@,System.Object,MessagePack.MessagePackSerializerOptions)">
<inheritdoc />
<remarks>
This method is not supported.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.ConvertToType(Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode)">
<summary>
Converts a <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> to its corresponding <see cref="T:System.Type" />.
</summary>
<param name="typeCode">The <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> to convert.</param>
<returns>The <see cref="T:System.Type" /> corresponding to <paramref name="typeCode" />.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.GetEmptyObject">
<summary>
This method is invoked by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.DeserializeWithTypeInfo(MessagePack.MessagePackReader@,MessagePack.MessagePackSerializerOptions)" /> to retrieve an empty object (an object with no properties).
</summary>
<returns>An object with no properties.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.GetReference(Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectId,MessagePack.MessagePackSerializerOptions)">
<summary>
This method is invoked by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.DeserializeWithTypeInfo(MessagePack.MessagePackReader@,MessagePack.MessagePackSerializerOptions)" /> to retrieve the uniquely identifiable object <paramref name="id" />.
</summary>
<param name="id">The identifier of the uniquely identifable object to return.</param>
<param name="options">MessagePack options being used for deserialization.</param>
<returns>The uniquely identifiable object.</returns>
<remarks>
If the object cannot be found, the implementer can either throw an exception or return a placeholder.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.DeserializeComplexObject(MessagePack.MessagePackReader@,MessagePack.MessagePackSerializerOptions)">
<summary>
This method is invoked by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer.DeserializeWithTypeInfo(MessagePack.MessagePackReader@,MessagePack.MessagePackSerializerOptions)" /> to have a complex object deserialized.
</summary>
<param name="reader">MessagePack reader from which the data is read.</param>
<param name="options">MessagePack options to be used for deserialization.</param>
<returns>The uniquely identifiable object.</returns>
<remarks>
The implementer can throw <see cref="T:System.NotSupportedException" /> if the current implementation of
<see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.Deserializer" /> doesn't support reading complex objects.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.RemoteUIUtilities.NextServerVersion(Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectVersion)">
<summary>
Gets the <see cref="T:Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectVersion" /> corresponding to the next server change.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.RemoteUIUtilities.NextClientVersion(Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectVersion)">
<summary>
Gets the <see cref="T:Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectVersion" /> corresponding to the next client change.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.RemoteUIUtilities.Next(Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectId)">
<summary>
Generates the next <see cref="T:Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectId" /> value.
</summary>
<returns>The next <see cref="T:Microsoft.VisualStudio.RpcContracts.RemoteUI.ObjectId" /> value.</returns>
</member>
<member name="T:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode">
<summary>
Values used as keys for Map objects in the Remote UI data serialization format.
</summary>
<remarks>
The Remote UI data serialization format is compatible with MessagePack but requires special handling when
deserializing Map objects.
The keys of Map objects are one of the <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode" /> values. This allows Remote UI data to be
serialized in valid MessagePack format (without custom extensions), that can be automatically converted to json,
while retaining additional metadata (e.g., unique object ids and data type information).
</remarks>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Reference">
<summary>
A reference to a uniquely identifiable object. The value of this field is the object identifier.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Id">
<summary>
The identifier of a uniquely identifiable object.
</summary>
<remarks>
This field is followed by either an <see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Object" /> or <see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Command" /> field.
</remarks>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Object">
<summary>
The value of the object serialized as a MessagePack map.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Command">
<summary>
The value of the object serialized as a MessagePack map. <see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Command" /> is used instead of
<see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Object" /> when the value is a command.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Char">
<summary>
A <see langword="char" /> value. The value of this field is encoded as a <see cref="T:System.UInt16" />.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Nullable">
<summary>
A nullable value. The value of this field is serialized as non-nullable Remote UI data.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.NullableType">
<summary>
An empty nullable and its type information. The value of this field is a <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> or Nil.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.CollectionType">
<summary>
The type of the entries of an <see cref="T:System.Collections.ICollection" />, <see cref="T:System.Collections.Generic.ICollection`1" /> or
<see cref="T:System.Collections.Generic.ICollection`1" /> of nullable values.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.LocalDateTime">
<summary>
A <see cref="T:System.DateTime" /> value of kind <see cref="F:System.DateTimeKind.Local" />. The value is serialized after being
converted to Utc.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.UnspecifiedDateTime">
<summary>
A <see cref="T:System.DateTime" /> value of kind <see cref="F:System.DateTimeKind.Unspecified" />.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Version">
<summary>
The version of the object.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Collection">
<summary>
The value of the object serialized as a MessagePack array.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.NullableCollection">
<summary>
The value of the object serialized as a MessagePack array. <see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.NullableCollection" /> is used instead of
<see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Collection" /> when the value implements <see cref="T:System.Collections.Generic.ICollection`1" /> of nullable values.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Untyped">
<summary>
An untyped value. The value of this field is serialized as Remote UI data. This is used when
serializing a property of type <see langword="object" /> containing a value that has a corresponding
<see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> in order to inform the deserializer that the field is not of the corresponding type.
</summary>
</member>
<member name="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.Xaml">
<summary>
A XAML string.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer">
<summary>
This class implements MessagePack serialization for simple data types that can be sent both from the extension to
Visual Studio, and from Visual Studio to the extension. This includes the basic data types provided by .NET and
nullable versions of such data types.
</summary>
<remarks>
MessagePack would normally serialized numeric data using the smallest format possible (e.g., <c>(int)5</c>
would be serialized as a <see langword="byte" />). <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer" /> instead serializes
numerical data in the format corresponding to their original data type in order to preserve information about the
original data type.
Some data like <see langword="char" />, <see cref="T:System.DateTime" /> of type <see cref="F:System.DateTimeKind.Local" /> and nullable
values use a custom format.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type)">
<summary>
Retrieves a delegate able to serialize values of type <paramref name="type" />.
</summary>
<param name="type">The type to be serialized.</param>
<returns>A delegate able to serialize <paramref name="type" /> or <see langword="null" /> if
<paramref name="type" /> is not considered simple data.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type,System.Boolean,Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode@,System.Boolean@)">
<summary>
Retrieves a delegate able to serialize values of type <paramref name="type" />.
</summary>
<param name="type">The type to be serialized.</param>
<param name="omitNullableHeader">When <see langword="true" /> the returned delegate will write nullable values
as Nil or their non-nullable equivalent. This is used when writing <see cref="T:System.Collections.Generic.ICollection`1" />.
</param>
<param name="dataTypeCode">Returns the <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> corresponding to <paramref name="type" /> or
<see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode.Invalid" />.</param>
<param name="isNullableValueType">Returns whether <paramref name="type" /> is a <see cref="T:System.Nullable`1" />.
</param>
<returns>A delegate able to serialize <paramref name="type" /> or <see langword="null" /> if
<paramref name="type" /> is not considered simple data.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethodForValueType(System.Type,Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode@)">
<summary>
Retrieves a delegate able to serialize values of type <paramref name="type" /> when <paramref name="type" /> is a
non nullable value type.
</summary>
<param name="type">The type to be serialized.</param>
<param name="dataTypeCode">Returns the <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> corresponding to <paramref name="type" /> or
<see langword="null" />.</param>
<returns>A delegate able to serialize <paramref name="type" /> or <see langword="null" /> if
<paramref name="type" /> is not considered simple data.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethodForReferenceType(System.Type,Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode@)">
<summary>
Retrieves a delegate able to serialize values of type <paramref name="type" /> when <paramref name="type" /> is a
reference type and its value is not null.
</summary>
<param name="type">The type to be serialized.</param>
<param name="dataTypeCode">Returns the <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode" /> corresponding to <paramref name="type" /> or
<see langword="null" />.</param>
<returns>A delegate able to serialize <paramref name="type" /> or <see langword="null" /> if
<paramref name="type" /> is not considered simple data.</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeChar(MessagePack.MessagePackWriter@,System.Object)">
<summary>
Serialization method for <see langword="char" /> values. This is used by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type)" />
to construct <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeMethod" /> delegates.
</summary>
<param name="writer">MessagePack writer to which <paramref name="value" /> is serialized.</param>
<param name="value">The value to be serialized.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeDateTime(MessagePack.MessagePackWriter@,System.Object)">
<summary>
Serialization method for <see cref="T:System.DateTime" /> values. This is used by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type)" />
to construct <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeMethod" /> delegates.
</summary>
<param name="writer">MessagePack writer to which <paramref name="value" /> is serialized.</param>
<param name="value">The value to be serialized.</param>
<remarks>
In order to respect the intent of using local <see cref="T:System.DateTime" /> objects, without corrupting their values
in case serializer and deserializer use different timezones, we convert them to Utc but mark them with
<see cref="F:Microsoft.Internal.VisualStudio.RemoteUI.SerializerFieldCode.LocalDateTime" /> so that they can be converted to the local timezone of the
reader when deserializing.
</remarks>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeNullable(MessagePack.MessagePackWriter@,System.Object,MessagePack.MessagePackSerializerOptions,Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeNonNullMethod)">
<summary>
Serialization method for nullable objects used when serializing items of typed collections. This is used by
<see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type)" /> to construct <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeMethod" /> delegates.
</summary>
<param name="writer">MessagePack writer to which <paramref name="value" /> is serialized.</param>
<param name="value">The value to be serialized.</param>
<param name="options">MessagePack serializer options used for the serialization.</param>
<param name="serializeMethod">Delegate to be used for serializing the object value when not null.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeNullableWithHeader(MessagePack.MessagePackWriter@,System.Object,MessagePack.MessagePackSerializerOptions,Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode,Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeNonNullMethod)">
<summary>
Serialization method for nullable value types. This is used by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type)" /> to
construct <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeMethod" /> delegates.
</summary>
<param name="writer">MessagePack writer to which <paramref name="value" /> is serialized.</param>
<param name="value">The value to be serialized.</param>
<param name="options">MessagePack serializer options used for the serialization.</param>
<param name="typeCode">Code representing the data type of the field to be used when <paramref name="value" />
is an empty nullable.</param>
<param name="serializeMethod">Delegate to be used for serializing the object value when not null.</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeRerenceTypeWithHeader(MessagePack.MessagePackWriter@,System.Object,MessagePack.MessagePackSerializerOptions,Microsoft.Internal.VisualStudio.RemoteUI.DataTypeCode,Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeNonNullMethod)">
<summary>
Serialization method for nullable reference types. This is used by <see cref="M:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.GetSerializeMethod(System.Type)" /> to
construct <see cref="T:Microsoft.Internal.VisualStudio.RemoteUI.SimpleDataTypesSerializer.SerializeMethod" /> delegates.
</summary>
<param name="writer">MessagePack writer to which <paramref name="value" /> is serialized.</param>
<param name="value">The value to be serialized.</param>
<param name="options">MessagePack serializer options used for the serialization.</param>
<param name="typeCode">Code representing the data type of the field to be used when <paramref name="value" />
is an empty nullable.</param>
<param name="serializeMethod">Delegate to be used for serializing the object value when not null.</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.IVsEtwActivityEventWriter">
<summary>
Interface to write activity events
</summary>
<remarks>For internal use only</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivity">
<summary>
Represents an activity timespan that is marked by start/stop ETW events based on object lifecyle
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivityEventWriter">
<summary>
Internal implementation of activity event writer to write activity events to ETW
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivityInfo">
<summary>
Contains information to define an activity block
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivityInfo.#ctor(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel)">
<summary>
Creates a new activity information struct
</summary>
<param name="name">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivityInfo.#ctor(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid)">
<summary>
Creates a new activity information struct
</summary>
<param name="name">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
<param name="relatedActivityId">Related activity identifier if any, can be Guid.Empty</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivityInfo.#ctor(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid,System.Guid)">
<summary>
Creates a new activity information struct
</summary>
<param name="name">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
<param name="activityId">Activity identifier, if Guid.Empty a new GUID will be generated</param>
<param name="relatedActivityId">Related activity identifier if any, can be Guid.Empty</param>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords">
<summary>
ETW event keywords specific to Visual Studio providers
</summary>
<remarks>Please contact vsideperfreleng before adding a value here.</remarks>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel">
<summary>
ETW event levels specific to Visual Studio providers.
</summary>
</member>
<member name="T:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging">
<summary>
Visual Studio Common ETW provider.
</summary>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,``0,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivity)">
<summary>
Writes a simple event to ETW stream
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,``0,System.Guid)">
<summary>
Writes a simple event to ETW stream
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,``0)">
<summary>
Writes a simple event to ETW stream using default verbose level
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel)">
<summary>
Writes a simple event to ETW stream
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivity)">
<summary>
Writes a simple event to ETW stream
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="relatedActivity">Tagged activity to relate the event</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid)">
<summary>
Writes a simple event to ETW stream
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="relatedActivityId">Tagged activity to relate the event</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteEvent(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords)">
<summary>
Writes a simple event to ETW stream using default verbose level
</summary>
<param name="eventName">Name of the event</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.CreateActivity``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,``0)">
<summary>
Creates an activity with user data embedded in the start event
</summary>
<param name="activityName">Name of the activity</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
<returns>An EtwActivity object to determine the activity duration. The activity will be ended when object is disposed, End or Abort methods are called</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.CreateActivity``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivity,``0)">
<summary>
Creates an activity with user data embedded in the start event
</summary>
<param name="activityName">Name of the activity</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="relatedActivity">Related activity to this event, the activity id will be logged in the activity event</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
<returns>An EtwActivity object to determine the activity duration. The activity will be ended when object is disposed, End or Abort methods are called</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.CreateActivity(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel)">
<summary>
Creates an activity
</summary>
<param name="activityName">Name of the activity</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<returns>An EtwActivity object to determine the activity duration. The activity will be ended when object is disposed, End or Abort methods are called</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.CreateActivity(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwActivity)">
<summary>
Creates an activity
</summary>
<param name="activityName">Name of the activity</param>
<param name="keyword">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<param name="relatedActivity">Related activity to this event, the activity id will be logged in the activity event</param>
<returns>An EtwActivity object to determine the activity duration. The activity will be ended when object is disposed, End or Abort methods are called</returns>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteActivityStart(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid,System.Guid)">
<summary>
Write an ETW event to indicate an activity start.
</summary>
<remarks>This method should be used in cases where VsEtwActivity class can't be used to control the lifetime of the activity</remarks>
<param name="activityName">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
<param name="activityId">Activity identifier, if Guid.Empty a new GUID will be generated</param>
<param name="relatedActivityId">Related activity identifier if any, can be Guid.Empty</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteActivityStart``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid,System.Guid,``0)">
<summary>
Write an ETW event to indicate an activity start.
</summary>
<remarks>This method should be used in cases where VsEtwActivity class can't be used to control the lifetime of the activity</remarks>
<param name="activityName">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
<param name="activityId">Activity identifier, if Guid.Empty a new GUID will be generated</param>
<param name="relatedActivityId">Related activity identifier if any, can be Guid.Empty</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteActivityStop(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid,System.Guid)">
<summary>
Write an ETW event to indicate an activity stop.
</summary>
<remarks>This method should be used in cases where VsEtwActivity class can't be used to control the lifetime of the activity</remarks>
<param name="activityName">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
<param name="activityId">Activity identifier, if Guid.Empty a new GUID will be generated</param>
<param name="relatedActivityId">Related activity identifier if any, can be Guid.Empty</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.WriteActivityStop``1(System.String,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel,System.Guid,System.Guid,``0)">
<summary>
Write an ETW event to indicate an activity start.
</summary>
<remarks>This method should be used in cases where VsEtwActivity class can't be used to control the lifetime of the activity</remarks>
<param name="activityName">Name of the activity</param>
<param name="keyword">ETW keyword to define activity category</param>
<param name="level">ETW level to define activity event's verbosity</param>
<param name="activityId">Activity identifier, if Guid.Empty a new GUID will be generated</param>
<param name="relatedActivityId">Related activity identifier if any, can be Guid.Empty</param>
<param name="data">User data to be passed through the event. The data must either be an object with EventData attribute or an anonymous struct type</param>
</member>
<member name="M:Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLogging.IsProviderEnabled(Microsoft.Internal.VisualStudio.Diagnostics.VsEtwKeywords,Microsoft.Internal.VisualStudio.Diagnostics.VsEtwLevel)">
<summary>
Determines if provider is enabled for certain keyword and level
</summary>
<param name="keywords">One of VsEtwKeywords values, VS events can not be created without a keyword</param>
<param name="level">One of VsEtwLevels values</param>
<returns>true if provider is enabled, false otherwise</returns>
</member>
<member name="F:Microsoft.Internal.Performance.CodeMarkers.State.Enabled">
<summary>
The atom is present. CodeMarkers are enabled.
</summary>
</member>
<member name="F:Microsoft.Internal.Performance.CodeMarkers.State.Disabled">
<summary>
The atom is not present, but InitPerformanceDll has not yet been called.
</summary>
</member>
<member name="F:Microsoft.Internal.Performance.CodeMarkers.State.DisabledDueToDllImportException">
<summary>
Disabled because the CodeMarkers transport DLL could not be found or
an import failed to resolve.
</summary>
</member>
<member name="P:Microsoft.Internal.Performance.CodeMarkers.IsEnabled">
<summary>
Are CodeMarkers enabled? Note that even if IsEnabled returns false, CodeMarkers
may still be enabled later in another component.
</summary>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.CodeMarker(System.Int32)">
<summary>
Sends a code marker event
</summary>
<param name="nTimerID">The code marker event ID</param>
<returns>true if the code marker was successfully sent, false if code markers are
not enabled or an error occurred.</returns>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.CodeMarkerEx(System.Int32,System.Byte[])">
<summary>
Sends a code marker event with additional user data
</summary>
<param name="nTimerID">The code marker event ID</param>
<param name="aBuff">User data buffer. May not be null.</param>
<returns>true if the code marker was successfully sent, false if code markers are
not enabled or an error occurred.</returns>
<exception cref="T:System.ArgumentNullException">aBuff was null</exception>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.SetStateDLLException">
<summary>
Used by ManagedPerfTrack.cs to report errors accessing the DLL.
</summary>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.CodeMarkerEx(System.Int32,System.Guid)">
<summary>
Sends a code marker event with additional Guid user data
</summary>
<param name="nTimerID">The code marker event ID</param>
<param name="guidData">The additional Guid to include with the event</param>
<returns>true if the code marker was successfully sent, false if code markers are
not enabled or an error occurred.</returns>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.CodeMarkerEx(System.Int32,System.String)">
<summary>
Sends a code marker event with additional String user data
</summary>
<param name="nTimerID">The code marker event ID</param>
<param name="stringData">The additional String to include with the event</param>
<returns>true if the code marker was successfully sent, false if code markers are
not enabled or an error occurred.</returns>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.StringToBytesZeroTerminated(System.String)">
<summary>
Converts a string into a byte buffer including a zero terminator (needed for proper ETW message formatting)
</summary>
<param name="stringData">String to be converted to bytes</param>
<returns></returns>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.CodeMarkerEx(System.Int32,System.UInt32)">
<summary>
Sends a code marker event with additional DWORD user data
</summary>
<param name="nTimerID">The code marker event ID</param>
<param name="uintData">The additional DWORD to include with the event</param>
<returns>true if the code marker was successfully sent, false if code markers are
not enabled or an error occurred.</returns>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.CodeMarkerEx(System.Int32,System.UInt64)">
<summary>
Sends a code marker event with additional QWORD user data
</summary>
<param name="nTimerID">The code marker event ID</param>
<param name="ulongData">The additional QWORD to include with the event</param>
<returns>true if the code marker was successfully sent, false if code markers are
not enabled or an error occurred.</returns>
</member>
<member name="M:Microsoft.Internal.Performance.CodeMarkers.UsePrivateCodeMarkers(System.String,Microsoft.Win32.RegistryView)">
<summary>
Checks the registry to see if code markers are enabled
</summary>
<param name="regRoot">The registry root</param>
<param name="registryView">The registry view.</param>
<returns>Whether CodeMarkers are enabled in the registry</returns>
</member>
<member name="T:Microsoft.Internal.Performance.CodeMarkerStartEnd">
<summary>
Use CodeMarkerStartEnd in a using clause when you need to bracket an
operation with a start/end CodeMarker event pair. If you are using correlated
codemarkers and providing your own event manifest, include two GUIDs (the correlation
"marker" and the correlation ID itself) as the very first fields.
</summary>
</member>
<member name="T:Microsoft.Internal.Performance.CodeMarkerExStartEnd">
<summary>
Use CodeMarkerExStartEnd in a using clause when you need to bracket an
operation with a start/end CodeMarker event pair. If you are using correlated
codemarkers and providing your own event manifest, include two GUIDs (the correlation
"marker" and the correlation ID itself) as the very first fields.
</summary>
</member>
<member name="T:Windows.Win32.Foundation.PCWSTR">
<summary>
A pointer to a null-terminated, constant character string.
</summary>
</member>
<member name="F:Windows.Win32.Foundation.PCWSTR.Value">
<summary>
A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
</summary>
</member>
<member name="P:Windows.Win32.Foundation.PCWSTR.Length">
<summary>
Gets the number of characters up to the first null character (exclusive).
</summary>
</member>
<member name="M:Windows.Win32.Foundation.PCWSTR.ToString">
<summary>
Returns a <see langword="string" /> with a copy of this character array, up to the first null character (exclusive).
</summary>
<returns>A <see langword="string" />, or <see langword="null" /> if <see cref="F:Windows.Win32.Foundation.PCWSTR.Value" /> is <see langword="null" />.</returns>
</member>
<member name="M:Windows.Win32.Foundation.PCWSTR.AsSpan">
<summary>
Returns a span of the characters in this string, up to the first null character (exclusive).
</summary>
</member>
<member name="P:Windows.Win32.Foundation.PWSTR.Length">
<inheritdoc cref="P:Windows.Win32.Foundation.PCWSTR.Length" />
</member>
<member name="M:Windows.Win32.Foundation.PWSTR.ToString">
<inheritdoc cref="M:Windows.Win32.Foundation.PCWSTR.ToString" />
</member>
<member name="M:Windows.Win32.Foundation.PWSTR.AsSpan">
<summary>
Returns a span of the characters in this string, up to the first null character (exclusive).
</summary>
</member>
<member name="T:Windows.Win32.Foundation.RECT">
<summary>The RECT structure defines a rectangle by the coordinates of its upper-left and lower-right corners.</summary>
<remarks>
<para>The RECT structure is identical to the <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rectl">RECTL</a> structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//windef/ns-windef-rect#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Foundation.RECT.left">
<summary>Specifies the <i>x</i>-coordinate of the upper-left corner of the rectangle.</summary>
</member>
<member name="F:Windows.Win32.Foundation.RECT.top">
<summary>Specifies the <i>y</i>-coordinate of the upper-left corner of the rectangle.</summary>
</member>
<member name="F:Windows.Win32.Foundation.RECT.right">
<summary>Specifies the <i>x</i>-coordinate of the lower-right corner of the rectangle.</summary>
</member>
<member name="F:Windows.Win32.Foundation.RECT.bottom">
<summary>Specifies the <i>y</i>-coordinate of the lower-right corner of the rectangle.</summary>
</member>
<member name="P:Windows.Win32.__byte_3.Length">
<summary>The length of the inline array.</summary>
</member>
<member name="P:Windows.Win32.__byte_3.Item(System.Int32)">
<summary>
Gets a ref to an individual element of the inline array.
⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it.
</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO">
<summary>Receives file compression information.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_compression_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO.CompressedFileSize">
<summary>The file size of the compressed file.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO.CompressionFormat">
<summary>The compression format that is used to compress the file.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO.CompressionUnitShift">
<summary>The factor that the compression uses.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO.ChunkShift">
<summary>The number of chunks that are shifted by compression.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO.ClusterShift">
<summary>The number of clusters that are shifted by compression.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_COMPRESSION_INFO.Reserved">
<summary>Reserved.</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS">
<summary>Identifies the type of file information that GetFileInformationByHandleEx should retrieve or SetFileInformationByHandle should set.</summary>
<remarks>
<para>As noted in the preceding section, some file information classes are valid only for use with <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. Others are valid only for use with <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. Where neither function is mentioned, the information class is valid with both functions.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileBasicInfo">
<summary>
<para>Minimal information for the file should be retrieved or set. Used for file handles. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_basic_info">FILE_BASIC_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileStandardInfo">
<summary>
<para>Extended information for the file should be retrieved. Used for file handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_standard_info">FILE_STANDARD_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileNameInfo">
<summary>
<para>The file name should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_name_info">FILE_NAME_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileRenameInfo">
<summary>
<para>The file name should be changed. Used for file handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_rename_info">FILE_RENAME_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfo">
<summary>
<para>The file should be deleted. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_disposition_info">FILE_DISPOSITION_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileAllocationInfo">
<summary>
<para>The file allocation information should be changed. Used for file handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_allocation_info">FILE ALLOCATION INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileEndOfFileInfo">
<summary>
<para>The end of the file should be set. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_end_of_file_info">FILE_END_OF_FILE_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileStreamInfo">
<summary>
<para>File stream information for the specified file should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_stream_info">FILE_STREAM_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileCompressionInfo">
<summary>
<para>File compression information should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_compression_info">FILE_COMPRESSION_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileAttributeTagInfo">
<summary>
<para>File attribute information should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_attribute_tag_info">FILE_ATTRIBUTE_TAG_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryInfo">
<summary>
<para>Files in the specified directory should be retrieved. Used for directory handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. The number of files returned for each call to <b>GetFileInformationByHandleEx</b> depends on the size of the buffer that is passed to the function. Any subsequent calls to <b>GetFileInformationByHandleEx</b> on the same handle will resume the enumeration operation after the last file is returned. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_both_dir_info">FILE_ID_BOTH_DIR_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryRestartInfo">
<summary>
<para>Identical to <b>FileIdBothDirectoryInfo</b>, but forces the enumeration operation to start again from the beginning. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_both_dir_info">FILE_ID_BOTH_DIR_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIoPriorityHintInfo">
<summary>
<para>Priority hint information should be set. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_io_priority_hint_info">FILE_IO_PRIORITY_HINT_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileRemoteProtocolInfo">
<summary>
<para>File remote protocol information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_remote_protocol_info">FILE_REMOTE_PROTOCOL_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryInfo">
<summary>
<para>Files in the specified directory should be retrieved. Used for directory handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_full_dir_info">FILE_FULL_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryRestartInfo">
<summary>
<para>Identical to <b>FileFullDirectoryInfo</b>, but forces the enumeration operation to start again from the beginning. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_full_dir_info">FILE_FULL_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileStorageInfo">
<summary>
<para>File storage information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_storage_info">FILE_STORAGE_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileAlignmentInfo">
<summary>
<para>File alignment information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_alignment_info">FILE_ALIGNMENT_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdInfo">
<summary>
<para>File information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_info">FILE_ID_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryInfo">
<summary>
<para>Files in the specified directory should be retrieved. Used for directory handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_extd_dir_info">FILE_ID_EXTD_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryRestartInfo">
<summary>
<para>Identical to <b>FileIdExtdDirectoryInfo</b>, but forces the enumeration operation to start again from the beginning. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_extd_dir_info">FILE_ID_EXTD_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfoEx">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileRenameInfoEx">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.MaximumFileInfoByHandleClass">
<summary>This value is used for validation. Supported values are less than this value.</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO">
<summary>Receives extended information for the file.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_standard_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO.AllocationSize">
<summary>The amount of space that is allocated for the file.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO.EndOfFile">
<summary>The end of the file.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO.NumberOfLinks">
<summary>The number of links to the file.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO.DeletePending">
<summary>
<para><b>TRUE</b> if the file in the delete queue; otherwise, <b>false</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_standard_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_STANDARD_INFO.Directory">
<summary>
<para><b>TRUE</b> if the file is a directory; otherwise, <b>false</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_standard_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO">
<summary>Contains window information.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.cbSize">
<summary>
<para>Type: <b>DWORD</b> The size of the structure, in bytes. The caller must set this member to <c>sizeof(WINDOWINFO)</c>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.rcWindow">
<summary>
<para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a></b> The coordinates of the window.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.rcClient">
<summary>
<para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a></b> The coordinates of the client area.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.dwStyle">
<summary>
<para>Type: <b>DWORD</b> The window styles. For a table of window styles, see <a href="https://docs.microsoft.com/windows/desktop/winmsg/window-styles">Window Styles</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.dwExStyle">
<summary>
<para>Type: <b>DWORD</b> The extended window styles. For a table of extended window styles, see <a href="https://docs.microsoft.com/windows/desktop/winmsg/extended-window-styles">Extended Window Styles</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.dwWindowStatus">
<summary>
<para>Type: <b>DWORD</b> The window status. If this member is <b>WS_ACTIVECAPTION</b> (0x0001), the window is active. Otherwise, this member is zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.cxWindowBorders">
<summary>
<para>Type: <b>UINT</b> The width of the window border, in pixels.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.cyWindowBorders">
<summary>
<para>Type: <b>UINT</b> The height of the window border, in pixels.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.atomWindowType">
<summary>
<para>Type: <b>ATOM</b> The window class atom (see <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a>).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO.wCreatorVersion">
<summary>
<para>Type: <b>WORD</b> The Windows version of the application that created the window.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-windowinfo#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.PInvoke">
<content>
Contains extern methods from "ADVAPI32.dll".
</content>
<content>
Contains extern methods from "GDI32.dll".
</content>
<content>
Contains extern methods from "KERNEL32.dll".
</content>
<content>
Contains extern methods from "USER32.dll".
</content>
</member>
<member name="M:Windows.Win32.PInvoke.GetSidSubAuthority(Windows.Win32.Foundation.PSID,System.UInt32)">
<summary>Returns a pointer to a specified subauthority in a security identifier (SID). The subauthority value is a relative identifier (RID).</summary>
<param name="pSid">
<para>A pointer to the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-sid">SID</a> structure from which a pointer to a subauthority is to be returned. This function does not handle <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-sid">SID</a> structures that are not valid. Call the <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-isvalidsid">IsValidSid</a> function to verify that the <b>SID</b> structure is valid before you call this function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//securitybaseapi/nf-securitybaseapi-getsidsubauthority#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nSubAuthority">Specifies an index value identifying the subauthority array element whose address the function will return. The function performs no validation tests on this value. An application can call the <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-getsidsubauthoritycount">GetSidSubAuthorityCount</a> function to discover the range of acceptable values.</param>
<returns>
<para>If the function succeeds, the return value is a pointer to the specified <a href="/windows/desktop/api/winnt/ns-winnt-sid">SID</a> subauthority. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the function fails, the return value is undefined. The function fails if the specified <a href="/windows/desktop/api/winnt/ns-winnt-sid">SID</a> structure is not valid or if the index value specified by the <i>nSubAuthority</i> parameter is out of bounds.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//securitybaseapi/nf-securitybaseapi-getsidsubauthority">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetTokenInformation(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Security.TOKEN_INFORMATION_CLASS,System.Void*,System.UInt32,System.UInt32@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetTokenInformation(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_INFORMATION_CLASS,System.Void*,System.UInt32,System.UInt32*)" />
</member>
<!-- Badly formed XML comment ignored for member "M:Windows.Win32.PInvoke.GetTokenInformation(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_INFORMATION_CLASS,System.Void*,System.UInt32,System.UInt32*)" -->
<member name="M:Windows.Win32.PInvoke.OpenProcessToken(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Security.TOKEN_ACCESS_MASK,Microsoft.Win32.SafeHandles.SafeFileHandle@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.OpenProcessToken(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_ACCESS_MASK,Windows.Win32.Foundation.HANDLE*)" />
</member>
<member name="M:Windows.Win32.PInvoke.OpenProcessToken(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_ACCESS_MASK,Windows.Win32.Foundation.HANDLE*)">
<summary>Opens the access token associated with a process.</summary>
<param name="ProcessHandle">A handle to the process whose access token is opened. The process must have the PROCESS_QUERY_INFORMATION access permission.</param>
<param name="DesiredAccess">
<para>Specifies an <a href="https://docs.microsoft.com/windows/desktop/SecGloss/a-gly">access mask</a> that specifies the requested types of access to the access token. These requested access types are compared with the <a href="https://docs.microsoft.com/windows/desktop/SecGloss/d-gly">discretionary access control list</a> (DACL) of the token to determine which accesses are granted or denied.</para>
<para>For a list of access rights for access tokens, see <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/access-rights-for-access-token-objects">Access Rights for Access-Token Objects</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-openprocesstoken#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="TokenHandle">A pointer to a handle that identifies the newly opened access token when the function returns.</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-openprocesstoken">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.PInvoke.FSCTL_SET_COMPRESSION">
<summary>Sets the compression state of a file or directory on a volume whose file system supports per-file and per-directory compression.</summary>
<remarks>
<para>The LZNT1 compression algorithm is the only compression algorithm implemented. As a result, the LZNT1 compression algorithm is used as the DEFAULT compression method. If the file system of the volume containing the specified file or directory does not support per-file or per-directory compression, the operation fails. The compression state change of the file or directory occurs synchronously with the call to [DeviceIoControl](../ioapiset/nf-ioapiset-deviceiocontrol.md). To retrieve the compression state of a file or directory, use the [FSCTL_GET_COMPRESSION](ni-winioctl-fsctl_get_compression.md) control code. To retrieve the compression attribute of a file or directory, use the [GetFileAttributes](../fileapi/nf-fileapi-getfileattributesa.md) function. The compression attribute indicates whether a file or directory is compressed. The compression state indicates whether a file or directory is compressed and, if it is, the format of the compressed data. Directories are not actually compressed by this operation. Rather, the operation sets the default state for files created in the directory to be compressed. Note that the time stamps may not be updated correctly for a remote file. To ensure consistent results, use unbuffered I/O. File compression is supported for files of a maximum uncompressed size of 30 gigabytes. In Windows 8 and Windows Server 2012, this code is supported by the following technologies. Technology | Supported -----------|---------- Server Message Block (SMB) 3.0 protocol | Yes SMB 3.0 Transparent Failover (TFO) | No SMB 3.0 with Scale-out File Shares (SO) | No Cluster Shared Volume File System (CsvFS) | See comment Resilient File System (ReFS) | No CsvFs does not support making a directory compressed. CsvFs allows making file compressed only when the file is opened exclusively by a node. SMB 3.0 Transparent Failover and Scale-Out does not support NTFS compressed files. The FSCTL call is not blocked, but is unsupported."</para>
<para><h3><a id="Transacted_Operations"></a><a id="transacted_operations"></a><a id="TRANSACTED_OPERATIONS"></a>Transacted Operations</h3> You cannot change the compression state of a file opened with <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-createfiletransacteda">CreateFileTransacted</a>. For more information about transactions, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/transactional-ntfs-portal">Transactional NTFS</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ni-winioctl-fsctl_set_compression#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetDeviceCaps(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetDeviceCaps(Windows.Win32.Graphics.Gdi.HDC,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetDeviceCaps(Windows.Win32.Graphics.Gdi.HDC,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)">
<summary>The GetDeviceCaps function retrieves device-specific information for the specified device.</summary>
<param name="hdc">A handle to the DC.</param>
<param name="index"></param>
<returns>
<para>The return value specifies the value of the desired item. When <i>nIndex</i> is BITSPIXEL and the device has 15bpp or 16bpp, the return value is 16.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wingdi/nf-wingdi-getdevicecaps">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.CloseHandle(Windows.Win32.Foundation.HANDLE)">
<summary>Closes an open object handle.</summary>
<param name="hObject">A valid handle to an open object.</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. 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 <b>CloseHandle</b> on a handle returned by the <a href="/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea">FindFirstFile</a> function instead of calling the <a href="/windows/desktop/api/fileapi/nf-fileapi-findclose">FindClose</a> function.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//handleapi/nf-handleapi-closehandle">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.DeviceIoControl(System.Runtime.InteropServices.SafeHandle,System.UInt32,System.Void*,System.UInt32,System.Void*,System.UInt32,System.UInt32*,System.Threading.NativeOverlapped*)">
<inheritdoc cref="M:Windows.Win32.PInvoke.DeviceIoControl(Windows.Win32.Foundation.HANDLE,System.UInt32,System.Void*,System.UInt32,System.Void*,System.UInt32,System.UInt32*,System.Threading.NativeOverlapped*)" />
</member>
<member name="M:Windows.Win32.PInvoke.DeviceIoControl(Windows.Win32.Foundation.HANDLE,System.UInt32,System.Void*,System.UInt32,System.Void*,System.UInt32,System.UInt32*,System.Threading.NativeOverlapped*)">
<summary>Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.</summary>
<param name="hDevice">
<para>A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device handle, use the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-createfilea">CreateFile</a> function. For more information, see Remarks.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwIoControlCode">
<para>The control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it. For a list of the control codes, see Remarks. The documentation for each control code provides usage details for the <i>lpInBuffer</i>, <i>nInBufferSize</i>, <i>lpOutBuffer</i>, and <i>nOutBufferSize</i> parameters.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpInBuffer">
<para>A pointer to the input buffer that contains the data required to perform the operation. The format of this data depends on the value of the <i>dwIoControlCode</i> parameter. This parameter can be <b>NULL</b> if <i>dwIoControlCode</i> specifies an operation that does not require input data.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nInBufferSize">The size of the input buffer, in bytes.</param>
<param name="lpOutBuffer">
<para>A pointer to the output buffer that is to receive the data returned by the operation. The format of this data depends on the value of the <i>dwIoControlCode</i> parameter. This parameter can be <b>NULL</b> if <i>dwIoControlCode</i> specifies an operation that does not return data.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nOutBufferSize">The size of the output buffer, in bytes.</param>
<param name="lpBytesReturned">
<para>A pointer to a variable that receives the size of the data stored in the output buffer, in bytes. If the output buffer is too small to receive any data, the call fails, <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> returns <b>ERROR_INSUFFICIENT_BUFFER</b>, and <i>lpBytesReturned</i> is zero. If the output buffer is too small to hold all of the data but can hold some entries, some drivers will return as much data as fits. In this case, the call fails, <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> returns <b>ERROR_MORE_DATA</b>, and <i>lpBytesReturned</i> indicates the amount of data received. Your application should call <b>DeviceIoControl</b> again with the same operation, specifying a new starting point. If <i>lpOverlapped</i> is <b>NULL</b>, <i>lpBytesReturned</i> cannot be <b>NULL</b>. Even when an operation returns no output data and <i>lpOutBuffer</i> is <b>NULL</b>, <b>DeviceIoControl</b> makes use of <i>lpBytesReturned</i>. After such an operation, the value of <i>lpBytesReturned</i> is meaningless. If <i>lpOverlapped</i> is not <b>NULL</b>, <i>lpBytesReturned</i> can be <b>NULL</b>. If this parameter is not <b>NULL</b> and the operation returns data, <i>lpBytesReturned</i> is meaningless until the overlapped operation has completed. To retrieve the number of bytes returned, call <a href="https://docs.microsoft.com/windows/desktop/api/ioapiset/nf-ioapiset-getoverlappedresult">GetOverlappedResult</a>. If <i>hDevice</i> is associated with an I/O completion port, you can retrieve the number of bytes returned by calling <a href="https://docs.microsoft.com/windows/desktop/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus">GetQueuedCompletionStatus</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpOverlapped">
<para>A pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-overlapped">OVERLAPPED</a> structure. If <i>hDevice</i> was opened without specifying <b>FILE_FLAG_OVERLAPPED</b>, <i>lpOverlapped</i> is ignored. If <i>hDevice</i> was opened with the <b>FILE_FLAG_OVERLAPPED</b> flag, the operation is performed as an overlapped (asynchronous) operation. In this case, <i>lpOverlapped</i> must point to a valid <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-overlapped">OVERLAPPED</a> structure that contains a handle to an event object. Otherwise, the function fails in unpredictable ways. For overlapped operations, <b>DeviceIoControl</b> returns immediately, and the event object is signaled when the operation has been completed. Otherwise, the function does not return until the operation has been completed or an error occurs.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the operation completes successfully, the return value is nonzero. If the operation fails or is pending, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetCurrentThread_SafeHandle">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetCurrentThread" />
</member>
<member name="M:Windows.Win32.PInvoke.GetCurrentThread">
<summary>Retrieves a pseudo handle for the calling thread.</summary>
<returns>The return value is a pseudo handle for the current thread.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getcurrentthread">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetDiskFreeSpace(System.String,System.UInt32*,System.UInt32*,System.UInt32*,System.UInt32*)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetDiskFreeSpace(Windows.Win32.Foundation.PCWSTR,System.UInt32*,System.UInt32*,System.UInt32*,System.UInt32*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetDiskFreeSpace(Windows.Win32.Foundation.PCWSTR,System.UInt32*,System.UInt32*,System.UInt32*,System.UInt32*)">
<summary>Retrieves information about the specified disk, including the amount of free space on the disk.</summary>
<param name="lpRootPathName">
<para>The root directory of the disk for which information is to be returned. If this parameter is <b>NULL</b>, the function uses the root of the current disk. If this parameter is a UNC name, it must include a trailing backslash (for example, "\\\\MyServer\\MyShare\\"). Furthermore, a drive specification must have a trailing backslash (for example, "C:\\"). The calling application must have <b>FILE_LIST_DIRECTORY</b> access rights for this directory.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getdiskfreespacew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpSectorsPerCluster">A pointer to a variable that receives the number of sectors per cluster.</param>
<param name="lpBytesPerSector">A pointer to a variable that receives the number of bytes per sector.</param>
<param name="lpNumberOfFreeClusters">
<para>A pointer to a variable that receives the total number of free clusters on the disk that are available to the user who is associated with the calling thread. If per-user disk quotas are in use, this value may be less than the total number of free clusters on the disk.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getdiskfreespacew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpTotalNumberOfClusters">
<para>A pointer to a variable that receives the total number of clusters on the disk that are available to the user who is associated with the calling thread. If per-user disk quotas are in use, this value may be less than the total number of clusters on the disk.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getdiskfreespacew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getdiskfreespacew">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetFileInformationByHandleEx(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS,System.Void*,System.UInt32)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetFileInformationByHandleEx(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS,System.Void*,System.UInt32)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetFileInformationByHandleEx(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS,System.Void*,System.UInt32)">
<summary>Retrieves file information for the specified file.</summary>
<param name="hFile">
<para>A handle to the file that contains the information to be retrieved. This handle should not be a pipe handle.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getfileinformationbyhandleex#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="FileInformationClass">
<para>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ne-minwinbase-file_info_by_handle_class">FILE_INFO_BY_HANDLE_CLASS</a> enumeration value that specifies the type of information to be retrieved. For a table of valid values, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getfileinformationbyhandleex#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpFileInformation">
<para>A pointer to the buffer that receives the requested file information. The structure that is returned corresponds to the class that is specified by <i>FileInformationClass</i>. For a table of valid structure types, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getfileinformationbyhandleex#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwBufferSize">The size of the <i>lpFileInformation</i> buffer, in bytes.</param>
<returns>
<para>If the function succeeds, the return value is nonzero and file information data is contained in the buffer pointed to by the <i>lpFileInformation</i> parameter. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getfileinformationbyhandleex">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetNamedPipeClientProcessId(System.Runtime.InteropServices.SafeHandle,System.UInt32@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetNamedPipeClientProcessId(Windows.Win32.Foundation.HANDLE,System.UInt32*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetNamedPipeClientProcessId(Windows.Win32.Foundation.HANDLE,System.UInt32*)">
<summary>Retrieves the client process identifier for the specified named pipe.</summary>
<param name="Pipe">
<para>A handle to an instance of a named pipe. This handle must be created by the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-createnamedpipea">CreateNamedPipe</a> function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getnamedpipeclientprocessid#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="ClientProcessId">The process identifier.</param>
<returns>
<para>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 <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getnamedpipeclientprocessid">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetPrivateProfileInt(System.String,System.String,System.Int32,System.String)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetPrivateProfileInt(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,System.Int32,Windows.Win32.Foundation.PCWSTR)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetPrivateProfileInt(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,System.Int32,Windows.Win32.Foundation.PCWSTR)">
<summary>Retrieves an integer associated with a key in the specified section of an initialization file.</summary>
<param name="lpAppName">The name of the section in the initialization file.</param>
<param name="lpKeyName">
<para>The name of the key whose value is to be retrieved. This value is in the form of a string; the <b>GetPrivateProfileInt</b> function converts the string into an integer and returns the integer.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getprivateprofileintw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nDefault">The default value to return if the key name cannot be found in the initialization file.</param>
<param name="lpFileName">The name of the initialization file. If this parameter does not contain a full path to the file, the system searches for the file in the Windows directory.</param>
<returns>The return value is the integer equivalent of the string following the specified key name in the specified initialization file. If the key is not found, the return value is the specified default value.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getprivateprofileintw">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetPrivateProfileString(System.String,System.String,System.String,Windows.Win32.Foundation.PWSTR,System.UInt32,System.String)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetPrivateProfileString(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.PCWSTR)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetPrivateProfileString(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.PCWSTR)">
<summary>Retrieves a string from the specified section in an initialization file.</summary>
<param name="lpAppName">
<para>The name of the section containing the key name. If this parameter is <b>NULL</b>, the <b>GetPrivateProfileString</b> function copies all section names in the file to the supplied buffer.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getprivateprofilestringw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpKeyName">The name of the key whose associated string is to be retrieved. If this parameter is <b>NULL</b>, all key names in the section specified by the <i>lpAppName</i> parameter are copied to the buffer specified by the <i>lpReturnedString</i> parameter.</param>
<param name="lpDefault">
<para>A default string. If the <i>lpKeyName</i> key cannot be found in the initialization file, <b>GetPrivateProfileString</b> copies the default string to the <i>lpReturnedString</i> buffer.</para>
<para>If this parameter is <b>NULL</b>, the default is an empty string, "". Avoid specifying a default string with trailing blank characters. The function inserts a <b>null</b> character in the <i>lpReturnedString</i> buffer to strip any trailing blanks.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getprivateprofilestringw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpReturnedString">A pointer to the buffer that receives the retrieved string.</param>
<param name="nSize">The size of the buffer pointed to by the <i>lpReturnedString</i> parameter, in characters.</param>
<param name="lpFileName">The name of the initialization file. If this parameter does not contain a full path to the file, the system searches for the file in the Windows directory.</param>
<returns>
<para>The return value is the number of characters copied to the buffer, not including the terminating <b>null</b> character. If neither <i>lpAppName</i> nor <i>lpKeyName</i> is <b>NULL</b> and the supplied destination buffer is too small to hold the requested string, the string is truncated and followed by a <b>null</b> character, and the return value is equal to <i>nSize</i> minus one. If either <i>lpAppName</i> or <i>lpKeyName</i> is <b>NULL</b> and the supplied destination buffer is too small to hold all the strings, the last string is truncated and followed by two <b>null</b> characters. In this case, the return value is equal to <i>nSize</i> minus two. In the event the initialization file specified by <i>lpFileName</i> is not found, or contains invalid values, this function will set <b>errorno</b> with a value of '0x2' (File Not Found). To retrieve extended error information, call <a href="/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-getprivateprofilestringw">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetVolumeInformation(System.String,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*,System.UInt32*,System.UInt32*,Windows.Win32.Foundation.PWSTR,System.UInt32)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetVolumeInformation(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*,System.UInt32*,System.UInt32*,Windows.Win32.Foundation.PWSTR,System.UInt32)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetVolumeInformation(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt32*,System.UInt32*,System.UInt32*,Windows.Win32.Foundation.PWSTR,System.UInt32)">
<summary>Retrieves information about the file system and volume associated with the specified root directory.</summary>
<param name="lpRootPathName">
<para>A pointer to a string that contains the root directory of the volume to be described. If this parameter is <b>NULL</b>, the root of the current directory is used. A trailing backslash is required. For example, you specify \\MyServer\MyShare as "\\MyServer\MyShare\", or the C drive as "C:\".</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpVolumeNameBuffer">
<para>A pointer to a buffer that receives the name of a specified volume. The buffer size is specified by the <i>nVolumeNameSize</i> parameter.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nVolumeNameSize">
<para>The length of a volume name buffer, in <b>TCHARs</b>. The maximum buffer size is <b>MAX_PATH</b>+1. This parameter is ignored if the volume name buffer is not supplied.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpVolumeSerialNumber">
<para>A pointer to a variable that receives the volume serial number. This parameter can be <b>NULL</b> if the serial number is not required. This function returns the volume serial number that the operating system assigns when a hard disk is formatted. To programmatically obtain the hard disk's serial number that the manufacturer assigns, use the Windows Management Instrumentation (WMI) <a href="https://docs.microsoft.com/previous-versions/windows/desktop/cimwin32a/win32-physicalmedia">Win32_PhysicalMedia</a> property <b>SerialNumber</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpMaximumComponentLength">
<para>A pointer to a variable that receives the maximum length, in <b>TCHARs</b>, of a file name component that a specified file system supports. A file name component is the portion of a file name between backslashes. The value that is stored in the variable that *<i>lpMaximumComponentLength</i> points to is used to indicate that a specified file system supports long names. For example, for a FAT file system that supports long names, the function stores the value 255, rather than the previous 8.3 indicator. Long names can also be supported on systems that use the NTFS file system.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpFileSystemFlags">
<para>A pointer to a variable that receives flags associated with the specified file system. This parameter can be one or more of the following flags. However, <b>FILE_FILE_COMPRESSION</b> and <b>FILE_VOL_IS_COMPRESSED</b> are mutually exclusive. </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpFileSystemNameBuffer">
<para>A pointer to a buffer that receives the name of the file system, for example, the FAT file system or the NTFS file system. The buffer size is specified by the <i>nFileSystemNameSize</i> parameter.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nFileSystemNameSize">
<para>The length of the file system name buffer, in <b>TCHARs</b>. The maximum buffer size is <b>MAX_PATH</b>+1. This parameter is ignored if the file system name buffer is not supplied.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If all the requested information is retrieved, the return value is nonzero. If not all the requested information is retrieved, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getvolumeinformationw">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.SetThreadPriority(System.Runtime.InteropServices.SafeHandle,Windows.Win32.System.Threading.THREAD_PRIORITY)">
<inheritdoc cref="M:Windows.Win32.PInvoke.SetThreadPriority(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Threading.THREAD_PRIORITY)" />
</member>
<member name="M:Windows.Win32.PInvoke.SetThreadPriority(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Threading.THREAD_PRIORITY)">
<summary>Sets the priority value for the specified thread. This value, together with the priority class of the thread's process, determines the thread's base priority level.</summary>
<param name="hThread">
<para>A handle to the thread whose priority value is to be set. The handle must have the <b>THREAD_SET_INFORMATION</b> or <b>THREAD_SET_LIMITED_INFORMATION</b> access right. For more information, see <a href="https://docs.microsoft.com/windows/desktop/ProcThread/thread-security-and-access-rights">Thread Security and Access Rights</a>.<b>Windows Server 2003:  </b>The handle must have the <b>THREAD_SET_INFORMATION</b> access right.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-setthreadpriority#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nPriority"></param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. <b>Windows Phone 8.1:  </b>Windows Phone Store apps may call this function but it has no effect. The function will return a nonzero value indicating success.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-setthreadpriority">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WritePrivateProfileString(System.String,System.String,System.String,System.String)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WritePrivateProfileString(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)" />
</member>
<member name="M:Windows.Win32.PInvoke.WritePrivateProfileString(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)">
<summary>Copies a string into the specified section of an initialization file.</summary>
<param name="lpAppName">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.</param>
<param name="lpKeyName">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 <b>NULL</b>, the entire section, including all entries within the section, is deleted.</param>
<param name="lpString">A <b>null</b>-terminated string to be written to the file. If this parameter is <b>NULL</b>, the key pointed to by the <i>lpKeyName</i> parameter is deleted.</param>
<param name="lpFileName">
<para>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.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-writeprivateprofilestringw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>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 <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-writeprivateprofilestringw">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.DestroyIcon(Windows.Win32.UI.WindowsAndMessaging.HICON)">
<summary>Destroys an icon and frees any memory the icon occupied.</summary>
<param name="hIcon">
<para>Type: <b>HICON</b> A handle to the icon to be destroyed. The icon must not be in use.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-destroyicon#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-destroyicon">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.ReleaseDC(Windows.Win32.Foundation.HWND,Windows.Win32.Graphics.Gdi.HDC)">
<summary>The ReleaseDC function releases a device context (DC), freeing it for use by other applications. The effect of the ReleaseDC function depends on the type of DC. It frees only common and window DCs. It has no effect on class or private DCs.</summary>
<param name="hWnd">A handle to the window whose DC is to be released.</param>
<param name="hDC">A handle to the DC to be released.</param>
<returns>
<para>The return value indicates whether the DC was released. If the DC was released, the return value is 1. If the DC was not released, the return value is zero.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-releasedc">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetDC(Windows.Win32.Foundation.HWND)">
<summary>The GetDC function retrieves a handle to a device context (DC) for the client area of a specified window or for the entire screen.</summary>
<param name="hWnd">A handle to the window whose DC is to be retrieved. If this value is <b>NULL</b>, <b>GetDC</b> retrieves the DC for the entire screen.</param>
<returns>
<para>If the function succeeds, the return value is a handle to the DC for the specified window's client area. If the function fails, the return value is <b>NULL</b>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getdc">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetFocus">
<summary>Retrieves the handle to the window that has the keyboard focus, if the window is attached to the calling thread's message queue.</summary>
<returns>
<para>Type: <b>HWND</b> 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 <b>NULL</b>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getfocus">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetWindowInfo(Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetWindowInfo(Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetWindowInfo(Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.WINDOWINFO*)">
<summary>Retrieves information about the specified window.</summary>
<param name="hwnd">
<para>Type: <b>HWND</b> A handle to the window whose information is to be retrieved.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getwindowinfo#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="pwi">
<para>Type: <b>PWINDOWINFO</b> A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-windowinfo">WINDOWINFO</a> structure to receive the information. Note that you must set the <b>cbSize</b> member to <c>sizeof(WINDOWINFO)</c> before calling this function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getwindowinfo#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getwindowinfo">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetWindowRect(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetWindowRect(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetWindowRect(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT*)">
<summary>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.</summary>
<param name="hWnd">
<para>Type: <b>HWND</b> A handle to the window.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getwindowrect#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpRect">
<para>Type: <b>LPRECT</b> A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that receives the screen coordinates of the upper-left and lower-right corners of the window.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getwindowrect#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getwindowrect">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.SetFocus(Windows.Win32.Foundation.HWND)">
<summary>Sets the keyboard focus to the specified window. The window must be attached to the calling thread's message queue.</summary>
<param name="hWnd">
<para>Type: **HWND** A handle to the window that will receive the keyboard input. If this parameter is NULL, keystrokes are ignored.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-setfocus#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>Type: **HWND** 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 function](../errhandlingapi/nf-errhandlingapi-getlasterror.md). Extended error ERROR_INVALID_PARAMETER (0x57) means that window is in disabled state.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-setfocus">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="T:Windows.Win32.Security.SID_AND_ATTRIBUTES">
<summary>Represents a security identifier (SID) and its attributes.</summary>
<remarks>
<para>A group is represented by a SID. SIDs have attributes that indicate whether they are currently enabled, disabled, or mandatory. SIDs also indicate how these attributes are used. A <b>SID_AND_ATTRIBUTES</b> structure can represent a SID whose attributes change frequently. For example, <b>SID_AND_ATTRIBUTES</b> is used to represent groups in the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ns-winnt-sid_and_attributes#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.SID_AND_ATTRIBUTES.Sid">
<summary>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-sid">SID</a> structure.</summary>
</member>
<member name="F:Windows.Win32.Security.SID_AND_ATTRIBUTES.Attributes">
<summary>Specifies attributes of the SID. This value contains up to 32 one-bit flags. Its meaning depends on the definition and use of the SID.</summary>
</member>
<member name="T:Windows.Win32.Security.TOKEN_INFORMATION_CLASS">
<summary>Contains values that specify the type of information being assigned to or retrieved from an access token.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenUser">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_user">TOKEN_USER</a> structure that contains the user account of the token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenGroups">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the group accounts associated with the token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenPrivileges">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_privileges">TOKEN_PRIVILEGES</a> structure that contains the privileges of the token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenOwner">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_owner">TOKEN_OWNER</a> structure that contains the default owner <a href="https://docs.microsoft.com/windows/desktop/SecGloss/s-gly">security identifier</a> (SID) for newly created objects.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenPrimaryGroup">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_primary_group">TOKEN_PRIMARY_GROUP</a> structure that contains the default primary group SID for newly created objects.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenDefaultDacl">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_default_dacl">TOKEN_DEFAULT_DACL</a> structure that contains the default DACL for newly created objects.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSource">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_source">TOKEN_SOURCE</a> structure that contains the source of the token. <b>TOKEN_QUERY_SOURCE</b> access is needed to retrieve this information.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenType">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ne-winnt-token_type">TOKEN_TYPE</a> value that indicates whether the token is a <a href="https://docs.microsoft.com/windows/desktop/SecGloss/p-gly">primary</a> or <a href="https://docs.microsoft.com/windows/desktop/SecGloss/i-gly">impersonation token</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenImpersonationLevel">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ne-winnt-security_impersonation_level">SECURITY_IMPERSONATION_LEVEL</a> value that indicates the impersonation level of the token. If the access token is not an <a href="https://docs.microsoft.com/windows/desktop/SecGloss/i-gly">impersonation token</a>, the function fails.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenStatistics">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_statistics">TOKEN_STATISTICS</a> structure that contains various token statistics.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedSids">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the list of restricting SIDs in a <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/restricted-tokens">restricted token</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSessionId">
<summary>
<para>The buffer receives a <b>DWORD</b> value that indicates the Terminal Services session identifier that is associated with the token. If the token is associated with the terminal server client session, the session identifier is nonzero. <b>Windows Server 2003 and Windows XP:  </b>If the token is associated with the terminal server console session, the session identifier is zero. In a non-Terminal Services environment, the session identifier is zero. If <b>TokenSessionId</b> is set with <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-settokeninformation">SetTokenInformation</a>, the application must have the <b>Act As Part Of the Operating System</b> privilege, and the application must be enabled to set the session ID in a token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenGroupsAndPrivileges">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups_and_privileges">TOKEN_GROUPS_AND_PRIVILEGES</a> structure that contains the user SID, the group accounts, the restricted SIDs, and the authentication ID associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSessionReference">
<summary>Reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSandBoxInert">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token includes the <b>SANDBOX_INERT</b> flag.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAuditPolicy">
<summary>Reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenOrigin">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_origin">TOKEN_ORIGIN</a> value. If the token resulted from a logon that used explicit credentials, such as passing a name, domain, and password to the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-logonusera">LogonUser</a> function, then the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_origin">TOKEN_ORIGIN</a> structure will contain the ID of the <a href="https://docs.microsoft.com/windows/desktop/SecGloss/l-gly">logon session</a> that created it. If the token resulted from network authentication, such as a call to <a href="https://docs.microsoft.com/windows/desktop/api/sspi/nf-sspi-acceptsecuritycontext">AcceptSecurityContext</a> or a call to <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-logonusera">LogonUser</a> with <i>dwLogonType</i> set to <b>LOGON32_LOGON_NETWORK</b> or <b>LOGON32_LOGON_NETWORK_CLEARTEXT</b>, then this value will be zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenElevationType">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ne-winnt-token_elevation_type">TOKEN_ELEVATION_TYPE</a> value that specifies the elevation level of the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenLinkedToken">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_linked_token">TOKEN_LINKED_TOKEN</a> structure that contains a handle to another token that is linked to this token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenElevation">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_elevation">TOKEN_ELEVATION</a> structure that specifies whether the token is elevated.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenHasRestrictions">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token has ever been filtered.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAccessInformation">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_access_information">TOKEN_ACCESS_INFORMATION</a> structure that specifies security information contained in the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenVirtualizationAllowed">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if <a href="https://docs.microsoft.com/windows/desktop/SecGloss/v-gly">virtualization</a> is allowed for the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenVirtualizationEnabled">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if <a href="https://docs.microsoft.com/windows/desktop/SecGloss/v-gly">virtualization</a> is enabled for the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIntegrityLevel">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_mandatory_label">TOKEN_MANDATORY_LABEL</a> structure that specifies the token's integrity level.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenUIAccess">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token has the UIAccess flag set.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenMandatoryPolicy">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_mandatory_policy">TOKEN_MANDATORY_POLICY</a> structure that specifies the token's mandatory integrity policy.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenLogonSid">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that specifies the token's logon SID.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIsAppContainer">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token is an app container token. Any callers who check the <b>TokenIsAppContainer</b> and have it return 0 should also verify that the caller token is not an identify level impersonation token. If the current token is not an app container but is an identity level token, you should return <b>AccessDenied</b>.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenCapabilities">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the capabilities associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAppContainerSid">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_appcontainer_information">TOKEN_APPCONTAINER_INFORMATION</a> structure that contains the AppContainerSid associated with the token. If the token is not associated with an app container, the <b>TokenAppContainer</b> member of the <b>TOKEN_APPCONTAINER_INFORMATION</b> structure points to <b>NULL</b>.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAppContainerNumber">
<summary>The buffer receives a <b>DWORD</b> value that includes the app container number for the token. For tokens that are not app container tokens, this value is zero.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenUserClaimAttributes">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-claim_security_attributes_information">CLAIM_SECURITY_ATTRIBUTES_INFORMATION</a> structure that contains the user claims associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenDeviceClaimAttributes">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-claim_security_attributes_information">CLAIM_SECURITY_ATTRIBUTES_INFORMATION</a> structure that contains the device claims associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedUserClaimAttributes">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedDeviceClaimAttributes">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenDeviceGroups">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the device groups that are associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedDeviceGroups">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the restricted device groups that are associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSecurityAttributes">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIsRestricted">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenProcessTrustLevel">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenPrivateNameSpace">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSingletonAttributes">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenBnoIsolation">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenChildProcessFlags">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIsLessPrivilegedAppContainer">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.MaxTokenInfoClass">
<summary>The maximum value for this enumeration.</summary>
</member>
<member name="T:Windows.Win32.Security.TOKEN_MANDATORY_LABEL">
<summary>Specifies the mandatory integrity level for a token.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ns-winnt-token_mandatory_label">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.TOKEN_MANDATORY_LABEL.Label">
<summary>A <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-sid_and_attributes">SID_AND_ATTRIBUTES</a> structure that specifies the mandatory integrity level of the token.</summary>
</member>
</members>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>ECq+1rUAQ+ut7r0Tu1Ji0lnfuRaCBMxDAWWU7cugxdA=</DigestValue></Reference></SignedInfo><SignatureValue>bTmHiL+IxPAibiPjyBeoit58QAWywha9FqlyysmIai39F2cJIGkzXGsOWptbaYNufpkLAFnFq0C9yL8pKL0X/nSaLzNjXYYIvHmBFOfPZNqMl9aciux2jxWuxPxaAcOVgtC7aMOWjUk4q27be55p8hJlj79f+oh/ZyWeVcCApD+oBBhGNr6OejYknPc9ePwUQ7qCQqZ8amlrl/8iEZ62gyO98FZZTlbuxz/ZK2y4WWt0i3lnqnwx9PWgApEvHZ518ckoZXQ1JpE9fPpUHoOoxkYqTJngjqU5/XnW9gj8/oyztwWCR8cCka9fU2SSRD+8RRIGgXAqKqF7WrPsO/ngrA==</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zkvLNa2un9GBrYNDoRGkGv7d0PqtTBB4ViYakFbjuWpmF0KcvDAzzaCWJPhVgIXjz+S8cHEoHuWnp/n+UOljT3ehA8Rs6Lb1aTYub3tB/e0txewv2sQ3yscjYdtTBtFvEm9L8Yv76K3Cxzi/Yvrdg+sr7w8y5RHn1Am0Ff8xggY1xpWCXFI+kQM18njQDcUqSlwBnexYfqHBhzz6YXA/S0EziYBu2O2mM7R6gSyYkEOHgIGTVOGnOvvC5xBgC4KNcnQuQSRLiUI2CmzU8vefR6ykruyzt1rNMPI8OqWHQtSDKXU5JNqbk4GNjwzcwbSzOHrxuxWHq91l/vLdVDGDUw==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIF9DCCA9ygAwIBAgITMwAAA68wQA5Mo00FQQAAAAADrzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMB4XDTIzMTExNjE5MDkwMFoXDTI0MTExNDE5MDkwMFowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkvLNa2un9GBrYNDoRGkGv7d0PqtTBB4ViYakFbjuWpmF0KcvDAzzaCWJPhVgIXjz+S8cHEoHuWnp/n+UOljT3ehA8Rs6Lb1aTYub3tB/e0txewv2sQ3yscjYdtTBtFvEm9L8Yv76K3Cxzi/Yvrdg+sr7w8y5RHn1Am0Ff8xggY1xpWCXFI+kQM18njQDcUqSlwBnexYfqHBhzz6YXA/S0EziYBu2O2mM7R6gSyYkEOHgIGTVOGnOvvC5xBgC4KNcnQuQSRLiUI2CmzU8vefR6ykruyzt1rNMPI8OqWHQtSDKXU5JNqbk4GNjwzcwbSzOHrxuxWHq91l/vLdVDGDUwIDAQABo4IBczCCAW8wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFEcccTTyBDxkjvJKs/m4AgEFhl7BMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDAxMis1MDE4MjYwHwYDVR0jBBgwFoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQCEsRbf80dn60xTweOWHZoWaQdpzSaDqIvqpYHE5ZzuEMJWDdcP72MGw8v6BSaJQ+a+hTCXdERnIBDPKvU4ENjgu4EBJocHlSe8riiZUAR+z+z4OUYqoFd3EqJyfjjOJBR2z94Dy4ss7LEkHUbj2NZiFqBoPYu2OGQvEk+1oaUsnNKZ7Nl7FHtV7CI2lHBru83e4IPe3glIi0XVZJT5qV6Gx/QhAFmpEVBjSAmDdgII4UUwuI9yiX6jJFNOEek6MoeP06LMJtbqA3Bq+ZWmJ033F97uVpyaiS4bj3vFI/ZBgDnMqNDtZjcA2vi4RRMweggd9vsHyTLpn6+nXoLy03vMeebq0C3k44pgUIEuPQUlJIRTe6IrN3GcjaZ6zHGuQGWgu6SyO9r7qkrEpS2pRjnGZjx2RmCamdAWnDdu+DmfNEPAddYjaJJ7PTnd+PGzG+WeH4ocWgVnm5fJFhItjj70CJjgHqt57e1FiQcyWCwBhKX2rGgN2UICHBF3Q/rsKOspjMw2OlGphTn2KmFl5J7cQxru54A9roClLnHGCiSUYos/iwFHI/dAVXEh0S0KKfTfM6AC6/9bCbsD61QLcRzRIElvgCgaiMWFjOBL99pemoElAHsyzG6uX93fMfas09N9YzA0/rFAKAsNDOcFbQlEHKiDT7mI20tVoCcmSIhJAQ==</X509Certificate><X509Certificate>MIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzQ==</X509Certificate><X509Certificate>MIIF7TCCA9WgAwIBAgIQP4vItfyfspZDtWnWbELhRDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwMzIyMjIwNTI4WhcNMzYwMzIyMjIxMzA0WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCygEGqNThNE3IyaCJNuLLx/9VSvGzH9dJKjDbu0cJcfoyKrq8TKG/Ac+M6ztAlqFo6be+ouFmrEyNozQwph9FvgFyPRH9dkAFSWKxRxV8qh9zc2AodwQO5e7BW6KPeZGHCnvjzfLnsDbVU/ky2ZU+I8JxImQxCCwl8MVkXeQZ4KI2JOkwDJb5xalwL54RgpJki49KvhKSn+9GY7Qyp3pSJ4Q6g3MDOmT3qCFK7VnnkH4S6Hri0xElcTzFLh93dBWcmmYDgcRGjuKVB4qRTufcyKYMME782XgSzS0NHL2vikR7TmE/dQgfI6B0S/Jmpaz6SfsjWaTr8ZL22CZ3K/QwLopt3YEsDlKQwaRLWQi3BQUzK3Kr9j1uDRprZ/LHR47PJf0h6zSTwQY9cdNCssBAgBkm3xy0hyFfj0IbzA2j70M5xwYmZSmQBbP3sMJHPQTySx+W6hh1hhMdfgzlirrSSL0fzC/hV66AfWdC7dJse0Hbm8ukG1xDo+mTeacY1logC8Ea4PyeZb8txiSk190gWAjWP1Xl8TQLPX+uKg09FcYj5qQ1OcunCnAfPSRtOBA5jUYxe2ADBVSy2xuDCZU7JNDn1nLPEfuhhbhNfFcRf2X7tHc7uROzLLoax7Dj2cO2rXBPB2Q8Nx4CyVe0096yb5MPa50c8prWPMd/FS6/r8QIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUci06AjGQQ7kUBU7h6qfHMdEjiTQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIBAH9yzw+3xRXbm8BJyiZb/p4T5tPw0tuXX/JLP02zrhmu7deXoKzvqTqjwkGw5biRnhOBJAPmCf0/V0A5ISRW0RAvS0CpNoZLtFNXmvvxfomPEf4YbFGq6O0JlbXlccmh6Yd1phV/yX43VF50k8XDZ8wNT2uoFwxtCJJ+i92Bqi1wIcM9BhS7vyRep4TXPw8hIr1LAAbblxzYXtTFC1yHblCk6MM4pPvLLMWSZpuFXst6bJN8gClYW1e1QGm6CHmmZGIVnYeWRbVmIyADixxzoNOieTPgUFmG2y/lAiXqcyqfABTINseSO+lOAOzYVgm5M0kS0lQLAausR7aRKX1MtHWAUgHoyoL2n8ysnI8X6i8msKtyrAv+nlEex0NVZ09Rs1fWtuzuUrc66U7h14GIvE+OdbtLqPA1qibUZ2dJsnBMO5PcHd94kIZysjik0dySTclY6ysSXNQ7roxrsIPlAT/4CTL2kzU0Iq/dNw13CYArzUgA8YyZGUcFAenRv9FO0OYoQzeZpApKCNmacXPSqs0xE2N2oTdvkjgefRI8ZjLny23h/FKJ3crWZgWalmG+oijHHKOnNlA8OqTfSm7mhzvO6/DggTedEzxSjr25HTTGHdUKaj2YKXCMiSrRq4IQSB/c9O+lxbtVGjhjhE63bK2VVOxlIhBJF7jAHscPrFRH</X509Certificate></X509Data></KeyInfo><Object Id="ts-countersig"><X509Data><X509Certificate>MIIHIDCCBQigAwIBAgITMwAAAfI+MtdkrHCRlAABAAAB8jANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYxODQ1NThaFw0yNTAzMDUxODQ1NThaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046RjAwMi0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC85fPLFwppYgxwYxkSEeYvQBtnYJTtKKj2FKxzHx0fgV6XgIIrmCWmpKl9IOzvOfJ/k6iP0RnoRo5F89Ad29edzGdlWbCj1Qyx5HUHNY8yu9ElJOmdgeuNvTK4RW4wu9iB5/z2SeCuYqyX/v8z6Ppv29h1ttNWsSc/KPOeuhzSAXqkA265BSFT5kykxvzB0LxoxS6oWoXWK6wx172NRJRYcINfXDhURvUfD70jioE92rW/OgjcOKxZkfQxLlwaFSrSnGs7XhMrp9TsUgmwsycTEOBdGVmf1HCD7WOaz5EEcQyIS2BpRYYwsPMbB63uHiJ158qNh1SJXuoL5wGDu/bZUzN+BzcLj96ixC7wJGQMBixWH9d++V8bl10RYdXDZlljRAvS6iFwNzrahu4DrYb7b8M7vvwhEL0xCOvb7WFMsstscXfkdE5g+NSacphgFfcoftQ5qPD2PNVmrG38DmHDoYhgj9uqPLP7vnoXf7j6+LW8Von158D0Wrmk7CumucQTiHRyepEaVDnnA2GkiJoeh/r3fShL6CHgPoTB7oYU/d6JOncRioDYqqRfV2wlpKVO8b+VYHL8hn11JRFx6p69mL8BRtSZ6dG/GFEVE+fVmgxYfICUrpghyQlETJPITEBS15IsaUuW0GvXlLSofGf2t5DAoDkuKCbC+3VdPmlYVQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFJVbhwAm6tAxBM5cH8Bg0+Y64oZ5MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA9S6eO4HsfB00XpOgPabcN3QZeyipgilcQSDZ8g6VCv9FVHzdSq9XpAsljZSKNWSClhJEz5Oo3Um/taPnobF+8CkAdkcLQhLdkShfr91kzy9vDPrOmlCA2FQ9jVhFaat2QM33z1p+GCP5tuvirFaUWzUWVDFOpo/O5zDpzoPYtTr0cFg3uXaRLT54UQ3Y4uPYXqn6wunZtUQRMiJMzxpUlvdfWGUtCvnW3eDBikDkix1XE98VcYIz2+5fdcvrHVeUarGXy4LRtwzmwpsCtUh7tR6whCrVYkb6FudBdWM7TVvji7pGgfjesgnASaD/ChLux66PGwaIaF+xLzk0bNxsAj0uhd6QdWr6TT39m/SNZ1/UXU7kzEod0vAY3mIn8X5A4I+9/e1nBNpURJ6YiDKQd5YVgxsuZCWv4Qwb0mXhHIe9CubfSqZjvDawf2I229N3LstDJUSr1vGFB8iQ5W8ZLM5PwT8vtsKEBwHEYmwsuWmsxkimIF5BQbSzg9wz1O6jdWTxGG0OUt1cXWOMJUJzyEH4WSKZHOx53qcAvD9h0U6jEF2fuBjtJ/QDrWbb4urvAfrvqNn9lH7gVPplqNPDIvQ8DkZ3lvbQsYqlz617e76ga7SY0w71+QP165CPdzUY36et2Sm4pvspEK8hllq3IYcyX0v897+X9YeecM1Pb1g==</X509Certificate><X509Certificate>MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8g==</X509Certificate></X509Data><CounterSignature ts-format="cms-timestamp-message" xmlns="http://schemas.microsoft.com/xmldsig/timestamp/2003">MIAGCSqGSIb3DQEHAqCAMIIXaQIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBUgYLKoZIhvcNAQkQAQSgggFBBIIBPTCCATkCAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQgmeZLZ4cgaziTjlFcsdSVnrOlZuuOksapN5B6pCiBUoICBmW8Enox+RgTMjAyNDAyMDcwNzAwNDYuODUyWjAEgAIB9KCB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkYwMDItMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloIIR6jCCByAwggUIoAMCAQICEzMAAAHyPjLXZKxwkZQAAQAAAfIwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjMxMjA2MTg0NTU4WhcNMjUwMzA1MTg0NTU4WjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkYwMDItMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvOXzyxcKaWIMcGMZEhHmL0AbZ2CU7Sio9hSscx8dH4Fel4CCK5glpqSpfSDs7znyf5Ooj9EZ6EaORfPQHdvXncxnZVmwo9UMseR1BzWPMrvRJSTpnYHrjb0yuEVuMLvYgef89kngrmKsl/7/M+j6b9vYdbbTVrEnPyjznroc0gF6pANuuQUhU+ZMpMb8wdC8aMUuqFqF1iusMde9jUSUWHCDX1w4VEb1Hw+9I4qBPdq1vzoI3DisWZH0MS5cGhUq0pxrO14TK6fU7FIJsLMnExDgXRlZn9Rwg+1jms+RBHEMiEtgaUWGMLDzGwet7h4idefKjYdUiV7qC+cBg7v22VMzfgc3C4/eosQu8CRkDAYsVh/XfvlfG5ddEWHVw2ZZY0QL0uohcDc62obuA62G+2/DO778IRC9MQjr2+1hTLLLbHF35HROYPjUmnKYYBX3KH7UOajw9jzVZqxt/A5hw6GIYI/bqjyz+756F3+4+vi1vFaJ9efA9Fq5pOwrprnEE4h0cnqRGlQ55wNhpIiaHof6930oS+gh4D6Ewe6GFP3eiTp3EYqA2KqkX1dsJaSlTvG/lWBy/IZ9dSURceqevZi/AUbUmenRvxhRFRPn1ZoMWHyAlK6YIckJREyTyExAUteSLGlLltBr15S0qHxn9reQwKA5Ligmwvt1XT5pWFUCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSVW4cAJurQMQTOXB/AYNPmOuKGeTAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAPUunjuB7HwdNF6ToD2m3Dd0GXsoqYIpXEEg2fIOlQr/RVR83UqvV6QLJY2UijVkgpYSRM+TqN1Jv7Wj56GxfvApAHZHC0IS3ZEoX6/dZM8vbwz6zppQgNhUPY1YRWmrdkDN989afhgj+bbr4qxWlFs1FlQxTqaPzucw6c6D2LU69HBYN7l2kS0+eFEN2OLj2F6p+sLp2bVEETIiTM8aVJb3X1hlLQr51t3gwYpA5IsdVxPfFXGCM9vuX3XL6x1XlGqxl8uC0bcM5sKbArVIe7UesIQq1WJG+hbnQXVjO01b44u6RoH43rIJwEmg/woS7seujxsGiGhfsS85NGzcbAI9LoXekHVq+k09/Zv0jWdf1F1O5MxKHdLwGN5iJ/F+QOCPvf3tZwTaVESemIgykHeWFYMbLmQlr+EMG9Jl4RyHvQrm30qmY7w2sH9iNtvTdy7LQyVEq9bxhQfIkOVvGSzOT8E/L7bChAcBxGJsLLlprMZIpiBeQUG0s4PcM9Tuo3Vk8RhtDlLdXF1jjCVCc8hB+FkimRzsed6nALw/YdFOoxBdn7gY7Sf0A61m2+Lq7wH676jZ/ZR+4FT6ZajTwyL0PA5Gd5b20LGKpc+te3u+oGu0mNMO9fkD9euQj3c1GN+nrdkpuKb7KRCvIZZatyGHMl9L/Pe/l/WHnnDNT29YwggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDTTCCAjUCAQEwgfmhgdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjpGMDAyLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAa4veN3BSx9k30BHwdOUiyAoO+AiggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAOltKFowIhgPMjAyNDAyMDYyMTUxMjJaGA8yMDI0MDIwNzIxNTEyMlowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6W0oWgIBADAHAgEAAgIb7jAHAgEAAgITpTAKAgUA6W552gIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBvQU2flEbmqcU0rm7e6n4gZhfwN2bkEZ0FHwDPYe9d8XzwauAopi4omC4RuNeJfZddQIukWj1+W4KRozAuVuqCHO2v/vnZUwdveDmYtOKCKcF9JgV2E4z6WMcXjKM6IA9d9I8/Ucfc1HTr2ZvNVdnSq2X6R3nSdnQL5/Kgl4dk4WsW0JqxCGYvfCvPGdd1TlPQUT5FFWciB2i8JIEgKsF1D93YMq+vSyQQIG1DPcnF9GiiFBuT9XraM5PDBDZYQbcsgPYlSh4iurCxoF1CCagdW+zSQrP/hTyYwbWrI/jF0rbhSFbosf6AwawL1Cquhg042rIOHSHdHaYrE0ufNdt0MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAHyPjLXZKxwkZQAAQAAAfIwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgb1FE1CFRxhA56rL+6BLMc/d2DJ2bHAId+Puc7vh0YPQwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCD42j4dLjFSXNOPmOEbuQVFGxxOLLmep0R0lLtF10pDRDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB8j4y12SscJGUAAEAAAHyMCIEIKlLtNJ+ZNuqEcjTk/oQwFXOu8nPgRPwBIHeziynHljxMA0GCSqGSIb3DQEBCwUABIICALi9EipgP1YUJQuximi6XIUjL0cA5O1YXyUwAzkelc8cQbb1SrE+sumI81JPllDs9JZzmqBN2eCcOfNAawwAuD3WzebL/oTLpN20TSpaSgwCrXssOE0PxJ4kusEIoswOnaa2XEVdDGSo+AnYWH27dRG/3fPel6Z7ZffEb+X0cagI0x00AFhVQFV0dgtY/BGR5eaLpfIx1smIWi7KVNa24sLYzweHSGnVSVH1tIzQ2EyKKowUhhYoTlTeTdCgZKn28svtXCri6PyfTOyO4363YYtHOHANXu1zb165EdJz77nW9zKPse9+QWnfmF7J9D17pxeLqEVprzBb1FkgZhZsoA2uPyiiL+dq4PFTyJjI6dpHdjx32UD7vwvE6IHR2CX/gaN7j3lmxNj5C6tzepaHjQBE2U3FLb9kPYt5cczSYdrpi8VEt6+io36HTIlvL1zAeJaEd3CKbmP5gMPznoOO7My5CrX148XyIAUkG2H57/QRH11Rmf/Tv81EKzReTJ5HI8kl3fnvoJfxxGusRnkABxOgEkZE+zpCnPznu/4mX3ixo7wXAFvSYyOS+q93CTw64n6+a9aBMFjqCa349lLqTjAfCOiVir0ziE8BEexLLYERNi/9ZH562M/DvV3zN7ZdRu+EzdbarR/HRZhFwR49j0IfZHtzGJ+vhCzVxqcoKVqJAAAAAA==</CounterSignature></Object></Signature></doc>